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: Michael Catanzaro To: git-commits@fedoraproject.org Subject: [rpms/glib2] cve-2026-58016-f44: Use GnuTLS to implement GHmac (thanks to Colin Walters) Date: Tue, 11 Aug 2026 10:37:10 GMT Message-ID: <178644463067.1.7245779460193146073.rpms-glib2-f52f413589ce@fedoraproject.org> List-ID: X-Git-Repo: rpms/glib2 X-Git-Branch: cve-2026-58016-f44 X-Git-Rev: f52f413589ce4a1e698957767d490e46e95f75a1 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2xpYjIKQnJhbmNo IDogY3ZlLTIwMjYtNTgwMTYtZjQ0CkNvbW1pdCA6IGY1MmY0MTM1ODljZTRhMWU2OTg5NTc3Njdk NDkwZTQ2ZTk1Zjc1YTEKQXV0aG9yIDogTWljaGFlbCBDYXRhbnphcm8gPG1jYXRhbnphcm9AZ25v bWUub3JnPgpEYXRlICAgOiAyMDIwLTExLTEwVDE2OjUyOjE0LTA2OjAwClN0YXRzICA6ICs2Nzgv LTEgaW4gMiBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3Jw bXMvZ2xpYjIvYy9mNTJmNDEzNTg5Y2U0YTFlNjk4OTU3NzY3ZDQ5MGU0NmU5NWY3NWExP2JyYW5j aD1jdmUtMjAyNi01ODAxNi1mNDQKCkxvZzoKVXNlIEdudVRMUyB0byBpbXBsZW1lbnQgR0htYWMg KHRoYW5rcyB0byBDb2xpbiBXYWx0ZXJzKQoKLS0tCmRpZmYgLS1naXQgYS9nbGliMi5zcGVjIGIv Z2xpYjIuc3BlYwppbmRleCBmMmY5N2Q3Li40ZTVmNTFlIDEwMDY0NAotLS0gYS9nbGliMi5zcGVj CisrKyBiL2dsaWIyLnNwZWMKQEAgLTEsNiArMSw2IEBACiBOYW1lOiBnbGliMgogVmVyc2lvbjog Mi42Ny4wCi1SZWxlYXNlOiAyJXs/ZGlzdH0KK1JlbGVhc2U6IDMlez9kaXN0fQogU3VtbWFyeTog QSBsaWJyYXJ5IG9mIGhhbmR5IHV0aWxpdHkgZnVuY3Rpb25zCiAKIExpY2Vuc2U6IExHUEx2MisK QEAgLTEwLDYgKzEwLDEyIEBAIFNvdXJjZTA6IGh0dHA6Ly9kb3dubG9hZC5nbm9tZS5vcmcvc291 cmNlcy9nbGliLzIuNjcvZ2xpYi0le3ZlcnNpb259LnRhci54egogIyBodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvZ2xpYi8tL21lcmdlX3JlcXVlc3RzLzE3MjgKIFBhdGNoMDogMTcyOC5w YXRjaAogCisjIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbGliLy0vbWVyZ2VfcmVx dWVzdHMvOTAzCitQYXRjaDE6IGdudXRscy1obWFjLnBhdGNoCisKKyMgRm9yIGdudXRscy1obWFj LnBhdGNoCitCdWlsZFJlcXVpcmVzOiBwa2djb25maWcoZ251dGxzKQorCiBCdWlsZFJlcXVpcmVz OiBjaHJwYXRoCiBCdWlsZFJlcXVpcmVzOiBnY2MKIEJ1aWxkUmVxdWlyZXM6IGdjYy1jKysKQEAg LTIxNyw2ICsyMjMsOSBAQCBnbGliLWNvbXBpbGUtc2NoZW1hcyAle19kYXRhZGlyfS9nbGliLTIu MC9zY2hlbWFzICY+IC9kZXYvbnVsbCB8fCA6CiAle19kYXRhZGlyfS9pbnN0YWxsZWQtdGVzdHMK IAogJWNoYW5nZWxvZworKiBUdWUgTm92IDEwIDIwMjAgTWljaGFlbCBDYXRhbnphcm8gPG1jYXRh bnphcm9AcmVkaGF0LmNvbT4gLSAyLjY3LjAtMworLSBVc2UgR251VExTIHRvIGltcGxlbWVudCBH SG1hYyAodGhhbmtzIHRvIENvbGluIFdhbHRlcnMpCisKICogV2VkIE5vdiAwNCAyMDIwIE1pY2hh ZWwgQ2F0YW56YXJvIDxtY2F0YW56YXJvQHJlZGhhdC5jb20+IC0gMi42Ny4wLTIKIC0gQmFja3Bv cnQgZml4IGZvciBHU29ja2V0Q2xpZW50IGNyYXNoCiAKCmRpZmYgLS1naXQgYS9nbnV0bHMtaG1h Yy5wYXRjaCBiL2dudXRscy1obWFjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjg4NjA2MzIKLS0tIC9kZXYvbnVsbAorKysgYi9nbnV0bHMtaG1hYy5wYXRjaApAQCAt MCwwICsxLDY2OCBAQAorRnJvbSBhZmI1NzM1NTA2ZTJlZDFjNjM4YThjOTE2YWEzNzQ4YmYwNjE1 ZjMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQ29saW4gV2FsdGVycyA8d2FsdGVy c0B2ZXJidW0ub3JnPgorRGF0ZTogRnJpLCA3IEp1biAyMDE5IDE4OjQ0OjQzICswMDAwCitTdWJq ZWN0OiBbUEFUQ0ggMS8yXSBnaG1hYzogU3BsaXQgb2ZmIHdyYXBwZXIgZnVuY3Rpb25zIGludG8g Z2htYWMtdXRpbHMuYworCitQcmVwIGZvciBhZGRpbmcgYSBHbnVUTFMgSE1BQyBpbXBsZW1lbnRh dGlvbjsgdGhlc2UgYXJlIGp1c3QKK3V0aWxpdHkgZnVuY3Rpb25zIHRoYXQgY2FsbCB0aGUgImNv cmUiIEFQSS4KKy0tLQorIGdsaWIvZ2htYWMtdXRpbHMuYyB8IDE0NSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyBnbGliL2dobWFjLmMgICAgICAgfCAxMTIg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGdsaWIvbWVzb24uYnVpbGQgICB8 ICAgMSArCisgMyBmaWxlcyBjaGFuZ2VkLCAxNDYgaW5zZXJ0aW9ucygrKSwgMTEyIGRlbGV0aW9u cygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBnbGliL2dobWFjLXV0aWxzLmMKKworZGlmZiAtLWdp dCBhL2dsaWIvZ2htYWMtdXRpbHMuYyBiL2dsaWIvZ2htYWMtdXRpbHMuYworbmV3IGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMC4uYTE3MzU5ZmYxCistLS0gL2Rldi9udWxsCisrKysg Yi9nbGliL2dobWFjLXV0aWxzLmMKK0BAIC0wLDAgKzEsMTQ1IEBACisrLyogZ2htYWMuaCAtIGRh dGEgaGFzaGluZyBmdW5jdGlvbnMKKysgKgorKyAqIENvcHlyaWdodCAoQykgMjAxMSAgQ29sbGFi b3JhIEx0ZC4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTkgIFJlZCBIYXQsIEluYy4KKysgKgorKyAq IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKKysgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisrICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrICoKKysgKiBUaGlzIGxpYnJh cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysg KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKysgKgorKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAqIGFsb25nIHdp dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCisrICovCisrCisrI2luY2x1ZGUgImNvbmZpZy5oIgorKworKyNpbmNsdWRlIDxzdHJpbmcu aD4KKysKKysjaW5jbHVkZSAiZ2htYWMuaCIKKysKKysjaW5jbHVkZSAiZ2xpYi9nYWxsb2NhLmgi CisrI2luY2x1ZGUgImdhdG9taWMuaCIKKysjaW5jbHVkZSAiZ3NsaWNlLmgiCisrI2luY2x1ZGUg ImdtZW0uaCIKKysjaW5jbHVkZSAiZ3N0cmZ1bmNzLmgiCisrI2luY2x1ZGUgImd0ZXN0dXRpbHMu aCIKKysjaW5jbHVkZSAiZ3R5cGVzLmgiCisrI2luY2x1ZGUgImdsaWJpbnRsLmgiCisrCisrLyoq CisrICogZ19jb21wdXRlX2htYWNfZm9yX2RhdGE6CisrICogQGRpZ2VzdF90eXBlOiBhICNHQ2hl Y2tzdW1UeXBlIHRvIHVzZSBmb3IgdGhlIEhNQUMKKysgKiBAa2V5OiAoYXJyYXkgbGVuZ3RoPWtl eV9sZW4pOiB0aGUga2V5IHRvIHVzZSBpbiB0aGUgSE1BQworKyAqIEBrZXlfbGVuOiB0aGUgbGVu Z3RoIG9mIHRoZSBrZXkKKysgKiBAZGF0YTogKGFycmF5IGxlbmd0aD1sZW5ndGgpOiBiaW5hcnkg YmxvYiB0byBjb21wdXRlIHRoZSBITUFDIG9mCisrICogQGxlbmd0aDogbGVuZ3RoIG9mIEBkYXRh CisrICoKKysgKiBDb21wdXRlcyB0aGUgSE1BQyBmb3IgYSBiaW5hcnkgQGRhdGEgb2YgQGxlbmd0 aC4gVGhpcyBpcyBhCisrICogY29udmVuaWVuY2Ugd3JhcHBlciBmb3IgZ19obWFjX25ldygpLCBn X2htYWNfZ2V0X3N0cmluZygpCisrICogYW5kIGdfaG1hY191bnJlZigpLgorKyAqCisrICogVGhl IGhleGFkZWNpbWFsIHN0cmluZyByZXR1cm5lZCB3aWxsIGJlIGluIGxvd2VyIGNhc2UuCisrICoK KysgKiBSZXR1cm5zOiB0aGUgSE1BQyBvZiB0aGUgYmluYXJ5IGRhdGEgYXMgYSBzdHJpbmcgaW4g aGV4YWRlY2ltYWwuCisrICogICBUaGUgcmV0dXJuZWQgc3RyaW5nIHNob3VsZCBiZSBmcmVlZCB3 aXRoIGdfZnJlZSgpIHdoZW4gZG9uZSB1c2luZyBpdC4KKysgKgorKyAqIFNpbmNlOiAyLjMwCisr ICovCisrZ2NoYXIgKgorK2dfY29tcHV0ZV9obWFjX2Zvcl9kYXRhIChHQ2hlY2tzdW1UeXBlICBk aWdlc3RfdHlwZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3VjaGFyICAqa2V5 LAorKyAgICAgICAgICAgICAgICAgICAgICAgICBnc2l6ZSAgICAgICAgICBrZXlfbGVuLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBndWNoYXIgICpkYXRhLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICBnc2l6ZSAgICAgICAgICBsZW5ndGgpCisreworKyAgR0htYWMgKmhtYWM7 CisrICBnY2hhciAqcmV0dmFsOworKworKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGxlbmd0aCA9 PSAwIHx8IGRhdGEgIT0gTlVMTCwgTlVMTCk7CisrCisrICBobWFjID0gZ19obWFjX25ldyAoZGln ZXN0X3R5cGUsIGtleSwga2V5X2xlbik7CisrICBpZiAoIWhtYWMpCisrICAgIHJldHVybiBOVUxM OworKworKyAgZ19obWFjX3VwZGF0ZSAoaG1hYywgZGF0YSwgbGVuZ3RoKTsKKysgIHJldHZhbCA9 IGdfc3RyZHVwIChnX2htYWNfZ2V0X3N0cmluZyAoaG1hYykpOworKyAgZ19obWFjX3VucmVmICho bWFjKTsKKysKKysgIHJldHVybiByZXR2YWw7CisrfQorKworKy8qKgorKyAqIGdfY29tcHV0ZV9o bWFjX2Zvcl9ieXRlczoKKysgKiBAZGlnZXN0X3R5cGU6IGEgI0dDaGVja3N1bVR5cGUgdG8gdXNl IGZvciB0aGUgSE1BQworKyAqIEBrZXk6IHRoZSBrZXkgdG8gdXNlIGluIHRoZSBITUFDCisrICog QGRhdGE6IGJpbmFyeSBibG9iIHRvIGNvbXB1dGUgdGhlIEhNQUMgb2YKKysgKgorKyAqIENvbXB1 dGVzIHRoZSBITUFDIGZvciBhIGJpbmFyeSBAZGF0YS4gVGhpcyBpcyBhCisrICogY29udmVuaWVu Y2Ugd3JhcHBlciBmb3IgZ19obWFjX25ldygpLCBnX2htYWNfZ2V0X3N0cmluZygpCisrICogYW5k IGdfaG1hY191bnJlZigpLgorKyAqCisrICogVGhlIGhleGFkZWNpbWFsIHN0cmluZyByZXR1cm5l ZCB3aWxsIGJlIGluIGxvd2VyIGNhc2UuCisrICoKKysgKiBSZXR1cm5zOiB0aGUgSE1BQyBvZiB0 aGUgYmluYXJ5IGRhdGEgYXMgYSBzdHJpbmcgaW4gaGV4YWRlY2ltYWwuCisrICogICBUaGUgcmV0 dXJuZWQgc3RyaW5nIHNob3VsZCBiZSBmcmVlZCB3aXRoIGdfZnJlZSgpIHdoZW4gZG9uZSB1c2lu ZyBpdC4KKysgKgorKyAqIFNpbmNlOiAyLjUwCisrICovCisrZ2NoYXIgKgorK2dfY29tcHV0ZV9o bWFjX2Zvcl9ieXRlcyAoR0NoZWNrc3VtVHlwZSAgZGlnZXN0X3R5cGUsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICBHQnl0ZXMgICAgICAgICprZXksCisrICAgICAgICAgICAgICAgICAgICAg ICAgICBHQnl0ZXMgICAgICAgICpkYXRhKQorK3sKKysgIGdjb25zdHBvaW50ZXIgYnl0ZV9kYXRh OworKyAgZ3NpemUgbGVuZ3RoOworKyAgZ2NvbnN0cG9pbnRlciBrZXlfZGF0YTsKKysgIGdzaXpl IGtleV9sZW47CisrCisrICBnX3JldHVybl92YWxfaWZfZmFpbCAoZGF0YSAhPSBOVUxMLCBOVUxM KTsKKysgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChrZXkgIT0gTlVMTCwgTlVMTCk7CisrCisrICBi eXRlX2RhdGEgPSBnX2J5dGVzX2dldF9kYXRhIChkYXRhLCAmbGVuZ3RoKTsKKysgIGtleV9kYXRh ID0gZ19ieXRlc19nZXRfZGF0YSAoa2V5LCAma2V5X2xlbik7CisrICByZXR1cm4gZ19jb21wdXRl X2htYWNfZm9yX2RhdGEgKGRpZ2VzdF90eXBlLCBrZXlfZGF0YSwga2V5X2xlbiwgYnl0ZV9kYXRh LCBsZW5ndGgpOworK30KKysKKysKKysvKioKKysgKiBnX2NvbXB1dGVfaG1hY19mb3Jfc3RyaW5n OgorKyAqIEBkaWdlc3RfdHlwZTogYSAjR0NoZWNrc3VtVHlwZSB0byB1c2UgZm9yIHRoZSBITUFD CisrICogQGtleTogKGFycmF5IGxlbmd0aD1rZXlfbGVuKTogdGhlIGtleSB0byB1c2UgaW4gdGhl IEhNQUMKKysgKiBAa2V5X2xlbjogdGhlIGxlbmd0aCBvZiB0aGUga2V5CisrICogQHN0cjogdGhl IHN0cmluZyB0byBjb21wdXRlIHRoZSBITUFDIGZvcgorKyAqIEBsZW5ndGg6IHRoZSBsZW5ndGgg b2YgdGhlIHN0cmluZywgb3IgLTEgaWYgdGhlIHN0cmluZyBpcyBudWwtdGVybWluYXRlZAorKyAq CisrICogQ29tcHV0ZXMgdGhlIEhNQUMgZm9yIGEgc3RyaW5nLgorKyAqCisrICogVGhlIGhleGFk ZWNpbWFsIHN0cmluZyByZXR1cm5lZCB3aWxsIGJlIGluIGxvd2VyIGNhc2UuCisrICoKKysgKiBS ZXR1cm5zOiB0aGUgSE1BQyBhcyBhIGhleGFkZWNpbWFsIHN0cmluZy4KKysgKiAgICAgVGhlIHJl dHVybmVkIHN0cmluZyBzaG91bGQgYmUgZnJlZWQgd2l0aCBnX2ZyZWUoKQorKyAqICAgICB3aGVu IGRvbmUgdXNpbmcgaXQuCisrICoKKysgKiBTaW5jZTogMi4zMAorKyAqLworK2djaGFyICoKKytn X2NvbXB1dGVfaG1hY19mb3Jfc3RyaW5nIChHQ2hlY2tzdW1UeXBlICBkaWdlc3RfdHlwZSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBndWNoYXIgICprZXksCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ3NpemUgICAgICAgICAga2V5X2xlbiwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICpzdHIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3NzaXplICAgICAgICAgbGVuZ3RoKQorK3sKKysgIGdfcmV0dXJuX3ZhbF9pZl9mYWls IChsZW5ndGggPT0gMCB8fCBzdHIgIT0gTlVMTCwgTlVMTCk7CisrCisrICBpZiAobGVuZ3RoIDwg MCkKKysgICAgbGVuZ3RoID0gc3RybGVuIChzdHIpOworKworKyAgcmV0dXJuIGdfY29tcHV0ZV9o bWFjX2Zvcl9kYXRhIChkaWdlc3RfdHlwZSwga2V5LCBrZXlfbGVuLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoY29uc3QgZ3VjaGFyICopIHN0ciwgbGVuZ3RoKTsKKyt9Citk aWZmIC0tZ2l0IGEvZ2xpYi9naG1hYy5jIGIvZ2xpYi9naG1hYy5jCitpbmRleCA0OWZkMjcyZjAu LjRmMTgxZjIxZiAxMDA2NDQKKy0tLSBhL2dsaWIvZ2htYWMuYworKysrIGIvZ2xpYi9naG1hYy5j CitAQCAtMzI5LDExNSArMzI5LDMgQEAgZ19obWFjX2dldF9kaWdlc3QgKEdIbWFjICAqaG1hYywK KyAgIGdfY2hlY2tzdW1fdXBkYXRlIChobWFjLT5kaWdlc3RvLCBidWZmZXIsIGxlbik7CisgICBn X2NoZWNrc3VtX2dldF9kaWdlc3QgKGhtYWMtPmRpZ2VzdG8sIGJ1ZmZlciwgZGlnZXN0X2xlbik7 CisgfQorLQorLS8qKgorLSAqIGdfY29tcHV0ZV9obWFjX2Zvcl9kYXRhOgorLSAqIEBkaWdlc3Rf dHlwZTogYSAjR0NoZWNrc3VtVHlwZSB0byB1c2UgZm9yIHRoZSBITUFDCistICogQGtleTogKGFy cmF5IGxlbmd0aD1rZXlfbGVuKTogdGhlIGtleSB0byB1c2UgaW4gdGhlIEhNQUMKKy0gKiBAa2V5 X2xlbjogdGhlIGxlbmd0aCBvZiB0aGUga2V5CistICogQGRhdGE6IChhcnJheSBsZW5ndGg9bGVu Z3RoKTogYmluYXJ5IGJsb2IgdG8gY29tcHV0ZSB0aGUgSE1BQyBvZgorLSAqIEBsZW5ndGg6IGxl bmd0aCBvZiBAZGF0YQorLSAqCistICogQ29tcHV0ZXMgdGhlIEhNQUMgZm9yIGEgYmluYXJ5IEBk YXRhIG9mIEBsZW5ndGguIFRoaXMgaXMgYQorLSAqIGNvbnZlbmllbmNlIHdyYXBwZXIgZm9yIGdf aG1hY19uZXcoKSwgZ19obWFjX2dldF9zdHJpbmcoKQorLSAqIGFuZCBnX2htYWNfdW5yZWYoKS4K Ky0gKgorLSAqIFRoZSBoZXhhZGVjaW1hbCBzdHJpbmcgcmV0dXJuZWQgd2lsbCBiZSBpbiBsb3dl ciBjYXNlLgorLSAqCistICogUmV0dXJuczogdGhlIEhNQUMgb2YgdGhlIGJpbmFyeSBkYXRhIGFz IGEgc3RyaW5nIGluIGhleGFkZWNpbWFsLgorLSAqICAgVGhlIHJldHVybmVkIHN0cmluZyBzaG91 bGQgYmUgZnJlZWQgd2l0aCBnX2ZyZWUoKSB3aGVuIGRvbmUgdXNpbmcgaXQuCistICoKKy0gKiBT aW5jZTogMi4zMAorLSAqLworLWdjaGFyICoKKy1nX2NvbXB1dGVfaG1hY19mb3JfZGF0YSAoR0No ZWNrc3VtVHlwZSAgZGlnZXN0X3R5cGUsCistICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGd1Y2hhciAgKmtleSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgZ3NpemUgICAgICAgICAg a2V5X2xlbiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3VjaGFyICAqZGF0YSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgZ3NpemUgICAgICAgICAgbGVuZ3RoKQorLXsKKy0g IEdIbWFjICpobWFjOworLSAgZ2NoYXIgKnJldHZhbDsKKy0KKy0gIGdfcmV0dXJuX3ZhbF9pZl9m YWlsIChsZW5ndGggPT0gMCB8fCBkYXRhICE9IE5VTEwsIE5VTEwpOworLQorLSAgaG1hYyA9IGdf aG1hY19uZXcgKGRpZ2VzdF90eXBlLCBrZXksIGtleV9sZW4pOworLSAgaWYgKCFobWFjKQorLSAg ICByZXR1cm4gTlVMTDsKKy0KKy0gIGdfaG1hY191cGRhdGUgKGhtYWMsIGRhdGEsIGxlbmd0aCk7 CistICByZXR2YWwgPSBnX3N0cmR1cCAoZ19obWFjX2dldF9zdHJpbmcgKGhtYWMpKTsKKy0gIGdf aG1hY191bnJlZiAoaG1hYyk7CistCistICByZXR1cm4gcmV0dmFsOworLX0KKy0KKy0vKioKKy0g KiBnX2NvbXB1dGVfaG1hY19mb3JfYnl0ZXM6CistICogQGRpZ2VzdF90eXBlOiBhICNHQ2hlY2tz dW1UeXBlIHRvIHVzZSBmb3IgdGhlIEhNQUMKKy0gKiBAa2V5OiB0aGUga2V5IHRvIHVzZSBpbiB0 aGUgSE1BQworLSAqIEBkYXRhOiBiaW5hcnkgYmxvYiB0byBjb21wdXRlIHRoZSBITUFDIG9mCist ICoKKy0gKiBDb21wdXRlcyB0aGUgSE1BQyBmb3IgYSBiaW5hcnkgQGRhdGEuIFRoaXMgaXMgYQor LSAqIGNvbnZlbmllbmNlIHdyYXBwZXIgZm9yIGdfaG1hY19uZXcoKSwgZ19obWFjX2dldF9zdHJp bmcoKQorLSAqIGFuZCBnX2htYWNfdW5yZWYoKS4KKy0gKgorLSAqIFRoZSBoZXhhZGVjaW1hbCBz dHJpbmcgcmV0dXJuZWQgd2lsbCBiZSBpbiBsb3dlciBjYXNlLgorLSAqCistICogUmV0dXJuczog dGhlIEhNQUMgb2YgdGhlIGJpbmFyeSBkYXRhIGFzIGEgc3RyaW5nIGluIGhleGFkZWNpbWFsLgor LSAqICAgVGhlIHJldHVybmVkIHN0cmluZyBzaG91bGQgYmUgZnJlZWQgd2l0aCBnX2ZyZWUoKSB3 aGVuIGRvbmUgdXNpbmcgaXQuCistICoKKy0gKiBTaW5jZTogMi41MAorLSAqLworLWdjaGFyICoK Ky1nX2NvbXB1dGVfaG1hY19mb3JfYnl0ZXMgKEdDaGVja3N1bVR5cGUgIGRpZ2VzdF90eXBlLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgR0J5dGVzICAgICAgICAqa2V5LAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgR0J5dGVzICAgICAgICAqZGF0YSkKKy17CistICBnY29uc3Rwb2lu dGVyIGJ5dGVfZGF0YTsKKy0gIGdzaXplIGxlbmd0aDsKKy0gIGdjb25zdHBvaW50ZXIga2V5X2Rh dGE7CistICBnc2l6ZSBrZXlfbGVuOworLQorLSAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGRhdGEg IT0gTlVMTCwgTlVMTCk7CistICBnX3JldHVybl92YWxfaWZfZmFpbCAoa2V5ICE9IE5VTEwsIE5V TEwpOworLQorLSAgYnl0ZV9kYXRhID0gZ19ieXRlc19nZXRfZGF0YSAoZGF0YSwgJmxlbmd0aCk7 CistICBrZXlfZGF0YSA9IGdfYnl0ZXNfZ2V0X2RhdGEgKGtleSwgJmtleV9sZW4pOworLSAgcmV0 dXJuIGdfY29tcHV0ZV9obWFjX2Zvcl9kYXRhIChkaWdlc3RfdHlwZSwga2V5X2RhdGEsIGtleV9s ZW4sIGJ5dGVfZGF0YSwgbGVuZ3RoKTsKKy19CistCistCistLyoqCistICogZ19jb21wdXRlX2ht YWNfZm9yX3N0cmluZzoKKy0gKiBAZGlnZXN0X3R5cGU6IGEgI0dDaGVja3N1bVR5cGUgdG8gdXNl IGZvciB0aGUgSE1BQworLSAqIEBrZXk6IChhcnJheSBsZW5ndGg9a2V5X2xlbik6IHRoZSBrZXkg dG8gdXNlIGluIHRoZSBITUFDCistICogQGtleV9sZW46IHRoZSBsZW5ndGggb2YgdGhlIGtleQor LSAqIEBzdHI6IHRoZSBzdHJpbmcgdG8gY29tcHV0ZSB0aGUgSE1BQyBmb3IKKy0gKiBAbGVuZ3Ro OiB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcsIG9yIC0xIGlmIHRoZSBzdHJpbmcgaXMgbnVsLXRl cm1pbmF0ZWQKKy0gKgorLSAqIENvbXB1dGVzIHRoZSBITUFDIGZvciBhIHN0cmluZy4KKy0gKgor LSAqIFRoZSBoZXhhZGVjaW1hbCBzdHJpbmcgcmV0dXJuZWQgd2lsbCBiZSBpbiBsb3dlciBjYXNl LgorLSAqCistICogUmV0dXJuczogdGhlIEhNQUMgYXMgYSBoZXhhZGVjaW1hbCBzdHJpbmcuCist ICogICAgIFRoZSByZXR1cm5lZCBzdHJpbmcgc2hvdWxkIGJlIGZyZWVkIHdpdGggZ19mcmVlKCkK Ky0gKiAgICAgd2hlbiBkb25lIHVzaW5nIGl0LgorLSAqCistICogU2luY2U6IDIuMzAKKy0gKi8K Ky1nY2hhciAqCistZ19jb21wdXRlX2htYWNfZm9yX3N0cmluZyAoR0NoZWNrc3VtVHlwZSAgZGln ZXN0X3R5cGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3VjaGFyICAqa2V5 LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGdzaXplICAgICAgICAgIGtleV9sZW4sCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAqc3RyLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdzc2l6ZSAgICAgICAgIGxlbmd0aCkKKy17CistICBnX3JldHVy bl92YWxfaWZfZmFpbCAobGVuZ3RoID09IDAgfHwgc3RyICE9IE5VTEwsIE5VTEwpOworLQorLSAg aWYgKGxlbmd0aCA8IDApCistICAgIGxlbmd0aCA9IHN0cmxlbiAoc3RyKTsKKy0KKy0gIHJldHVy biBnX2NvbXB1dGVfaG1hY19mb3JfZGF0YSAoZGlnZXN0X3R5cGUsIGtleSwga2V5X2xlbiwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGd1Y2hhciAqKSBzdHIsIGxl bmd0aCk7CistfQorZGlmZiAtLWdpdCBhL2dsaWIvbWVzb24uYnVpbGQgYi9nbGliL21lc29uLmJ1 aWxkCitpbmRleCBhYWY0MGEyMTguLmIzYmYwNjdjNyAxMDA2NDQKKy0tLSBhL2dsaWIvbWVzb24u YnVpbGQKKysrKyBiL2dsaWIvbWVzb24uYnVpbGQKK0BAIC0yNTMsNiArMjUzLDcgQEAgZ2xpYl9z b3VyY2VzID0gZmlsZXMoCisgICAnZ2dldHRleHQuYycsCisgICAnZ2hhc2guYycsCisgICAnZ2ht YWMuYycsCisrICAnZ2htYWMtdXRpbHMuYycsCisgICAnZ2hvb2suYycsCisgICAnZ2hvc3R1dGls cy5jJywKKyAgICdnaW9jaGFubmVsLmMnLAorLS0gCisyLjI4LjAKKworCitGcm9tIDcwM2U2M2Y5 ZDhiM2VhNGYyNmY0MWYwZDIyODdiMzAxMDI1YTczY2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBDb2xpbiBXYWx0ZXJzIDx3YWx0ZXJzQHZlcmJ1bS5vcmc+CitEYXRlOiBGcmksIDcg SnVuIDIwMTkgMTk6MzY6NTQgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzJdIEFkZCBhIGdudXRs cyBiYWNrZW5kIGZvciBHSG1hYworCitGb3IgUkhFTCB3ZSB3YW50IGFwcHMgdG8gdXNlIEZJUFMt Y2VydGlmaWVkIGNyeXB0byBsaWJyYXJpZXMsCithbmQgSE1BQyBhcHBhcmVudGx5IGNvdW50cyBh cyAia2V5ZWQiIGFuZCBoZW5jZSBuZWVkcyB0bworYmUgdmFsaWRhdGVkLgorCitCdWc6IGh0dHBz Oi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTYzMDI2MAorUmVwbGFjZXM6 IGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbGliL21lcmdlX3JlcXVlc3RzLzg5Nwor CitUaGlzIGlzIGEgYnVpbGQtdGltZSBvcHRpb24gdGhhdCBiYWNrcyB0aGUgR0htYWMgQVBJIHdp dGggR251VExTLgorTW9zdCBkaXN0cmlidXRvcnMgc2hpcCBnbGliLW5ldHdvcmtpbmcgYnVpbHQg d2l0aCBHbnVUTFMsIGFuZAorbW9zdCBhcHBzIHVzZSBnbGliLW5ldHdvcmtpbmcsIHNvIHRoaXMg aXNuJ3QgYSBuZXQtbmV3IGxpYnJhcnkKK2luIG1vc3QgY2FzZXMuCisKK21jYXRhbnphcm8gbm90 ZTogSSd2ZSB1cGRhdGVkIENvbGluJ3Mgb3JpZ2luYWwgcGF0Y2ggdG8gaW1wbGVtZW50CitnX2ht YWNfY29weSgpIHVzaW5nIGdudXRsc19obWFjX2NvcHkoKSwgd2hpY2ggZGlkbid0IGV4aXN0IHdo ZW4gQ29saW4KK2RldmVsb3BlZCB0aGlzIHBhdGNoLiBJIGFsc28gZGVjaWRlZCBpdCBzaG91bGQg YmUgZW5hYmxlZCBieSBkZWZhdWx0LgorLS0tCisgZ2xpYi9nY2hlY2tzdW0uYyAgICAgICAgfCAg IDkgKystCisgZ2xpYi9nY2hlY2tzdW1wcml2YXRlLmggfCAgMzIgKysrKysrKysKKyBnbGliL2do bWFjLWdudXRscy5jICAgICB8IDE2NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCisgZ2xpYi9naG1hYy5jICAgICAgICAgICAgfCAgIDMgKworIGdsaWIvbWVzb24uYnVp bGQgICAgICAgIHwgIDEwICsrLQorIG1lc29uLmJ1aWxkICAgICAgICAgICAgIHwgICA3ICsrCisg bWVzb25fb3B0aW9ucy50eHQgICAgICAgfCAgIDUgKysKKyA3IGZpbGVzIGNoYW5nZWQsIDIyNCBp bnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBnbGliL2dj aGVja3N1bXByaXZhdGUuaAorIGNyZWF0ZSBtb2RlIDEwMDY0NCBnbGliL2dobWFjLWdudXRscy5j CisKK2RpZmYgLS1naXQgYS9nbGliL2djaGVja3N1bS5jIGIvZ2xpYi9nY2hlY2tzdW0uYworaW5k ZXggZjhhM2Y5YWI4Li5iMzkxYTYyNjQgMTAwNjQ0CistLS0gYS9nbGliL2djaGVja3N1bS5jCisr KysgYi9nbGliL2djaGVja3N1bS5jCitAQCAtMjAsNyArMjAsNyBAQAorIAorICNpbmNsdWRlIDxz dHJpbmcuaD4KKyAKKy0jaW5jbHVkZSAiZ2NoZWNrc3VtLmgiCisrI2luY2x1ZGUgImdjaGVja3N1 bXByaXZhdGUuaCIKKyAKKyAjaW5jbHVkZSAiZ3NsaWNlLmgiCisgI2luY2x1ZGUgImdtZW0uaCIK K0BAIC0xNzMsOSArMTczLDkgQEAgc2hhX2J5dGVfcmV2ZXJzZSAoZ3VpbnQzMiAqYnVmZmVyLAor IH0KKyAjZW5kaWYgLyogR19CWVRFX09SREVSID09IEdfQklHX0VORElBTiAqLworIAorLXN0YXRp YyBnY2hhciAqCistZGlnZXN0X3RvX3N0cmluZyAoZ3VpbnQ4ICpkaWdlc3QsCistICAgICAgICAg ICAgICAgICAgZ3NpemUgICBkaWdlc3RfbGVuKQorK2djaGFyICoKKytnY2hlY2tzdW1fZGlnZXN0 X3RvX3N0cmluZyAoZ3VpbnQ4ICpkaWdlc3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdzaXplICAgZGlnZXN0X2xlbikKKyB7CisgICBnc2l6ZSBpLCBsZW4gPSBkaWdlc3RfbGVuICog MjsKKyAgIGdjaGFyICpyZXR2YWw7CitAQCAtMTk0LDYgKzE5NCw3IEBAIGRpZ2VzdF90b19zdHJp bmcgKGd1aW50OCAqZGlnZXN0LAorIAorICAgcmV0dXJuIHJldHZhbDsKKyB9CisrI2RlZmluZSBk aWdlc3RfdG9fc3RyaW5nIGdjaGVja3N1bV9kaWdlc3RfdG9fc3RyaW5nCisgCisgLyoKKyAgKiBN RDUgQ2hlY2tzdW0KK2RpZmYgLS1naXQgYS9nbGliL2djaGVja3N1bXByaXZhdGUuaCBiL2dsaWIv Z2NoZWNrc3VtcHJpdmF0ZS5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAw Li44NmM3YTNiNjEKKy0tLSAvZGV2L251bGwKKysrKyBiL2dsaWIvZ2NoZWNrc3VtcHJpdmF0ZS5o CitAQCAtMCwwICsxLDMyIEBACisrLyogZ3N0ZGlvcHJpdmF0ZS5oIC0gUHJpdmF0ZSBHTGliIHN0 ZGlvIGZ1bmN0aW9ucworKyAqCisrICogQ29weXJpZ2h0IDIwMTcg0KDRg9GB0LvQsNC9INCY0LbQ sdGD0LvQsNGC0L7QsgorKyAqCisrICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgKiBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgKiB2ZXJzaW9u IDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKysgKgorKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgKiBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyAqCisrICogWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisrICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysgKi8KKysKKysjaWZuZGVmIF9fR19DSEVDS1NV TVBSSVZBVEVfSF9fCisrI2RlZmluZSBfX0dfQ0hFQ0tTVU1QUklWQVRFX0hfXworKworKyNpbmNs dWRlICJnY2hlY2tzdW0uaCIKKysKKytHX0JFR0lOX0RFQ0xTCisrCisrZ2NoYXIgKgorK2djaGVj a3N1bV9kaWdlc3RfdG9fc3RyaW5nIChndWludDggKmRpZ2VzdCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ3NpemUgICBkaWdlc3RfbGVuKTsKKysKKytHX0VORF9ERUNMUworKworKyNl bmRpZgorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitkaWZmIC0tZ2l0IGEvZ2xpYi9naG1h Yy1nbnV0bHMuYyBiL2dsaWIvZ2htYWMtZ251dGxzLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0Citp bmRleCAwMDAwMDAwMDAuLmYxYTc0YTg0OQorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2xpYi9naG1h Yy1nbnV0bHMuYworQEAgLTAsMCArMSwxNjQgQEAKKysvKiBnaG1hYy5oIC0gZGF0YSBoYXNoaW5n IGZ1bmN0aW9ucworKyAqCisrICogQ29weXJpZ2h0IChDKSAyMDExICBDb2xsYWJvcmEgTHRkLgor KyAqIENvcHlyaWdodCAoQykgMjAxOSAgUmVkIEhhdCwgSW5jLgorKyAqCisrICogVGhpcyBsaWJy YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAq IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKKysgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIKKysgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysgKgorKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisr ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZSBHTlUKKysgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorKyAqCisrICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICogYWxvbmcgd2l0aCB0aGlzIGxp YnJhcnk7IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysgKi8K KysKKysjaW5jbHVkZSAiY29uZmlnLmgiCisrCisrI2luY2x1ZGUgPHN0cmluZy5oPgorKyNpbmNs dWRlIDxnbnV0bHMvY3J5cHRvLmg+CisrCisrI2luY2x1ZGUgImdobWFjLmgiCisrCisrI2luY2x1 ZGUgImdsaWIvZ2FsbG9jYS5oIgorKyNpbmNsdWRlICJnYXRvbWljLmgiCisrI2luY2x1ZGUgImdz bGljZS5oIgorKyNpbmNsdWRlICJnbWVtLmgiCisrI2luY2x1ZGUgImdzdHJmdW5jcy5oIgorKyNp bmNsdWRlICJnY2hlY2tzdW1wcml2YXRlLmgiCisrI2luY2x1ZGUgImd0ZXN0dXRpbHMuaCIKKysj aW5jbHVkZSAiZ3R5cGVzLmgiCisrI2luY2x1ZGUgImdsaWJpbnRsLmgiCisrCisrI2lmbmRlZiBI QVZFX0dOVVRMUworKyNlcnJvciAiYnVpbGQgY29uZmlndXJhdGlvbiBlcnJvciIKKysjZW5kaWYK KysKKytzdHJ1Y3QgX0dIbWFjCisreworKyAgaW50IHJlZl9jb3VudDsKKysgIEdDaGVja3N1bVR5 cGUgZGlnZXN0X3R5cGU7CisrICBnbnV0bHNfaG1hY19oZF90IGhtYWM7CisrICBnY2hhciAqZGln ZXN0X3N0cjsKKyt9OworKworK0dIbWFjICoKKytnX2htYWNfbmV3IChHQ2hlY2tzdW1UeXBlICBk aWdlc3RfdHlwZSwKKysgICAgICAgICAgICBjb25zdCBndWNoYXIgICprZXksCisrICAgICAgICAg ICAgZ3NpemUgICAgICAgICAga2V5X2xlbikKKyt7CisrICBnbnV0bHNfbWFjX2FsZ29yaXRobV90 IGFsZ287CisrICBHSG1hYyAqaG1hYyA9IGdfc2xpY2VfbmV3MCAoR0htYWMpOworKyAgaG1hYy0+ cmVmX2NvdW50ID0gMTsKKysgIGhtYWMtPmRpZ2VzdF90eXBlID0gZGlnZXN0X3R5cGU7ICAKKysK KysgIHN3aXRjaCAoZGlnZXN0X3R5cGUpCisrICAgIHsKKysgICAgY2FzZSBHX0NIRUNLU1VNX01E NToKKysgICAgICBhbGdvID0gR05VVExTX01BQ19NRDU7CisrICAgICAgYnJlYWs7CisrICAgIGNh c2UgR19DSEVDS1NVTV9TSEExOgorKyAgICAgIGFsZ28gPSBHTlVUTFNfTUFDX1NIQTE7CisrICAg ICAgYnJlYWs7CisrICAgIGNhc2UgR19DSEVDS1NVTV9TSEEyNTY6CisrICAgICAgYWxnbyA9IEdO VVRMU19NQUNfU0hBMjU2OworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIEdfQ0hFQ0tTVU1fU0hB Mzg0OgorKyAgICAgIGFsZ28gPSBHTlVUTFNfTUFDX1NIQTM4NDsKKysgICAgICBicmVhazsKKysg ICAgY2FzZSBHX0NIRUNLU1VNX1NIQTUxMjoKKysgICAgICBhbGdvID0gR05VVExTX01BQ19TSEE1 MTI7CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgZ19yZXR1cm5fdmFsX2lm X3JlYWNoZWQgKE5VTEwpOworKyAgICB9CisrCisrICBnbnV0bHNfaG1hY19pbml0ICgmaG1hYy0+ aG1hYywgYWxnbywga2V5LCBrZXlfbGVuKTsKKysKKysgIHJldHVybiBobWFjOworK30KKysKKytH SG1hYyAqCisrZ19obWFjX2NvcHkgKGNvbnN0IEdIbWFjICpobWFjKQorK3sKKysgIEdIbWFjICpj b3B5OworKworKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGhtYWMgIT0gTlVMTCwgTlVMTCk7Cisr CisrICBjb3B5ID0gZ19zbGljZV9uZXcwIChHSG1hYyk7CisrICBjb3B5LT5yZWZfY291bnQgPSAx OworKyAgY29weS0+ZGlnZXN0X3R5cGUgPSBobWFjLT5kaWdlc3RfdHlwZTsKKysgIGNvcHktPmht YWMgPSBnbnV0bHNfaG1hY19jb3B5IChobWFjLT5obWFjKTsKKysKKysgIHJldHVybiBjb3B5Owor K30KKysKKytHSG1hYyAqCisrZ19obWFjX3JlZiAoR0htYWMgKmhtYWMpCisreworKyAgZ19yZXR1 cm5fdmFsX2lmX2ZhaWwgKGhtYWMgIT0gTlVMTCwgTlVMTCk7CisrCisrICBnX2F0b21pY19pbnRf aW5jICgmaG1hYy0+cmVmX2NvdW50KTsKKysKKysgIHJldHVybiBobWFjOworK30KKysKKyt2b2lk CisrZ19obWFjX3VucmVmIChHSG1hYyAqaG1hYykKKyt7CisrICBnX3JldHVybl9pZl9mYWlsICho bWFjICE9IE5VTEwpOworKworKyAgaWYgKGdfYXRvbWljX2ludF9kZWNfYW5kX3Rlc3QgKCZobWFj LT5yZWZfY291bnQpKQorKyAgICB7CisrICAgICAgZ251dGxzX2htYWNfZGVpbml0IChobWFjLT5o bWFjLCBOVUxMKTsKKysgICAgICBnX2ZyZWUgKGhtYWMtPmRpZ2VzdF9zdHIpOworKyAgICAgIGdf c2xpY2VfZnJlZSAoR0htYWMsIGhtYWMpOworKyAgICB9CisrfQorKworKworK3ZvaWQKKytnX2ht YWNfdXBkYXRlIChHSG1hYyAgICAgICAgKmhtYWMsCisrICAgICAgICAgICAgICAgY29uc3QgZ3Vj aGFyICpkYXRhLAorKyAgICAgICAgICAgICAgIGdzc2l6ZSAgICAgICAgbGVuZ3RoKQorK3sKKysg IGdfcmV0dXJuX2lmX2ZhaWwgKGhtYWMgIT0gTlVMTCk7CisrICBnX3JldHVybl9pZl9mYWlsIChs ZW5ndGggPT0gMCB8fCBkYXRhICE9IE5VTEwpOworKworKyAgZ251dGxzX2htYWMgKGhtYWMtPmht YWMsIGRhdGEsIGxlbmd0aCk7CisrfQorKworK2NvbnN0IGdjaGFyICoKKytnX2htYWNfZ2V0X3N0 cmluZyAoR0htYWMgKmhtYWMpCisreworKyAgZ3VpbnQ4ICpidWZmZXI7CisrICBnc2l6ZSBkaWdl c3RfbGVuOworKworKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGhtYWMgIT0gTlVMTCwgTlVMTCk7 CisrCisrICBpZiAoaG1hYy0+ZGlnZXN0X3N0cikKKysgICAgcmV0dXJuIGhtYWMtPmRpZ2VzdF9z dHI7CisrCisrICBkaWdlc3RfbGVuID0gZ19jaGVja3N1bV90eXBlX2dldF9sZW5ndGggKGhtYWMt PmRpZ2VzdF90eXBlKTsKKysgIGJ1ZmZlciA9IGdfYWxsb2NhIChkaWdlc3RfbGVuKTsKKysKKysg IGdudXRsc19obWFjX291dHB1dCAoaG1hYy0+aG1hYywgYnVmZmVyKTsKKysgIGhtYWMtPmRpZ2Vz dF9zdHIgPSBnY2hlY2tzdW1fZGlnZXN0X3RvX3N0cmluZyAoYnVmZmVyLCBkaWdlc3RfbGVuKTsK KysgIHJldHVybiBobWFjLT5kaWdlc3Rfc3RyOworK30KKysKKysKKyt2b2lkCisrZ19obWFjX2dl dF9kaWdlc3QgKEdIbWFjICAqaG1hYywKKysgICAgICAgICAgICAgICAgICAgZ3VpbnQ4ICpidWZm ZXIsCisrICAgICAgICAgICAgICAgICAgIGdzaXplICAqZGlnZXN0X2xlbikKKyt7CisrICBnX3Jl dHVybl9pZl9mYWlsIChobWFjICE9IE5VTEwpOworKworKyAgZ251dGxzX2htYWNfb3V0cHV0ICho bWFjLT5obWFjLCBidWZmZXIpOworKyAgKmRpZ2VzdF9sZW4gPSBnX2NoZWNrc3VtX3R5cGVfZ2V0 X2xlbmd0aCAoaG1hYy0+ZGlnZXN0X3R5cGUpOworK30KK2RpZmYgLS1naXQgYS9nbGliL2dobWFj LmMgYi9nbGliL2dobWFjLmMKK2luZGV4IDRmMTgxZjIxZi4uYzYyZDljZTRlIDEwMDY0NAorLS0t IGEvZ2xpYi9naG1hYy5jCisrKysgYi9nbGliL2dobWFjLmMKK0BAIC0zMyw2ICszMyw5IEBACisg I2luY2x1ZGUgImd0eXBlcy5oIgorICNpbmNsdWRlICJnbGliaW50bC5oIgorIAorKyNpZmRlZiBI QVZFX0dOVVRMUworKyNlcnJvciAiYnVpbGQgY29uZmlndXJhdGlvbiBlcnJvciIKKysjZW5kaWYK KyAKKyAvKioKKyAgKiBTRUNUSU9OOmhtYWMKK2RpZmYgLS1naXQgYS9nbGliL21lc29uLmJ1aWxk IGIvZ2xpYi9tZXNvbi5idWlsZAoraW5kZXggYjNiZjA2N2M3Li4zY2RjM2I1NzMgMTAwNjQ0Cist LS0gYS9nbGliL21lc29uLmJ1aWxkCisrKysgYi9nbGliL21lc29uLmJ1aWxkCitAQCAtMjUyLDcg KzI1Miw2IEBAIGdsaWJfc291cmNlcyA9IGZpbGVzKAorICAgJ2dmaWxldXRpbHMuYycsCisgICAn Z2dldHRleHQuYycsCisgICAnZ2hhc2guYycsCistICAnZ2htYWMuYycsCisgICAnZ2htYWMtdXRp bHMuYycsCisgICAnZ2hvb2suYycsCisgICAnZ2hvc3R1dGlscy5jJywKK0BAIC0zMDgsNiArMzA3 LDcgQEAgZ2xpYl9zb3VyY2VzID0gZmlsZXMoCisgICAnZ3VyaXByaXZhdGUuaCcsCisgICAnZ3V0 aWxzLmMnLAorICAgJ2d1dGlsc3ByaXZhdGUuaCcsCisrICAnZ2NoZWNrc3VtcHJpdmF0ZS5oJywK KyAgICdndXVpZC5jJywKKyAgICdndmFyaWFudC5jJywKKyAgICdndmFyaWFudC1jb3JlLmMnLAor QEAgLTM1Miw2ICszNTIsMTIgQEAgZWxzZQorICAgZ2xpYl9kdHJhY2VfaGRyID0gW10KKyBlbmRp ZgorIAorK2lmIGdldF9vcHRpb24oJ2dudXRscycpCisrICBnbGliX3NvdXJjZXMgKz0gZmlsZXMo J2dobWFjLWdudXRscy5jJykKKytlbHNlCisrICBnbGliX3NvdXJjZXMgKz0gZmlsZXMoJ2dobWFj LmMnKQorK2VuZGlmCisrCisgcGNyZV9zdGF0aWNfYXJncyA9IFtdCisgCisgaWYgdXNlX3BjcmVf c3RhdGljX2ZsYWcKK0BAIC0zNzgsNyArMzg0LDcgQEAgbGliZ2xpYiA9IGxpYnJhcnkoJ2dsaWIt Mi4wJywKKyAgICMgaW50bC5saWIgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBTQUZFU0VICisgICBs aW5rX2FyZ3MgOiBbbm9zZWhfbGlua19hcmdzLCBnbGliX2xpbmtfZmxhZ3MsIHdpbjMyX2xkZmxh Z3NdLAorICAgaW5jbHVkZV9kaXJlY3RvcmllcyA6IGNvbmZpZ2luYywKKy0gIGRlcGVuZGVuY2ll cyA6IHBjcmVfZGVwcyArIFt0aHJlYWRfZGVwLCBsaWJydF0gKyBsaWJpbnRsX2RlcHMgKyBsaWJp Y29udiArIHBsYXRmb3JtX2RlcHMgKyBnbnVsaWJfbGlibV9kZXBlbmRlbmN5ICsgW2xpYnN5c3By b2ZfY2FwdHVyZV9kZXBdLAorKyAgZGVwZW5kZW5jaWVzIDogcGNyZV9kZXBzICsgbGliZ251dGxz X2RlcCArIFt0aHJlYWRfZGVwLCBsaWJydF0gKyBsaWJpbnRsX2RlcHMgKyBsaWJpY29udiArIHBs YXRmb3JtX2RlcHMgKyBnbnVsaWJfbGlibV9kZXBlbmRlbmN5ICsgW2xpYnN5c3Byb2ZfY2FwdHVy ZV9kZXBdLAorICAgY19hcmdzIDogZ2xpYl9jX2FyZ3MsCisgICBvYmpjX2FyZ3MgOiBnbGliX2Nf YXJncywKKyApCitkaWZmIC0tZ2l0IGEvbWVzb24uYnVpbGQgYi9tZXNvbi5idWlsZAoraW5kZXgg ZTBiMzA4YTI1Li43MGRkNTM1NWUgMTAwNjQ0CistLS0gYS9tZXNvbi5idWlsZAorKysrIGIvbWVz b24uYnVpbGQKK0BAIC0yMDU2LDYgKzIwNTYsMTMgQEAgaWYgaG9zdF9zeXN0ZW0gPT0gJ2xpbnV4 JworICAgZ2xpYl9jb25mLnNldCgnSEFWRV9MSUJNT1VOVCcsIGxpYm1vdW50X2RlcC5mb3VuZCgp KQorIGVuZGlmCisgCisrIyBnbnV0bHMgaXMgdXNlZCBvcHRpb25hbGx5IGJ5IGdobWFjCisrbGli Z251dGxzX2RlcCA9IFtdCisraWYgZ2V0X29wdGlvbignZ251dGxzJykKKysgIGxpYmdudXRsc19k ZXAgPSBbZGVwZW5kZW5jeSgnZ251dGxzJywgdmVyc2lvbiA6ICc+PTMuNi45JywgcmVxdWlyZWQg OiB0cnVlKV0KKysgIGdsaWJfY29uZi5zZXQoJ0hBVkVfR05VVExTJywgMSkKKytlbmRpZgorKwor IGlmIGhvc3Rfc3lzdGVtID09ICd3aW5kb3dzJworICAgd2luc29jazIgPSBjYy5maW5kX2xpYnJh cnkoJ3dzMl8zMicpCisgZW5kaWYKK2RpZmYgLS1naXQgYS9tZXNvbl9vcHRpb25zLnR4dCBiL21l c29uX29wdGlvbnMudHh0CitpbmRleCBhZjk2NDVlZGEuLjJjNGIyYzM3ZSAxMDA2NDQKKy0tLSBh L21lc29uX29wdGlvbnMudHh0CisrKysgYi9tZXNvbl9vcHRpb25zLnR4dAorQEAgLTM0LDYgKzM0 LDExIEBAIG9wdGlvbignbGlibW91bnQnLAorICAgICAgICB2YWx1ZSA6ICdhdXRvJywKKyAgICAg ICAgZGVzY3JpcHRpb24gOiAnYnVpbGQgd2l0aCBsaWJtb3VudCBzdXBwb3J0JykKKyAKKytvcHRp b24oJ2dudXRscycsCisrICAgICAgIHR5cGUgOiAnYm9vbGVhbicsCisrICAgICAgIHZhbHVlIDog dHJ1ZSwKKysgICAgICAgZGVzY3JpcHRpb24gOiAnYnVpbGQgd2l0aCBnbnV0bHMgc3VwcG9ydCcp CisrCisgb3B0aW9uKCdpbnRlcm5hbF9wY3JlJywKKyAgICAgICAgdHlwZSA6ICdib29sZWFuJywK KyAgICAgICAgdmFsdWUgOiBmYWxzZSwKKy0tIAorMi4yOC4wCg==