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: Additional FIPS requirements changes. Date: Tue, 09 Jun 2026 12:43:11 GMT Message-ID: <178100899162.1.15401688870859693496.rpms-openssl-5713696953b6@fedoraproject.org> List-ID: X-Git-Repo: rpms/openssl X-Git-Branch: rebase_40beta X-Git-Rev: 5713696953b6457e7c1e675573ab59da428ab1e2 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvb3BlbnNzbApCcmFu Y2ggOiByZWJhc2VfNDBiZXRhCkNvbW1pdCA6IDU3MTM2OTY5NTNiNjQ1N2U3YzFlNjc1NTczYWI1 OWRhNDI4YWIxZTIKQXV0aG9yIDogVG9tYXMgTXJheiA8dG1yYXpAZmVkb3JhcHJvamVjdC5vcmc+ CkRhdGUgICA6IDIwMTMtMTItMTlUMTc6NDI6NDMrMDE6MDAKU3RhdHMgIDogKzU0NC8tNzIgaW4g MSBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvb3Bl bnNzbC9jLzU3MTM2OTY5NTNiNjQ1N2U3YzFlNjc1NTczYWI1OWRhNDI4YWIxZTI/YnJhbmNoPXJl YmFzZV80MGJldGEKCkxvZzoKQWRkaXRpb25hbCBGSVBTIHJlcXVpcmVtZW50cyBjaGFuZ2VzLgoK LS0tCmRpZmYgLS1naXQgYS9vcGVuc3NsLTEuMC4xZS1uZXctZmlwcy1yZXFzLnBhdGNoIGIvb3Bl bnNzbC0xLjAuMWUtbmV3LWZpcHMtcmVxcy5wYXRjaAppbmRleCBkNDM4NDkwLi41OWIzZTkwIDEw MDY0NAotLS0gYS9vcGVuc3NsLTEuMC4xZS1uZXctZmlwcy1yZXFzLnBhdGNoCisrKyBiL29wZW5z c2wtMS4wLjFlLW5ldy1maXBzLXJlcXMucGF0Y2gKQEAgLTEsMjQgKzEsNiBAQAotZGlmZiAtdXAg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2JuL2JuLmguZmlwcy1yZXFzIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9ibi9ibi5oCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2JuL2JuLmguZmlwcy1yZXFz CTIwMTMtMTEtMjYgMTQ6MzY6MzUuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUv Y3J5cHRvL2JuL2JuLmgJMjAxMy0xMi0xMyAxMTo1ODo1OC42MjM4MjE2NjkgKzAxMDAKLUBAIC0z ODYsOSArMzg2LDExIEBAIGludCBCTl9HRU5DQl9jYWxsKEJOX0dFTkNCICpjYiwgaW50IGEsIGkK LSAgKiBvZiBBcHBsaWVkIENyeXB0b2dyYXBoeSBbTWVuZXplcywgdmFuIE9vcnNjaG90LCBWYW5z dG9uZTsgQ1JDIFByZXNzIDE5OTZdOwotICAqIG9yaWdpbmFsIHBhcGVyOiBEYW1nYWFyZCwgTGFu ZHJvY2ssIFBvbWVyYW5jZTogQXZlcmFnZSBjYXNlIGVycm9yIGVzdGltYXRlcwotICAqIGZvciB0 aGUgc3Ryb25nIHByb2JhYmxlIHByaW1lIHRlc3QuIC0tIE1hdGguIENvbXAuIDYxICgxOTkzKSAx NzctMTk0KSAqLwotLSNkZWZpbmUgQk5fcHJpbWVfY2hlY2tzX2Zvcl9zaXplKGIpICgoYikgPj0g MTMwMCA/ICAyIDogXAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIpID49ICA4 NTAgPyAgMyA6IFwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiKSA+PSAgNjUw ID8gIDQgOiBcCi0rLyogRklQUyAxODYtNCBzcGVjaWZpZXMgZXJyb3IgcmF0ZSBnaXZlbiB0aGUg c2VjdXJpdHkgc3RyZW5ndGggb2YgdGhlCi0rICogcmVzdWx0aW5nIFJTQSBrZXkgYml0IHNpemUu IFNvIHRoZSBlcnJvciByYXRlIGlzIDJeLTExMiBvciAyXi0xMjggZm9yCi0rICogMTAyNCBhbmQg MTUzNiBiaXQga2V5cy4KLSsgKi8KLSsjZGVmaW5lIEJOX3ByaW1lX2NoZWNrc19mb3Jfc2l6ZShi KSAoKGIpID49IDEzMDAgPyAgNCA6IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChiKSA+PSAgNTUwID8gIDUgOiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo YikgPj0gIDQ1MCA/ICA2IDogXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIp ID49ICA0MDAgPyAgNyA6IFwKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kaC9kaF9n ZW4uYy5maXBzLXJlcXMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RoL2RoX2dlbi5jCi0tLS0gb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2RoL2RoX2dlbi5jLmZpcHMtcmVxcwkyMDEzLTExLTI2IDE0OjM2 OjM1LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kaC9kaF9nZW4u YwkyMDEzLTEyLTExIDE2OjUwOjU0LjE4MTEzMDAwMCArMDEwMAorLS0tIG9wZW5zc2wtMS4wLjFl L2NyeXB0by9kaC9kaF9nZW4uYy5maXBzLXJlcXMJMjAxMy0xMi0xOCAxMjoxNzowOS43NDg2MzY2 MTQgKzAxMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZGgvZGhfZ2VuLmMJMjAxMy0xMi0x OCAxMjoxNzowOS43OTg2Mzc2ODcgKzAxMDAKIEBAIC0xMjUsNyArMTI1LDcgQEAgc3RhdGljIGlu dCBkaF9idWlsdGluX2dlbnBhcmFtcyhESCAqcmV0LAogIAkJcmV0dXJuIDA7CiAgCQl9CkBAIC0y OSw4ICsxMSw4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kaC9kaF9nZW4uYy5m aXBzLXJlcXMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RoL2RoCiAgCQlESGVycihESF9GX0RIX0JV SUxUSU5fR0VOUEFSQU1TLCBESF9SX0tFWV9TSVpFX1RPT19TTUFMTCk7CiAgCQlnb3RvIGVycjsK IGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kaC9kaC5oLmZpcHMtcmVxcyBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vZGgvZGguaAotLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kaC9kaC5o LmZpcHMtcmVxcwkyMDEzLTExLTI2IDE0OjM2OjM1LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9kaC9kaC5oCTIwMTMtMTItMTEgMTY6NTE6MTguMzQ1Njc1NzM3ICsw MTAwCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RoL2RoLmguZmlwcy1yZXFzCTIwMTMtMTIt MTggMTI6MTc6MDkuNzQ4NjM2NjE0ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2Ro L2RoLmgJMjAxMy0xMi0xOCAxMjoxNzowOS43OTg2Mzc2ODcgKzAxMDAKIEBAIC03OCw2ICs3OCw3 IEBACiAgI2VuZGlmCiAgCkBAIC00MSw3ICsyMyw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFl L2NyeXB0by9kaC9kaC5oLmZpcHMtcmVxcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZGgvZGguaAog ICNkZWZpbmUgREhfRkxBR19OT19FWFBfQ09OU1RUSU1FIDB4MDIgLyogbmV3IHdpdGggMC45Ljdo OyB0aGUgYnVpbHQtaW4gREgKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kaC9kaF9j aGVjay5jLmZpcHMtcmVxcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZGgvZGhfY2hlY2suYwogLS0t IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kaC9kaF9jaGVjay5jLmZpcHMtcmVxcwkyMDEzLTAyLTEx IDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kaC9k aF9jaGVjay5jCTIwMTMtMTItMTEgMTg6MDI6MjYuNzU5MDc1MjE5ICswMTAwCisrKysgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2RoL2RoX2NoZWNrLmMJMjAxMy0xMi0xOCAxMjoxNzowOS43OTk2Mzc3 MDggKzAxMDAKIEBAIC0xMzQsNyArMTM0LDMzIEBAIGludCBESF9jaGVja19wdWJfa2V5KGNvbnN0 IERIICpkaCwgY29uc3QKICAJQk5fc3ViX3dvcmQocSwxKTsKICAJaWYgKEJOX2NtcChwdWJfa2V5 LHEpPj0wKQpAQCAtNzcsOCArNTksOCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8v ZGgvZGhfY2hlY2suYy5maXBzLXJlcXMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RoLwogIGVycjoK ICAJaWYgKHEgIT0gTlVMTCkgQk5fZnJlZShxKTsKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9kc2EvZHNhX2dlbi5jLmZpcHMtcmVxcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNhL2Rz YV9nZW4uYwotLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhX2dlbi5jLmZpcHMtcmVx cwkyMDEzLTExLTI2IDE0OjM2OjM1LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFl L2NyeXB0by9kc2EvZHNhX2dlbi5jCTIwMTMtMTItMTEgMTY6NDc6MjUuODgyNDI1ODEyICswMTAw CistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2FfZ2VuLmMuZmlwcy1yZXFzCTIwMTMt MTItMTggMTI6MTc6MDkuNzQ5NjM2NjM2ICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2RzYS9kc2FfZ2VuLmMJMjAxMy0xMi0xOCAxMjoxNzowOS43OTk2Mzc3MDggKzAxMDAKIEBAIC0x NTksNyArMTU5LDYgQEAgaW50IGRzYV9idWlsdGluX3BhcmFtZ2VuKERTQSAqcmV0LCBzaXplXwog IAkgICAgfQogIApAQCAtODgsOCArNzAsOCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlw dG8vZHNhL2RzYV9nZW4uYy5maXBzLXJlcXMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYQogIAkg ICAgKGJpdHMgIT0gMjA0OCB8fCBxYml0cyAhPSAyNTYpICYmCiAgCSAgICAoYml0cyAhPSAzMDcy IHx8IHFiaXRzICE9IDI1NikpCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNhL2Rz YS5oLmZpcHMtcmVxcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNhL2RzYS5oCi0tLS0gb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2RzYS9kc2EuaC5maXBzLXJlcXMJMjAxMy0xMS0yNiAxNDozNjozNS4w MDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNhL2RzYS5oCTIwMTMt MTItMTMgMTE6NTM6MDQuNjM3ODI3MTg3ICswMTAwCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2RzYS9kc2EuaC5maXBzLXJlcXMJMjAxMy0xMi0xOCAxMjoxNzowOS43NDk2MzY2MzYgKzAxMDAK KysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZHNhL2RzYS5oCTIwMTMtMTItMTggMTI6MTc6MDku Nzk5NjM3NzA4ICswMTAwCiBAQCAtODksNiArODksNyBAQAogICNlbmRpZgogIApAQCAtMTEyLDgg Kzk0LDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2EuaC5maXBzLXJl cXMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2EKICAJQk5faXNfcHJpbWUobiwgRFNTX3By aW1lX2NoZWNrcywgY2FsbGJhY2ssIE5VTEwsIGNiX2FyZykKICAKIGRpZmYgLXVwIG9wZW5zc2wt MS4wLjFlL2NyeXB0by9kc2EvZHNhX2tleS5jLmZpcHMtcmVxcyBvcGVuc3NsLTEuMC4xZS9jcnlw dG8vZHNhL2RzYV9rZXkuYwotLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhX2tleS5j LmZpcHMtcmVxcwkyMDEzLTEyLTExIDE2OjM0OjU4LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9kc2EvZHNhX2tleS5jCTIwMTMtMTItMTEgMTY6NDc6NTcuODE1MTQ2 ODk0ICswMTAwCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2Ffa2V5LmMuZmlwcy1y ZXFzCTIwMTMtMTItMTggMTI6MTc6MDkuNzk3NjM3NjY1ICswMTAwCisrKysgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL2RzYS9kc2Ffa2V5LmMJMjAxMy0xMi0xOCAxMjoxNzowOS43OTk2Mzc3MDggKzAx MDAKIEBAIC0xMjcsNyArMTI3LDcgQEAgc3RhdGljIGludCBkc2FfYnVpbHRpbl9rZXlnZW4oRFNB ICpkc2EpCiAgCiAgI2lmZGVmIE9QRU5TU0xfRklQUwpAQCAtMTIzLDkgKzEwNSwxNzUgQEAgZGlm ZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2RzYS9kc2Ffa2V5LmMuZmlwcy1yZXFzIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9kc2EKICAJCXsKICAJCURTQWVycihEU0FfRl9EU0FfQlVJTFRJTl9L RVlHRU4sIERTQV9SX0tFWV9TSVpFX1RPT19TTUFMTCk7CiAgCQlnb3RvIGVycjsKK2RpZmYgLXVw IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfZGhfc2VsZnRlc3QuYy5maXBzLXJlcXMg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kaF9zZWxmdGVzdC5jCistLS0gb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kaF9zZWxmdGVzdC5jLmZpcHMtcmVxcwkyMDEzLTEy LTE4IDE3OjA2OjM2LjU3NTExNDMxNCArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9m aXBzL2ZpcHNfZGhfc2VsZnRlc3QuYwkyMDEzLTEyLTE4IDE3OjI2OjE0LjQwOTAzNjMzNCArMDEw MAorQEAgLTAsMCArMSwxNjIgQEAKKysvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyAqIENvcHlyaWdodCAoYykg MjAxMSBUaGUgT3BlblNTTCBQcm9qZWN0LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysgKiBDb3B5 cmlnaHQgKGMpIDIwMTMgUmVkIEhhdCwgSW5jLgorKyAqCisrICogUmVkaXN0cmlidXRpb24gYW5k IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisrICogbW9k aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k aXRpb25zCisrICogYXJlIG1ldDoKKysgKgorKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisrICogICAgbm90aWNlLCB0 aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKysg KgorKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0 aGUgYWJvdmUgY29weXJpZ2h0CisrICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCisrICogICAgdGhlIGRvY3VtZW50YXRp b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorKyAqICAgIGRpc3Ry aWJ1dGlvbi4KKysgKgorKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmlu ZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcworKyAqICAgIHNvZnR3YXJlIG11c3QgZGlzcGxheSB0 aGUgZm9sbG93aW5nIGFja25vd2xlZGdtZW50OgorKyAqICAgICJUaGlzIHByb2R1Y3QgaW5jbHVk ZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBPcGVuU1NMIFByb2plY3QKKysgKiAgICBmb3Ig dXNlIGluIHRoZSBPcGVuU1NMIFRvb2xraXQuIChodHRwOi8vd3d3Lm9wZW5zc2wub3JnLykiCisr ICoKKysgKiA0LiBUaGUgbmFtZXMgIk9wZW5TU0wgVG9vbGtpdCIgYW5kICJPcGVuU1NMIFByb2pl Y3QiIG11c3Qgbm90IGJlIHVzZWQgdG8KKysgKiAgICBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj dHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorKyAqICAgIHByaW9yIHdyaXR0 ZW4gcGVybWlzc2lvbi4gRm9yIHdyaXR0ZW4gcGVybWlzc2lvbiwgcGxlYXNlIGNvbnRhY3QKKysg KiAgICBvcGVuc3NsLWNvcmVAb3BlbnNzbC5vcmcuCisrICoKKysgKiA1LiBQcm9kdWN0cyBkZXJp dmVkIGZyb20gdGhpcyBzb2Z0d2FyZSBtYXkgbm90IGJlIGNhbGxlZCAiT3BlblNTTCIKKysgKiAg ICBub3IgbWF5ICJPcGVuU1NMIiBhcHBlYXIgaW4gdGhlaXIgbmFtZXMgd2l0aG91dCBwcmlvciB3 cml0dGVuCisrICogICAgcGVybWlzc2lvbiBvZiB0aGUgT3BlblNTTCBQcm9qZWN0LgorKyAqCisr ICogNi4gUmVkaXN0cmlidXRpb25zIG9mIGFueSBmb3JtIHdoYXRzb2V2ZXIgbXVzdCByZXRhaW4g dGhlIGZvbGxvd2luZworKyAqICAgIGFja25vd2xlZGdtZW50OgorKyAqICAgICJUaGlzIHByb2R1 Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBPcGVuU1NMIFByb2plY3QKKysg KiAgICBmb3IgdXNlIGluIHRoZSBPcGVuU1NMIFRvb2xraXQgKGh0dHA6Ly93d3cub3BlbnNzbC5v cmcvKSIKKysgKgorKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIE9wZW5TU0wg UFJPSkVDVCBgYEFTIElTJycgQU5EIEFOWQorKyAqIEVYUFJFU1NFRCBPUiBJTVBMSUVEIFdBUlJB TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKysgKiBJTVBMSUVEIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK KysgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIE9wZW5T U0wgUFJPSkVDVCBPUgorKyAqIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKysgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKysgKiBOT1QgTElNSVRFRCBUTywg UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKysgKiBMT1NTIE9G IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorKyAqIEhP V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD T05UUkFDVCwKKysgKiBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH RU5DRSBPUiBPVEhFUldJU0UpCisrICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRAorKyAqIE9GIFRIRSBQT1NTSUJJTElU WSBPRiBTVUNIIERBTUFHRS4KKysgKgorKyAqLworKworKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysj aW5jbHVkZSA8b3BlbnNzbC9jcnlwdG8uaD4KKysjaW5jbHVkZSA8b3BlbnNzbC9kaC5oPgorKyNp bmNsdWRlIDxvcGVuc3NsL2ZpcHMuaD4KKysjaW5jbHVkZSA8b3BlbnNzbC9lcnIuaD4KKysjaW5j bHVkZSA8b3BlbnNzbC9ldnAuaD4KKysjaW5jbHVkZSA8b3BlbnNzbC9ibi5oPgorKyNpbmNsdWRl ICJmaXBzX2xvY2wuaCIKKysKKysjaWZkZWYgT1BFTlNTTF9GSVBTCisrCisrc3RhdGljIGNvbnN0 IHVuc2lnbmVkIGNoYXIgZGhfdGVzdF8yMDQ4X3BbXSA9IHsKKysJMHhBRSwweEVDLDB4RUUsMHgy MiwweEZBLDB4M0EsMHhBNSwweDIyLDB4QzAsMHhERSwweDBGLDB4MDksCisrCTB4N0UsMHgxNyww eEMwLDB4MDUsMHhGOSwweEYxLDB4RTcsMHhDNiwweDg3LDB4MTQsMHg2RCwweDExLAorKwkweEU3 LDB4QUUsMHhFRCwweDJGLDB4NzIsMHg1OSwweEM1LDB4QTksMHg5QiwweEI4LDB4MDIsMHhBNSwK KysJMHhGMywweDY5LDB4NzAsMHhENiwweERELDB4OTAsMHhGOSwweDE5LDB4NzksMHhCRSwweDYw LDB4OEYsCisrCTB4MjUsMHg5MiwweDMwLDB4MUMsMHg1MSwweDUxLDB4MzgsMHgyNiwweDgyLDB4 MjUsMHhFNiwweEZDLAorKwkweEVELDB4NjUsMHg5NiwweDhGLDB4NTcsMHhFNSwweDUzLDB4OEIs MHgzOCwweDYzLDB4QzcsMHhDRSwKKysJMHhCQywweDFCLDB4NEQsMHgxOCwweDJBLDB4NUIsMHgw NCwweDNGLDB4NkEsMHgzQywweDk0LDB4MzksCisrCTB4QUUsMHgzNiwweEQ2LDB4NUUsMHgwRiww eEEyLDB4Q0MsMHhEMCwweEQ0LDB4RDUsMHhDNiwweDFFLAorKwkweEY2LDB4QTAsMHhGNSwweDg5 LDB4NEUsMHhCNCwweDBCLDB4QTQsMHhCMywweDJCLDB4M0QsMHhFMiwKKysJMHg0RSwweEUxLDB4 NDksMHgyNSwweDk5LDB4NUYsMHgzMiwweDE2LDB4MzMsMHgzMiwweDFCLDB4N0EsCisrCTB4QTUs MHg1QywweDZCLDB4MzQsMHgwRCwweDM5LDB4OTksMHhEQywweEYwLDB4NzYsMHhFNSwweDVBLAor KwkweEQ0LDB4NzEsMHgwMCwweEVELDB4NUEsMHg3MywweEZCLDB4QzgsMHgwMSwweEFELDB4OTks MHhDRiwKKysJMHg5OSwweDUyLDB4N0MsMHg5QywweDY0LDB4QzYsMHg3NiwweDQwLDB4NTcsMHhB RiwweDU5LDB4RDcsCisrCTB4MzgsMHgwQiwweDQwLDB4REUsMHgzMywweDBELDB4QjgsMHg3Niww eEVDLDB4QTksMHhEOCwweDczLAorKwkweEY4LDB4RUYsMHgyNiwweDY2LDB4MDYsMHgyNywweERE LDB4N0MsMHhBNCwweDEwLDB4OUMsMHhBNiwKKysJMHhBQSwweEY5LDB4NTMsMHg2MiwweDczLDB4 MUQsMHhCQSwweDFDLDB4RjEsMHg2NywweEY0LDB4MzUsCisrCTB4RUQsMHg2RiwweDM3LDB4OTIs MHhFOCwweDRGLDB4NkMsMHhCQSwweDUyLDB4NkUsMHhBMSwweEVELAorKwkweERBLDB4OUYsMHg4 NSwweDExLDB4ODIsMHg1MiwweDYyLDB4MDgsMHg0NCwweEYxLDB4MzAsMHgwMywKKysJMHhDMyww eDM4LDB4MkMsMHg3OSwweEJELDB4RDQsMHg0MywweDQ1LDB4RUUsMHg4RSwweDUwLDB4RkMsCisr CTB4MjksMHg0NiwweDlBLDB4RkUsMHg1NCwweDFBLDB4MTksMHg4RiwweDRCLDB4ODQsMHgwOCww eERFLAorKwkweDIwLDB4NjIsMHg3MywweENDLDB4REQsMHg3RSwweEYwLDB4RUYsMHhBMiwweEZE LDB4ODYsMHg1OCwKKysJMHg0QiwweEQ4LDB4MzcsMHhFQgorK307CisrCisrc3RhdGljIGNvbnN0 IHVuc2lnbmVkIGNoYXIgZGhfdGVzdF8yMDQ4X2dbXSA9IHsKKysJMHgwMgorK307CisrCisrc3Rh dGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGhfdGVzdF8yMDQ4X3B1Yl9rZXlbXSA9IHsKKysJMHhB MCwweDM5LDB4MTEsMHg3NywweDlBLDB4QzEsMHgzMCwweDFGLDB4QkUsMHg0OCwweEE3LDB4QUEs CisrCTB4QTAsMHg4NCwweDU0LDB4NjQsMHhBRCwweDFCLDB4NzAsMHhGQSwweDEzLDB4NTUsMHg2 MywweEQyLAorKwkweDFGLDB4NjIsMHgzMiwweDkzLDB4OEUsMHhDOSwweDNFLDB4MDksMHhBNyww eDY0LDB4RTQsMHgxMiwKKysJMHg2RSwweDFCLDB4RjIsMHg5MiwweDNCLDB4QjksMHhDQiwweDU2 LDB4RUEsMHgwNywweDg4LDB4QjUsCisrCTB4QTYsMHhCQywweDE2LDB4MUYsMHgyNywweEZFLDB4 RDgsMHhBQSwweDQwLDB4QjIsMHhCMCwweDJELAorKwkweDM3LDB4NzYsMHhBNiwweEE0LDB4ODIs MHgyQywweDBFLDB4MjIsMHg2NCwweDlELDB4Q0IsMHhEMSwKKysJMHgwMCwweEI3LDB4ODksMHgx NCwweDcyLDB4NEUsMHhCRSwweDQ4LDB4NDEsMHhGOCwweEIyLDB4NTEsCisrCTB4MTEsMHgwOSww eDRCLDB4MjIsMHgwMSwweDIzLDB4MzksMHg5NiwweEUwLDB4MTUsMHhENywweDlGLAorKwkweDYw LDB4RDEsMHhCNywweEFFLDB4RkUsMHg1RiwweERCLDB4RTcsMHgwMywweDE3LDB4OTcsMHhBNiwK KysJMHgxNiwweDc0LDB4QkQsMHg1MywweDgxLDB4MTksMHhDNSwweDQ3LDB4NUUsMHhDRSwweDhE LDB4RUQsCisrCTB4NDUsMHg1RCwweDNDLDB4MDAsMHhBMCwweDBBLDB4NjgsMHg2QSwweEUwLDB4 OEUsMHgwNiwweDQ2LAorKwkweDZGLDB4RDcsMHhGOSwweERGLDB4MzEsMHg3RSwweDc3LDB4NDQs MHgwRCwweDk4LDB4RTAsMHhDQSwKKysJMHg5OCwweDA5LDB4NTIsMHgwNCwweDkwLDB4RUEsMHg2 RCwweEY0LDB4MzAsMHg2OSwweDhGLDB4QjEsCisrCTB4OUIsMHhDMSwweDQzLDB4REIsMHhENSww eDhELDB4QzgsMHg4RSwweEI2LDB4MEIsMHgwNSwweEJFLAorKwkweDBFLDB4QzUsMHg5OSwweEM4 LDB4NkUsMHg0RSwweEYzLDB4Q0IsMHhDMywweDVFLDB4OUIsMHg1MywKKysJMHhGNywweDA2LDB4 MUMsMHg0RiwweEM3LDB4QjgsMHg2RSwweDMwLDB4MTgsMHhDQSwweDlCLDB4QjksCisrCTB4QkMs MHg1RiwweDE3LDB4NzIsMHgyOSwweDVBLDB4RTUsMHhEOSwweDk2LDB4QjcsMHgwQiwweEYzLAor KwkweDJELDB4OEMsMHhGMSwweEUxLDB4MEUsMHgwRCwweDc0LDB4RDUsMHg5RCwweEYwLDB4MDYs MHhBOSwKKysJMHhCNCwweDk1LDB4NjMsMHg3NiwweDQ2LDB4NTUsMHg0OCwweDgyLDB4MzksMHg5 MCwweEVGLDB4NTYsCisrCTB4NzUsMHgzNCwweEI4LDB4MzQsMHhDMywweDE4LDB4NkUsMHgxRSww eEFELDB4RTMsMHg0OCwweDdFLAorKwkweDkzLDB4MkMsMHgyMywweEU3LDB4RjgsMHg5MCwweDcz LDB4QjEsMHg3NywweDgwLDB4NjcsMHhBOSwKKysJMHgzNiwweDlFLDB4REEsMHhEMgorK307Cisr Cisrc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGhfdGVzdF8yMDQ4X3ByaXZfa2V5W10gPSB7 CisrCTB4MEMsMHg0QiwweDMwLDB4ODksMHhEMSwweEI4LDB4NjIsMHhDQiwweDNDLDB4NDMsMHg2 NCwweDkxLAorKwkweEYwLDB4OTEsMHg1NCwweDcwLDB4QzUsMHgyNywweDk2LDB4RTMsMHhBQyww eEJFLDB4RTgsMHgwMCwKKysJMHhFQywweDU1LDB4RjYsMHhDQworK307CisrCisraW50IEZJUFNf c2VsZnRlc3RfZGgoKQorKwl7CisrCURIICpkaCA9IE5VTEw7CisrCWludCByZXQgPSAwOworKwl2 b2lkICpwdWJfa2V5ID0gTlVMTDsKKysJaW50IGxlbjsKKysKKysJZGggPSBESF9uZXcoKTsKKysK KysJaWYoZGggPT0gTlVMTCkKKysJCWdvdG8gZXJyOworKworKwlmaXBzX2xvYWRfa2V5X2NvbXBv bmVudChkaCwgcCwgZGhfdGVzdF8yMDQ4KTsKKysJZmlwc19sb2FkX2tleV9jb21wb25lbnQoZGgs IGcsIGRoX3Rlc3RfMjA0OCk7CisrCS8qIG5vdGUgdGhhdCB0aGUgcHJpdmF0ZSBrZXkgaXMgbXVj aCBzaG9ydGVyIHRoYW4gbm9ybWFsbHkgdXNlZAorKwkgKiBidXQgc3RpbGwgZyAqKiBwcml2X2tl eSA+IHAKKysJICovCisrCWZpcHNfbG9hZF9rZXlfY29tcG9uZW50KGRoLCBwcml2X2tleSwgZGhf dGVzdF8yMDQ4KTsKKysKKysJaWYgKERIX2dlbmVyYXRlX2tleShkaCkgPD0gMCkKKysJCWdvdG8g ZXJyOworKworKwlsZW4gPSBCTl9udW1fYnl0ZXMoZGgtPnB1Yl9rZXkpOworKwlpZiAoKHB1Yl9r ZXkgPSBPUEVOU1NMX21hbGxvYyhsZW4pKSA9PSBOVUxMKQorKwkJZ290byBlcnI7CisrCUJOX2Ju MmJpbihkaC0+cHViX2tleSwgcHViX2tleSk7CisrCisrCWlmIChsZW4gIT0gc2l6ZW9mKGRoX3Rl c3RfMjA0OF9wdWJfa2V5KSB8fAorKwkJbWVtY21wKHB1Yl9rZXksIGRoX3Rlc3RfMjA0OF9wdWJf a2V5LCBsZW4pICE9IDApCisrCQlnb3RvIGVycjsKKysKKysJcmV0ID0gMTsKKysKKysJZXJyOgor KwlpZiAoZGgpCisrCQlESF9mcmVlKGRoKTsKKysKKysJT1BFTlNTTF9mcmVlKHB1Yl9rZXkpOwor KwlyZXR1cm4gcmV0OworKwl9CisrI2VuZGlmCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlw dG8vZmlwcy9maXBzX2RyYmdfcmFuZC5jLmZpcHMtcmVxcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8v Zmlwcy9maXBzX2RyYmdfcmFuZC5jCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlw c19kcmJnX3JhbmQuYy5maXBzLXJlcXMJMjAxMy0xMS0yNiAxNDozNjozNS41NTE3MDg1OTMgKzAx MDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2RyYmdfcmFuZC5jCTIwMTMt MTEtMjYgMTQ6MzY6MzUuNjAxNzA5Njg5ICswMTAwCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRv L2ZpcHMvZmlwc19kcmJnX3JhbmQuYy5maXBzLXJlcXMJMjAxMy0xMi0xOCAxMjoxNzowOS43NTc2 MzY4MDggKzAxMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX2RyYmdfcmFu ZC5jCTIwMTMtMTItMTggMTg6NTM6MzMuMjYzNzExMjk3ICswMTAwCiBAQCAtNzcsNyArNzcsOCBA QCBzdGF0aWMgaW50IGZpcHNfZHJiZ19ieXRlcyh1bnNpZ25lZCBjaGFyCiAgCWludCBydiA9IDA7 CiAgCXVuc2lnbmVkIGNoYXIgKmFkaW4gPSBOVUxMOwpAQCAtMTQ2LDM3ICsyOTQsOTIgQEAgZGlm ZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19kcmJnX3JhbmQuYy5maXBzLXJl cXMgb3BlbnNzbC0xLjAuMWUvY3IKICAJcmV0dXJuIHJ2OwogIAl9CiAgCi1AQCAtMTQxLDggKzE0 MywxMyBAQCBzdGF0aWMgdm9pZCBmaXBzX2RyYmdfY2xlYW51cCh2b2lkKQorQEAgLTEyNCwzNSAr MTI2LDUxIEBAIHN0YXRpYyBpbnQgZmlwc19kcmJnX3N0YXR1cyh2b2lkKQorIAl7CisgCURSQkdf Q1RYICpkY3R4ID0gJm9zc2xfZGN0eDsKKyAJaW50IHJ2OworLQlDUllQVE9fcl9sb2NrKENSWVBU T19MT0NLX1JBTkQpOworKwlpbnQgbG9ja2VkOworKwlsb2NrZWQgPSBwcml2YXRlX1JBTkRfbG9j aygxKTsKKyAJcnYgPSBkY3R4LT5zdGF0dXMgPT0gRFJCR19TVEFUVVNfUkVBRFkgPyAxIDogMDsK Ky0JQ1JZUFRPX3JfdW5sb2NrKENSWVBUT19MT0NLX1JBTkQpOworKwlpZiAobG9ja2VkKQorKwkJ cHJpdmF0ZV9SQU5EX2xvY2soMCk7CisgCXJldHVybiBydjsKKyAJfQorIAorIHN0YXRpYyB2b2lk IGZpcHNfZHJiZ19jbGVhbnVwKHZvaWQpCisgCXsKKyAJRFJCR19DVFggKmRjdHggPSAmb3NzbF9k Y3R4OworLQlDUllQVE9fd19sb2NrKENSWVBUT19MT0NLX1JBTkQpOworKwlpbnQgbG9ja2VkOwor Kwlsb2NrZWQgPSBwcml2YXRlX1JBTkRfbG9jaygxKTsKKyAJRklQU19kcmJnX3VuaW5zdGFudGlh dGUoZGN0eCk7CistCUNSWVBUT193X3VubG9jayhDUllQVE9fTE9DS19SQU5EKTsKKysJaWYgKGxv Y2tlZCkKKysJCXByaXZhdGVfUkFORF9sb2NrKDApOworIAl9CisgCiAgc3RhdGljIGludCBmaXBz X2RyYmdfc2VlZChjb25zdCB2b2lkICpzZWVkLCBpbnQgc2VlZGxlbikKICAJewogIAlEUkJHX0NU WCAqZGN0eCA9ICZvc3NsX2RjdHg7CiArCWludCBsb2NrZWQ7CisrCWludCByZXQgPSAxOwogKwog Kwlsb2NrZWQgPSBwcml2YXRlX1JBTkRfbG9jaygxKTsKICAJaWYgKGRjdHgtPnJhbmRfc2VlZF9j YikKLSAJCXJldHVybiBkY3R4LT5yYW5kX3NlZWRfY2IoZGN0eCwgc2VlZCwgc2VlZGxlbik7Cist CQlyZXR1cm4gZGN0eC0+cmFuZF9zZWVkX2NiKGRjdHgsIHNlZWQsIHNlZWRsZW4pOworLQlyZXR1 cm4gMTsKKysJCXJldCA9IGRjdHgtPnJhbmRfc2VlZF9jYihkY3R4LCBzZWVkLCBzZWVkbGVuKTsK ICsJaWYgKGxvY2tlZCkKICsJCXByaXZhdGVfUkFORF9sb2NrKDApOwotIAlyZXR1cm4gMTsKKysJ cmV0dXJuIHJldDsKICAJfQogIAotQEAgLTE1MCw4ICsxNTcsMTMgQEAgc3RhdGljIGludCBmaXBz X2RyYmdfYWRkKGNvbnN0IHZvaWQgKnNlZQorIHN0YXRpYyBpbnQgZmlwc19kcmJnX2FkZChjb25z dCB2b2lkICpzZWVkLCBpbnQgc2VlZGxlbiwKICAJCQkJCWRvdWJsZSBhZGRfZW50cm9weSkKICAJ ewogIAlEUkJHX0NUWCAqZGN0eCA9ICZvc3NsX2RjdHg7CiArCWludCBsb2NrZWQ7CisrCWludCBy ZXQgPSAxOwogKwogKwlsb2NrZWQgPSBwcml2YXRlX1JBTkRfbG9jaygxKTsKICAJaWYgKGRjdHgt PnJhbmRfYWRkX2NiKQotIAkJcmV0dXJuIGRjdHgtPnJhbmRfYWRkX2NiKGRjdHgsIHNlZWQsIHNl ZWRsZW4sIGFkZF9lbnRyb3B5KTsKKy0JCXJldHVybiBkY3R4LT5yYW5kX2FkZF9jYihkY3R4LCBz ZWVkLCBzZWVkbGVuLCBhZGRfZW50cm9weSk7CistCXJldHVybiAxOworKwkJcmV0ID0gZGN0eC0+ cmFuZF9hZGRfY2IoZGN0eCwgc2VlZCwgc2VlZGxlbiwgYWRkX2VudHJvcHkpOwogKwlpZiAobG9j a2VkKQogKwkJcHJpdmF0ZV9SQU5EX2xvY2soMCk7Ci0gCXJldHVybiAxOworKwlyZXR1cm4gcmV0 OwogIAl9CiAgCisgc3RhdGljIGNvbnN0IFJBTkRfTUVUSE9EIHJhbmRfZHJiZ19tZXRoID0KK2Rp ZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHMuaC5maXBzLXJlcXMgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwcy5oCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2Zp cHMvZmlwcy5oLmZpcHMtcmVxcwkyMDEzLTEyLTE4IDEyOjE3OjA5LjAwMDAwMDAwMCArMDEwMAor KysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHMuaAkyMDEzLTEyLTE4IDE3OjEzOjAw LjkyODU4NjY4OSArMDEwMAorQEAgLTk2LDYgKzk2LDcgQEAgdm9pZCBGSVBTX2NvcnJ1cHRfZHNh X2tleWdlbih2b2lkKTsKKyBpbnQgRklQU19zZWxmdGVzdF9kc2Eodm9pZCk7CisgaW50IEZJUFNf c2VsZnRlc3RfZWNkc2Eodm9pZCk7CisgaW50IEZJUFNfc2VsZnRlc3RfZWNkaCh2b2lkKTsKKytp bnQgRklQU19zZWxmdGVzdF9kaCh2b2lkKTsKKyB2b2lkIEZJUFNfY29ycnVwdF9ybmcodm9pZCk7 Cisgdm9pZCBGSVBTX3JuZ19zdGljayh2b2lkKTsKKyB2b2lkIEZJUFNfeDkzMV9zdGljayhpbnQg b25vZmYpOworZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19wb3N0LmMu Zmlwcy1yZXFzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcG9zdC5jCistLS0gb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvZmlwc19wb3N0LmMuZmlwcy1yZXFzCTIwMTMtMTItMTgg MTI6MTc6MDkuMDAwMDAwMDAwICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMv Zmlwc19wb3N0LmMJMjAxMy0xMi0xOCAxNzoxMjoyNi43MjE4MzI3MTYgKzAxMDAKK0BAIC05OSw2 ICs5OSw4IEBAIGludCBGSVBTX3NlbGZ0ZXN0KHZvaWQpCisgCQlydiA9IDA7CisgCWlmICghRklQ U19zZWxmdGVzdF9kc2EoKSkKKyAJCXJ2ID0gMDsKKysJaWYgKCFGSVBTX3NlbGZ0ZXN0X2RoKCkp CisrCQlydiA9IDA7CisgCWlmICghRklQU19zZWxmdGVzdF9lY2RoKCkpCisgCQlydiA9IDA7Cisg CXJldHVybiBydjsKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcnNh X3NlbGZ0ZXN0LmMuZmlwcy1yZXFzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcnNh X3NlbGZ0ZXN0LmMKLS0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3JzYV9zZWxm dGVzdC5jLmZpcHMtcmVxcwkyMDEzLTExLTI2IDE0OjM2OjM1LjU1NTcwODY4MCArMDEwMAotKysr IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcnNhX3NlbGZ0ZXN0LmMJMjAxMy0xMS0y NiAxNDozNjozNS42MDE3MDk2ODkgKzAxMDAKKy0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlw cy9maXBzX3JzYV9zZWxmdGVzdC5jLmZpcHMtcmVxcwkyMDEzLTEyLTE4IDEyOjE3OjA5Ljc2MTYz Njg5MyArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL2ZpcHNfcnNhX3NlbGZ0 ZXN0LmMJMjAxMy0xMi0xOCAxMjoxNzowOS43OTk2Mzc3MDggKzAxMDAKIEBAIC0zNDAsNiArMzQw LDQyIEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGthdF9SU0FfWDkzMV8KICAgIDB4NjAs IDB4ODMsIDB4MTgsIDB4ODgsIDB4QTMsIDB4RjUsIDB4NTksIDB4QzMKICB9OwpAQCAtMjQ2LDkg KzQ0OSwzMCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vZmlwcy9maXBzX3JzYV9z ZWxmdGVzdC5jLmZpcHMtcmVxcyBvcGVuc3NsLTEuMC4xZQogIAkJUlNBX2ZyZWUoa2V5KTsKICAJ cmV0dXJuIHJldDsKICAJfQorZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvTWFr ZWZpbGUuZmlwcy1yZXFzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9maXBzL01ha2VmaWxlCistLS0g b3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMvTWFrZWZpbGUuZmlwcy1yZXFzCTIwMTMtMTItMTgg MTI6MTc6MjAuMDAwMDAwMDAwICswMTAwCisrKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL2ZpcHMv TWFrZWZpbGUJMjAxMy0xMi0xOCAxNzoxNDoyMC4zNDgzMzczNjIgKzAxMDAKK0BAIC0yNCwxMyAr MjQsMTUgQEAgTElCU1JDPWZpcHNfYWVzX3NlbGZ0ZXN0LmMgZmlwc19kZXNfc2VsZgorICAgICBm aXBzX3JzYV9zZWxmdGVzdC5jIGZpcHNfc2hhX3NlbGZ0ZXN0LmMgZmlwcy5jIGZpcHNfZHNhX3Nl bGZ0ZXN0LmMgIGZpcHNfcmFuZC5jIFwKKyAgICAgZmlwc19yc2FfeDkzMWcuYyBmaXBzX3Bvc3Qu YyBmaXBzX2RyYmdfY3RyLmMgZmlwc19kcmJnX2hhc2guYyBmaXBzX2RyYmdfaG1hYy5jIFwKKyAg ICAgZmlwc19kcmJnX2xpYi5jIGZpcHNfZHJiZ19yYW5kLmMgZmlwc19kcmJnX3NlbGZ0ZXN0LmMg Zmlwc19yYW5kX2xpYi5jIFwKKy0gICAgZmlwc19jbWFjX3NlbGZ0ZXN0LmMgZmlwc19lY2RoX3Nl bGZ0ZXN0LmMgZmlwc19lY2RzYV9zZWxmdGVzdC5jIGZpcHNfZW5jLmMgZmlwc19tZC5jCisrICAg IGZpcHNfY21hY19zZWxmdGVzdC5jIGZpcHNfZWNkaF9zZWxmdGVzdC5jIGZpcHNfZWNkc2Ffc2Vs ZnRlc3QuYyBmaXBzX2VuYy5jIGZpcHNfbWQuYyBcCisrICAgIGZpcHNfZGhfc2VsZnRlc3QuYwor IAorIExJQk9CSj1maXBzX2Flc19zZWxmdGVzdC5vIGZpcHNfZGVzX3NlbGZ0ZXN0Lm8gZmlwc19o bWFjX3NlbGZ0ZXN0Lm8gZmlwc19yYW5kX3NlbGZ0ZXN0Lm8gXAorICAgICBmaXBzX3JzYV9zZWxm dGVzdC5vIGZpcHNfc2hhX3NlbGZ0ZXN0Lm8gZmlwcy5vIGZpcHNfZHNhX3NlbGZ0ZXN0Lm8gIGZp cHNfcmFuZC5vIFwKKyAgICAgZmlwc19yc2FfeDkzMWcubyBmaXBzX3Bvc3QubyBmaXBzX2RyYmdf Y3RyLm8gZmlwc19kcmJnX2hhc2gubyBmaXBzX2RyYmdfaG1hYy5vIFwKKyAgICAgZmlwc19kcmJn X2xpYi5vIGZpcHNfZHJiZ19yYW5kLm8gZmlwc19kcmJnX3NlbGZ0ZXN0Lm8gZmlwc19yYW5kX2xp Yi5vIFwKKy0gICAgZmlwc19jbWFjX3NlbGZ0ZXN0Lm8gZmlwc19lY2RoX3NlbGZ0ZXN0Lm8gZmlw c19lY2RzYV9zZWxmdGVzdC5vIGZpcHNfZW5jLm8gZmlwc19tZC5vCisrICAgIGZpcHNfY21hY19z ZWxmdGVzdC5vIGZpcHNfZWNkaF9zZWxmdGVzdC5vIGZpcHNfZWNkc2Ffc2VsZnRlc3QubyBmaXBz X2VuYy5vIGZpcHNfbWQubyBcCisrICAgIGZpcHNfZGhfc2VsZnRlc3QubworIAorIExJQkNSWVBU Tz0tTC4uIC1sY3J5cHRvCisgCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vbW9kZXMv Z2NtMTI4LmMuZmlwcy1yZXFzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tb2Rlcy9nY20xMjguYwog LS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tb2Rlcy9nY20xMjguYy5maXBzLXJlcXMJMjAxMy0w Mi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8v bW9kZXMvZ2NtMTI4LmMJMjAxMy0xMS0yNiAxNDozNjozNS42MDE3MDk2ODkgKzAxMDAKKysrKyBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vbW9kZXMvZ2NtMTI4LmMJMjAxMy0xMi0xOCAxMjoxNzowOS44 MDA2Mzc3MzAgKzAxMDAKIEBAIC04OTgsNiArODk4LDEwIEBAIGludCBDUllQVE9fZ2NtMTI4X2Vu Y3J5cHQoR0NNMTI4X0NPTlRFWFQKICAjIGVuZGlmCiAgI2VuZGlmCkBAIC0yNzIsOCArNDk2LDgg QEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL21vZGVzL2djbTEyOC5jLmZpcHMtcmVx cyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vbW8KICAJaWYgKG1sZW4+KChVNjQoMSk8PDM2KS0zMikg fHwgKHNpemVvZihsZW4pPT04ICYmIG1sZW48bGVuKSkKICAJCXJldHVybiAtMTsKIGRpZmYgLXVw IG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tb2Rlcy9tb2Rlc19sY2wuaC5maXBzLXJlcXMgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL21vZGVzL21vZGVzX2xjbC5oCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL21vZGVzL21vZGVzX2xjbC5oLmZpcHMtcmVxcwkyMDEzLTExLTI2IDE0OjM2OjM1LjA4OTY5 ODQ1OCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9tb2Rlcy9tb2Rlc19sY2wuaAky MDEzLTExLTI2IDE0OjM2OjM1LjYwMTcwOTY4OSArMDEwMAorLS0tIG9wZW5zc2wtMS4wLjFlL2Ny eXB0by9tb2Rlcy9tb2Rlc19sY2wuaC5maXBzLXJlcXMJMjAxMy0xMi0xOCAxMjoxNzowOS4zODg2 Mjg4OTUgKzAxMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vbW9kZXMvbW9kZXNfbGNsLmgJ MjAxMy0xMi0xOCAxMjoxNzowOS44MDA2Mzc3MzAgKzAxMDAKIEBAIC0xMTUsNiArMTE1LDcgQEAg c3RydWN0IGdjbTEyOF9jb250ZXh0IHsKICAJdW5zaWduZWQgaW50IG1yZXMsIGFyZXM7CiAgCWJs b2NrMTI4X2YgYmxvY2s7CkBAIC0yODMsOCArNTA3LDggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjAu MWUvY3J5cHRvL21vZGVzL21vZGVzX2xjbC5oLmZpcHMtcmVxcyBvcGVuc3NsLTEuMC4xZS9jcnlw dG8KICAKICBzdHJ1Y3QgeHRzMTI4X2NvbnRleHQgewogZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUv Y3J5cHRvL3JhbmQvbWRfcmFuZC5jLmZpcHMtcmVxcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcmFu ZC9tZF9yYW5kLmMKLS0tLSBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcmFuZC9tZF9yYW5kLmMuZmlw cy1yZXFzCTIwMTMtMTEtMjYgMTQ6MzY6MzUuNTU3NzA4NzI0ICswMTAwCi0rKysgb3BlbnNzbC0x LjAuMWUvY3J5cHRvL3JhbmQvbWRfcmFuZC5jCTIwMTMtMTEtMjYgMTQ6MzY6MzUuNjAyNzA5NzEx ICswMTAwCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JhbmQvbWRfcmFuZC5jLmZpcHMtcmVx cwkyMDEzLTEyLTE4IDEyOjE3OjA5Ljc2MzYzNjkzNiArMDEwMAorKysrIG9wZW5zc2wtMS4wLjFl L2NyeXB0by9yYW5kL21kX3JhbmQuYwkyMDEzLTEyLTE4IDEyOjE3OjA5LjgwMDYzNzczMCArMDEw MAogQEAgLTE0MywxMiArMTQzLDYgQEAgc3RhdGljIGxvbmcgbWRfY291bnRbMl09ezAsMH07CiAg c3RhdGljIGRvdWJsZSBlbnRyb3B5PTA7CiAgc3RhdGljIGludCBpbml0aWFsaXplZD0wOwpAQCAt NDU4LDggKzY4Miw4IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5kL21kX3Jh bmQuYy5maXBzLXJlcXMgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JhCiAgCXJldHVybiByZXQ7CiAg CX0KIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5kL3JhbmQuaC5maXBzLXJlcXMg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JhbmQvcmFuZC5oCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5 cHRvL3JhbmQvcmFuZC5oLmZpcHMtcmVxcwkyMDEzLTExLTI2IDE0OjM2OjM1LjU1ODcwODc0NiAr MDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5kL3JhbmQuaAkyMDEzLTExLTI2IDE0 OjM2OjM1LjYwMjcwOTcxMSArMDEwMAorLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5kL3Jh bmQuaC5maXBzLXJlcXMJMjAxMy0xMi0xOCAxMjoxNzowOS43NjQ2MzY5NTggKzAxMDAKKysrKyBv cGVuc3NsLTEuMC4xZS9jcnlwdG8vcmFuZC9yYW5kLmgJMjAxMy0xMi0xOCAxMjoxNzowOS44MDA2 Mzc3MzAgKzAxMDAKIEBAIC0xMjQsNiArMTI0LDggQEAgdm9pZCBSQU5EX3NldF9maXBzX2RyYmdf dHlwZShpbnQgdHlwZSwgaQogIGludCBSQU5EX2luaXRfZmlwcyh2b2lkKTsKICAjZW5kaWYKQEAg LTQ3MCw4ICs2OTQsOCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcmFuZC9yYW5k LmguZmlwcy1yZXFzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5kLwogIC8qIFRoZSBmb2xsb3dp bmcgbGluZXMgYXJlIGF1dG8gZ2VuZXJhdGVkIGJ5IHRoZSBzY3JpcHQgbWtlcnIucGwuIEFueSBj aGFuZ2VzCiAgICogbWFkZSBhZnRlciB0aGlzIHBvaW50IG1heSBiZSBvdmVyd3JpdHRlbiB3aGVu IHRoZSBzY3JpcHQgaXMgbmV4dCBydW4uCiBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9jcnlwdG8v cmFuZC9yYW5kX2xjbC5oLmZpcHMtcmVxcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcmFuZC9yYW5k X2xjbC5oCi0tLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JhbmQvcmFuZF9sY2wuaC5maXBzLXJl cXMJMjAxMy0xMS0yNiAxNDozNjozNS4yMzk3MDE3NDggKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vcmFuZC9yYW5kX2xjbC5oCTIwMTMtMTEtMjYgMTQ6MzY6MzUuNjAyNzA5NzExICsw MTAwCistLS0gb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JhbmQvcmFuZF9sY2wuaC5maXBzLXJlcXMJ MjAxMy0xMi0xOCAxMjoxNzowOS41MDc2MzE0NDcgKzAxMDAKKysrKyBvcGVuc3NsLTEuMC4xZS9j cnlwdG8vcmFuZC9yYW5kX2xjbC5oCTIwMTMtMTItMTggMTI6MTc6MDkuODAwNjM3NzMwICswMTAw CiBAQCAtMTEyLDcgKzExMiw3IEBACiAgI2lmbmRlZiBIRUFERVJfUkFORF9MQ0xfSAogICNkZWZp bmUgSEVBREVSX1JBTkRfTENMX0gKQEAgLTQ4Myw3ICs3MDcsNyBAQCBkaWZmIC11cCBvcGVuc3Ns LTEuMC4xZS9jcnlwdG8vcmFuZC9yYW5kX2xjbC5oLmZpcHMtcmVxcyBvcGVuc3NsLTEuMC4xZS9j cnlwdG8vcgogICNpZiAhZGVmaW5lZChVU0VfTUQ1X1JBTkQpICYmICFkZWZpbmVkKFVTRV9TSEEx X1JBTkQpICYmICFkZWZpbmVkKFVTRV9NREMyX1JBTkQpICYmICFkZWZpbmVkKFVTRV9NRDJfUkFO RCkKIGRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5kL3JhbmRfbGliLmMuZmlwcy1y ZXFzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5kL3JhbmRfbGliLmMKIC0tLSBvcGVuc3NsLTEu MC4xZS9jcnlwdG8vcmFuZC9yYW5kX2xpYi5jLmZpcHMtcmVxcwkyMDEzLTAyLTExIDE2OjI2OjA0 LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yYW5kL3JhbmRfbGli LmMJMjAxMy0xMS0yNiAxNDozNjozNS42MDI3MDk3MTEgKzAxMDAKKysrKyBvcGVuc3NsLTEuMC4x ZS9jcnlwdG8vcmFuZC9yYW5kX2xpYi5jCTIwMTMtMTItMTggMTg6MTY6NDUuNjI1ODUwNzMwICsw MTAwCiBAQCAtMTgxLDYgKzE4MSw0MSBAQCBpbnQgUkFORF9zdGF0dXModm9pZCkKICAJcmV0dXJu IDA7CiAgCX0KQEAgLTUyNiw0OCArNzUwLDI5NiBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9j cnlwdG8vcmFuZC9yYW5kX2xpYi5jLmZpcHMtcmVxcyBvcGVuc3NsLTEuMC4xZS9jcnlwdG8vcgog ICNpZmRlZiBPUEVOU1NMX0ZJUFMKICAKICAvKiBGSVBTIERSQkcgaW5pdGlhbGlzYXRpb24gY29k ZS4gVGhpcyBzZXRzIHVwIHRoZSBEUkJHIGZvciB1c2UgYnkgdGhlCi1AQCAtMjM5LDEyICsyNzQs MTQgQEAgc3RhdGljIGludCBkcmJnX3JhbmRfYWRkKERSQkdfQ1RYICpjdHgsCitAQCAtMjM5LDEy ICsyNzQsMTYgQEAgc3RhdGljIGludCBkcmJnX3JhbmRfYWRkKERSQkdfQ1RYICpjdHgsCiAgCQkJ CWRvdWJsZSBlbnRyb3B5KQogIAl7CiAgCVJBTkRfU1NMZWF5KCktPmFkZChpbiwgaW5sZW4sIGVu dHJvcHkpOwotKwlGSVBTX2RyYmdfcmVzZWVkKGN0eCwgTlVMTCwgMCk7CisrCWlmIChGSVBTX3Jh bmRfc3RhdHVzKCkpCisrCQlGSVBTX2RyYmdfcmVzZWVkKGN0eCwgTlVMTCwgMCk7CiAgCXJldHVy biAxOwogIAl9CiAgCiAgc3RhdGljIGludCBkcmJnX3JhbmRfc2VlZChEUkJHX0NUWCAqY3R4LCBj b25zdCB2b2lkICppbiwgaW50IGlubGVuKQogIAl7CiAgCVJBTkRfU1NMZWF5KCktPnNlZWQoaW4s IGlubGVuKTsKLSsJRklQU19kcmJnX3Jlc2VlZChjdHgsIE5VTEwsIDApOworKwlpZiAoRklQU19y YW5kX3N0YXR1cygpKQorKwkJRklQU19kcmJnX3Jlc2VlZChjdHgsIE5VTEwsIDApOwogIAlyZXR1 cm4gMTsKICAJfQogIAogZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9yc2FfZ2Vu LmMuZmlwcy1yZXFzIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhX2dlbi5jCi0tLS0gb3Bl bnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9yc2FfZ2VuLmMuZmlwcy1yZXFzCTIwMTMtMTEtMjYgMTQ6 MzY6MzUuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9yc2Ff Z2VuLmMJMjAxMy0xMi0xMSAxNjo0NToxOC42NjE1NTI1MjcgKzAxMDAKLUBAIC0xODIsNyArMTgy LDcgQEAgc3RhdGljIGludCByc2FfYnVpbHRpbl9rZXlnZW4oUlNBICpyc2EsCi0gCSAgICAJcmV0 dXJuIDA7Ci0gCSAgICAJfQorLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhX2dlbi5j LmZpcHMtcmVxcwkyMDEzLTEyLTE4IDEyOjE3OjA5Ljc2NDYzNjk1OCArMDEwMAorKysrIG9wZW5z c2wtMS4wLjFlL2NyeXB0by9yc2EvcnNhX2dlbi5jCTIwMTMtMTItMTkgMTc6NDA6NTguNDgzMTU0 MzE0ICswMTAwCitAQCAtMSw1ICsxLDYgQEAKKyAvKiBjcnlwdG8vcnNhL3JzYV9nZW4uYyAqLwor IC8qIENvcHlyaWdodCAoQykgMTk5NS0xOTk4IEVyaWMgWW91bmcgKGVheUBjcnlwdHNvZnQuY29t KQorKyAqIENvcHlyaWdodCAoQykgMjAxMyBSZWQgSGF0LCBJbmMuCisgICogQWxsIHJpZ2h0cyBy ZXNlcnZlZC4KKyAgKgorICAqIFRoaXMgcGFja2FnZSBpcyBhbiBTU0wgaW1wbGVtZW50YXRpb24g d3JpdHRlbgorQEAgLTE2NSw2ICsxNjYsMjIyIEBAIGludCBSU0FfZ2VuZXJhdGVfa2V5X2V4KFJT QSAqcnNhLCBpbnQgYmkKKyAJcmV0dXJuIHJzYV9idWlsdGluX2tleWdlbihyc2EsIGJpdHMsIGVf dmFsdWUsIGNiKTsKKyAJfQogIAorKyNpZmRlZiBPUEVOU1NMX0ZJUFMKKytzdGF0aWMgaW50IEZJ UFNfcnNhX2J1aWx0aW5fa2V5Z2VuKFJTQSAqcnNhLCBpbnQgYml0cywgQklHTlVNICplX3ZhbHVl LCBCTl9HRU5DQiAqY2IpCisrCXsKKysJQklHTlVNICpyMCA9IE5VTEwsICpyMSA9IE5VTEwsICpy MiA9IE5VTEwsICpyMyA9IE5VTEwsICp0bXA7CisrCUJJR05VTSBsb2NhbF9yMCwgbG9jYWxfZCwg bG9jYWxfcDsKKysJQklHTlVNICpwcjAsICpkLCAqcDsKKysJQk5fQ1RYICpjdHggPSBOVUxMOwor KwlpbnQgb2sgPSAtMTsKKysJaW50IGk7CisrICAgICAgICBpbnQgbiA9IDA7CisrCWludCB0ZXN0 ID0gMDsKKysgICAgICAgIGludCBwYml0cyA9IGJpdHMvMjsKKysKKysJaWYoRklQU19zZWxmdGVz dF9mYWlsZWQoKSkKKysJCXsKKysJCUZJUFNlcnIoRklQU19GX1JTQV9CVUlMVElOX0tFWUdFTiwg RklQU19SX0ZJUFNfU0VMRlRFU1RfRkFJTEVEKTsKKysJICAgIAlyZXR1cm4gMDsKKysJICAgIAl9 CisrCisrCWlmIChiaXRzICE9IDIwNDggJiYgYml0cyAhPSAzMDcyKQorKwkJeworKwkJRklQU2Vy cihGSVBTX0ZfUlNBX0JVSUxUSU5fS0VZR0VOLCBGSVBTX1JfSU5WQUxJRF9LRVlfTEVOR1RIKTsK KysJCXJldHVybiAwOworKwkJfQorKworKwljdHggPSBCTl9DVFhfbmV3KCk7CisrCWlmIChjdHgg PT0gTlVMTCkgZ290byBlcnI7CisrCUJOX0NUWF9zdGFydChjdHgpOworKwlyMCA9IEJOX0NUWF9n ZXQoY3R4KTsKKysJcjEgPSBCTl9DVFhfZ2V0KGN0eCk7CisrCXIyID0gQk5fQ1RYX2dldChjdHgp OworKwlyMyA9IEJOX0NUWF9nZXQoY3R4KTsKKysKKysJaWYgKHIzID09IE5VTEwpIGdvdG8gZXJy OworKworKwkvKiBXZSBuZWVkIHRoZSBSU0EgY29tcG9uZW50cyBub24tTlVMTCAqLworKwlpZiAo IXJzYS0+biAmJiAoKHJzYS0+bj1CTl9uZXcoKSkgPT0gTlVMTCkpIGdvdG8gZXJyOworKwlpZiAo IXJzYS0+ZCAmJiAoKHJzYS0+ZD1CTl9uZXcoKSkgPT0gTlVMTCkpIGdvdG8gZXJyOworKwlpZiAo IXJzYS0+ZSAmJiAoKHJzYS0+ZT1CTl9uZXcoKSkgPT0gTlVMTCkpIGdvdG8gZXJyOworKwlpZiAo IXJzYS0+cCAmJiAoKHJzYS0+cD1CTl9uZXcoKSkgPT0gTlVMTCkpIGdvdG8gZXJyOworKwlpZiAo IXJzYS0+cSAmJiAoKHJzYS0+cT1CTl9uZXcoKSkgPT0gTlVMTCkpIGdvdG8gZXJyOworKwlpZiAo IXJzYS0+ZG1wMSAmJiAoKHJzYS0+ZG1wMT1CTl9uZXcoKSkgPT0gTlVMTCkpIGdvdG8gZXJyOwor KwlpZiAoIXJzYS0+ZG1xMSAmJiAoKHJzYS0+ZG1xMT1CTl9uZXcoKSkgPT0gTlVMTCkpIGdvdG8g ZXJyOworKwlpZiAoIXJzYS0+aXFtcCAmJiAoKHJzYS0+aXFtcD1CTl9uZXcoKSkgPT0gTlVMTCkp IGdvdG8gZXJyOworKworKwlpZiAoIUJOX3NldF93b3JkKHIwLCBSU0FfRjQpKSBnb3RvIGVycjsK KysJaWYgKEJOX2NtcChlX3ZhbHVlLCByMCkgPCAwIHx8IEJOX251bV9iaXRzKGVfdmFsdWUpID4g MjU2KQorKwkJeworKwkJb2sgPSAwOyAvKiB3ZSBzZXQgb3VyIG93biBlcnIgKi8KKysJCVJTQWVy cihSU0FfRl9SU0FfQlVJTFRJTl9LRVlHRU4sUlNBX1JfQkFEX0VfVkFMVUUpOworKwkJZ290byBl cnI7CisrCQl9CisrCisrCS8qIHByZXBhcmUgYXBwcm94aW1hdGUgbWluaW11bSBwIGFuZCBxICov CisrCWlmICghQk5fc2V0X3dvcmQocjAsIDB4QjUwNEYzMzQpKSBnb3RvIGVycjsKKysJaWYgKCFC Tl9sc2hpZnQocjAsIHIwLCBwYml0cyAtIDMyKSkgZ290byBlcnI7CisrCisrCS8qIHByZXBhcmUg bWluaW11bSBwIGFuZCBxIGRpZmZlcmVuY2UgKi8KKysJaWYgKCFCTl9vbmUocjMpKSBnb3RvIGVy cjsKKysJaWYgKCFCTl9sc2hpZnQocjMsIHIzLCBwYml0cyAtIDEwMCkpIGdvdG8gZXJyOworKwor KwlCTl9jb3B5KHJzYS0+ZSwgZV92YWx1ZSk7CisrCisrCWlmICghQk5faXNfemVybyhyc2EtPnAp ICYmICFCTl9pc196ZXJvKHJzYS0+cSkpCisrCQl0ZXN0ID0gMTsKKysKKysJLyogZ2VuZXJhdGUg cCBhbmQgcSAqLworKwlmb3IgKGkgPSAwOyBpIDwgNSAqIHBiaXRzOyBpKyspCisrCQl7CisrICAg ICAgICBwbG9vcDoKKysgICAgICAgICAgICAgICAgaWYgKCF0ZXN0KQorKyAgICAgICAgICAgICAg ICAgICAgICAgIGlmICghQk5fcmFuZChyc2EtPnAsIHBiaXRzLCAwLCAxKSkgZ290byBlcnI7Cisr ICAgICAgICAgICAgICAgIGlmIChCTl9jbXAocnNhLT5wLCByMCkgPCAwKQorKyAgICAgICAgICAg ICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVzdCkgZ290byBl cnI7CisrICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwbG9vcDsKKysgICAgICAgICAgICAg ICAgICAgICAgICB9CisrCisrCQlpZiAoIUJOX3N1YihyMiwgcnNhLT5wLCBCTl92YWx1ZV9vbmUo KSkpIGdvdG8gZXJyOworKwkJaWYgKCFCTl9nY2QocjEsIHIyLCByc2EtPmUsIGN0eCkpIGdvdG8g ZXJyOworKwkJaWYgKEJOX2lzX29uZShyMSkpCisrICAgICAgICAgICAgICAgICAgICAgICAgewor KyAgICAgICAgICAgICAgICAgICAgICAgIGludCByOworKyAgICAgICAgICAgICAgICAgICAgICAg IHIgPSBCTl9pc19wcmltZV9mYXN0dGVzdF9leChyc2EtPnAsIHBiaXRzPjEwMjQ/NDo1LCBjdHgs IDAsIGNiKTsKKysgICAgICAgIAkJaWYgKHIgPT0gLTEgfHwgKHRlc3QgJiYgciA8PSAwKSkgZ290 byBlcnI7CisrICAgICAgICAJCWlmIChyID4gMCkgYnJlYWs7CisrICAgICAgICAgICAgICAgICAg ICAgICAgfSAKKysKKysJCWlmKCFCTl9HRU5DQl9jYWxsKGNiLCAyLCBuKyspKQorKwkJCWdvdG8g ZXJyOworKwkJfQorKworKwlpZighQk5fR0VOQ0JfY2FsbChjYiwgMywgMCkpCisrCQlnb3RvIGVy cjsKKysKKysgICAgICAgIGlmKGkgPj0gNSpwYml0cykKKysgICAgICAgICAgICAgICAgLyogcHJp bWUgbm90IGZvdW5kICovCisrICAgICAgICAgICAgICAgIGdvdG8gZXJyOworKworKwlmb3IgKGkg PSAwOyBpIDwgNSAqIHBiaXRzOyBpKyspCisrCQl7CisrICAgICAgICBxbG9vcDoKKysgICAgICAg ICAgICAgICAgaWYgKCF0ZXN0KQorKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghQk5fcmFu ZChyc2EtPnEsIHBiaXRzLCAwLCAxKSkgZ290byBlcnI7CisrICAgICAgICAgICAgICAgIGlmIChC Tl9jbXAocnNhLT5xLCByMCkgPCAwKQorKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKysgICAg ICAgICAgICAgICAgICAgICAgICBpZiAodGVzdCkgZ290byBlcnI7CisrICAgICAgICAgICAgICAg ICAgICAgICAgZ290byBxbG9vcDsKKysgICAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAg IAkJaWYgKCFCTl9zdWIocjIsIHJzYS0+cSwgcnNhLT5wKSkgZ290byBlcnI7CisrICAgICAgICAg ICAgICAgIGlmIChCTl91Y21wKHIyLCByMykgPD0gMCkKKysgICAgICAgICAgICAgICAgICAgICAg ICB7CisrICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3QpIGdvdG8gZXJyOworKyAgICAg ICAgICAgICAgICAgICAgICAgIGdvdG8gcWxvb3A7CisrICAgICAgICAgICAgICAgICAgICAgICAg fQorKworKwkJaWYgKCFCTl9zdWIocjIsIHJzYS0+cSwgQk5fdmFsdWVfb25lKCkpKSBnb3RvIGVy cjsKKysJCWlmICghQk5fZ2NkKHIxLCByMiwgcnNhLT5lLCBjdHgpKSBnb3RvIGVycjsKKysJCWlm IChCTl9pc19vbmUocjEpKQorKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKysgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgcjsKKysgICAgICAgICAgICAgICAgICAgICAgICByID0gQk5faXNf cHJpbWVfZmFzdHRlc3RfZXgocnNhLT5xLCBwYml0cz4xMDI0PzQ6NSwgY3R4LCAwLCBjYik7Cisr ICAgICAgICAJCWlmIChyID09IC0xIHx8ICh0ZXN0ICYmIHIgPD0gMCkpIGdvdG8gZXJyOworKyAg ICAgICAgCQlpZiAociA+IDApIGJyZWFrOworKyAgICAgICAgICAgICAgICAgICAgICAgIH0gCisr CisrCQlpZighQk5fR0VOQ0JfY2FsbChjYiwgMiwgbisrKSkKKysJCQlnb3RvIGVycjsKKysJCX0K KysKKysJaWYoIUJOX0dFTkNCX2NhbGwoY2IsIDMsIDEpKQorKwkJZ290byBlcnI7CisrCisrICAg ICAgICBpZihpID49IDUqcGJpdHMpCisrICAgICAgICAgICAgICAgIC8qIHByaW1lIG5vdCBmb3Vu ZCAqLworKyAgICAgICAgICAgICAgICBnb3RvIGVycjsKKysKKysgICAgICAgIGlmICh0ZXN0KQor KyAgICAgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAgIC8qIGRvIG5vdCB0cnkgdG8gY2Fs Y3VsYXRlIHRoZSByZW1haW5pbmcga2V5IHZhbHVlcyAqLworKyAgICAgICAgICAgICAgICBCTl9j bGVhcihyc2EtPm4pOworKyAgICAgICAgICAgICAgICBvayA9IDE7CisrICAgICAgICAgICAgICAg IGdvdG8gZXJyOworKyAgICAgICAgICAgICAgICB9CisrCisrCWlmIChCTl9jbXAocnNhLT5wLHJz YS0+cSkgPCAwKQorKwkJeworKwkJdG1wPXJzYS0+cDsKKysJCXJzYS0+cD1yc2EtPnE7CisrCQly c2EtPnE9dG1wOworKwkJfQorKworKwkvKiBjYWxjdWxhdGUgbiAqLworKwlpZiAoIUJOX211bChy c2EtPm4scnNhLT5wLHJzYS0+cSxjdHgpKSBnb3RvIGVycjsKKysKKysJLyogY2FsY3VsYXRlIGQg Ki8KKysJaWYgKCFCTl9zdWIocjEscnNhLT5wLEJOX3ZhbHVlX29uZSgpKSkgZ290byBlcnI7CS8q IHAtMSAqLworKwlpZiAoIUJOX3N1YihyMixyc2EtPnEsQk5fdmFsdWVfb25lKCkpKSBnb3RvIGVy cjsJLyogcS0xICovCisrCWlmICghQk5fbXVsKHIwLHIxLHIyLGN0eCkpIGdvdG8gZXJyOwkvKiAo cC0xKShxLTEpICovCisrCWlmICghKHJzYS0+ZmxhZ3MgJiBSU0FfRkxBR19OT19DT05TVFRJTUUp KQorKwkJeworKwkJICBwcjAgPSAmbG9jYWxfcjA7CisrCQkgIEJOX3dpdGhfZmxhZ3MocHIwLCBy MCwgQk5fRkxHX0NPTlNUVElNRSk7CisrCQl9CisrCWVsc2UKKysJICBwcjAgPSByMDsKKysJaWYg KCFCTl9tb2RfaW52ZXJzZShyc2EtPmQscnNhLT5lLHByMCxjdHgpKSBnb3RvIGVycjsJLyogZCAq LworKworKwkvKiBzZXQgdXAgZCBmb3IgY29ycmVjdCBCTl9GTEdfQ09OU1RUSU1FIGZsYWcgKi8K KysJaWYgKCEocnNhLT5mbGFncyAmIFJTQV9GTEFHX05PX0NPTlNUVElNRSkpCisrCQl7CisrCQlk ID0gJmxvY2FsX2Q7CisrCQlCTl93aXRoX2ZsYWdzKGQsIHJzYS0+ZCwgQk5fRkxHX0NPTlNUVElN RSk7CisrCQl9CisrCWVsc2UKKysJCWQgPSByc2EtPmQ7CisrCisrCS8qIGNhbGN1bGF0ZSBkIG1v ZCAocC0xKSAqLworKwlpZiAoIUJOX21vZChyc2EtPmRtcDEsZCxyMSxjdHgpKSBnb3RvIGVycjsK KysKKysJLyogY2FsY3VsYXRlIGQgbW9kIChxLTEpICovCisrCWlmICghQk5fbW9kKHJzYS0+ZG1x MSxkLHIyLGN0eCkpIGdvdG8gZXJyOworKworKwkvKiBjYWxjdWxhdGUgaW52ZXJzZSBvZiBxIG1v ZCBwICovCisrCWlmICghKHJzYS0+ZmxhZ3MgJiBSU0FfRkxBR19OT19DT05TVFRJTUUpKQorKwkJ eworKwkJcCA9ICZsb2NhbF9wOworKwkJQk5fd2l0aF9mbGFncyhwLCByc2EtPnAsIEJOX0ZMR19D T05TVFRJTUUpOworKwkJfQorKwllbHNlCisrCQlwID0gcnNhLT5wOworKwlpZiAoIUJOX21vZF9p bnZlcnNlKHJzYS0+aXFtcCxyc2EtPnEscCxjdHgpKSBnb3RvIGVycjsKKysKKysJaWYgKGZpcHNf cnNhX3BhaXJ3aXNlX2ZhaWwpCisrCQlCTl9hZGRfd29yZChyc2EtPm4sIDEpOworKworKwlpZigh Zmlwc19jaGVja19yc2EocnNhKSkKKysJICAgIGdvdG8gZXJyOworKworKwlvaz0xOworK2VycjoK KysJaWYgKG9rID09IC0xKQorKwkJeworKwkJUlNBZXJyKFJTQV9GX1JTQV9CVUlMVElOX0tFWUdF TixFUlJfTElCX0JOKTsKKysJCW9rID0gMDsKKysJCX0KKysJaWYgKGN0eCAhPSBOVUxMKQorKwkJ eworKwkJQk5fQ1RYX2VuZChjdHgpOworKwkJQk5fQ1RYX2ZyZWUoY3R4KTsKKysJCX0KKysKKysJ cmV0dXJuIG9rOworKwl9CisrI2VuZGlmCisrCisgc3RhdGljIGludCByc2FfYnVpbHRpbl9rZXln ZW4oUlNBICpyc2EsIGludCBiaXRzLCBCSUdOVU0gKmVfdmFsdWUsIEJOX0dFTkNCICpjYikKKyAJ eworIAlCSUdOVU0gKnIwPU5VTEwsKnIxPU5VTEwsKnIyPU5VTEwsKnIzPU5VTEwsKnRtcDsKK0BA IC0xNzYsMTcgKzM5Myw3IEBAIHN0YXRpYyBpbnQgcnNhX2J1aWx0aW5fa2V5Z2VuKFJTQSAqcnNh LAorICNpZmRlZiBPUEVOU1NMX0ZJUFMKKyAJaWYgKEZJUFNfbW9kdWxlX21vZGUoKSkKKyAJCXsK Ky0JCWlmKEZJUFNfc2VsZnRlc3RfZmFpbGVkKCkpCistCSAgICAJeworLQkJICAgIEZJUFNlcnIo RklQU19GX1JTQV9CVUlMVElOX0tFWUdFTixGSVBTX1JfRklQU19TRUxGVEVTVF9GQUlMRUQpOwor LQkgICAgCXJldHVybiAwOworLQkgICAgCX0KKy0KIC0JCWlmIChiaXRzIDwgT1BFTlNTTF9SU0Ff RklQU19NSU5fTU9EVUxVU19CSVRTKQotKwkJaWYgKGJpdHMgPCBPUEVOU1NMX1JTQV9GSVBTX01J Tl9NT0RVTFVTX0JJVFNfR0VOKQotIAkJICAgIHsKLSAJCSAgICBGSVBTZXJyKEZJUFNfRl9SU0Ff QlVJTFRJTl9LRVlHRU4sRklQU19SX0tFWV9UT09fU0hPUlQpOwotIAkJICAgIHJldHVybiAwOwot ZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9yc2EuaC5maXBzLXJlcXMgb3BlbnNz bC0xLjAuMWUvY3J5cHRvL3JzYS9yc2EuaAotLS0tIG9wZW5zc2wtMS4wLjFlL2NyeXB0by9yc2Ev cnNhLmguZmlwcy1yZXFzCTIwMTMtMTEtMjYgMTQ6MzY6MzUuMDAwMDAwMDAwICswMTAwCi0rKysg b3BlbnNzbC0xLjAuMWUvY3J5cHRvL3JzYS9yc2EuaAkyMDEzLTEyLTExIDE2OjQ1OjA1LjkzNzI2 NTE1MCArMDEwMAotQEAgLTE2Niw2ICsxNjYsOCBAQCBzdHJ1Y3QgcnNhX3N0CistCQkgICAgewor LQkJICAgIEZJUFNlcnIoRklQU19GX1JTQV9CVUlMVElOX0tFWUdFTixGSVBTX1JfS0VZX1RPT19T SE9SVCk7CistCQkgICAgcmV0dXJuIDA7CistCQkgICAgfQorKwkJcmV0dXJuIEZJUFNfcnNhX2J1 aWx0aW5fa2V5Z2VuKHJzYSwgYml0cywgZV92YWx1ZSwgY2IpOworIAkJfQorICNlbmRpZgogIAot ICNkZWZpbmUgT1BFTlNTTF9SU0FfRklQU19NSU5fTU9EVUxVU19CSVRTIDEwMjQKK0BAIC0zMDEs MTcgKzUwOCw2IEBAIHN0YXRpYyBpbnQgcnNhX2J1aWx0aW5fa2V5Z2VuKFJTQSAqcnNhLAorIAkJ cCA9IHJzYS0+cDsKKyAJaWYgKCFCTl9tb2RfaW52ZXJzZShyc2EtPmlxbXAscnNhLT5xLHAsY3R4 KSkgZ290byBlcnI7CiAgCi0rI2RlZmluZSBPUEVOU1NMX1JTQV9GSVBTX01JTl9NT0RVTFVTX0JJ VFNfR0VOIDIwNDgKLSsKLSAjaWZuZGVmIE9QRU5TU0xfUlNBX1NNQUxMX01PRFVMVVNfQklUUwot ICMgZGVmaW5lIE9QRU5TU0xfUlNBX1NNQUxMX01PRFVMVVNfQklUUwkzMDcyCi0gI2VuZGlmCist I2lmZGVmIE9QRU5TU0xfRklQUworLQlpZiAoRklQU19tb2R1bGVfbW9kZSgpKQorLQkJeworLQkJ aWYgKGZpcHNfcnNhX3BhaXJ3aXNlX2ZhaWwpCistCQkJQk5fYWRkX3dvcmQocnNhLT5uLCAxKTsK Ky0KKy0JCWlmKCFmaXBzX2NoZWNrX3JzYShyc2EpKQorLQkJICAgIGdvdG8gZXJyOworLQkJfQor LSNlbmRpZgorLQorIAlvaz0xOworIGVycjoKKyAJaWYgKG9rID09IC0xKQogZGlmZiAtdXAgb3Bl bnNzbC0xLjAuMWUvc3NsL3QxX2VuYy5jLmZpcHMtcmVxcyBvcGVuc3NsLTEuMC4xZS9zc2wvdDFf ZW5jLmMKIC0tLSBvcGVuc3NsLTEuMC4xZS9zc2wvdDFfZW5jLmMuZmlwcy1yZXFzCTIwMTMtMDIt MTEgMTY6MjY6MDQuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvc3NsL3QxX2Vu Yy5jCTIwMTMtMTEtMjYgMTQ6MzY6MzUuNjAzNzA5NzMzICswMTAwCisrKysgb3BlbnNzbC0xLjAu MWUvc3NsL3QxX2VuYy5jCTIwMTMtMTItMTggMTI6MTc6MDkuODAxNjM3NzUxICswMTAwCiBAQCAt MjkxLDYgKzI5MSwyNyBAQCBzdGF0aWMgaW50IHRsczFfUFJGKGxvbmcgZGlnZXN0X21hc2ssCiAg ZXJyOgogIAlyZXR1cm4gcmV0Owo=