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: Paulo Alcantara To: git-commits@fedoraproject.org Subject: [rpms/cifs-utils] rawhide: resolves: rhbz#2498627 - Update to cifs-utils-7.7 Date: Thu, 27 Aug 2026 16:31:37 GMT Message-ID: <178784829702.1.2438018582804450430.rpms-cifs-utils-6f4a420b656d@fedoraproject.org> List-ID: X-Git-Repo: rpms/cifs-utils X-Git-Branch: rawhide X-Git-Rev: 6f4a420b656da5dd9598203f8b3c0f54629be603 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvY2lmcy11dGlscwogICAgICAgICAgICBCcmFuY2ggOiByYXdoaWRlCiAgICAg ICAgICAgIENvbW1pdCA6IDZmNGE0MjBiNjU2ZGE1ZGQ5NTk4MjAzZjhiM2MwZjU0NjI5YmU2MDMK ICAgICAgICAgICAgQXV0aG9yIDogUGF1bG8gQWxjYW50YXJhIDxwYWFsY2FudEByZWRoYXQuY29t PgogICAgICAgICAgICBEYXRlICAgOiAyMDI2LTA4LTI3VDEzOjE2OjQyLTAzOjAwCiAgICAgICAg ICAgIFN0YXRzICA6ICs0MTkvLTQ0NSBpbiA2IGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDog aHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9jaWZzLXV0aWxzL2MvNmY0YTQyMGI2 NTZkYTVkZDk1OTgyMDNmOGIzYzBmNTQ2MjliZTYwMz9icmFuY2g9cmF3aGlkZQoKICAgICAgICAg ICAgTG9nOgogICAgICAgICAgICByZXNvbHZlczogcmhieiMyNDk4NjI3IC0gVXBkYXRlIHRvIGNp ZnMtdXRpbHMtNy43CgpTaWduZWQtb2ZmLWJ5OiBQYXVsbyBBbGNhbnRhcmEgPHBhYWxjYW50QHJl ZGhhdC5jb20+CgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4 IGEyM2I3NzUuLjI0ZTlmYzMgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9y ZQpAQCAtMzQsMyArMzQsNCBAQCBjaWZzLXV0aWxzLTQuNi50YXIuYnoyCiAvY2lmcy11dGlscy03 LjQudGFyLmJ6MgogL2NpZnMtdXRpbHMtNy41LnRhci5iejIKIC9jaWZzLXV0aWxzLTcuNi50YXIu YnoyCisvY2lmcy11dGlscy03LjcudGFyLmJ6MgoKZGlmZiAtLWdpdCBhL2NpZnMtdXRpbHMuc3Bl YyBiL2NpZnMtdXRpbHMuc3BlYwppbmRleCA0ODdmZjJlLi5iMmE4NGM1IDEwMDY0NAotLS0gYS9j aWZzLXV0aWxzLnNwZWMKKysrIGIvY2lmcy11dGlscy5zcGVjCkBAIC0xLDEwICsxLDggQEAKICMl IGRlZmluZSBwcmVfcmVsZWFzZSByYzEKICVkZWZpbmUgcHJlX3JlbGVhc2UgJW5pbAogCi0lZ2xv YmFsIGJhc2hfY29tcGxldGlvbl9kaXIgJShwa2ctY29uZmlnIC0tdmFyaWFibGU9Y29tcGxldGlv bnNkaXIgYmFzaC1jb21wbGV0aW9uIHx8IGVjaG8gL2V0Yy9iYXNoX2NvbXBsZXRpb24uZCkKLQog TmFtZTogICAgICAgICAgICBjaWZzLXV0aWxzCi1WZXJzaW9uOiAgICAgICAgIDcuNgorVmVyc2lv bjogICAgICAgICA3LjcKIFJlbGVhc2U6ICAgICAgICAgJWF1dG9yZWxlYXNlCiBTdW1tYXJ5OiAg ICAgICAgIFV0aWxpdGllcyBmb3IgbW91bnRpbmcgYW5kIG1hbmFnaW5nIENJRlMgbW91bnRzCiAK QEAgLTI0LDggKzIyLDcgQEAgUmVjb21tZW5kczogJXtuYW1lfS1pbmZvJXs/X2lzYX0gPSAle3Zl cnNpb259LSV7cmVsZWFzZX0KIAogU291cmNlMDogICAgICAgICBodHRwczovL2Rvd25sb2FkLnNh bWJhLm9yZy9wdWIvbGludXgtY2lmcy9jaWZzLXV0aWxzLyV7bmFtZX0tJXt2ZXJzaW9ufS50YXIu YnoyCiAKLVBhdGNoMDogY2lmcy51cGNhbGwtZml4LWNvbXBpbGVyLXdhcm5pbmctd2l0aC1Xdmxh LnBhdGNoCi1QYXRjaDE6IGNpZnMudXBjYWxsLWZpeC1yZWdyZXNzaW9uLXdpdGgta3JiNS1jcmVk dWlkLnBhdGNoCitQYXRjaDA6IGNpZnMudXBjYWxsLWZpeC1rcmI1LXJlZ3Jlc3Npb24td2l0aC10 cnVzdC1kbnMucGF0Y2gKIAogJWRlc2NyaXB0aW9uCiBUaGUgU01CL0NJRlMgcHJvdG9jb2wgaXMg YSBzdGFuZGFyZCBmaWxlIHNoYXJpbmcgcHJvdG9jb2wgd2lkZWx5IGRlcGxveWVkCkBAIC03Miw3 ICs2OSw3IEBAIG1rZGlyIC1wICV7YnVpbGRyb290fSV7X3N5c2NvbmZkaXJ9LyV7bmFtZX0KIG1r ZGlyIC1wICV7YnVpbGRyb290fSV7X3N5c2NvbmZkaXJ9L3JlcXVlc3Qta2V5LmQKIGluc3RhbGwg LW0gNjQ0IGNvbnRyaWIvcmVxdWVzdC1rZXkuZC9jaWZzLmlkbWFwLmNvbmYgJXtidWlsZHJvb3R9 JXtfc3lzY29uZmRpcn0vcmVxdWVzdC1rZXkuZAogaW5zdGFsbCAtbSA2NDQgY29udHJpYi9yZXF1 ZXN0LWtleS5kL2NpZnMuc3BuZWdvLmNvbmYgJXtidWlsZHJvb3R9JXtfc3lzY29uZmRpcn0vcmVx dWVzdC1rZXkuZAotaW5zdGFsbCAtRHBtIDY0NCBiYXNoLWNvbXBsZXRpb24vc21iaW5mbyAle2J1 aWxkcm9vdH0le19kYXRhZGlyfSV7YmFzaF9jb21wbGV0aW9uX2Rpcn0vc21iaW5mbworaW5zdGFs bCAtRHBtIDY0NCBiYXNoLWNvbXBsZXRpb24vc21iaW5mbyAle2J1aWxkcm9vdH0le2Jhc2hfY29t cGxldGlvbnNfZGlyfS9zbWJpbmZvCiAKICVmaWxlcwogJWRvYwpAQCAtOTQsNyArOTEsNyBAQCBp bnN0YWxsIC1EcG0gNjQ0IGJhc2gtY29tcGxldGlvbi9zbWJpbmZvICV7YnVpbGRyb290fSV7X2Rh dGFkaXJ9JXtiYXNoX2NvbXBsZXRpbwogJXtfbWFuZGlyfS9tYW44L21vdW50LmNpZnMuKgogJXtf bWFuZGlyfS9tYW44L21vdW50LnNtYjMuKgogJXtfbWFuZGlyfS9tYW44L2lkbWFwd2IuKgotJXtf ZGF0YWRpcn0le2Jhc2hfY29tcGxldGlvbl9kaXJ9L3NtYmluZm8KKyV7YmFzaF9jb21wbGV0aW9u c19kaXJ9L3NtYmluZm8KICVkaXIgJXtfc3lzY29uZmRpcn0vY2lmcy11dGlscwogJWdob3N0ICV7 X3N5c2NvbmZkaXJ9L2NpZnMtdXRpbHMvaWRtYXAtcGx1Z2luCiAlY29uZmlnKG5vcmVwbGFjZSkg JXtfc3lzY29uZmRpcn0vcmVxdWVzdC1rZXkuZC9jaWZzLmlkbWFwLmNvbmYKCmRpZmYgLS1naXQg YS9jaWZzLnVwY2FsbC1maXgtY29tcGlsZXItd2FybmluZy13aXRoLVd2bGEucGF0Y2ggYi9jaWZz LnVwY2FsbC1maXgtY29tcGlsZXItd2FybmluZy13aXRoLVd2bGEucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDVlZjBkYzEuLjAwMDAwMDAKLS0tIGEvY2lmcy51cGNhbGwtZml4 LWNvbXBpbGVyLXdhcm5pbmctd2l0aC1XdmxhLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDYg KzAsMCBAQAotRnJvbSBkMmYzOWEyMGQ2OGFhNTUwMjNiNjNlNTc1ZjA2OTQxNzIxZTY0NGM2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGF1bG8gQWxjYW50YXJhIDxwY0BtYW5ndWVi aXQub3JnPgotRGF0ZTogVHVlLCAyMyBKdW4gMjAyNiAxNTowNjoyMCAtMDMwMAotU3ViamVjdDog W1BBVENIXSBjaWZzLnVwY2FsbDogZml4IGNvbXBpbGVyIHdhcm5pbmcgd2l0aCAtV3ZsYQotTUlN RS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAot Q29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1UaGUgbGVuZ3RoIHZhbHVlIGZvciBA cGF0aCBhcnJheSBpbiBnZXRfdWlkZ2lkKCkgbmVlZHMgdG8gYmUgZXZhbHVhdGVkCi1hdCBjb21w aWxlIHRpbWUsIHNvIHJlcGxhY2Ugc3RybGVuKCkgd2l0aCBzaXplb2YoKSB3aGVuIGRlZmluaW5n Ci1QUk9DX1BJRF9QQVRIX01BWExFTiBhbmQgdGhlbiBmaXggdGhlIGZvbGxvd2luZyB3YXJuaW5n OgotCi0gY2lmcy51cGNhbGwuYzogSW4gZnVuY3Rpb24g4oCYZ2V0X3VpZGdpZOKAmToKLSBjaWZz LnVwY2FsbC5jOjE0MDA6OTogd2FybmluZzogSVNPIEM5MCBmb3JiaWRzIGFycmF5IOKAmHBhdGji gJkgd2hvc2Ugc2l6ZQotIGNhbm5vdCBiZSBldmFsdWF0ZWQgWy1XdmxhXQotICAxNDAwIHwgICAg ICAgICBjaGFyIHBhdGhbUFJPQ19QSURfUEFUSF9NQVhMRU5dID0ge30sIGJ1ZlsyNTZdOwotICAg ICAgIHwgICAgICAgICBefn5+Ci0KLUZpeGVzOiA5NzJjNWI1ZmY5NWUgKCJjaWZzLnVwY2FsbDog cmVtb3ZlIGdldHB3dWlkKCkgZGVwZW5kZW5jeSIpCi1TaWduZWQtb2ZmLWJ5OiBQYXVsbyBBbGNh bnRhcmEgKFJlZCBIYXQpIDxwY0BtYW5ndWViaXQub3JnPgotUmV2aWV3ZWQtYnk6IERhdmlkIEhv d2VsbHMgPGRob3dlbGxzQHJlZGhhdC5jb20+Ci1DYzogRW56byBNYXRzdW1peWEgPGVtYXRzdW1p eWFAc3VzZS5kZT4KLUNjOiBsaW51eC1jaWZzQHZnZXIua2VybmVsLm9yZwotU2lnbmVkLW9mZi1i eTogU3RldmUgRnJlbmNoIDxzdGZyZW5jaEBtaWNyb3NvZnQuY29tPgotLS0tCi0gY2lmcy51cGNh bGwuYyB8IDQgKystLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9jaWZzLnVwY2FsbC5jIGIvY2lmcy51cGNhbGwuYwotaW5k ZXggMDE2OTBkZmNhZGUxLi4xMWRiYzYxODZhNzQgMTAwNjQ0Ci0tLS0gYS9jaWZzLnVwY2FsbC5j Ci0rKysgYi9jaWZzLnVwY2FsbC5jCi1AQCAtMTM3NSw4ICsxMzc1LDggQEAgc3RhdGljIGludCBp cF90b19mcWRuKGNvbnN0IGNoYXIgKmFkZHJzdHIsIGNoYXIgKmhvc3QsIHNpemVfdCBob3N0bGVu KQotIAlyZXR1cm4gMDsKLSB9Ci0gCi0tLyogY292ZXIgd29yc3QgY2FzZS9pbXBvc3NpYmxlIHNj ZW5hcmlvcywgKyAxIGZvciBOVUwgKi8KLS0jZGVmaW5lIFBST0NfUElEX1BBVEhfTUFYTEVOCSgo aW50KXN0cmxlbigiL3Byb2MvMjE0NzQ4MzY0Ny9zdGF0dXMiKSArIDEpCi0rLyogY292ZXIgd29y c3QgY2FzZS9pbXBvc3NpYmxlIHNjZW5hcmlvcyAqLwotKyNkZWZpbmUgUFJPQ19QSURfUEFUSF9N QVhMRU4JKChpbnQpc2l6ZW9mKCIvcHJvYy8yMTQ3NDgzNjQ3L3N0YXR1cyIpKQotIC8qIG1heCB2 YWxpZCBVSUQvR0lEIGlzIChVSU5UX01BWCAtIDEpICovCi0gI2RlZmluZSBJTlZBTElEX1VJREdJ RAkJVUlOVF9NQVgKLSAKLS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS9jaWZzLnVwY2FsbC1m aXgta3JiNS1yZWdyZXNzaW9uLXdpdGgtdHJ1c3QtZG5zLnBhdGNoIGIvY2lmcy51cGNhbGwtZml4 LWtyYjUtcmVncmVzc2lvbi13aXRoLXRydXN0LWRucy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4xZDg2MGM4Ci0tLSAvZGV2L251bGwKKysrIGIvY2lmcy51cGNhbGwt Zml4LWtyYjUtcmVncmVzc2lvbi13aXRoLXRydXN0LWRucy5wYXRjaApAQCAtMCwwICsxLDQxMyBA QAorRnJvbSAzNGFhYWZmODBlNTM2ZTRiYjFiMTViZjY0MGNmNjE1ZDljMmFmYmJkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGF1bG8gQWxjYW50YXJhIDxwY0BtYW5ndWViaXQub3Jn PgorRGF0ZTogVHVlLCAxOCBBdWcgMjAyNiAxNjoxNjowNiAtMDMwMAorU3ViamVjdDogW1BBVENI XSBjaWZzLnVwY2FsbDogZml4IGtyYjUgcmVncmVzc2lvbiB3aXRoIC0tdHJ1c3QtZG5zCisKK0N1 c3RvbWVyIHJlcG9ydGVkIHJhbmRvbWx5IGZhaWxlZCBrcmI1IGF1dGhlbnRpY2F0aW9ucyBhZ2Fp bnN0IGNlcnRhaW4KK3NlcnZlcnMgd2hlbiB1c2luZyAtLXRydXN0LWRucyBwYXJhbWV0ZXIuICBU dXJuZWQgb3V0IHRoYXQgdGhlIGNsaWVudAorZmFpbGVkIHRvIGVzdGFibGlzaCBzZXNzaW9ucyBh Z2FpbnN0IHRob3NlIHNlcnZlcnMgd2hlbiB1c2luZworQ0lGUy9LUkI1X05UX1NSVl9IU1Qgc2Vy dmljZSBwcmluY2lwYWxzLgorCitSZXN0b3JlIG9sZCBiZWhhdmlvciBvZiBhbHdheXMgdHJ5aW5n IGNpZnMvS1JCNV9OVF9VTktOT1dOIHNlcnZpY2UKK3ByaW5jaXBhbCBmaXJzdCB3aGVuIHVzaW5n IC0tdHJ1c3QtZG5zIHBhcmFtZXRlci4KKworUmVwb3J0ZWQtYnk6IFBpZXJndWlkbyBMYW1icmkg PHBsYW1icmlAcmVkaGF0LmNvbT4KK1JlcG9ydGVkLWJ5OiBGcmFuayBTb3JlbnNvbiA8c29yZW5z b25AcmVkaGF0LmNvbT4KK0ZpeGVzOiA1NjJhNmNiNGY5OWMgKCJjaWZzLnVwY2FsbDogUmV0cnkg a3JiNSBUR1MgcmVxdWVzdCB3aXRoIHVwcGVyY2FzZSBzZXJ2aWNlIG5hbWUiKQorU2lnbmVkLW9m Zi1ieTogUGF1bG8gQWxjYW50YXJhIChSZWQgSGF0KSA8cGNAbWFuZ3VlYml0Lm9yZz4KK0NjOiBT dGV2ZSBGcmVuY2ggPHN0ZnJlbmNoQG1pY3Jvc29mdC5jb20+CitDYzogU2FtdWVsIENhYnJlcm8g PHNjYWJyZXJvQHN1c2UuY29tPgorQ2M6IGxpbnV4LWNpZnNAdmdlci5rZXJuZWwub3JnCistLS0K KyBjaWZzLnVwY2FsbC5jIHwgMjgxICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDE0MCBpbnNlcnRpb25zKCspLCAxNDEg ZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jaWZzLnVwY2FsbC5jIGIvY2lmcy51cGNhbGwu YworaW5kZXggNDIyMDVlNjZhNjc2Li43NmU4OGI3OWE3NjAgMTAwNjQ0CistLS0gYS9jaWZzLnVw Y2FsbC5jCisrKysgYi9jaWZzLnVwY2FsbC5jCitAQCAtNjk4LDIyICs2OTgsMTggQEAgb3V0X2Zy ZWVfcHJpbmNpcGFsOgorIAlyZXR1cm4gcmM7CisgfQorIAorLXN0YXRpYyBpbnQKKy1jaWZzX2ty YjVfZ2V0X3JlcShjb25zdCBjaGFyICpob3N0LCBrcmI1X2NjYWNoZSBjY2FjaGUsCistCQkgIERB VEFfQkxPQiAqIG1lY2h0b2tlbiwgREFUQV9CTE9CICogc2Vzc19rZXkpCisrc3RhdGljIGludCBj aWZzX2tyYjVfZ2V0X3JlcShjb25zdCBzdHJ1Y3QgY2lmc19zZXJ2aWNlX25hbWUgKnN2YywKKysJ CQkgICAgIGNvbnN0IGNoYXIgKmhvc3QsIGtyYjVfY2NhY2hlIGNjYWNoZSwKKysJCQkgICAgIERB VEFfQkxPQiAqbWVjaHRva2VuLCBEQVRBX0JMT0IgKnNlc3Nfa2V5KQorIHsKKyAJa3JiNV9lcnJv cl9jb2RlIHJldDsKKyAJa3JiNV9rZXlibG9jayAqdG9rYjsKKy0Ja3JiNV9jcmVkcyBpbl9jcmVk cywgKm91dF9jcmVkczsKKysJa3JiNV9jcmVkcyBpbl9jcmVkcyA9IHt9LCAqb3V0X2NyZWRzOwor IAlrcmI1X2RhdGEgYXByZXFfcGt0LCBpbl9kYXRhOworIAlrcmI1X2F1dGhfY29udGV4dCBhdXRo X2NvbnRleHQgPSBOVUxMOworICNpZiBkZWZpbmVkKEhBVkVfS1JCNV9BVVRIX0NPTl9TRVRBRERS UykgJiYgZGVmaW5lZChIQVZFX0tSQjVfQVVUSF9DT05fU0VUX1JFUV9DS1NVTVRZUEUpCisgCXN0 YXRpYyBjaGFyIGdzc19ja3N1bVsyNF0gPSB7IDB4MTAsIDB4MDAsIC8qIC4uLiAqL307CisgI2Vu ZGlmCistCXNpemVfdCBjb3VudCA9IHNpemVvZihjaWZzX3NlcnZpY2VfbmFtZXMpIC8gc2l6ZW9m KHN0cnVjdCBjaWZzX3NlcnZpY2VfbmFtZSk7CistCXNpemVfdCBpID0gMDsKKy0KKy0JbWVtc2V0 KCZpbl9jcmVkcywgMCwgc2l6ZW9mKGluX2NyZWRzKSk7CisgCisgCXJldCA9IGtyYjVfY2NfZ2V0 X3ByaW5jaXBhbChjb250ZXh0LCBjY2FjaGUsICZpbl9jcmVkcy5jbGllbnQpOworIAlpZiAocmV0 KSB7CitAQCAtNzIyLDIxICs3MTgsMTYgQEAgY2lmc19rcmI1X2dldF9yZXEoY29uc3QgY2hhciAq aG9zdCwga3JiNV9jY2FjaGUgY2NhY2hlLAorIAkJcmV0dXJuIHJldDsKKyAJfQorIAorLQlmb3Ig KGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworLQkJcmV0ID0ga3JiNV9zbmFtZV90b19wcmluY2lw YWwoY29udGV4dCwgaG9zdCwgY2lmc19zZXJ2aWNlX25hbWVzW2ldLm5hbWUsCistCQkJCWNpZnNf c2VydmljZV9uYW1lc1tpXS50eXBlLCAmaW5fY3JlZHMuc2VydmVyKTsKKy0JCWlmIChyZXQpIHsK Ky0JCQlzeXNsb2coTE9HX0RFQlVHLCAiJXM6IHVuYWJsZSB0byBjb252ZXJ0IHNuYW1lIHRvIHBy aW5jICglcykuIiwKKy0JCQkgICAgICAgX19mdW5jX18sIGhvc3QpOworLQkJCWdvdG8gb3V0X2Zy ZWVfcHJpbmNpcGFsOworLQkJfQorLQorLQkJcmV0ID0ga3JiNV9nZXRfY3JlZGVudGlhbHMoY29u dGV4dCwgMCwgY2NhY2hlLCAmaW5fY3JlZHMsICZvdXRfY3JlZHMpOworLQkJa3JiNV9mcmVlX3By aW5jaXBhbChjb250ZXh0LCBpbl9jcmVkcy5zZXJ2ZXIpOworLQkJaWYgKCFyZXQpIHsKKy0JCQli cmVhazsKKy0JCX0KKysJcmV0ID0ga3JiNV9zbmFtZV90b19wcmluY2lwYWwoY29udGV4dCwgaG9z dCwgc3ZjLT5uYW1lLAorKwkJCQkgICAgICBzdmMtPnR5cGUsICZpbl9jcmVkcy5zZXJ2ZXIpOwor KwlpZiAocmV0KSB7CisrCQlzeXNsb2coTE9HX0RFQlVHLCAiJXM6IHVuYWJsZSB0byBjb252ZXJ0 IHNuYW1lIHRvIHByaW5jICglcykuIiwKKysJCSAgICAgICBfX2Z1bmNfXywgaG9zdCk7CisrCQln b3RvIG91dF9mcmVlX3ByaW5jaXBhbDsKKyAJfQorKworKwlyZXQgPSBrcmI1X2dldF9jcmVkZW50 aWFscyhjb250ZXh0LCAwLCBjY2FjaGUsICZpbl9jcmVkcywgJm91dF9jcmVkcyk7CisrCWtyYjVf ZnJlZV9wcmluY2lwYWwoY29udGV4dCwgaW5fY3JlZHMuc2VydmVyKTsKKyAJaWYgKHJldCkgewor IAkJc3lzbG9nKExPR19ERUJVRywgIiVzOiB1bmFibGUgdG8gZ2V0IGNyZWRlbnRpYWxzIGZvciAl cyIsCisgCQkgICAgICAgX19mdW5jX18sIGhvc3QpOworQEAgLTg0OSw4ICs4NDAsOSBAQCB2b2lk IGNpZnNfZ3NzX2Rpc3BsYXlfc3RhdHVzKGNoYXIgKm1zZywgT01fdWludDMyIG1hal9zdGF0LCBP TV91aW50MzIgbWluX3N0YXQpCisgCWNpZnNfZ3NzX2Rpc3BsYXlfc3RhdHVzXzEobXNnLCBtaW5f c3RhdCwgR1NTX0NfTUVDSF9DT0RFKTsKKyB9CisgCistc3RhdGljIGludAorLWNpZnNfZ3NzX2dl dF9yZXEoY29uc3QgY2hhciAqaG9zdCwgREFUQV9CTE9CICptZWNodG9rZW4sIERBVEFfQkxPQiAq c2Vzc19rZXkpCisrc3RhdGljIGludCBjaWZzX2dzc19nZXRfcmVxKGNvbnN0IHN0cnVjdCBjaWZz X3NlcnZpY2VfbmFtZSAqc3ZjLAorKwkJCSAgICBjb25zdCBjaGFyICpob3N0LCBEQVRBX0JMT0Ig Km1lY2h0b2tlbiwKKysJCQkgICAgREFUQV9CTE9CICpzZXNzX2tleSkKKyB7CisgCU9NX3VpbnQz MiBtYWpfc3RhdCwgbWluX3N0YXQ7CisgCWdzc19uYW1lX3QgdGFyZ2V0X25hbWU7CitAQCAtODU4 LDUyICs4NTAsNDMgQEAgY2lmc19nc3NfZ2V0X3JlcShjb25zdCBjaGFyICpob3N0LCBEQVRBX0JM T0IgKm1lY2h0b2tlbiwgREFUQV9CTE9CICpzZXNzX2tleSkKKyAJZ3NzX2J1ZmZlcl9kZXNjIG91 dHB1dF90b2tlbjsKKyAJZ3NzX2tyYjVfbHVjaWRfY29udGV4dF92MV90ICpsdWNpZF9jdHggPSBO VUxMOworIAlnc3Nfa3JiNV9sdWNpZF9rZXlfdCAqa2V5ID0gTlVMTDsKKy0Jc2l6ZV90IGNvdW50 ID0gc2l6ZW9mKGNpZnNfc2VydmljZV9uYW1lcykgLyBzaXplb2Yoc3RydWN0IGNpZnNfc2Vydmlj ZV9uYW1lKTsKKy0Jc2l6ZV90IGk7CisrCWdzc19idWZmZXJfZGVzYyB0YXJnZXRfbmFtZV9idWY7 CisrCXNpemVfdCBzZXJ2aWNlX25hbWVfbGVuOworKwljaGFyICpzZXJ2aWNlX25hbWU7CisgCist CWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CistCQlzaXplX3Qgc2VydmljZV9uYW1lX2xl biA9IHN0cmxlbihjaWZzX3NlcnZpY2VfbmFtZXNbaV0ubmFtZSkgKworLQkJCTEgLyogQCAqLyAr IHN0cmxlbihob3N0KSArIDE7CistCQljaGFyICpzZXJ2aWNlX25hbWUgPSBtYWxsb2Moc2Vydmlj ZV9uYW1lX2xlbik7CistCQlpZiAoIXNlcnZpY2VfbmFtZSkgeworLQkJCXN5c2xvZyhMT0dfREVC VUcsICJvdXQgb2YgbWVtb3J5IGFsbG9jYXRpbmcgc2VydmljZSBuYW1lIik7CistCQkJbWFqX3N0 YXQgPSBHU1NfU19GQUlMVVJFOworLQkJCWdvdG8gb3V0OworLQkJfQorLQorLQkJc25wcmludGYo c2VydmljZV9uYW1lLCBzZXJ2aWNlX25hbWVfbGVuLCAiJXNAJXMiLAorLQkJCSBjaWZzX3NlcnZp Y2VfbmFtZXNbaV0ubmFtZSwgaG9zdCk7CistCQlnc3NfYnVmZmVyX2Rlc2MgdGFyZ2V0X25hbWVf YnVmOworLQkJdGFyZ2V0X25hbWVfYnVmLnZhbHVlID0gc2VydmljZV9uYW1lOworLQkJdGFyZ2V0 X25hbWVfYnVmLmxlbmd0aCA9IHNlcnZpY2VfbmFtZV9sZW47CistCistCQltYWpfc3RhdCA9IGdz c19pbXBvcnRfbmFtZSgmbWluX3N0YXQsICZ0YXJnZXRfbmFtZV9idWYsCistCQkJCUdTU19DX05U X0hPU1RCQVNFRF9TRVJWSUNFLCAmdGFyZ2V0X25hbWUpOworLQkJZnJlZShzZXJ2aWNlX25hbWUp OworLQkJaWYgKEdTU19FUlJPUihtYWpfc3RhdCkpIHsKKy0JCQljaWZzX2dzc19kaXNwbGF5X3N0 YXR1cygiZ3NzX2ltcG9ydF9uYW1lIiwgbWFqX3N0YXQsIG1pbl9zdGF0KTsKKy0JCQlnb3RvIG91 dDsKKy0JCX0KKysJc2VydmljZV9uYW1lX2xlbiA9IHN0cmxlbihzdmMtPm5hbWUpICsgMSAvKiBA ICovICsgc3RybGVuKGhvc3QpICsgMTsKKysJc2VydmljZV9uYW1lID0gbWFsbG9jKHNlcnZpY2Vf bmFtZV9sZW4pOworKwlpZiAoIXNlcnZpY2VfbmFtZSkgeworKwkJc3lzbG9nKExPR19ERUJVRywg Im91dCBvZiBtZW1vcnkgYWxsb2NhdGluZyBzZXJ2aWNlIG5hbWUiKTsKKysJCW1hal9zdGF0ID0g R1NTX1NfRkFJTFVSRTsKKysJCWdvdG8gb3V0OworKwl9CisgCistCQltYWpfc3RhdCA9IGdzc19p bml0X3NlY19jb250ZXh0KCZtaW5fc3RhdCwKKy0JCQkJR1NTX0NfTk9fQ1JFREVOVElBTCwgLyog Y2xhaW1hbnRfY3JlZF9oYW5kbGUgKi8KKy0JCQkJJmN0eCwKKy0JCQkJdGFyZ2V0X25hbWUsCist CQkJCWRpc2NhcmRfY29uc3QoZ3NzX21lY2hfa3JiNSksIC8qIGZvcmNlIGtyYjUgKi8KKy0JCQkJ MCwgLyogZmxhZ3MgKi8KKy0JCQkJMCwgLyogdGltZV9yZXEgKi8KKy0JCQkJR1NTX0NfTk9fQ0hB Tk5FTF9CSU5ESU5HUywgLyogaW5wdXRfY2hhbl9iaW5kaW5ncyAqLworLQkJCQlHU1NfQ19OT19C VUZGRVIsCistCQkJCU5VTEwsIC8qIGFjdHVhbCBtZWNoIHR5cGUgKi8KKy0JCQkJJm91dHB1dF90 b2tlbiwKKy0JCQkJTlVMTCwgLyogcmV0X2ZsYWdzICovCistCQkJCU5VTEwpOyAvKiB0aW1lX3Jl YyAqLworKwlzbnByaW50ZihzZXJ2aWNlX25hbWUsIHNlcnZpY2VfbmFtZV9sZW4sICIlc0AlcyIs IHN2Yy0+bmFtZSwgaG9zdCk7CisgCistCQlpZiAobWFqX3N0YXQgPT0gR1NTX1NfQ09NUExFVEUg fHwgbWFqX3N0YXQgPT0gR1NTX1NfQ09OVElOVUVfTkVFREVEKSB7CistCQkJYnJlYWs7CistCQl9 CistCQkodm9pZCkgZ3NzX3JlbGVhc2VfbmFtZSgmbWluX3N0YXQsICZ0YXJnZXRfbmFtZSk7Cisr CXRhcmdldF9uYW1lX2J1Zi52YWx1ZSA9IHNlcnZpY2VfbmFtZTsKKysJdGFyZ2V0X25hbWVfYnVm Lmxlbmd0aCA9IHNlcnZpY2VfbmFtZV9sZW47CisrCW1hal9zdGF0ID0gZ3NzX2ltcG9ydF9uYW1l KCZtaW5fc3RhdCwgJnRhcmdldF9uYW1lX2J1ZiwKKysJCQkJICAgR1NTX0NfTlRfSE9TVEJBU0VE X1NFUlZJQ0UsICZ0YXJnZXRfbmFtZSk7CisrCWZyZWUoc2VydmljZV9uYW1lKTsKKysJaWYgKEdT U19FUlJPUihtYWpfc3RhdCkpIHsKKysJCWNpZnNfZ3NzX2Rpc3BsYXlfc3RhdHVzKCJnc3NfaW1w b3J0X25hbWUiLCBtYWpfc3RhdCwgbWluX3N0YXQpOworKwkJZ290byBvdXQ7CisgCX0KKysKKysJ bWFqX3N0YXQgPSBnc3NfaW5pdF9zZWNfY29udGV4dCgmbWluX3N0YXQsCisrCQkJR1NTX0NfTk9f Q1JFREVOVElBTCwgLyogY2xhaW1hbnRfY3JlZF9oYW5kbGUgKi8KKysJCQkmY3R4LAorKwkJCXRh cmdldF9uYW1lLAorKwkJCWRpc2NhcmRfY29uc3QoZ3NzX21lY2hfa3JiNSksIC8qIGZvcmNlIGty YjUgKi8KKysJCQkwLCAvKiBmbGFncyAqLworKwkJCTAsIC8qIHRpbWVfcmVxICovCisrCQkJR1NT X0NfTk9fQ0hBTk5FTF9CSU5ESU5HUywgLyogaW5wdXRfY2hhbl9iaW5kaW5ncyAqLworKwkJCUdT U19DX05PX0JVRkZFUiwKKysJCQlOVUxMLCAvKiBhY3R1YWwgbWVjaCB0eXBlICovCisrCQkJJm91 dHB1dF90b2tlbiwKKysJCQlOVUxMLCAvKiByZXRfZmxhZ3MgKi8KKysJCQlOVUxMKTsgLyogdGlt ZV9yZWMgKi8KKyAJaWYgKG1hal9zdGF0ICE9IEdTU19TX0NPTVBMRVRFICYmCisgCQltYWpfc3Rh dCAhPSBHU1NfU19DT05USU5VRV9ORUVERUQpIHsKKyAJCWNpZnNfZ3NzX2Rpc3BsYXlfc3RhdHVz KCJpbml0X3NlY19jb250ZXh0IiwgbWFqX3N0YXQsIG1pbl9zdGF0KTsKK0BAIC05MTQsOCArODk3 LDcgQEAgY2lmc19nc3NfZ2V0X3JlcShjb25zdCBjaGFyICpob3N0LCBEQVRBX0JMT0IgKm1lY2h0 b2tlbiwgREFUQV9CTE9CICpzZXNzX2tleSkKKyAJKm1lY2h0b2tlbiA9IGRhdGFfYmxvYihvdXRw dXRfdG9rZW4udmFsdWUsIG91dHB1dF90b2tlbi5sZW5ndGgpOworIAorIAltYWpfc3RhdCA9IGdz c19rcmI1X2V4cG9ydF9sdWNpZF9zZWNfY29udGV4dCgmbWluX3N0YXQsICZjdHgsIDEsCistCQkJ CQkJCSh2b2lkICoqKSZsdWNpZF9jdHgpOworLQorKwkJCQkJCSAgICAgKHZvaWQgKiopJmx1Y2lk X2N0eCk7CisgCWlmIChHU1NfRVJST1IobWFqX3N0YXQpKSB7CisgCQljaWZzX2dzc19kaXNwbGF5 X3N0YXR1cygiZ3NzX2tyYjVfZXhwb3J0X2x1Y2lkX3NlY19jb250ZXh0IiwKKyAJCQkJCW1hal9z dGF0LCBtaW5fc3RhdCk7CitAQCAtOTcyLDkgKzk1NCw5IEBAIG91dDoKKyAgKgorICAqIHJldDog MCAtIHN1Y2Nlc3MsIG90aGVycyAtIGZhaWx1cmUKKyAgKi8KKy1zdGF0aWMgaW50CistaGFuZGxl X2tyYjVfbWVjaChjb25zdCBjaGFyICpvaWQsIGNvbnN0IGNoYXIgKmhvc3QsIERBVEFfQkxPQiAq IHNlY2Jsb2IsCistCQkgREFUQV9CTE9CICogc2Vzc19rZXksIGtyYjVfY2NhY2hlIGNjYWNoZSkK KytzdGF0aWMgaW50IGhhbmRsZV9rcmI1X21lY2goY29uc3QgY2hhciAqb2lkLCBjb25zdCBzdHJ1 Y3QgY2lmc19zZXJ2aWNlX25hbWUgKnN2YywKKysJCQkgICAgY29uc3QgY2hhciAqaG9zdCwgREFU QV9CTE9CICpzZWNibG9iLAorKwkJCSAgICBEQVRBX0JMT0IgKnNlc3Nfa2V5LCBrcmI1X2NjYWNo ZSBjY2FjaGUpCisgeworIAlpbnQgcmV0dmFsOworIAlEQVRBX0JMT0IgdGt0X3dyYXBwZWQ7CitA QCAtOTg3LDcgKzk2OSw3IEBAIGhhbmRsZV9rcmI1X21lY2goY29uc3QgY2hhciAqb2lkLCBjb25z dCBjaGFyICpob3N0LCBEQVRBX0JMT0IgKiBzZWNibG9iLAorIAkgKi8KKyAJaWYgKCFjY2FjaGUp IHsKKyAJCXN5c2xvZyhMT0dfREVCVUcsICIlczogdXNpbmcgR1NTLUFQSSIsIF9fZnVuY19fKTsK Ky0JCXJldHZhbCA9IGNpZnNfZ3NzX2dldF9yZXEoaG9zdCwgJnRrdF93cmFwcGVkLCBzZXNzX2tl eSk7CisrCQlyZXR2YWwgPSBjaWZzX2dzc19nZXRfcmVxKHN2YywgaG9zdCwgJnRrdF93cmFwcGVk LCBzZXNzX2tleSk7CisgCQlpZiAocmV0dmFsKSB7CisgCQkJc3lzbG9nKExPR19ERUJVRywgIiVz OiBmYWlsZWQgdG8gb2J0YWluIHNlcnZpY2UgdGlja2V0IHZpYSBHU1MgKCVkKSIsCisgCQkJX19m dW5jX18sIHJldHZhbCk7CitAQCAtOTk4LDcgKzk4MCw3IEBAIGhhbmRsZV9rcmI1X21lY2goY29u c3QgY2hhciAqb2lkLCBjb25zdCBjaGFyICpob3N0LCBEQVRBX0JMT0IgKiBzZWNibG9iLAorIAkJ c3lzbG9nKExPR19ERUJVRywgIiVzOiB1c2luZyBuYXRpdmUga3JiNSIsIF9fZnVuY19fKTsKKyAK KyAJCS8qIGdldCBhIGtlcmJlcm9zIHRpY2tldCBmb3IgdGhlIHNlcnZpY2UgYW5kIGV4dHJhY3Qg dGhlIHNlc3Npb24ga2V5ICovCistCQlyZXR2YWwgPSBjaWZzX2tyYjVfZ2V0X3JlcShob3N0LCBj Y2FjaGUsICZ0a3QsIHNlc3Nfa2V5KTsKKysJCXJldHZhbCA9IGNpZnNfa3JiNV9nZXRfcmVxKHN2 YywgaG9zdCwgY2NhY2hlLCAmdGt0LCBzZXNzX2tleSk7CisgCQlpZiAocmV0dmFsKSB7CisgCQkJ c3lzbG9nKExPR19ERUJVRywgIiVzOiBmYWlsZWQgdG8gb2J0YWluIHNlcnZpY2UgdGlja2V0ICgl ZCkiLAorIAkJCSAgICAgICBfX2Z1bmNfXywgcmV0dmFsKTsKK0BAIC0xNTcwLDYgKzE1NTIsODMg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvcHRpb24gbG9uZ19vcHRpb25zW10gPSB7CisgCXtOVUxM LCAwLCBOVUxMLCAwfQorIH07CisgCisrc3RhdGljIGxvbmcgZ2V0X3Nwbl9rZXlfZnJvbV9ob3N0 KGNvbnN0IHN0cnVjdCBkZWNvZGVkX2FyZ3MgKmFyZywKKysJCQkJICBjb25zdCBzdHJ1Y3QgY2lm c19zZXJ2aWNlX25hbWUgKnN2YywKKysJCQkJICBjaGFyICpob3N0LCBEQVRBX0JMT0IgKnNlY2Js b2IsCisrCQkJCSAgREFUQV9CTE9CICpzZXNzX2tleSwgYm9vbCB0cnlfZG5zLAorKwkJCQkgIGty YjVfY2NhY2hlIGNjYWNoZSkKKyt7CisrCWNoYXIgaG9zdGJ1ZltOSV9NQVhIT1NUXSA9IHt9Owor Kwljb25zdCBjaGFyICpvaWQ7CisrCWxvbmcgcmM7CisrCisrCWlmIChhcmctPnNlYyA9PSBNU19L UkI1KQorKwkJb2lkID0gT0lEX0tFUkJFUk9TNV9PTEQ7CisrCWVsc2UKKysJCW9pZCA9IE9JRF9L RVJCRVJPUzU7CisrCisrcmV0cnlfbmV3X2hvc3RuYW1lOgorKwlsb3dlcmNhc2Vfc3RyaW5nKGhv c3QpOworKwlyYyA9IGhhbmRsZV9rcmI1X21lY2gob2lkLCBzdmMsIGhvc3QsIHNlY2Jsb2IsIHNl c3Nfa2V5LCBjY2FjaGUpOworKwlpZiAoIXJjKQorKwkJcmV0dXJuIHJjOworKworKwkvKgorKwkg KiBJZiBob3N0bmFtZSBoYXMgYSAnLicsIGFzc3VtZSBpdCdzIGEgRlFETiwgb3RoZXJ3aXNlIHdl CisrCSAqIHdhbnQgdG8gZ3Vlc3MgdGhlIGRvbWFpbm5hbWUuCisrCSAqLworKwlpZiAoIXN0cmNo cihob3N0LCAnLicpKSB7CisrCQlzdHJ1Y3QgYWRkcmluZm8gaGludHMgPSB7fTsKKysJCXN0cnVj dCBhZGRyaW5mbyAqYWk7CisrCQljaGFyICpkb21haW5uYW1lOworKwkJY2hhciBmcWRuW05JX01B WEhPU1RdOworKworKwkJLyoKKysJCSAqIHVzZSBnZXRhZGRyaW5mbygpIHRvIHJlc29sdmUgdGhl IGhvc3RuYW1lIG9mIHRoZQorKwkJICogc2VydmVyIGFuZCBzZXQgYWlfY2Fub25uYW1lLgorKwkJ ICovCisrCQloaW50cy5haV9mYW1pbHkgPSBBRl9VTlNQRUM7CisrCQloaW50cy5haV9mbGFncyA9 IEFJX0NBTk9OTkFNRTsKKysJCXJjID0gZ2V0YWRkcmluZm8oaG9zdCwgTlVMTCwgJmhpbnRzLCAm YWkpOworKwkJaWYgKHJjKSB7CisrCQkJc3lzbG9nKExPR19FUlIsICJVbmFibGUgdG8gcmVzb2x2 ZSBob3N0IGFkZHJlc3M6ICVzIFslc10iLAorKwkJCSAgICAgICBob3N0LCBnYWlfc3RyZXJyb3Io cmMpKTsKKysJCQlyZXR1cm4gcmM7CisrCQl9CisrCisrCQkvKiBzY2FuIGZvcndhcmQgdG8gZmly c3QgJy4nIGluIGFpX2Nhbm9ubm5hbWUgKi8KKysJCWRvbWFpbm5hbWUgPSBzdHJjaHIoYWktPmFp X2Nhbm9ubmFtZSwgJy4nKTsKKysJCWlmICghZG9tYWlubmFtZSkgeworKwkJCXJjID0gLUVJTlZB TDsKKysJCQlmcmVlYWRkcmluZm8oYWkpOworKwkJCXJldHVybiByYzsKKysJCX0KKysJCWxvd2Vy Y2FzZV9zdHJpbmcoZG9tYWlubmFtZSk7CisrCQlyYyA9IHNucHJpbnRmKGZxZG4sIHNpemVvZihm cWRuKSwgIiVzJXMiLAorKwkJCSAgICAgIGhvc3QsIGRvbWFpbm5hbWUpOworKwkJZnJlZWFkZHJp bmZvKGFpKTsKKysJCWlmIChyYyA8IDAgfHwgKHNpemVfdClyYyA+PSBzaXplb2YoZnFkbikpIHsK KysJCQlzeXNsb2coTE9HX0VSUiwgIlByb2JsZW0gc2V0dGluZyBob3N0bmFtZSBpbiBzdHJpbmc6 ICVsZCIsIHJjKTsKKysJCQlyYyA9IC1FSU5WQUw7CisrCQkJcmV0dXJuIHJjOworKwkJfQorKwor KwkJcmMgPSBoYW5kbGVfa3JiNV9tZWNoKG9pZCwgc3ZjLCBmcWRuLCBzZWNibG9iLCBzZXNzX2tl eSwgY2NhY2hlKTsKKysJCWlmICghcmMpCisrCQkJcmV0dXJuIHJjOworKwl9CisrCisrCWlmICh0 cnlfZG5zICYmIChhcmctPmhhdmUgJiBES0RfSEFWRV9JUCkpIHsKKysJCXJjID0gaXBfdG9fZnFk bihhcmctPmlwLCBob3N0YnVmLCBzaXplb2YoaG9zdGJ1ZikpOworKwkJaWYgKHJjKQorKwkJCXJl dHVybiByYzsKKysJCXRyeV9kbnMgPSBmYWxzZTsKKysJCWhvc3QgPSBob3N0YnVmOworKwkJZ290 byByZXRyeV9uZXdfaG9zdG5hbWU7CisrCX0KKysJcmV0dXJuIHJjOworK30KKysKKyBpbnQgbWFp bihjb25zdCBpbnQgYXJnYywgY2hhciAqY29uc3QgYXJndltdKQorIHsKKyAJc3RydWN0IGNpZnNf c3BuZWdvX21zZyAqa2V5ZGF0YSA9IE5VTEw7CitAQCAtMTU4Miw5ICsxNjQxLDggQEAgaW50IG1h aW4oY29uc3QgaW50IGFyZ2MsIGNoYXIgKmNvbnN0IGFyZ3ZbXSkKKyAJaW50IG1hc2s7CisgCWJv b2wgdHJ5X2RucyA9IGZhbHNlLCBsZWdhY3lfdWlkID0gZmFsc2UgLCBlbnZfcHJvYmUgPSB0cnVl OworIAljaGFyICpidWY7CistCWNoYXIgaG9zdGJ1ZltOSV9NQVhIT1NUXSwgKmhvc3Q7CisrCWNo YXIgKmhvc3Q7CisgCXN0cnVjdCBkZWNvZGVkX2FyZ3MgKmFyZyA9IE5VTEw7CistCWNvbnN0IGNo YXIgKm9pZDsKKyAJdWlkX3QgdWlkOworIAlnaWRfdCBnaWQ7CisgCXN0cnVjdCBwYXNzd2QgKnB3 OworQEAgLTE1OTMsOCArMTY1MSw4IEBAIGludCBtYWluKGNvbnN0IGludCBhcmdjLCBjaGFyICpj b25zdCBhcmd2W10pCisgCWtyYjVfY2NhY2hlIGNjYWNoZSA9IE5VTEw7CisgCXVuc2lnbmVkIGV4 cGlyZV90aW1lID0gRE5TX1JFU09MVkVSX0RFRkFVTFRfVElNRU9VVDsKKyAJY29uc3QgY2hhciAq a2V5X2Rlc2NyID0gTlVMTDsKKy0KKy0JaG9zdGJ1ZlswXSA9ICdcMCc7CisrCXNpemVfdCBpOwor KwlzaXplX3QgbnVtX3NwbnMgPSBzaXplb2YoY2lmc19zZXJ2aWNlX25hbWVzKSAvIHNpemVvZihj aWZzX3NlcnZpY2VfbmFtZXNbMF0pOworIAorIAlvcGVubG9nKHByb2csIDAsIExPR19EQUVNT04p OworIAltYXNrID0gTE9HX1VQVE8oTE9HX0VSUik7CitAQCAtMTg2NCw3MyArMTkyMiwxNCBAQCBp bnQgbWFpbihjb25zdCBpbnQgYXJnYywgY2hhciAqY29uc3QgYXJndltdKQorIAkJICogVFJZIG9u bHk6CisgCQkgKiBjaWZzL2Jhci5leGFtcGxlLmNvbUBSRUFMTQorIAkJICovCistCQlpZiAoYXJn LT5zZWMgPT0gTVNfS1JCNSkKKy0JCQlvaWQgPSBPSURfS0VSQkVST1M1X09MRDsKKy0JCWVsc2UK Ky0JCQlvaWQgPSBPSURfS0VSQkVST1M1OworLQorLXJldHJ5X25ld19ob3N0bmFtZToKKy0JCWxv d2VyY2FzZV9zdHJpbmcoaG9zdCk7CistCQlyYyA9IGhhbmRsZV9rcmI1X21lY2gob2lkLCBob3N0 LCAmc2VjYmxvYiwgJnNlc3Nfa2V5LCBjY2FjaGUpOworLQkJaWYgKCFyYykKKy0JCQlicmVhazsK Ky0KKy0JCS8qCistCQkgKiBJZiBob3N0bmFtZSBoYXMgYSAnLicsIGFzc3VtZSBpdCdzIGEgRlFE Tiwgb3RoZXJ3aXNlIHdlCistCQkgKiB3YW50IHRvIGd1ZXNzIHRoZSBkb21haW5uYW1lLgorLQkJ ICovCistCQlpZiAoIXN0cmNocihob3N0LCAnLicpKSB7CistCQkJc3RydWN0IGFkZHJpbmZvIGhp bnRzOworLQkJCXN0cnVjdCBhZGRyaW5mbyAqYWk7CistCQkJY2hhciAqZG9tYWlubmFtZTsKKy0J CQljaGFyIGZxZG5bTklfTUFYSE9TVF07CistCistCQkJLyoKKy0JCQkgKiB1c2UgZ2V0YWRkcmlu Zm8oKSB0byByZXNvbHZlIHRoZSBob3N0bmFtZSBvZiB0aGUKKy0JCQkgKiBzZXJ2ZXIgYW5kIHNl dCBhaV9jYW5vbm5hbWUuCistCQkJICovCistCQkJbWVtc2V0KCZoaW50cywgMCwgc2l6ZW9mKGhp bnRzKSk7CistCQkJaGludHMuYWlfZmFtaWx5ID0gQUZfVU5TUEVDOworLQkJCWhpbnRzLmFpX2Zs YWdzID0gQUlfQ0FOT05OQU1FOworLQkJCXJjID0gZ2V0YWRkcmluZm8oaG9zdCwgTlVMTCwgJmhp bnRzLCAmYWkpOworLQkJCWlmIChyYykgeworLQkJCQlzeXNsb2coTE9HX0VSUiwgIlVuYWJsZSB0 byByZXNvbHZlIGhvc3QgYWRkcmVzczogJXMgWyVzXSIsCistCQkJCSAgICAgICBob3N0LCBnYWlf c3RyZXJyb3IocmMpKTsKKy0JCQkJYnJlYWs7CistCQkJfQorLQorLQkJCS8qIHNjYW4gZm9yd2Fy ZCB0byBmaXJzdCAnLicgaW4gYWlfY2Fub25ubmFtZSAqLworLQkJCWRvbWFpbm5hbWUgPSBzdHJj aHIoYWktPmFpX2Nhbm9ubmFtZSwgJy4nKTsKKy0JCQlpZiAoIWRvbWFpbm5hbWUpIHsKKy0JCQkJ cmMgPSAtRUlOVkFMOworLQkJCQlmcmVlYWRkcmluZm8oYWkpOworLQkJCQlicmVhazsKKy0JCQl9 CistCQkJbG93ZXJjYXNlX3N0cmluZyhkb21haW5uYW1lKTsKKy0JCQlyYyA9IHNucHJpbnRmKGZx ZG4sIHNpemVvZihmcWRuKSwgIiVzJXMiLAorLQkJCQkJaG9zdCwgZG9tYWlubmFtZSk7CistCQkJ ZnJlZWFkZHJpbmZvKGFpKTsKKy0JCQlpZiAocmMgPCAwIHx8IChzaXplX3QpcmMgPj0gc2l6ZW9m KGZxZG4pKSB7CistCQkJCXN5c2xvZyhMT0dfRVJSLCAiUHJvYmxlbSBzZXR0aW5nIGhvc3RuYW1l IGluIHN0cmluZzogJWxkIiwgcmMpOworLQkJCQlyYyA9IC1FSU5WQUw7CistCQkJCWJyZWFrOwor LQkJCX0KKy0KKy0JCQlyYyA9IGhhbmRsZV9rcmI1X21lY2gob2lkLCBmcWRuLCAmc2VjYmxvYiwg JnNlc3Nfa2V5LCBjY2FjaGUpOworKwkJZm9yIChpID0gMDsgaSA8IG51bV9zcG5zOyBpKyspIHsK KysJCQlyYyA9IGdldF9zcG5fa2V5X2Zyb21faG9zdChhcmcsICZjaWZzX3NlcnZpY2VfbmFtZXNb aV0sCisrCQkJCQkJICAgaG9zdCwgJnNlY2Jsb2IsICZzZXNzX2tleSwKKysJCQkJCQkgICB0cnlf ZG5zLCBjY2FjaGUpOworIAkJCWlmICghcmMpCisgCQkJCWJyZWFrOworIAkJfQorLQorLQkJaWYg KCF0cnlfZG5zIHx8ICEoYXJnLT5oYXZlICYgREtEX0hBVkVfSVApKQorLQkJCWJyZWFrOworLQor LQkJcmMgPSBpcF90b19mcWRuKGFyZy0+aXAsIGhvc3RidWYsIHNpemVvZihob3N0YnVmKSk7Cist CQlpZiAocmMpCistCQkJYnJlYWs7CistCistCQl0cnlfZG5zID0gZmFsc2U7CistCQlob3N0ID0g aG9zdGJ1ZjsKKy0JCWdvdG8gcmV0cnlfbmV3X2hvc3RuYW1lOworKwkJYnJlYWs7CisgCWRlZmF1 bHQ6CisgCQlzeXNsb2coTE9HX0VSUiwgInNlY3R5cGU6ICVkIGlzIG5vdCBpbXBsZW1lbnRlZCIs IGFyZy0+c2VjKTsKKyAJCXJjID0gMTsKKy0tIAorMi41NS4wCisKCmRpZmYgLS1naXQgYS9jaWZz LnVwY2FsbC1maXgtcmVncmVzc2lvbi13aXRoLWtyYjUtY3JlZHVpZC5wYXRjaCBiL2NpZnMudXBj YWxsLWZpeC1yZWdyZXNzaW9uLXdpdGgta3JiNS1jcmVkdWlkLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA0NDZjMzliLi4wMDAwMDAwCi0tLSBhL2NpZnMudXBjYWxsLWZpeC1y ZWdyZXNzaW9uLXdpdGgta3JiNS1jcmVkdWlkLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzkx ICswLDAgQEAKLUZyb20gZTk0OTU5NjNlMGQ1YzI2ZjdkMDEzNzgyOWQ4ZGM2MjUxMzBiNTNjYyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEVuem8gTWF0c3VtaXlhIDxlbWF0c3VtaXlh QHN1c2UuZGU+Ci1EYXRlOiBNb24sIDYgSnVsIDIwMjYgMTA6NTU6NTUgLTAzMDAKLVN1YmplY3Q6 IFtQQVRDSF0gY2lmcy51cGNhbGw6IGZpeCByZWdyZXNzaW9uIHdpdGgga3JiNSArIGNyZWR1aWQK LQotQ29tbWl0IDk3MmM1YjVmZjk1ZSAoImNpZnMudXBjYWxsOiByZW1vdmUgZ2V0cHd1aWQoKSBk ZXBlbmRlbmN5IikKLWludHJvZHVjZWQgYSByZWdyZXNzaW9uIHdoZW4gdXNpbmcgY3JlZHVpZCAh PSB1aWQgKGUuZy4KLSJtb3VudC5jaWZzIC1vIHNlYz1rcmI1LGNydWlkPVgiKSwgc28gJ3VpZCcg bG9jYWwgdmFyIGlzIHJlcGxhY2VkCi13aXRoIHByb2NmcyAiVWlkIiB2YWx1ZSAoaW4gdGhlIGV4 YW1wbGUsIHRoZSBvbmUgZnJvbSBtb3VudC5jaWZzKS4KLQotVGhhdCBjb21taXQgaWdub3JlZCB0 aGUgZmFjdCB0aGF0OgotICBtb3VudCBVSUQgY2FuIGJlIGRpZmZlcmVudCBmcm9tIGNyZWRzIFVJ RCwgYW5kIHRoYXQgY2FsbGluZy1hcHAKLSAgcHJvY2VzcyAocG9zdC1tb3VudCkgY2FuIGJlIGRp ZmZlcmVudCBmcm9tIGJvdGgKLQotVGhpcyBwYXRjaCAicmV2ZXJ0cyIgOTcyYzViNWZmOTVlICgi Y2lmcy51cGNhbGw6IHJlbW92ZSBnZXRwd3VpZCgpCi1kZXBlbmRlbmN5Iik7IHRyYW5zZm9ybSB0 aGUgImVtZXJnZW5jeSItYWRkZWQgZnVuY3Rpb24gZ2V0X3VpZGdpZCgpCi1pbnRvIG1hcF91aWRn aWQoKSwgbm93IG9ubHkgdXNlZCB0byBkbyBOUyBVSUQvR0lEIG1hcHBpbmcuCi0KLUFsc28gYWRk IGdldHB3dWlkKCkgYmFjaywgYnV0IHRoaXMgdGltZSBjYWxsZWQgd2hpbGUgc3RpbGwgb24gaG9z dAotbmFtZXNwYWNlLCBzbyBhbnkgcG9zc2libGUgY3VzdG9tIE5TUyBtb2R1bGUgaXMgcmFuIGFz IGFsbG93ZWQgYnkKLXN5c2FkbWluLgotCi1Bbnkgc2NlbmFyaW8gaW52b2x2aW5nIHVubWFwcGVk IFVJRHMgb3IgR0lEcyBpcyB1bnN1cHBvcnRlZDsgdGhpcwotbWVhbnMgdGhhdCBhbnkgVUlEOkdJ RCBpbiBhIGNoaWxkIHVzZXIgbmFtZXNwYWNlIF9tdXN0XyBtYXAgYmFjayB0bwotYSB2YWxpZCBh bmQgZXhpc3RpbmcgaG9zdCBVSUQ6R0lELgotCi1GaXhlczogOTcyYzViNWZmOTVlICgiY2lmcy51 cGNhbGw6IHJlbW92ZSBnZXRwd3VpZCgpIGRlcGVuZGVuY3kiKQotUmVwb3J0ZWQtYnk6IFBhdWxv IEFsY2FudGFyYSAoUmVkIEhhdCkgPHBjQG1hbmd1ZWJpdC5vcmc+Ci1TaWduZWQtb2ZmLWJ5OiBF bnpvIE1hdHN1bWl5YSA8ZW1hdHN1bWl5YUBzdXNlLmRlPgotU2lnbmVkLW9mZi1ieTogUGF1bG8g QWxjYW50YXJhIChSZWQgSGF0KSA8cGNAbWFuZ3VlYml0Lm9yZz4KLVNpZ25lZC1vZmYtYnk6IFN0 ZXZlIEZyZW5jaCA8c3RmcmVuY2hAbWljcm9zb2Z0LmNvbT4KLS0tLQotIGNpZnMudXBjYWxsLmMg fCAyNzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0K LSAxIGZpbGUgY2hhbmdlZCwgMTc3IGluc2VydGlvbnMoKyksIDEwMiBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL2NpZnMudXBjYWxsLmMgYi9jaWZzLnVwY2FsbC5jCi1pbmRleCA3NDc2MTc3 OTA1NzYuLjQyMjA1ZTY2YTY3NiAxMDA2NDQKLS0tLSBhL2NpZnMudXBjYWxsLmMKLSsrKyBiL2Np ZnMudXBjYWxsLmMKLUBAIC01Miw2ICs1Miw3IEBACi0gI2luY2x1ZGUgPGFycGEvaW5ldC5oPgot ICNpbmNsdWRlIDxjdHlwZS5oPgotICNpbmNsdWRlIDxncnAuaD4KLSsjaW5jbHVkZSA8cHdkLmg+ Ci0gI2luY2x1ZGUgPHN0ZGJvb2wuaD4KLSAjaW5jbHVkZSA8ZXJybm8uaD4KLSAjaW5jbHVkZSA8 c2NoZWQuaD4KLUBAIC0xMzc1LDExOCArMTM3NiwxNzAgQEAgc3RhdGljIGludCBpcF90b19mcWRu KGNvbnN0IGNoYXIgKmFkZHJzdHIsIGNoYXIgKmhvc3QsIHNpemVfdCBob3N0bGVuKQotIAlyZXR1 cm4gMDsKLSB9Ci0gCi0tLyogY292ZXIgd29yc3QgY2FzZS9pbXBvc3NpYmxlIHNjZW5hcmlvcyAq LwotLSNkZWZpbmUgUFJPQ19QSURfUEFUSF9NQVhMRU4JKChpbnQpc2l6ZW9mKCIvcHJvYy8yMTQ3 NDgzNjQ3L3N0YXR1cyIpKQotLS8qIG1heCB2YWxpZCBVSUQvR0lEIGlzIChVSU5UX01BWCAtIDEp ICovCi0tI2RlZmluZSBJTlZBTElEX1VJREdJRAkJVUlOVF9NQVgKLSsjZGVmaW5lIElEX01BUF9Q QVRIX01BWCAoKGludClzaXplb2YoIi9wcm9jLzIxNDc0ODM2NDcvdWlkX21hcCIpKQotIAotLS8q Ci0tICogZ2V0X3VpZGdpZCAtIEdldCBAcGlkJ3MgKHJlYWwpIFVJRCBhbmQvb3IgR0lELgotLSAq IEBwaWQ6IHByb2Nlc3MgdG8gZ2V0IFVJRC9HSUQgZnJvbQotLSAqIEB1aWRwOiBwb2ludGVyIHRv IHN0b3JlIEBwaWQncyBVSUQgKGNhbiBiZSBOVUxMKQotLSAqIEBnaWRwOiBwb2ludGVyIHRvIHN0 b3JlIEBwaWQncyBHSUQgKGNhbiBiZSBOVUxMKQotLSAqCi0tICogRXh0cmFjdCAiVWlkOiIgYW5k ICJHaWQ6IiBmaWVsZHMgZnJvbSAvcHJvYy9AcGlkL3N0YXR1cy4KLS0gKiBEbyBzbyBiYXNlZCBv biB3aGV0aGVyIEB1aWRwIG9yIEBnaWRwIGFyZSBOVUxMLgotLSAqCi0tICogVGhpcyBmdW5jdGlv biBhc3N1bWVzIHdlJ3JlIG9uIHRoZSBzYW1lIG5hbWVzcGFjZSBhcyBAcGlkLgotLSAqCi0tICog UmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIC0xIG90aGVyd2lzZSAoZXJybm8gc2V0KS4KLS0gKgotLSAq IE9uIGVycm9ycywgKkB1aWRwIGFuZCAqQGdpZHAgYXJlIHNldCB0byBJTlZBTElEX1VJREdJRC4K LS0gKi8KLS1zdGF0aWMgaW50IGdldF91aWRnaWQocGlkX3QgcGlkLCB1aWRfdCAqdWlkcCwgZ2lk X3QgKmdpZHApCi0rc3RhdGljIGludCBtYXBfaWQocGlkX3QgcGlkLCBjb25zdCBjaGFyICptYXAs IHVuc2lnbmVkIGludCAqaWRwKQotIHsKLS0JY2hhciBwYXRoW1BST0NfUElEX1BBVEhfTUFYTEVO XSA9IHt9LCBidWZbMjU2XTsKLSsJdW5zaWduZWQgbG9uZyBsb25nIG5zX3N0YXJ0LCBob3N0X3N0 YXJ0LCByYW5nZTsKLSsJY2hhciBtYXBfcGF0aFtJRF9NQVBfUEFUSF9NQVhdOwotKwlpbnQgbWFw X3BhdGhfc2l6ZSA9IHNpemVvZihtYXBfcGF0aCk7Ci0rCXVuc2lnbmVkIGludCBpZDsKLSAJRklM RSAqZnAgPSBOVUxMOwotLQlpbnQgcmV0OwotKwlpbnQgcmV0ID0gMTsKLSAKLS0JZXJybm8gPSAw OwotLQlpZiAocGlkIDwgMCB8fCAoIXVpZHAgJiYgIWdpZHApKSB7Ci0tCQllcnJubyA9IEVJTlZB TDsKLS0JCXJldHVybiAtMTsKLS0JfQotKwllcnJubyA9IEVJTlZBTDsKLSsJaWYgKHBpZCA8IDAg fHwgIW1hcCB8fCAhaWRwIHx8ICppZHAgPT0gVUlOVF9NQVgpCi0rCQlnb3RvIG91dDsKLSAKLS0J aWYgKHVpZHApCi0tCQkqdWlkcCA9IElOVkFMSURfVUlER0lEOwotLQotLQlpZiAoZ2lkcCkKLS0J CSpnaWRwID0gSU5WQUxJRF9VSURHSUQ7Ci0tCi0tCXJldCA9IHNucHJpbnRmKHBhdGgsIFBST0Nf UElEX1BBVEhfTUFYTEVOLCAiL3Byb2MvJWQvc3RhdHVzIiwgcGlkKTsKLS0JaWYgKHJldCA8IDAg fHwgcmV0ID49IFBST0NfUElEX1BBVEhfTUFYTEVOKSB7Ci0tCQlpZiAoIWVycm5vKQotKwlyZXQg PSBzbnByaW50ZihtYXBfcGF0aCwgbWFwX3BhdGhfc2l6ZSwgIi9wcm9jLyVkLyVzIiwgcGlkLCBt YXApOwotKwlpZiAocmV0IDwgMCB8fCByZXQgPj0gbWFwX3BhdGhfc2l6ZSkgewotKwkJaWYgKHJl dCA+PSBtYXBfcGF0aF9zaXplKQotIAkJCWVycm5vID0gRU5BTUVUT09MT05HOwotLQkJcmV0dXJu IC0xOwotKwkJcmV0ID0gMTsKLSsJCWdvdG8gb3V0OwotIAl9Ci0gCi0tCWZwID0gZm9wZW4ocGF0 aCwgInIiKTsKLS0JaWYgKCFmcCkgewotLQkJcmV0ID0gLTE7Ci0rCXJldCA9IDE7Ci0rCWZwID0g Zm9wZW4obWFwX3BhdGgsICJyIik7Ci0rCWlmICghZnApCi0gCQlnb3RvIG91dDsKLS0JfQotIAot LQkvKiBQYXJzZSAvcHJvYy9waWQvc3RhdHVzIGZpZWxkcyAqLwotLQllcnJubyA9IDA7Ci0tCXJl dCA9IC0xOwotLQl3aGlsZSAoZmdldHMoYnVmLCAyNTYsIGZwKSkgewotLQkJdW5zaWduZWQgbG9u ZyBsb25nIHZhbDsKLSsJLyoKLSsJICogVGhlIG1hcCBmaWxlcyBoYXZlIHRoZSBzYW1lIGZvcm1h dDoKLSsJICogICA8TlMgSUQgc3RhcnQ+IDxob3N0IElEIHN0YXJ0PiA8cmFuZ2U+Ci0rCSAqICAg Li4uICg8bXVsdGlwbGUgZW50cmllcyBhcmUgc3VwcG9ydGVkKSAuLi4KLSsJICoKLSsJICogRm9y bXVsYSBhbmQgdmFsaWRhdGlvbjoKLSsJICogICA8ZmluYWwgTlMgSUQ+ID0gKCpAaWRwIC0gPGhv c3QgSUQgc3RhcnQ+KSArIDxOUyBJRCBzdGFydD4KLSsJICoKLSsJICogLSBJRHM6IFswLCBVSU5U X01BWCAtIDFdCi0rCSAqIC0gcmFuZ2U6IFsxLCBVSU5UX01BWF0sIHdoZXJlIHJhbmdlID09IFVJ TlRfTUFYIHJlcXVpcmVzIGJvdGggSUQgcmFuZ2VzIHRvIHN0YXJ0IGF0IDAsCi0rCSAqICAgd2hp Y2ggdGhlbiBtZWFucyB0aGlzIGlzIGFuIGluaXQgaG9zdCBOUyBtYXBwaW5nIChhbmQgdGhhdCdz IG9rKQotKwkgKgotKwkgKiBUaGUgZm9ybXVsYSBpdHNlbGYgd291bGQgYmUgZW5vdWdoIHRvICJ2 YWxpZGF0ZSIgYSBtYXRjaGluZyBOUyBJRCwgYnV0IHdlIGRvbid0IHdhbnQgdG8KLSsJICoga2Vl cCBwYXJzaW5nIGEgbWFsZm9ybWVkIG1hcCBmaWxlLCBubyBtYXR0ZXIgaG93IHVubGlrZWx5L2lt cG9zc2libGUgaXQgaXMgdG8gaGFwcGVuLgotKwkgKiBTYW1lIHJlYXNvbiB2YWx1ZXMgYXJlIHBh cnNlZCBhcyAndW5zaWduZWQgbG9uZyBsb25nJywgc28gd2UgY2FuIGNoZWNrIGZvciBib2d1cyBk YXRhLgotKwkgKi8KLSsJaWQgPSBVSU5UX01BWDsKLSsJZXJybm8gPSBFTk9EQVRBOwotKwl3aGls ZSAoZnNjYW5mKGZwLCAiJWxsdSAlbGx1ICVsbHUiLCAmbnNfc3RhcnQsICZob3N0X3N0YXJ0LCAm cmFuZ2UpID09IDMpIHsKLSsJCWlmIChuc19zdGFydCA+PSBVSU5UX01BWCB8fCBob3N0X3N0YXJ0 ID49IFVJTlRfTUFYIHx8Ci0rCQkgICAgcmFuZ2UgPiBVSU5UX01BWCB8fCByYW5nZSA9PSAwKSB7 Ci0rCQkJZXJybm8gPSBFSU5WQUw7Ci0rCQkJcmV0ID0gMTsKLSsJCQlicmVhazsKLSsJCX0KLSAK LS0JCWVycm5vID0gRU5PREFUQTsKLS0JCWlmICgoIXVpZHAgfHwgc3RybmNtcChidWYsICJVaWQ6 IiwgNCkpICYmICghZ2lkcCB8fCBzdHJuY21wKGJ1ZiwgIkdpZDoiLCA0KSkpCi0tCQkJY29udGlu dWU7Ci0rCQlpZiAocmFuZ2UgPT0gVUlOVF9NQVggJiYgKG5zX3N0YXJ0ICE9IDAgfHwgaG9zdF9z dGFydCAhPSAwKSkgewotKwkJCWVycm5vID0gRUlOVkFMOwotKwkJCXJldCA9IDE7Ci0rCQkJYnJl YWs7Ci0rCQl9Ci0gCi0tCQllcnJubyA9IDA7Ci0rCQlpZiAoaG9zdF9zdGFydCArIHJhbmdlID4g VUlOVF9NQVggfHwgbnNfc3RhcnQgKyByYW5nZSA+IFVJTlRfTUFYKSB7Ci0rCQkJZXJybm8gPSBF SU5WQUw7Ci0rCQkJcmV0ID0gMTsKLSsJCQlicmVhazsKLSsJCX0KLSAKLSAJCS8qCi0tCQkgKiBF eGFtcGxlIGxpbmUgZm9ybWF0IChzYW1lIGZvciBib3RoIFVpZC9HaWQpOgotLQkJICogIlVpZDpc dCV1XHQldVwldVwldSIKLSsJCSAqIENoZWNrIGlmIGhvc3QgSUQgZml0cyB0aGlzIGxpbmUuCi0r CQkgKiBPdXIgZGVzaXJlZCBOUyBJRCBtYXkgYmUgaW4gYW55IGxpbmUgb2YgdGhlIGZpbGUuCi0g CQkgKgotLQkJICogV2hlcmUgdGhlIG51bWJlcnMgcmVwcmVzZW50czoKLS0JCSAqIDxyZWFsPiA8 ZWZmZWN0aXZlPiA8c2F2ZWQ+IDxmc3VpZD4KLSsJCSAqIE5vdGU6IG5ld3t1aWQsZ2lkfW1hcCB0 b29scyAodGhhdCBjcmVhdGVzIHRoZSBtYXAgZmlsZXMpIGRvbid0IGFsbG93IG11bHRpcGxlCi0r CQkgKiBtYXBzIChOUyBJRHMpIHRvIHRoZSBzYW1lIGhvc3QgSUQuCi0gCQkgKgotLQkJICogV2Un cmUgb25seSBpbnRlcmVzdGVkIGluIHRoZSA8cmVhbD4gdmFsdWUuCi0rCQkgKiBJZiB3ZSBnZXQg YSBtYXRjaCBoZXJlLCB3ZSdsbCBzYXZlIGl0LCBidXQgd2UgY29udGludWUgcGFyc2luZyB0aGUg ZmlsZS4KLSsJCSAqIElmIHdlIGhhcHBlbiB0byBmaW5kIGEgZHVwbGljYXRlLCBpdCdzIHBvc3Np YmxlIHRoaXMgaXMgYSByb2d1ZSBmaWxlIHRyeWluZyB0bwotKwkJICogYnlwYXNzIHRoZXNlIGNo ZWNrcy4KLSAJCSAqCi0tCQkgKiAoZmllbGQgbmFtZXMgIlVpZDoiLyJHaWQ6IiBwYXJzZWQgYWJv dmUsIHNraXAgaXQpCi0rCQkgKiBJbiBzdWNoIGNhc2VzLCBkaXNjYXJkIHRoZSBtYXRjaCBhbmQg cmV0dXJuIEVPUE5PVFNVUFAsIGFzIHJldHVybmluZyBhCi0rCQkgKiBzdWNjZXNzZnVsIG1hdGNo IGNvdWxkIGxlYWQgdG8gZGlzYXN0cm91cyByZXN1bHRzLgotIAkJICovCi0tCQlyZXQgPSBzc2Nh bmYoJmJ1ZlswXSArIDQsICIlbGx1IiwgJnZhbCk7Ci0tCQlpZiAocmV0ICE9IDEpIHsKLS0JCQly ZXQgPSAtMTsKLS0JCQlpZiAoZXJybm8pCi0rCQlpZiAoKmlkcCA+PSBob3N0X3N0YXJ0ICYmICpp ZHAgPCBob3N0X3N0YXJ0ICsgcmFuZ2UpIHsKLSsJCQkvKiBUaGlzIG1lYW5zIHdlIGZvdW5kIGEg ZHVwbGljYXRlICovCi0rCQkJaWYgKCFyZXQpIHsKLSsJCQkJcmV0ID0gMTsKLSsJCQkJZXJybm8g PSBFT1BOT1RTVVBQOwotKwkJCQlzeXNsb2coTE9HX0VSUiwgIiVzIGhhcyBtdWx0aXBsZSBtYXBw ZWQgSURzIGZvciAldSAodW5zdXBwb3J0ZWQpIiwKLSsJCQkJICAgICAgIG1hcCwgKmlkcCk7Ci0g CQkJCWJyZWFrOwotLQkJCWNvbnRpbnVlOwotLQkJfQotKwkJCX0KLSAKLS0JCXJldCA9IC0xOwot LQkJaWYgKHZhbCA+PSBVSU5UX01BWCkgewotLQkJCWVycm5vID0gRUlOVkFMOwotLQkJCWJyZWFr OwotLQkJfQotLQotLQkJaWYgKHVpZHAgJiYgIXN0cm5jbXAoYnVmLCAiVWlkOiIsIDQpKQotLQkJ CSp1aWRwID0gKHVpZF90KXZhbDsKLS0JCWVsc2UKLS0JCQkqZ2lkcCA9IChnaWRfdCl2YWw7Ci0t Ci0tCQlpZiAoKCF1aWRwIHx8ICp1aWRwICE9IElOVkFMSURfVUlER0lEKSAmJiAoIWdpZHAgfHwg KmdpZHAgIT0gSU5WQUxJRF9VSURHSUQpKSB7Ci0tCQkJZXJybm8gPSAwOwotKwkJCWlkID0gKCpp ZHAgLSBob3N0X3N0YXJ0KSArIG5zX3N0YXJ0OwotIAkJCXJldCA9IDA7Ci0tCQkJYnJlYWs7Ci0r CQkJZXJybm8gPSAwOwotIAkJfQotIAl9Ci0rCi0rCS8qIFRoaXMgbWVhbnMgZXJybm8gd2FzIHJl c2V0IGJ5IGZzY2FuZigpIHdpdGhvdXQgZmluZGluZyBhbnl0aGluZyAqLwotKwlpZiAocmV0ICYm IGVycm5vID09IDApCi0rCQllcnJubyA9IEVOT0RBVEE7Ci0gb3V0OgotLQlpZiAoZnApCi0rCWlm IChmcCkgewotKwkJaW50IGVyciA9IGVycm5vOwotKwotIAkJZmNsb3NlKGZwKTsKLSsJCS8qIEln bm9yZSBmY2xvc2UoKSBlcnJvcnMgKi8KLSsJCWVycm5vID0gZXJyOwotKwl9Ci0gCi0rCWlmICgh cmV0KSB7Ci0rCQkqaWRwID0gaWQ7Ci0rCQllcnJubyA9IDA7Ci0rCX0gZWxzZSB7Ci0rCQlzeXNs b2coTE9HX0RFQlVHLCAiJXMocGlkPSVkLCBtYXA9JXMsIGlkPSV1KTogJXMiLCBfX2Z1bmNfXywg cGlkLCBtYXAsICppZHAsCi0rCQkgICAgICAgc3RyZXJyb3IoZXJybm8pKTsKLSsJfQotKwotKwly ZXR1cm4gcmV0OwotK30KLSsKLSsvKgotKyAqIG1hcF91aWRnaWQoKSAtIE1hcCAocmVhbCkgVUlE L0dJRCBmcm9tIGluaXQgaG9zdCBOUyB0byB1c2VyIE5TLgotKyAqIEBwaWQ6IGhvc3QgTlMgUElE Ci0rICogQHVpZHA6IChpbikgaG9zdCBVSUQsIChvdXQpIE5TIFVJRAotKyAqIEBnaWRwOiAoaW4p IGhvc3QgR0lELCAob3V0KSBOUyBHSUQKLSsgKgotKyAqIFBhcnNlIC9wcm9jL0BwaWQve3VpZCxn aWR9X21hcCBmaWxlcyB0byBnZXQgTlMgVUlEL0dJRCB2YWx1ZXMuCi0rICogU2luY2UgQHBpZCBp cyBleHBlY3RlZCB0byBiZSBhIGhvc3QgTlMgUElELCB0aGlzIG11c3QgYmUgY2FsbGVkIGJlZm9y ZSBzd2l0Y2hpbmcgbmFtZXNwYWNlcy4KLSsgKgotKyAqIE5vdGU6IHdlIGNhbid0IHVzZSAvcHJv Yy9zZWxmIGhlcmUgYmVjYXVzZSB3ZSBoYXZlbid0IHN3aXRjaGVkIE5TIHlldCwgc28ge3VpZCxn aWR9X21hcCBmaWxlcwotKyAqIHdvdWxkIGNvbnRhaW4gaG9zdCBOUyB2YWx1ZXMuCi0rICoKLSsg KiBSZXR1cm46IDAgb24gc3VjY2VzcywgMSBvdGhlcndpc2UgKGVycm5vIHNldCkuCi0rICovCi0r c3RhdGljIGludCBtYXBfdWlkZ2lkKHBpZF90IHBpZCwgdWlkX3QgKnVpZHAsIGdpZF90ICpnaWRw KQotK3sKLSsJdWlkX3Qgb3JpZ191aWQ7Ci0rCWdpZF90IG9yaWdfZ2lkOwotKwlpbnQgcmV0ID0g MTsKLSsKLSsJZXJybm8gPSBFSU5WQUw7Ci0rCWlmICghdWlkcCB8fCAhZ2lkcCkKLSsJCWdvdG8g b3V0OwotKwotKwlvcmlnX3VpZCA9ICp1aWRwOwotKwlvcmlnX2dpZCA9ICpnaWRwOwotKwotKwly ZXQgPSBtYXBfaWQocGlkLCAidWlkX21hcCIsIHVpZHApOwotIAlpZiAocmV0KSB7Ci0tCQlzeXNs b2coTE9HX0RFQlVHLCAiJXMocGlkPSVkKTogJXMiLCBfX2Z1bmNfXywgcGlkLCBzdHJlcnJvcihl cnJubykpOwotLQkJaWYgKHVpZHApCi0tCQkJKnVpZHAgPSBJTlZBTElEX1VJREdJRDsKLS0KLS0J CWlmIChnaWRwKQotLQkJCSpnaWRwID0gSU5WQUxJRF9VSURHSUQ7Ci0rCQlpZiAoZXJybm8gPT0g RU5PREFUQSkKLSsJCQlzeXNsb2coTE9HX0VSUiwgIlVJRCAldSBub3QgbWFwcGVkIGluIHRoaXMg bmFtZXNwYWNlICh1bnN1cHBvcnRlZCkiLAotKwkJCSAgICAgICBvcmlnX3VpZCk7Ci0rCQlnb3Rv IG91dDsKLSAJfQotIAotKwlyZXQgPSBtYXBfaWQocGlkLCAiZ2lkX21hcCIsIGdpZHApOwotKwlp ZiAocmV0ICYmIGVycm5vID09IEVOT0RBVEEpCi0rCQlzeXNsb2coTE9HX0VSUiwgIkdJRCAldSBu b3QgbWFwcGVkIGluIHRoaXMgbmFtZXNwYWNlICh1bnN1cHBvcnRlZCkiLAotKwkJICAgICAgIG9y aWdfZ2lkKTsKLStvdXQ6Ci0rCWlmIChyZXQgJiYgZXJybm8gIT0gRU5PREFUQSkKLSsJCXN5c2xv ZyhMT0dfRVJSLCAiJXM6ICVzIiwgX19mdW5jX18sIHN0cmVycm9yKGVycm5vKSk7Ci0rCWVsc2Ug aWYgKCFyZXQpCi0rCQlzeXNsb2coTE9HX0RFQlVHLCAiaG9zdCAldToldSAtPiBOUyAldToldSIs IG9yaWdfdWlkLCBvcmlnX2dpZCwgKnVpZHAsICpnaWRwKTsKLSsKLSAJcmV0dXJuIHJldDsKLSB9 Ci0gCi1AQCAtMTUzNCw2ICsxNTg3LDcgQEAgaW50IG1haW4oY29uc3QgaW50IGFyZ2MsIGNoYXIg KmNvbnN0IGFyZ3ZbXSkKLSAJY29uc3QgY2hhciAqb2lkOwotIAl1aWRfdCB1aWQ7Ci0gCWdpZF90 IGdpZDsKLSsJc3RydWN0IHBhc3N3ZCAqcHc7Ci0gCWNoYXIgKmtleXRhYl9uYW1lID0gTlVMTDsK LSAJY2hhciAqZW52X2NhY2hlbmFtZSA9IE5VTEw7Ci0gCWtyYjVfY2NhY2hlIGNjYWNoZSA9IE5V TEw7Ci1AQCAtMTY4MCwxMiArMTczNCw1MiBAQCBpbnQgbWFpbihjb25zdCBpbnQgYXJnYywgY2hh ciAqY29uc3QgYXJndltdKQotIAkJZ290byBvdXQ7Ci0gCX0KLSAKLSsJLyoKLSsJICogJ3VpZCcg YWx3YXlzIHBvaW50cyB0byBhIGhvc3QgVUlELCBzbyB3ZSBtdXN0IGdldCB0aGUgY29ycmVzcG9u ZGluZyBob3N0IEdJRC4KLSsJICogSXQncyBzYWZlIHRvIGNhbGwgZ2V0cHd1aWQoKSBoZXJlIGJl Y2F1c2Ugd2UncmUgc3RpbGwgb24gaG9zdCBOUywgaS5lLiBjYWxsZXIKLSsJICogYXBwbGljYXRp b24gaGFzIG5vIGNvbnRyb2wgb3ZlciBjdXN0b20gTlNTIG1vZHVsZXMuCi0rCSAqCi0rCSAqIEZJ WE1FOiBpZiBVSUQgaXMgZnJvbSBhbm90aGVyIE5TLCBvciBhIHN1YnVpZCwgdGhpcyB3aWxsIGZh aWwgb24gbW91bnQuCi0rCSAqLwotKwllcnJubyA9IDA7Ci0rCXB3ID0gZ2V0cHd1aWQodWlkKTsK LSsJaWYgKCFwdykgewotKwkJc3lzbG9nKExPR19FUlIsICJmYWlsZWQgdG8gcmV0cmlldmUgR0lE IGZyb20gVUlEICV1OiAlcyIsIHVpZCwKLSsJCSAgICAgICBzdHJlcnJvcihlcnJubyA/IGVycm5v IDogRU5PRU5UKSk7Ci0rCQlyYyA9IDE7Ci0rCQlnb3RvIG91dDsKLSsJfQotKwotKwlnaWQgPSBw dy0+cHdfZ2lkOwotKwotKwkvKgotKwkgKiBXZSBjYW4ndCByZWFzb25hYmx5IGRvIHRoaXMgZm9y IHJvb3QuIFdoZW4gbW91bnRpbmcgYSBERlMgc2hhcmUsCi0rCSAqIGZvciBpbnN0YW5jZSB3ZSBj YW4gZW5kIHVwIHdpdGggY3JlZHMgYmVpbmcgb3ZlcnJpZGRlbiwgYnV0IHRoZSBlbnYKLSsJICog dmFyaWFibGUgbGVmdCBpbnRhY3QuCi0rCSAqCi0rCSAqIEFsd2F5cyBjaGVjayB0aGlzIGJlZm9y ZSBOUyBVSUQgbWFwcGluZy4KLSsJICovCi0rCWlmICh1aWQgPT0gMCkKLSsJCWVudl9wcm9iZSA9 IGZhbHNlOwotKwotIAkvKgotIAkgKiBDaGFuZ2UgdG8gdGhlIHByb2Nlc3MncyBuYW1lc3BhY2Uu IFRoaXMgbWVhbnMgdGhhdCB0aGluZ3Mgd2lsbCB3b3JrCi0gCSAqIGFjY2VwdGFibHkgaW4gY29u dGFpbmVycywgYmVjYXVzZSB3ZSdsbCBiZSBsb29raW5nIGF0IHRoZSBjb3JyZWN0Ci0gCSAqIGZp bGVzeXN0ZW0gYW5kIGhhdmUgdGhlIGNvcnJlY3QgbmV0d29yayBjb25maWd1cmF0aW9uLgotIAkg Ki8KLSAJaWYgKGFyZy0+dXBjYWxsX3RhcmdldCA9PSBVUFRBUkdFVF9BUFAgfHwgYXJnLT51cGNh bGxfdGFyZ2V0ID09IFVQVEFSR0VUX1VOU1BFQ0lGSUVEKSB7Ci0rCQkvKgotKwkJICogTWFwIGhv c3QgJ3VpZCcgYW5kICdnaWQnIHRvIHRoZSB0YXJnZXQgdXNlciBOUy4KLSsJCSAqCi0rCQkgKiBB bnkgc2NlbmFyaW8gdGhhdCBpbnZvbHZlcyB1bm1hcHBlZCBVSURzIG9yIHByaW1hcnkgR0lEcyBp cyBub3Qgc3VwcG9ydGVkIC0tIHdlCi0rCQkgKiBkb24ndCBoYXZlLCBhbmQgY2FuJ3QgZmluZCwg YWxsIHRoZSBpbmZvIHRoYXQgd291bGQgYmUgbmVjZXNzYXJ5IHRvIGZpbmQgYQotKwkJICogVUlE L0dJRCB3aXRoaW4gYWxsIHRoZSBwb3NzaWJsZSBOUyBjb21iaW5hdGlvbnMuCi0rCQkgKi8KLSsJ CWlmICghaW5fc2FtZV91c2VyX25zKGFyZy0+cGlkLCBnZXRwaWQoKSkpIHsKLSsJCQlyYyA9IG1h cF91aWRnaWQoYXJnLT5waWQsICZ1aWQsICZnaWQpOwotKwkJCWlmIChyYykKLSsJCQkJZ290byBv dXQ7Ci0rCQl9Ci0gCQlzeXNsb2coTE9HX0lORk8sICJ1cGNhbGxfdGFyZ2V0PWFwcCwgc3dpdGNo aW5nIG5hbWVzcGFjZXMgdG8gYXBwbGljYXRpb24gdGhyZWFkIik7Ci0gCQlhcmctPnVwY2FsbF90 YXJnZXQgPSBVUFRBUkdFVF9BUFA7Ci0gCQlyYyA9IHN3aXRjaF90b19wcm9jZXNzX25zKGFyZy0+ cGlkKTsKLUBAIC0xNzAwLDI1ICsxNzk0LDYgQEAgaW50IG1haW4oY29uc3QgaW50IGFyZ2MsIGNo YXIgKmNvbnN0IGFyZ3ZbXSkKLSAJCXN5c2xvZyhMT0dfSU5GTywgInVwY2FsbF90YXJnZXQ9bW91 bnQsIG5vdCBzd2l0Y2hpbmcgbmFtZXNwYWNlcyB0byBhcHBsaWNhdGlvbiB0aHJlYWQiKTsKLSAJ fQotIAotLQkvKgotLQkgKiBXZSBjYW4ndCByZWFzb25hYmx5IGRvIHRoaXMgZm9yIHJvb3QuIFdo ZW4gbW91bnRpbmcgYSBERlMgc2hhcmUsCi0tCSAqIGZvciBpbnN0YW5jZSB3ZSBjYW4gZW5kIHVw IHdpdGggY3JlZHMgYmVpbmcgb3ZlcnJpZGRlbiwgYnV0IHRoZSBlbnYKLS0JICogdmFyaWFibGUg bGVmdCBpbnRhY3QuCi0tCSAqLwotLQlpZiAodWlkID09IDApCi0tCQllbnZfcHJvYmUgPSBmYWxz ZTsKLS0KLS0JLyoKLS0JICogRklYTUU6IHRoaXMgb25seSB3b3JrcyBpZiB3ZSBoYXZlbid0IHN3 aXRjaGVkIFBJRCBuYW1lc3BhY2VzLgotLQkgKiBJZiB3ZSBkaWQsIC9wcm9jL2FyZy0+cGlkLyBt aWdodCBub3QgZXhpc3QsIG9yIHdvcnNlLCBwb2ludCB0byBzb21ldGhpbmcgZWxzZS4KLS0JICov Ci0tCXJjID0gZ2V0X3VpZGdpZChhcmctPnBpZCwgJnVpZCwgJmdpZCk7Ci0tCWlmIChyYykgewot LQkJc3lzbG9nKExPR19FUlIsICJnZXRfdWlkZ2lkIChOUyk6ICVzIiwgc3RyZXJyb3IoZXJybm8p KTsKLS0JCXJjID0gMTsKLS0JCWdvdG8gb3V0OwotLQl9Ci0tCi0gCXJjID0gc2V0Z2lkKGdpZCk7 Ci0gCWlmIChyYykgewotIAkJc3lzbG9nKExPR19FUlIsICJzZXRnaWQ6ICVzIiwgc3RyZXJyb3Io ZXJybm8pKTsKLS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwpp bmRleCBmMDljZTBhLi5kMjVmNzc2IDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMK QEAgLTEgKzEgQEAKLVNIQTUxMiAoY2lmcy11dGlscy03LjYudGFyLmJ6MikgPSAwMDBiY2E5ZWIw MjQyYzhjMDRkYzExMTAyNDRhZDI2Y2QzOWYxMTU0MWNjMDM4ZTM2YTFiMzZjMmU2ODNmZGUxOWQ2 MWE1OTIzNGUwZTU5MmJmOGQ4M2ViZWJhZmI0ZDQ2YTdlNjk3OGM3NDViYmE1ZTNlMTU1ZTA1OTA4 ZGNiYworU0hBNTEyIChjaWZzLXV0aWxzLTcuNy50YXIuYnoyKSA9IGNjOTQxMDVhMWZmNjM5ZDIy NTdhM2U2NDRlM2I3NjYyNTllZjdhODM3MjVjOWRkZGI0NjVlOGE4YzcxMjZmMDZhMGEwMzZhMWM4 Y2ZiNDk1OTQzYjRkMWUzNzBhYWU4ZGYwYmI1MWY4NWZmMzZlNTRiNDg5NGUyN2Q4ZGRjZTI5Cg==