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: Petr Schindler To: git-commits@fedoraproject.org Subject: [rpms/libsoup3] rawhide: Update to 3.7.3 and drop upstreamed CVE patches Date: Thu, 24 Sep 2026 18:36:48 GMT Message-ID: <179027500823.1.8720497414452279773.rpms-libsoup3-8323f6109b28@fedoraproject.org> List-ID: X-Git-Repo: rpms/libsoup3 X-Git-Branch: rawhide X-Git-Rev: 8323f6109b28bfc9248ff4810e36c464d4b5f3ee QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvbGlic291cDMKQnJh bmNoIDogcmF3aGlkZQpDb21taXQgOiA4MzIzZjYxMDliMjhiZmM5MjQ4ZmY0ODEwZTM2YzQ2NGQ0 YjVmM2VlCkF1dGhvciA6IFBldHIgU2NoaW5kbGVyIDxwc2NoaW5kbEByZWRoYXQuY29tPgpEYXRl ICAgOiAyMDI2LTA5LTI0VDIwOjI2OjMyKzAyOjAwClN0YXRzICA6ICsyLy0xOTUyIGluIDggZmls ZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2xpYnNvdXAz L2MvODMyM2Y2MTA5YjI4YmZjOTI0OGZmNDgxMGUzNmM0NjRkNGI1ZjNlZT9icmFuY2g9cmF3aGlk ZQoKTG9nOgpVcGRhdGUgdG8gMy43LjMgYW5kIGRyb3AgdXBzdHJlYW1lZCBDVkUgcGF0Y2hlcwoK LS0tCmRpZmYgLS1naXQgYS9DVkUtMjAyNi0xNTcwOS5wYXRjaCBiL0NWRS0yMDI2LTE1NzA5LnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTljMzc4Li4wMDAwMDAwCi0tLSBh L0NWRS0yMDI2LTE1NzA5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzgyICswLDAgQEAKLUZy b20gYTQyOTQwNDQ0NjZkZjY2ZWE5ODQ5MmQ2N2JiNzQxNzJlZDNmODc2MiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IFpheWQgUmFqYWIgPHpheWRyQGFtYXpvbi5jb20+Ci1EYXRlOiBG cmksIDQgU2VwIDIwMjYgMTQ6MTc6MjMgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gd2Vic29ja2V0 OiBCb3VuZCBkZWNvbXByZXNzZWQgbWVzc2FnZSBzaXplIGR1cmluZyBpbmZsYXRpb24KLQotUGFz cyBlYWNoIGNvbm5lY3Rpb24ncyByZW1haW5pbmcgbWF4LXRvdGFsLW1lc3NhZ2Utc2l6ZSBhbGxv d2FuY2UgdGhyb3VnaAotdGhlIGdlbmVyaWMgV2ViU29ja2V0IGV4dGVuc2lvbiBwcm9jZXNzaW5n IHBhdGggdmlhIGEgbmV3Ci1wcm9jZXNzX2luY29taW5nX21lc3NhZ2Vfd2l0aF9saW1pdCB2ZnVu YywgZmFsbGluZyBiYWNrIHRvCi1wcm9jZXNzX2luY29taW5nX21lc3NhZ2UgZm9yIGV4dGVuc2lv bnMgdGhhdCBkb24ndCBpbXBsZW1lbnQgaXQuIEJvdW5kCi1wZXJtZXNzYWdlLWRlZmxhdGUgb3V0 cHV0IGdyb3d0aCB0byB0aGF0IGFsbG93YW5jZSBhbmQgdXNlIGEgb25lLWJ5dGUKLXByb2JlIHRv IGRldGVjdCBvdXRwdXQgYmV5b25kIGFuIGV4YWN0IGJvdW5kYXJ5IHdpdGhvdXQgYWxsb2NhdGlu ZwotYW5vdGhlciBub3JtYWwgb3V0cHV0IGNodW5rLgotCi1QcmVzZXJ2ZSB0aGUgZG9jdW1lbnRl ZCB1bmxpbWl0ZWQgZGVmYXVsdCBmb3IgY2xpZW50cyBhbmQgZGlyZWN0Ci1jb25uZWN0aW9ucy4g U291cFNlcnZlciBjb250aW51ZXMgYXBwbHlpbmcgaXRzIGV4aXN0aW5nIDEyOCBLaUIgZGVmYXVs dCwKLXdoaWxlIGNhbGxlcnMgY2FuIGNvbmZpZ3VyZSB0aGUgbGltaXQgZXhwbGljaXRseSBpbiBl aXRoZXIgcmVjZWl2ZQotZGlyZWN0aW9uLgotCi1BZGQgYm91bmRhcnksIGdlbmVyaWMtZXh0ZW5z aW9uIGZhbGxiYWNrLCByZWNlaXZlLWRpcmVjdGlvbiwgU291cFNlcnZlciwKLWZyYWdtZW50YXRp b24sIGFuZCB1bmxpbWl0ZWQtbW9kZSBjb3ZlcmFnZS4KLQotVGhpcyBhZGRyZXNzZXMgQ1ZFLTIw MjYtMTU3MDkuCi0KLVJlcG9ydGVkLWJ5OiBUcmlzdGFuIE1hZGFuaSA8c2VjaWVudGlzdEBnbWFp bC5jb20+Ci1DbG9zZXMgITU0MwotLS0tCi0gbGlic291cC93ZWJzb2NrZXQvc291cC13ZWJzb2Nr ZXQtY29ubmVjdGlvbi5jIHwgIDM0ICstCi0gLi4uL3NvdXAtd2Vic29ja2V0LWV4dGVuc2lvbi1k ZWZsYXRlLmMgICAgICAgIHwgMTQ0ICsrKysrKy0tLQotIGxpYnNvdXAvd2Vic29ja2V0L3NvdXAt d2Vic29ja2V0LWV4dGVuc2lvbi5jICB8ICA1MyArKysKLSBsaWJzb3VwL3dlYnNvY2tldC9zb3Vw LXdlYnNvY2tldC1leHRlbnNpb24uaCAgfCAgMTQgKy0KLSB0ZXN0cy93ZWJzb2NrZXQtdGVzdC5j ICAgICAgICAgICAgICAgICAgICAgICAgfCAzMDYgKysrKysrKysrKysrKysrKystCi0gNSBmaWxl cyBjaGFuZ2VkLCA1MDYgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9saWJzb3VwL3dlYnNvY2tldC9zb3VwLXdlYnNvY2tldC1jb25uZWN0aW9uLmMgYi9saWJz b3VwL3dlYnNvY2tldC9zb3VwLXdlYnNvY2tldC1jb25uZWN0aW9uLmMKLWluZGV4IGZmZDcxM2Vm Li5mMDdkNDIxOSAxMDA2NDQKLS0tLSBhL2xpYnNvdXAvd2Vic29ja2V0L3NvdXAtd2Vic29ja2V0 LWNvbm5lY3Rpb24uYwotKysrIGIvbGlic291cC93ZWJzb2NrZXQvc291cC13ZWJzb2NrZXQtY29u bmVjdGlvbi5jCi1AQCAtOTkwLDggKzk5MCwxNSBAQCBwcm9jZXNzX2NvbnRlbnRzIChTb3VwV2Vi c29ja2V0Q29ubmVjdGlvbiAqc2VsZiwKLSAJCWNhc2UgMHgwMjoKLSAJCQkvKiBTYWZldHkgdmFs dmUgKi8KLSAJCQlpZiAocHJpdi0+bWF4X3RvdGFsX21lc3NhZ2Vfc2l6ZSA+IDAgJiYKLS0JCQkg ICAgKHByaXYtPm1lc3NhZ2VfZGF0YS0+bGVuICsgcGF5bG9hZF9sZW4pID4gcHJpdi0+bWF4X3Rv dGFsX21lc3NhZ2Vfc2l6ZSkgewotLQkJCQl0b29fYmlnX21lc3NhZ2VfZXJyb3JfYW5kX2Nsb3Nl IChzZWxmLCAocHJpdi0+bWVzc2FnZV9kYXRhLT5sZW4gKyBwYXlsb2FkX2xlbikpOwotKwkJCSAg ICAocHJpdi0+bWVzc2FnZV9kYXRhLT5sZW4gPiBwcml2LT5tYXhfdG90YWxfbWVzc2FnZV9zaXpl IHx8Ci0rCQkJICAgICBwYXlsb2FkX2xlbiA+IHByaXYtPm1heF90b3RhbF9tZXNzYWdlX3NpemUg LSBwcml2LT5tZXNzYWdlX2RhdGEtPmxlbikpIHsKLSsJCQkJZ3VpbnQ2NCBtZXNzYWdlX3NpemUg PSBwcml2LT5tZXNzYWdlX2RhdGEtPmxlbjsKLSsKLSsJCQkJaWYgKHBheWxvYWRfbGVuID4gR19N QVhVSU5UNjQgLSBtZXNzYWdlX3NpemUpCi0rCQkJCQltZXNzYWdlX3NpemUgPSBHX01BWFVJTlQ2 NDsKLSsJCQkJZWxzZQotKwkJCQkJbWVzc2FnZV9zaXplICs9IHBheWxvYWRfbGVuOwotKwkJCQl0 b29fYmlnX21lc3NhZ2VfZXJyb3JfYW5kX2Nsb3NlIChzZWxmLCBtZXNzYWdlX3NpemUpOwotIAkJ CQlyZXR1cm47Ci0gCQkJfQotIAkJCWdfYnl0ZV9hcnJheV9hcHBlbmQgKHByaXYtPm1lc3NhZ2Vf ZGF0YSwgcGF5bG9hZCwgcGF5bG9hZF9sZW4pOwotQEAgLTEwMzYsNiArMTA0MywyMSBAQCBwcm9j ZXNzX2NvbnRlbnRzIChTb3VwV2Vic29ja2V0Q29ubmVjdGlvbiAqc2VsZiwKLSAJfQotIH0KLSAK LStzdGF0aWMgZ3VpbnQ2NAotK2dldF9yZW1haW5pbmdfbWVzc2FnZV9zaXplIChTb3VwV2Vic29j a2V0Q29ubmVjdGlvblByaXZhdGUgKnByaXYpCi0rewotKwlpZiAocHJpdi0+bWF4X3RvdGFsX21l c3NhZ2Vfc2l6ZSA9PSAwKQotKwkJcmV0dXJuIEdfTUFYVUlOVDY0OwotKwotKwlpZiAoIXByaXYt Pm1lc3NhZ2VfZGF0YSkKLSsJCXJldHVybiBwcml2LT5tYXhfdG90YWxfbWVzc2FnZV9zaXplOwot KwotKwlpZiAocHJpdi0+bWVzc2FnZV9kYXRhLT5sZW4gPj0gcHJpdi0+bWF4X3RvdGFsX21lc3Nh Z2Vfc2l6ZSkKLSsJCXJldHVybiAwOwotKwotKwlyZXR1cm4gcHJpdi0+bWF4X3RvdGFsX21lc3Nh Z2Vfc2l6ZSAtIHByaXYtPm1lc3NhZ2VfZGF0YS0+bGVuOwotK30KLSsKLSBzdGF0aWMgZ2Jvb2xl YW4KLSBwcm9jZXNzX2ZyYW1lIChTb3VwV2Vic29ja2V0Q29ubmVjdGlvbiAqc2VsZikKLSB7Ci1A QCAtMTA1MSw2ICsxMDczLDcgQEAgcHJvY2Vzc19mcmFtZSAoU291cFdlYnNvY2tldENvbm5lY3Rp b24gKnNlbGYpCi0gCWdzaXplIGxlbjsKLSAJZ3NpemUgYXQ7Ci0gCUdCeXRlcyAqZmlsdGVyZWRf Ynl0ZXM7Ci0rCWd1aW50NjQgbWF4X291dHB1dF9zaXplOwotIAlHTGlzdCAqbDsKLSAJR0Vycm9y ICplcnJvciA9IE5VTEw7Ci0gCi1AQCAtMTE2NSwxMSArMTE4OCwxNiBAQCBwcm9jZXNzX2ZyYW1l IChTb3VwV2Vic29ja2V0Q29ubmVjdGlvbiAqc2VsZikKLSAJfQotIAotIAlmaWx0ZXJlZF9ieXRl cyA9IGdfYnl0ZXNfbmV3X3N0YXRpYyAocGF5bG9hZCwgcGF5bG9hZF9sZW4pOwotKwltYXhfb3V0 cHV0X3NpemUgPSBnZXRfcmVtYWluaW5nX21lc3NhZ2Vfc2l6ZSAocHJpdik7Ci0gCWZvciAobCA9 IHByaXYtPmV4dGVuc2lvbnM7IGwgIT0gTlVMTDsgbCA9IGdfbGlzdF9uZXh0IChsKSkgewotIAkJ U291cFdlYnNvY2tldEV4dGVuc2lvbiAqZXh0ZW5zaW9uOwotIAotIAkJZXh0ZW5zaW9uID0gKFNv dXBXZWJzb2NrZXRFeHRlbnNpb24gKilsLT5kYXRhOwotLQkJZmlsdGVyZWRfYnl0ZXMgPSBzb3Vw X3dlYnNvY2tldF9leHRlbnNpb25fcHJvY2Vzc19pbmNvbWluZ19tZXNzYWdlIChleHRlbnNpb24s IHByaXYtPmluY29taW5nLT5kYXRhLCBmaWx0ZXJlZF9ieXRlcywgJmVycm9yKTsKLSsJCWZpbHRl cmVkX2J5dGVzID0gc291cF93ZWJzb2NrZXRfZXh0ZW5zaW9uX3Byb2Nlc3NfaW5jb21pbmdfbWVz c2FnZV93aXRoX2xpbWl0IChleHRlbnNpb24sCi0rCQkJCQkJCQkJCQkgICAgICAgcHJpdi0+aW5j b21pbmctPmRhdGEsCi0rCQkJCQkJCQkJCQkgICAgICAgZmlsdGVyZWRfYnl0ZXMsCi0rCQkJCQkJ CQkJCQkgICAgICAgbWF4X291dHB1dF9zaXplLAotKwkJCQkJCQkJCQkJICAgICAgICZlcnJvcik7 Ci0gCQlpZiAoZXJyb3IpIHsKLSAJCQllbWl0X2Vycm9yX2FuZF9jbG9zZSAoc2VsZiwgZXJyb3Is IEZBTFNFKTsKLSAJCQlyZXR1cm4gRkFMU0U7Ci1kaWZmIC0tZ2l0IGEvbGlic291cC93ZWJzb2Nr ZXQvc291cC13ZWJzb2NrZXQtZXh0ZW5zaW9uLWRlZmxhdGUuYyBiL2xpYnNvdXAvd2Vic29ja2V0 L3NvdXAtd2Vic29ja2V0LWV4dGVuc2lvbi1kZWZsYXRlLmMKLWluZGV4IGZhOThhMmUyLi4yYzY0 OWE4OCAxMDA2NDQKLS0tLSBhL2xpYnNvdXAvd2Vic29ja2V0L3NvdXAtd2Vic29ja2V0LWV4dGVu c2lvbi1kZWZsYXRlLmMKLSsrKyBiL2xpYnNvdXAvd2Vic29ja2V0L3NvdXAtd2Vic29ja2V0LWV4 dGVuc2lvbi1kZWZsYXRlLmMKLUBAIC0zNTksMTkgKzM1OSwyOSBAQCBzb3VwX3dlYnNvY2tldF9l eHRlbnNpb25fZGVmbGF0ZV9wcm9jZXNzX291dGdvaW5nX21lc3NhZ2UgKFNvdXBXZWJzb2NrZXRF eHRlbnNpbwotICAgICAgICAgcmV0dXJuIGdfYnl0ZV9hcnJheV9mcmVlX3RvX2J5dGVzIChidWZm ZXIpOwotIH0KLSAKLStzdGF0aWMgdm9pZAotK2luZmxhdGVyX3Jlc2V0IChJbmZsYXRlciAqaW5m bGF0ZXIpCi0rewotKyAgICAgICAgaW5mbGF0ZVJlc2V0ICgmaW5mbGF0ZXItPnpzdHJlYW0pOwot KyAgICAgICAgaW5mbGF0ZXItPnVuY29tcHJlc3Nfb25nb2luZyA9IEZBTFNFOwotK30KLSsKLSBz dGF0aWMgR0J5dGVzICoKLS1zb3VwX3dlYnNvY2tldF9leHRlbnNpb25fZGVmbGF0ZV9wcm9jZXNz X2luY29taW5nX21lc3NhZ2UgKFNvdXBXZWJzb2NrZXRFeHRlbnNpb24gKmV4dGVuc2lvbiwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGd1aW50OCAgICAgICAgICAgICAgICAgKmhlYWRlciwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdCeXRlcyAgICAgICAgICAgICAg ICAgKnBheWxvYWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAgICAgKiplcnJvcikKLStzb3VwX3dl YnNvY2tldF9leHRlbnNpb25fZGVmbGF0ZV9wcm9jZXNzX2luY29taW5nX21lc3NhZ2Vfd2l0aF9s aW1pdCAoU291cFdlYnNvY2tldEV4dGVuc2lvbiAqZXh0ZW5zaW9uLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn dWludDggICAgICAgICAgICAgICAgICpoZWFkZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdCeXRlcyAgICAg ICAgICAgICAgICAgKnBheWxvYWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50NjQgICAgICAgICAgICAg ICAgIG1heF9vdXRwdXRfc2l6ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAgICAgICAg ICoqZXJyb3IpCi0gewotICAgICAgICAgY29uc3QgZ3VpbnQ4ICpwYXlsb2FkX2RhdGE7Ci0gICAg ICAgICBnc2l6ZSBwYXlsb2FkX2xlbmd0aDsKLSAgICAgICAgIGdib29sZWFuIGZpbiwgY29udHJv bCwgY29tcHJlc3NlZDsKLSAgICAgICAgIEdCeXRlQXJyYXkgKmJ1ZmZlcjsKLS0gICAgICAgIGdz aXplIGJ5dGVzX3JlYWQsIGJ5dGVzX3dyaXR0ZW47Ci0rICAgICAgICBnc2l6ZSBpbnB1dF9vZmZz ZXQsIGJ5dGVzX3dyaXR0ZW47Ci0gICAgICAgICBpbnQgcmVzdWx0OwotICAgICAgICAgZ2Jvb2xl YW4gdGFpbF9hZGRlZCA9IEZBTFNFOwotKyAgICAgICAgZ2Jvb2xlYW4gdXNpbmdfbGltaXRfcHJv YmUgPSBGQUxTRTsKLSsgICAgICAgIGd1aW50OCBsaW1pdF9wcm9iZTsKLSAgICAgICAgIFNvdXBX ZWJzb2NrZXRFeHRlbnNpb25EZWZsYXRlUHJpdmF0ZSAqcHJpdjsKLSAKLSAgICAgICAgIHByaXYg PSBzb3VwX3dlYnNvY2tldF9leHRlbnNpb25fZGVmbGF0ZV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAo U09VUF9XRUJTT0NLRVRfRVhURU5TSU9OX0RFRkxBVEUgKGV4dGVuc2lvbikpOwotQEAgLTM5NCw2 ICs0MDQsNyBAQCBzb3VwX3dlYnNvY2tldF9leHRlbnNpb25fZGVmbGF0ZV9wcm9jZXNzX2luY29t aW5nX21lc3NhZ2UgKFNvdXBXZWJzb2NrZXRFeHRlbnNpbwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTT1VQX1dFQlNPQ0tFVF9FUlJPUiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU09VUF9XRUJTT0NLRVRfQ0xPU0VfUFJPVE9DT0xfRVJST1Is Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZWNlaXZlZCBhIG5vbi1m aXJzdCBmcmFtZSB3aXRoIFJTVjEgZmxhZyBzZXQiKTsKLSsgICAgICAgICAgICAgICAgaW5mbGF0 ZXJfcmVzZXQgKCZwcml2LT5pbmZsYXRlcik7Ci0gICAgICAgICAgICAgICAgIGdfYnl0ZXNfdW5y ZWYgKHBheWxvYWQpOwotICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgIH0K LUBAIC00MTAsNjQgKzQyMSwxMjIgQEAgc291cF93ZWJzb2NrZXRfZXh0ZW5zaW9uX2RlZmxhdGVf cHJvY2Vzc19pbmNvbWluZ19tZXNzYWdlIChTb3VwV2Vic29ja2V0RXh0ZW5zaW8KLSAKLSAgICAg ICAgIGJ1ZmZlciA9IGdfYnl0ZV9hcnJheV9uZXcgKCk7Ci0gCi0tICAgICAgICBieXRlc19yZWFk ID0gMDsKLS0gICAgICAgIHByaXYtPmluZmxhdGVyLnpzdHJlYW0ubmV4dF9pbiA9ICh2b2lkICop cGF5bG9hZF9kYXRhOwotLSAgICAgICAgcHJpdi0+aW5mbGF0ZXIuenN0cmVhbS5hdmFpbF9pbiA9 IHBheWxvYWRfbGVuZ3RoOwotLQotKyAgICAgICAgaW5wdXRfb2Zmc2V0ID0gMDsKLSsgICAgICAg IHByaXYtPmluZmxhdGVyLnpzdHJlYW0uYXZhaWxfaW4gPSAwOwotICAgICAgICAgYnl0ZXNfd3Jp dHRlbiA9IDA7Ci0gICAgICAgICBwcml2LT5pbmZsYXRlci56c3RyZWFtLmF2YWlsX291dCA9IDA7 Ci0gCi0tICAgICAgICBkbyB7Ci0tICAgICAgICAgICAgICAgIGdzaXplIHJlYWRfcmVtYWluaW5n OwotLSAgICAgICAgICAgICAgICBnc2l6ZSB3cml0ZV9yZW1haW5pbmc7Ci0rICAgICAgICB3aGls ZSAoVFJVRSkgewotKyAgICAgICAgICAgICAgICB1SW50IGlucHV0X2JlZm9yZSwgb3V0cHV0X2Jl Zm9yZTsKLSsgICAgICAgICAgICAgICAgdUludCBpbnB1dF9jb25zdW1lZCwgb3V0cHV0X3Byb2R1 Y2VkOwotIAotLSAgICAgICAgICAgICAgICBpZiAocHJpdi0+aW5mbGF0ZXIuenN0cmVhbS5hdmFp bF9vdXQgPT0gMCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50IGN1cnJlbnRfcG9z aXRpb247Ci0rICAgICAgICAgICAgICAgIGlmIChwcml2LT5pbmZsYXRlci56c3RyZWFtLmF2YWls X2luID09IDAgJiYgaW5wdXRfb2Zmc2V0IDwgcGF5bG9hZF9sZW5ndGgpIHsKLSsgICAgICAgICAg ICAgICAgICAgICAgICBnc2l6ZSBpbnB1dF9sZW5ndGggPSBNSU4gKHBheWxvYWRfbGVuZ3RoIC0g aW5wdXRfb2Zmc2V0LCBHX01BWFVJTlQpOwotIAotLSAgICAgICAgICAgICAgICAgICAgICAgIHBy aXYtPmluZmxhdGVyLnpzdHJlYW0uYXZhaWxfb3V0ID0gQlVGRkVSX1NJWkU7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgY3VycmVudF9wb3NpdGlvbiA9IGJ1ZmZlci0+bGVuOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGdfYnl0ZV9hcnJheV9zZXRfc2l6ZSAoYnVmZmVyLCBidWZmZXItPmxl biArIEJVRkZFUl9TSVpFKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5pbmZsYXRl ci56c3RyZWFtLm5leHRfb3V0ID0gYnVmZmVyLT5kYXRhICsgY3VycmVudF9wb3NpdGlvbjsKLSsg ICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5pbmZsYXRlci56c3RyZWFtLm5leHRfaW4gPSAo dm9pZCAqKShwYXlsb2FkX2RhdGEgKyBpbnB1dF9vZmZzZXQpOwotKyAgICAgICAgICAgICAgICAg ICAgICAgIHByaXYtPmluZmxhdGVyLnpzdHJlYW0uYXZhaWxfaW4gPSAodUludClpbnB1dF9sZW5n dGg7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRfb2Zmc2V0ICs9IGlucHV0X2xlbmd0 aDsKLSAgICAgICAgICAgICAgICAgfQotIAotLSAgICAgICAgICAgICAgICBpZiAocHJpdi0+aW5m bGF0ZXIuenN0cmVhbS5hdmFpbF9pbiA9PSAwICYmICF0YWlsX2FkZGVkICYmIGZpbikgewotKyAg ICAgICAgICAgICAgICBpZiAocHJpdi0+aW5mbGF0ZXIuenN0cmVhbS5hdmFpbF9pbiA9PSAwICYm Ci0rICAgICAgICAgICAgICAgICAgICBpbnB1dF9vZmZzZXQgPT0gcGF5bG9hZF9sZW5ndGggJiYK LSsgICAgICAgICAgICAgICAgICAgICF0YWlsX2FkZGVkICYmIGZpbikgewotICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIEFwcGVuZCA0IG9jdGV0cyBvZiAweDAwIDB4MDAgMHhmZiAweGZmIHRv IHRoZSB0YWlsIGVuZCAqLwotICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPmluZmxhdGVy LnpzdHJlYW0ubmV4dF9pbiA9ICh2b2lkICopIlx4MDBceDAwXHhmZlx4ZmYiOwotICAgICAgICAg ICAgICAgICAgICAgICAgIHByaXYtPmluZmxhdGVyLnpzdHJlYW0uYXZhaWxfaW4gPSA0OwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzX3JlYWQgPSAwOwotICAgICAgICAgICAgICAgICAg ICAgICAgIHRhaWxfYWRkZWQgPSBUUlVFOwotICAgICAgICAgICAgICAgICB9Ci0gCi0tICAgICAg ICAgICAgICAgIHJlYWRfcmVtYWluaW5nID0gdGFpbF9hZGRlZCA/IDQgOiBwYXlsb2FkX2xlbmd0 aCAtIGJ5dGVzX3JlYWQ7Ci0tICAgICAgICAgICAgICAgIHdyaXRlX3JlbWFpbmluZyA9IGJ1ZmZl ci0+bGVuIC0gYnl0ZXNfd3JpdHRlbjsKLSsgICAgICAgICAgICAgICAgaWYgKHByaXYtPmluZmxh dGVyLnpzdHJlYW0uYXZhaWxfb3V0ID09IDApIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICBn dWludCBvdXRwdXRfbGVuZ3RoID0gQlVGRkVSX1NJWkU7Ci0rCi0rICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKGJ5dGVzX3dyaXR0ZW4gPj0gbWF4X291dHB1dF9zaXplIHx8IGJ1ZmZlci0+bGVu ID09IEdfTUFYVUlOVCkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+ aW5mbGF0ZXIuenN0cmVhbS5uZXh0X291dCA9ICZsaW1pdF9wcm9iZTsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHByaXYtPmluZmxhdGVyLnpzdHJlYW0uYXZhaWxfb3V0ID0gMTsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzaW5nX2xpbWl0X3Byb2JlID0gVFJV RTsKLSsgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3VpbnQ2NCByZW1haW5pbmcgPSBtYXhfb3V0cHV0X3NpemUgLSBieXRl c193cml0dGVuOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgY3VycmVu dF9wb3NpdGlvbiA9IGJ1ZmZlci0+bGVuOwotKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb3V0cHV0X2xlbmd0aCA9IE1JTiAoKGd1aW50NjQpb3V0cHV0X2xlbmd0aCwgcmVtYWlu aW5nKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9sZW5ndGggPSBN SU4gKG91dHB1dF9sZW5ndGgsIEdfTUFYVUlOVCAtIGJ1ZmZlci0+bGVuKTsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdfYXNzZXJ0IChvdXRwdXRfbGVuZ3RoID4gMCk7Ci0rCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX2J5dGVfYXJyYXlfc2V0X3NpemUgKGJ1 ZmZlciwgYnVmZmVyLT5sZW4gKyBvdXRwdXRfbGVuZ3RoKTsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHByaXYtPmluZmxhdGVyLnpzdHJlYW0ubmV4dF9vdXQgPSBidWZmZXItPmRh dGEgKyBjdXJyZW50X3Bvc2l0aW9uOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cHJpdi0+aW5mbGF0ZXIuenN0cmVhbS5hdmFpbF9vdXQgPSBvdXRwdXRfbGVuZ3RoOwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNpbmdfbGltaXRfcHJvYmUgPSBGQUxTRTsKLSsg ICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgIH0KLSsKLSsgICAgICAg ICAgICAgICAgaW5wdXRfYmVmb3JlID0gcHJpdi0+aW5mbGF0ZXIuenN0cmVhbS5hdmFpbF9pbjsK LSsgICAgICAgICAgICAgICAgb3V0cHV0X2JlZm9yZSA9IHByaXYtPmluZmxhdGVyLnpzdHJlYW0u YXZhaWxfb3V0OwotICAgICAgICAgICAgICAgICByZXN1bHQgPSBpbmZsYXRlICgmcHJpdi0+aW5m bGF0ZXIuenN0cmVhbSwgdGFpbF9hZGRlZCA/IFpfRklOSVNIIDogWl9OT19GTFVTSCk7Ci0tICAg ICAgICAgICAgICAgIGJ5dGVzX3JlYWQgKz0gcmVhZF9yZW1haW5pbmcgLSBwcml2LT5pbmZsYXRl ci56c3RyZWFtLmF2YWlsX2luOwotLSAgICAgICAgICAgICAgICBieXRlc193cml0dGVuICs9IHdy aXRlX3JlbWFpbmluZyAtIHByaXYtPmluZmxhdGVyLnpzdHJlYW0uYXZhaWxfb3V0OwotKyAgICAg ICAgICAgICAgICBpbnB1dF9jb25zdW1lZCA9IGlucHV0X2JlZm9yZSAtIHByaXYtPmluZmxhdGVy LnpzdHJlYW0uYXZhaWxfaW47Ci0rICAgICAgICAgICAgICAgIG91dHB1dF9wcm9kdWNlZCA9IG91 dHB1dF9iZWZvcmUgLSBwcml2LT5pbmZsYXRlci56c3RyZWFtLmF2YWlsX291dDsKLSsKLSsgICAg ICAgICAgICAgICAgaWYgKHVzaW5nX2xpbWl0X3Byb2JlICYmIG91dHB1dF9wcm9kdWNlZCA+IDAp Ci0rICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXRwdXRfdG9vX2xhcmdlOwotKwotKyAg ICAgICAgICAgICAgICBieXRlc193cml0dGVuICs9IG91dHB1dF9wcm9kdWNlZDsKLSsKLSAgICAg ICAgICAgICAgICAgaWYgKCF0YWlsX2FkZGVkICYmIHJlc3VsdCA9PSBaX1NUUkVBTV9FTkQpIHsK LSAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWNlaXZlZCBhIGJsb2NrIHdpdGggQkZJTkFM IHNldCB0byAxLiBSZXNldCBkZWNvbXByZXNzaW9uIHN0YXRlLiAqLwotICAgICAgICAgICAgICAg ICAgICAgICAgIHJlc3VsdCA9IGluZmxhdGVSZXNldCAoJnByaXYtPmluZmxhdGVyLnpzdHJlYW0p OwotICAgICAgICAgICAgICAgICB9Ci0gCi0tICAgICAgICAgICAgICAgIGlmICgoIWZpbiAmJiBi eXRlc19yZWFkID09IHBheWxvYWRfbGVuZ3RoKSB8fCAoZmluICYmIHRhaWxfYWRkZWQgJiYgYnl0 ZXNfcmVhZCA9PSA0KSkKLS0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLS0gICAgICAg IH0gd2hpbGUgKHJlc3VsdCA9PSBaX09LIHx8IHJlc3VsdCA9PSBaX0JVRl9FUlJPUik7Ci0tCi0t ICAgICAgICBnX2J5dGVzX3VucmVmIChwYXlsb2FkKTsKLSsgICAgICAgICAgICAgICAgaWYgKHJl c3VsdCAhPSBaX09LICYmIHJlc3VsdCAhPSBaX0JVRl9FUlJPUikKLSsgICAgICAgICAgICAgICAg ICAgICAgICBnb3RvIGludmFsaWRfZGF0YTsKLSAKLS0gICAgICAgIGlmIChyZXN1bHQgIT0gWl9P SyAmJiByZXN1bHQgIT0gWl9CVUZfRVJST1IpIHsKLS0gICAgICAgICAgICAgICAgcHJpdi0+aW5m bGF0ZXIudW5jb21wcmVzc19vbmdvaW5nID0gRkFMU0U7Ci0tICAgICAgICAgICAgICAgIGdfc2V0 X2Vycm9yX2xpdGVyYWwgKGVycm9yLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTT1VQX1dFQlNPQ0tFVF9FUlJPUiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU09VUF9XRUJTT0NLRVRfQ0xPU0VfUFJPVE9DT0xfRVJST1IsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gdW5jb21wcmVzcyBpbmNvbWlu ZyBmcmFtZSIpOwotLSAgICAgICAgICAgICAgICBnX2J5dGVfYXJyYXlfdW5yZWYgKGJ1ZmZlcik7 Ci0rICAgICAgICAgICAgICAgIGlmIChwcml2LT5pbmZsYXRlci56c3RyZWFtLmF2YWlsX2luID09 IDAgJiYKLSsgICAgICAgICAgICAgICAgICAgIGlucHV0X29mZnNldCA9PSBwYXlsb2FkX2xlbmd0 aCAmJgotKyAgICAgICAgICAgICAgICAgICAgKCghZmluICYmICF0YWlsX2FkZGVkKSB8fCAoZmlu ICYmIHRhaWxfYWRkZWQpKSAmJgotKyAgICAgICAgICAgICAgICAgICAgcHJpdi0+aW5mbGF0ZXIu enN0cmVhbS5hdmFpbF9vdXQgPiAwKQotKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot IAotLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSsgICAgICAgICAgICAgICAgaWYgKGlu cHV0X2NvbnN1bWVkID09IDAgJiYgb3V0cHV0X3Byb2R1Y2VkID09IDApCi0rICAgICAgICAgICAg ICAgICAgICAgICAgZ290byBpbnZhbGlkX2RhdGE7Ci0gICAgICAgICB9Ci0gCi0rICAgICAgICBn X2J5dGVzX3VucmVmIChwYXlsb2FkKTsKLSAgICAgICAgIGdfYnl0ZV9hcnJheV9zZXRfc2l6ZSAo YnVmZmVyLCBieXRlc193cml0dGVuKTsKLSAKLSAgICAgICAgIHJldHVybiBnX2J5dGVfYXJyYXlf ZnJlZV90b19ieXRlcyAoYnVmZmVyKTsKLSsKLStvdXRwdXRfdG9vX2xhcmdlOgotKyAgICAgICAg aW5mbGF0ZXJfcmVzZXQgKCZwcml2LT5pbmZsYXRlcik7Ci0rICAgICAgICBnX2J5dGVzX3VucmVm IChwYXlsb2FkKTsKLSsgICAgICAgIGdfYnl0ZV9hcnJheV91bnJlZiAoYnVmZmVyKTsKLSsgICAg ICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwgKGVycm9yLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU09VUF9XRUJTT0NLRVRfRVJST1IsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTT1VQX1dFQlNPQ0tFVF9DTE9TRV9UT09fQklHLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIkRlY29tcHJlc3NlZCBXZWJTb2NrZXQgbWVzc2FnZSBleGNlZWRzIGNvbmZpZ3VyZWQg bWF4aW11bSBzaXplIik7Ci0rCi0rICAgICAgICByZXR1cm4gTlVMTDsKLSsKLStpbnZhbGlkX2Rh dGE6Ci0rICAgICAgICBpbmZsYXRlcl9yZXNldCAoJnByaXYtPmluZmxhdGVyKTsKLSsgICAgICAg IGdfYnl0ZXNfdW5yZWYgKHBheWxvYWQpOwotKyAgICAgICAgZ19ieXRlX2FycmF5X3VucmVmIChi dWZmZXIpOwotKyAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbCAoZXJyb3IsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTT1VQX1dFQlNPQ0tFVF9FUlJPUiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNPVVBfV0VCU09DS0VUX0NMT1NFX1BST1RPQ09MX0VSUk9SLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byB1bmNvbXByZXNzIGluY29taW5n IGZyYW1lIik7Ci0rCi0rICAgICAgICByZXR1cm4gTlVMTDsKLSt9Ci0rCi0rc3RhdGljIEdCeXRl cyAqCi0rc291cF93ZWJzb2NrZXRfZXh0ZW5zaW9uX2RlZmxhdGVfcHJvY2Vzc19pbmNvbWluZ19t ZXNzYWdlIChTb3VwV2Vic29ja2V0RXh0ZW5zaW9uICpleHRlbnNpb24sCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludDggICAg ICAgICAgICAgICAgICpoZWFkZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHQnl0ZXMgICAgICAgICAgICAgICAgICpwYXlsb2Fk LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR0Vycm9yICAgICAgICAgICAgICAgICoqZXJyb3IpCi0rewotKyAgICAgICAgcmV0dXJu IHNvdXBfd2Vic29ja2V0X2V4dGVuc2lvbl9kZWZsYXRlX3Byb2Nlc3NfaW5jb21pbmdfbWVzc2Fn ZV93aXRoX2xpbWl0IChleHRlbnNpb24sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl YWRlciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZCwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR19NQVhVSU5UNjQsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVycm9yKTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLUBAIC00ODMsNiArNTUyLDcgQEAgc291 cF93ZWJzb2NrZXRfZXh0ZW5zaW9uX2RlZmxhdGVfY2xhc3NfaW5pdCAoU291cFdlYnNvY2tldEV4 dGVuc2lvbkRlZmxhdGVDbGFzcwotICAgICAgICAgZXh0ZW5zaW9uX2NsYXNzLT5nZXRfcmVzcG9u c2VfcGFyYW1zID0gc291cF93ZWJzb2NrZXRfZXh0ZW5zaW9uX2RlZmxhdGVfZ2V0X3Jlc3BvbnNl X3BhcmFtczsKLSAgICAgICAgIGV4dGVuc2lvbl9jbGFzcy0+cHJvY2Vzc19vdXRnb2luZ19tZXNz YWdlID0gc291cF93ZWJzb2NrZXRfZXh0ZW5zaW9uX2RlZmxhdGVfcHJvY2Vzc19vdXRnb2luZ19t ZXNzYWdlOwotICAgICAgICAgZXh0ZW5zaW9uX2NsYXNzLT5wcm9jZXNzX2luY29taW5nX21lc3Nh Z2UgPSBzb3VwX3dlYnNvY2tldF9leHRlbnNpb25fZGVmbGF0ZV9wcm9jZXNzX2luY29taW5nX21l c3NhZ2U7Ci0rICAgICAgICBleHRlbnNpb25fY2xhc3MtPnByb2Nlc3NfaW5jb21pbmdfbWVzc2Fn ZV93aXRoX2xpbWl0ID0gc291cF93ZWJzb2NrZXRfZXh0ZW5zaW9uX2RlZmxhdGVfcHJvY2Vzc19p bmNvbWluZ19tZXNzYWdlX3dpdGhfbGltaXQ7Ci0gCi0gICAgICAgICBvYmplY3RfY2xhc3MtPmZp bmFsaXplID0gc291cF93ZWJzb2NrZXRfZXh0ZW5zaW9uX2RlZmxhdGVfZmluYWxpemU7Ci0gfQot ZGlmZiAtLWdpdCBhL2xpYnNvdXAvd2Vic29ja2V0L3NvdXAtd2Vic29ja2V0LWV4dGVuc2lvbi5j IGIvbGlic291cC93ZWJzb2NrZXQvc291cC13ZWJzb2NrZXQtZXh0ZW5zaW9uLmMKLWluZGV4IDg4 ODJkMmMwLi45NTcxOWU4YyAxMDA2NDQKLS0tLSBhL2xpYnNvdXAvd2Vic29ja2V0L3NvdXAtd2Vi c29ja2V0LWV4dGVuc2lvbi5jCi0rKysgYi9saWJzb3VwL3dlYnNvY2tldC9zb3VwLXdlYnNvY2tl dC1leHRlbnNpb24uYwotQEAgLTQ3LDYgKzQ3LDkgQEAKLSAgKiAgICBiZWZvcmUgaXQncyBzZW50 LiBSZXNlcnZlZCBiaXRzIG9mIHRoZSBoZWFkZXIgc2hvdWxkIGJlIGNoYW5nZWQuCi0gICogQHBy b2Nlc3NfaW5jb21pbmdfbWVzc2FnZTogY2FsbGVkIHRvIHByb2Nlc3MgdGhlIHBheWxvYWQgZGF0 YSBvZiBhIG1lc3NhZ2UKLSAgKiAgICBhZnRlciBpdCdzIHJlY2VpdmVkLiBSZXNlcnZlZCBiaXRz IG9mIHRoZSBoZWFkZXIgc2hvdWxkIGJlIGNsZWFyZWQuCi0rICogQHByb2Nlc3NfaW5jb21pbmdf bWVzc2FnZV93aXRoX2xpbWl0OiBjYWxsZWQgdG8gcHJvY2VzcyB0aGUgcGF5bG9hZCBkYXRhIG9m Ci0rICogICAgYSBtZXNzYWdlIGFmdGVyIGl0J3MgcmVjZWl2ZWQgd2l0aG91dCBleGNlZWRpbmcg dGhlIHJlcXVlc3RlZCBtYXhpbXVtCi0rICogICAgb3V0cHV0IHNpemUuIElmIHVuc2V0LCBAcHJv Y2Vzc19pbmNvbWluZ19tZXNzYWdlIGlzIHVzZWQuIFNpbmNlIDMuOAotICAqCi0gICogVGhlIGNs YXNzIHN0cnVjdHVyZSBmb3IgdGhlIFtjbGFzc0BXZWJzb2NrZXRFeHRlbnNpb25dLgotICAqLwot QEAgLTIxNiwzICsyMTksNTMgQEAgc291cF93ZWJzb2NrZXRfZXh0ZW5zaW9uX3Byb2Nlc3NfaW5j b21pbmdfbWVzc2FnZSAoU291cFdlYnNvY2tldEV4dGVuc2lvbiAqZXh0ZW4KLSAKLSAJcmV0dXJu IGtsYXNzLT5wcm9jZXNzX2luY29taW5nX21lc3NhZ2UgKGV4dGVuc2lvbiwgaGVhZGVyLCBwYXls b2FkLCBlcnJvcik7Ci0gfQotKwotKy8qKgotKyAqIHNvdXBfd2Vic29ja2V0X2V4dGVuc2lvbl9w cm9jZXNzX2luY29taW5nX21lc3NhZ2Vfd2l0aF9saW1pdDoKLSsgKiBAZXh0ZW5zaW9uOiBhICNT b3VwV2Vic29ja2V0RXh0ZW5zaW9uCi0rICogQGhlYWRlcjogKGlub3V0KTogdGhlIG1lc3NhZ2Ug aGVhZGVyCi0rICogQHBheWxvYWQ6ICh0cmFuc2ZlciBmdWxsKTogdGhlIHBheWxvYWQgZGF0YQot KyAqIEBtYXhfb3V0cHV0X3NpemU6IHRoZSBtYXhpbXVtIHNpemUgaW4gYnl0ZXMgb2YgdGhlIHBy b2Nlc3NlZCBwYXlsb2FkCi0rICogQGVycm9yOiByZXR1cm4gbG9jYXRpb24gZm9yIGEgI0dFcnJv cgotKyAqCi0rICogUHJvY2VzcyBhIG1lc3NhZ2UgYWZ0ZXIgaXQncyByZWNlaXZlZCwgd2l0aG91 dCBwcm9kdWNpbmcgbW9yZSB0aGFuCi0rICogQG1heF9vdXRwdXRfc2l6ZSBieXRlcyBvZiBvdXRw dXQuCi0rICoKLSsgKiBUaGlzIGJlaGF2ZXMgbGlrZSBbbWV0aG9kQFdlYnNvY2tldEV4dGVuc2lv bi5wcm9jZXNzX2luY29taW5nX21lc3NhZ2VdLAotKyAqIGJ1dCBleHRlbnNpb25zIHRoYXQgZXhw YW5kIHRoZWlyIGlucHV0IChzdWNoIGFzIGBwZXJtZXNzYWdlLWRlZmxhdGVgKQotKyAqIHN0b3Ag YW5kIHJldHVybiBhbiBlcnJvciB3aXRoIFtlcnJvckBXZWJzb2NrZXRFcnJvci5DTE9TRV9UT09f QklHXQotKyAqIGluc3RlYWQgb2YgcHJvZHVjaW5nIG91dHB1dCBsYXJnZXIgdGhhbiBAbWF4X291 dHB1dF9zaXplLiBFeHRlbnNpb25zCi0rICogdGhhdCBkb24ndCBpbXBsZW1lbnQgdGhpcyBmYWxs IGJhY2sgdG8KLSsgKiBbbWV0aG9kQFdlYnNvY2tldEV4dGVuc2lvbi5wcm9jZXNzX2luY29taW5n X21lc3NhZ2VdLgotKyAqCi0rICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiB0aGUgbWVzc2Fn ZSBwYXlsb2FkIGRhdGEsIG9yICVOVUxMIGluIGNhc2Ugb2YgZXJyb3IKLSsgKgotKyAqIFNpbmNl OiAzLjgKLSsgKi8KLStHQnl0ZXMgKgotK3NvdXBfd2Vic29ja2V0X2V4dGVuc2lvbl9wcm9jZXNz X2luY29taW5nX21lc3NhZ2Vfd2l0aF9saW1pdCAoU291cFdlYnNvY2tldEV4dGVuc2lvbiAqZXh0 ZW5zaW9uLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3VpbnQ4ICAgICAgICAgICAgICAgICAqaGVhZGVyLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0J5 dGVzICAgICAgICAgICAgICAgICAqcGF5bG9hZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50NjQgICAgICAgICAgICAg ICAgIG1heF9vdXRwdXRfc2l6ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAgICAqKmVycm9y KQotK3sKLSsJU291cFdlYnNvY2tldEV4dGVuc2lvbkNsYXNzICprbGFzczsKLSsKLSsJZ19yZXR1 cm5fdmFsX2lmX2ZhaWwgKFNPVVBfSVNfV0VCU09DS0VUX0VYVEVOU0lPTiAoZXh0ZW5zaW9uKSwg TlVMTCk7Ci0rCWdfcmV0dXJuX3ZhbF9pZl9mYWlsIChoZWFkZXIgIT0gTlVMTCwgTlVMTCk7Ci0r CWdfcmV0dXJuX3ZhbF9pZl9mYWlsIChwYXlsb2FkICE9IE5VTEwsIE5VTEwpOwotKwlnX3JldHVy bl92YWxfaWZfZmFpbCAoZXJyb3IgPT0gTlVMTCB8fCAqZXJyb3IgPT0gTlVMTCwgTlVMTCk7Ci0r Ci0rCWtsYXNzID0gU09VUF9XRUJTT0NLRVRfRVhURU5TSU9OX0dFVF9DTEFTUyAoZXh0ZW5zaW9u KTsKLSsJaWYgKCFrbGFzcy0+cHJvY2Vzc19pbmNvbWluZ19tZXNzYWdlX3dpdGhfbGltaXQpCi0r CQlyZXR1cm4gc291cF93ZWJzb2NrZXRfZXh0ZW5zaW9uX3Byb2Nlc3NfaW5jb21pbmdfbWVzc2Fn ZSAoZXh0ZW5zaW9uLAotKwkJCQkJCQkJCSAgaGVhZGVyLAotKwkJCQkJCQkJCSAgcGF5bG9hZCwK LSsJCQkJCQkJCQkgIGVycm9yKTsKLSsKLSsJcmV0dXJuIGtsYXNzLT5wcm9jZXNzX2luY29taW5n X21lc3NhZ2Vfd2l0aF9saW1pdCAoZXh0ZW5zaW9uLAotKwkJCQkJCQkgICBoZWFkZXIsCi0rCQkJ CQkJCSAgIHBheWxvYWQsCi0rCQkJCQkJCSAgIG1heF9vdXRwdXRfc2l6ZSwKLSsJCQkJCQkJICAg ZXJyb3IpOwotK30KLWRpZmYgLS1naXQgYS9saWJzb3VwL3dlYnNvY2tldC9zb3VwLXdlYnNvY2tl dC1leHRlbnNpb24uaCBiL2xpYnNvdXAvd2Vic29ja2V0L3NvdXAtd2Vic29ja2V0LWV4dGVuc2lv bi5oCi1pbmRleCAxOTMxYTI2NC4uYTlkNWUzNWMgMTAwNjQ0Ci0tLS0gYS9saWJzb3VwL3dlYnNv Y2tldC9zb3VwLXdlYnNvY2tldC1leHRlbnNpb24uaAotKysrIGIvbGlic291cC93ZWJzb2NrZXQv c291cC13ZWJzb2NrZXQtZXh0ZW5zaW9uLmgKLUBAIC01NSw4ICs1NSwxNCBAQCBzdHJ1Y3QgX1Nv dXBXZWJzb2NrZXRFeHRlbnNpb25DbGFzcyB7Ci0gCQkJCQkgICAgICAgR0J5dGVzICAgICAgICAg ICAgICAgICAgICAgKnBheWxvYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAgICAgICAgICoqZXJyb3IpOwotIAotKwlH Qnl0ZXMgICooKiBwcm9jZXNzX2luY29taW5nX21lc3NhZ2Vfd2l0aF9saW1pdCkgKFNvdXBXZWJz b2NrZXRFeHRlbnNpb24gKmV4dGVuc2lvbiwKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBndWludDggICAgICAgICAgICAgICAgICpoZWFkZXIsCi0r CSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0J5dGVz ICAgICAgICAgICAgICAgICAqcGF5bG9hZCwKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBndWludDY0ICAgICAgICAgICAgICAgICBtYXhfb3V0cHV0 X3NpemUsCi0rCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR0Vycm9yICAgICAgICAgICAgICAgICoqZXJyb3IpOwotKwotICAgICAgICAgLyogPHByaXZh dGU+ICovCi0tCWdwb2ludGVyIHBhZGRpbmdbNl07Ci0rCWdwb2ludGVyIHBhZGRpbmdbNV07Ci0g fTsKLSAKLSBTT1VQX0FWQUlMQUJMRV9JTl9BTEwKLUBAIC04MCw1ICs4NiwxMSBAQCBHQnl0ZXMg ICAgICAgICAgICAgICAgICAqc291cF93ZWJzb2NrZXRfZXh0ZW5zaW9uX3Byb2Nlc3NfaW5jb21p bmdfbWVzc2FnZSAoU291cAotIAkJCQkJCQkJCSAgICBndWludDggICAgICAgICAgICAgICAgICAg ICAqaGVhZGVyLAotIAkJCQkJCQkJCSAgICBHQnl0ZXMgICAgICAgICAgICAgICAgICAgICAqcGF5 bG9hZCwKLSAJCQkJCQkJCQkgICAgR0Vycm9yICAgICAgICAgICAgICAgICAgICAqKmVycm9yKTsK LStTT1VQX0FWQUlMQUJMRV9JTl8zXzgKLStHQnl0ZXMgICAgICAgICAgICAgICAgICAqc291cF93 ZWJzb2NrZXRfZXh0ZW5zaW9uX3Byb2Nlc3NfaW5jb21pbmdfbWVzc2FnZV93aXRoX2xpbWl0IChT b3VwV2Vic29ja2V0RXh0ZW5zaW9uICpleHRlbnNpb24sCi0rCQkJCQkJCQkJCQkgICAgICAgZ3Vp bnQ4ICAgICAgICAgICAgICAgICAqaGVhZGVyLAotKwkJCQkJCQkJCQkJICAgICAgIEdCeXRlcyAg ICAgICAgICAgICAgICAgKnBheWxvYWQsCi0rCQkJCQkJCQkJCQkgICAgICAgZ3VpbnQ2NCAgICAg ICAgICAgICAgICAgbWF4X291dHB1dF9zaXplLAotKwkJCQkJCQkJCQkJICAgICAgIEdFcnJvciAg ICAgICAgICAgICAgICAqKmVycm9yKTsKLSAKLSBHX0VORF9ERUNMUwotZGlmZiAtLWdpdCBhL3Rl c3RzL3dlYnNvY2tldC10ZXN0LmMgYi90ZXN0cy93ZWJzb2NrZXQtdGVzdC5jCi1pbmRleCBkYjA4 OGE1NS4uNWY5NGI1ZjYgMTAwNjQ0Ci0tLS0gYS90ZXN0cy93ZWJzb2NrZXQtdGVzdC5jCi0rKysg Yi90ZXN0cy93ZWJzb2NrZXQtdGVzdC5jCi1AQCAtNzMsNiArNzMsMTggQEAgb25fZXJyb3JfY29w eSAoU291cFdlYnNvY2tldENvbm5lY3Rpb24gKndzLAotIAkqY29weSA9IGdfZXJyb3JfY29weSAo ZXJyb3IpOwotIH0KLSAKLStzdGF0aWMgdm9pZAotK29uX2Vycm9yX2NvcHlfb25jZSAoU291cFdl YnNvY2tldENvbm5lY3Rpb24gKndzLAotKwkJICAgIEdFcnJvciAqZXJyb3IsCi0rCQkgICAgZ3Bv aW50ZXIgdXNlcl9kYXRhKQotK3sKLSsJR0Vycm9yICoqY29weSA9IHVzZXJfZGF0YTsKLSsKLSsJ Z19hc3NlcnRfbnVsbCAoKmNvcHkpOwotKwkqY29weSA9IGdfZXJyb3JfY29weSAoZXJyb3IpOwot KwlnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMgKHdzLCBHX0NBTExCQUNLIChv bl9lcnJvcl9jb3B5X29uY2UpLCB1c2VyX2RhdGEpOwotK30KLSsKLSBzdGF0aWMgdm9pZAotIHNl dHVwX2xpc3RlbmVyIChUZXN0ICp0ZXN0KQotIHsKLUBAIC02NDksNyArNjYxLDcgQEAgdGVzdF9z ZW5kX2JpZ19wYWNrZXRzX3NvdXAgKFRlc3QgKnRlc3QsCi0gCWdfYXNzZXJ0X2NtcHVpbnQgKHNv dXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0X21heF9pbmNvbWluZ19wYXlsb2FkX3NpemUgKHRl c3QtPmNsaWVudCksID09LCAxMjggKiAxMDI0KTsKLSAJZ19hc3NlcnRfY21wdWludCAoc291cF93 ZWJzb2NrZXRfY29ubmVjdGlvbl9nZXRfbWF4X3RvdGFsX21lc3NhZ2Vfc2l6ZSAodGVzdC0+Y2xp ZW50KSwgPT0sIDApOwotIAotLQkvKiBNYXggdG90YWwgbWVzc2FnZSBzaXplIGRlZmF1bHRzIHRv IDAgKHVubGltaXRlZCksIGJ1dCBTb3VwU2VydmVyIGFwcGxpZXMgaXRzIG93biBsaW1pdCBieSBk ZWZhdWx0LiAqLwotKwkvKiBTb3VwU2VydmVyIGFwcGxpZXMgaXRzIG93biB0b3RhbCBtZXNzYWdl IHNpemUgbGltaXQgYnkgZGVmYXVsdC4gKi8KLSAJZ19hc3NlcnRfY21wdWludCAoc291cF93ZWJz b2NrZXRfY29ubmVjdGlvbl9nZXRfbWF4X2luY29taW5nX3BheWxvYWRfc2l6ZSAodGVzdC0+c2Vy dmVyKSwgPT0sIDEyOCAqIDEwMjQpOwotIAlnX2Fzc2VydF9jbXB1aW50IChzb3VwX3dlYnNvY2tl dF9jb25uZWN0aW9uX2dldF9tYXhfdG90YWxfbWVzc2FnZV9zaXplICh0ZXN0LT5zZXJ2ZXIpLCA9 PSwgMTI4ICogMTAyNCk7Ci0gCi1AQCAtNzU2LDkgKzc2OCw3IEBAIHRlc3Rfc2VuZF9leGNlZWRp bmdfc2VydmVyX21heF9tZXNzYWdlX3NpemUgKFRlc3QgKnRlc3QsCi0gCXNvdXBfd2Vic29ja2V0 X2Nvbm5lY3Rpb25fc2V0X21heF90b3RhbF9tZXNzYWdlX3NpemUgKHRlc3QtPmNsaWVudCwgMCk7 Ci0gCWdfYXNzZXJ0X2NtcHVpbnQgKHNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0X21heF90 b3RhbF9tZXNzYWdlX3NpemUgKHRlc3QtPmNsaWVudCksID09LCAwKTsKLSAKLS0JLyogU2V0IHRo ZSBzZXJ2ZXIgbWVzc2FnZSB0b3RhbCBtZXNzYWdlIHNpemUgbWFudWFsbHksIGJlY2F1c2UgaXRz Ci0tCSAqIGRlZmF1bHQgaXMgZGlmZmVyZW50IGZvciBkaXJlY3QgY29ubmVjdGlvbiB2cy4gc291 cCBjb25uZWN0aW9uLgotLQkgKi8KLSsJLyogVGhlIGRpcmVjdCBzZXJ2ZXIgY29ubmVjdGlvbiBk ZWZhdWx0cyB0byB1bmxpbWl0ZWQuICovCi0gCXNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fc2V0 X21heF90b3RhbF9tZXNzYWdlX3NpemUgKHRlc3QtPnNlcnZlciwgMTI4ICogMTAyNCk7Ci0gCWdf YXNzZXJ0X2NtcHVpbnQgKHNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0X21heF90b3RhbF9t ZXNzYWdlX3NpemUgKHRlc3QtPnNlcnZlciksID09LCAxMjggKiAxMDI0KTsKLSAKLUBAIC0xNjcw LDYgKzE2ODAsMjIyIEBAIHNlbmRfZnJhZ21lbnRzX3NlcnZlcl90aHJlYWQgKGdwb2ludGVyIHVz ZXJfZGF0YSkKLSAJcmV0dXJuIE5VTEw7Ci0gfQotIAotK3R5cGVkZWYgc3RydWN0IHsKLSsJU291 cFdlYnNvY2tldEV4dGVuc2lvbiBwYXJlbnRfaW5zdGFuY2U7Ci0rfSBMZWdhY3lXZWJzb2NrZXRF eHRlbnNpb247Ci0rCi0rdHlwZWRlZiBzdHJ1Y3QgewotKwlTb3VwV2Vic29ja2V0RXh0ZW5zaW9u Q2xhc3MgcGFyZW50X2NsYXNzOwotK30gTGVnYWN5V2Vic29ja2V0RXh0ZW5zaW9uQ2xhc3M7Ci0r Ci0rR1R5cGUgbGVnYWN5X3dlYnNvY2tldF9leHRlbnNpb25fZ2V0X3R5cGUgKHZvaWQpOwotKwot KyNkZWZpbmUgTEVHQUNZX1RZUEVfV0VCU09DS0VUX0VYVEVOU0lPTiAobGVnYWN5X3dlYnNvY2tl dF9leHRlbnNpb25fZ2V0X3R5cGUgKCkpCi0rR19ERUZJTkVfVFlQRSAoTGVnYWN5V2Vic29ja2V0 RXh0ZW5zaW9uLCBsZWdhY3lfd2Vic29ja2V0X2V4dGVuc2lvbiwgU09VUF9UWVBFX1dFQlNPQ0tF VF9FWFRFTlNJT04pCi0rCi0rc3RhdGljIGdib29sZWFuIGxlZ2FjeV9leHRlbnNpb25fcHJvY2Vz c2VkOwotKwotK3N0YXRpYyBHQnl0ZXMgKgotK2xlZ2FjeV93ZWJzb2NrZXRfZXh0ZW5zaW9uX3By b2Nlc3NfaW5jb21pbmdfbWVzc2FnZSAoU291cFdlYnNvY2tldEV4dGVuc2lvbiAqZXh0ZW5zaW9u LAotKwkJCQkJCSAgICAgZ3VpbnQ4ICAgICAgICAgICAgICAgICAqaGVhZGVyLAotKwkJCQkJCSAg ICAgR0J5dGVzICAgICAgICAgICAgICAgICAqcGF5bG9hZCwKLSsJCQkJCQkgICAgIEdFcnJvciAg ICAgICAgICAgICAgICAqKmVycm9yKQotK3sKLSsJbGVnYWN5X2V4dGVuc2lvbl9wcm9jZXNzZWQg PSBUUlVFOwotKwotKwlyZXR1cm4gcGF5bG9hZDsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStsZWdh Y3lfd2Vic29ja2V0X2V4dGVuc2lvbl9jbGFzc19pbml0IChMZWdhY3lXZWJzb2NrZXRFeHRlbnNp b25DbGFzcyAqa2xhc3MpCi0rewotKwlTb3VwV2Vic29ja2V0RXh0ZW5zaW9uQ2xhc3MgKmV4dGVu c2lvbl9jbGFzcyA9IFNPVVBfV0VCU09DS0VUX0VYVEVOU0lPTl9DTEFTUyAoa2xhc3MpOwotKwot KwlleHRlbnNpb25fY2xhc3MtPnByb2Nlc3NfaW5jb21pbmdfbWVzc2FnZSA9IGxlZ2FjeV93ZWJz b2NrZXRfZXh0ZW5zaW9uX3Byb2Nlc3NfaW5jb21pbmdfbWVzc2FnZTsKLSt9Ci0rCi0rc3RhdGlj IHZvaWQKLStsZWdhY3lfd2Vic29ja2V0X2V4dGVuc2lvbl9pbml0IChMZWdhY3lXZWJzb2NrZXRF eHRlbnNpb24gKmV4dGVuc2lvbikKLSt7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rdGVzdF93ZWJz b2NrZXRfZXh0ZW5zaW9uX2xpbWl0X2ZhbGxiYWNrICh2b2lkKQotK3sKLSsJU291cFdlYnNvY2tl dEV4dGVuc2lvbiAqZXh0ZW5zaW9uOwotKwlHQnl0ZXMgKnBheWxvYWQ7Ci0rCUdCeXRlcyAqb3V0 cHV0OwotKwlHRXJyb3IgKmVycm9yID0gTlVMTDsKLSsJZ3VpbnQ4IGhlYWRlciA9IDB4ODI7Ci0r Ci0rCWxlZ2FjeV9leHRlbnNpb25fcHJvY2Vzc2VkID0gRkFMU0U7Ci0rCWV4dGVuc2lvbiA9IGdf b2JqZWN0X25ldyAoTEVHQUNZX1RZUEVfV0VCU09DS0VUX0VYVEVOU0lPTiwgTlVMTCk7Ci0rCXBh eWxvYWQgPSBnX2J5dGVzX25ld19zdGF0aWMgKCJ4IiwgMSk7Ci0rCW91dHB1dCA9IHNvdXBfd2Vi c29ja2V0X2V4dGVuc2lvbl9wcm9jZXNzX2luY29taW5nX21lc3NhZ2Vfd2l0aF9saW1pdCAoZXh0 ZW5zaW9uLAotKwkJCQkJCQkJCSAgICAgICAmaGVhZGVyLAotKwkJCQkJCQkJCSAgICAgICBwYXls b2FkLAotKwkJCQkJCQkJCSAgICAgICAxLAotKwkJCQkJCQkJCSAgICAgICAmZXJyb3IpOwotKwot KwlnX2Fzc2VydF9ub19lcnJvciAoZXJyb3IpOwotKwlnX2Fzc2VydF90cnVlIChsZWdhY3lfZXh0 ZW5zaW9uX3Byb2Nlc3NlZCk7Ci0rCWdfYXNzZXJ0X3RydWUgKG91dHB1dCA9PSBwYXlsb2FkKTsK LSsKLSsJZ19ieXRlc191bnJlZiAob3V0cHV0KTsKLSsJZ19vYmplY3RfdW5yZWYgKGV4dGVuc2lv bik7Ci0rfQotKwotK3R5cGVkZWYgc3RydWN0IHsKLSsJZ3NpemUgb3V0cHV0X3NpemU7Ci0rCWd1 aW50NjQgbWF4X291dHB1dF9zaXplOwotKwlnYm9vbGVhbiBleHBlY3RfdG9vX2JpZzsKLSt9IERl ZmxhdGVPdXRwdXRMaW1pdFRlc3Q7Ci0rCi0rc3RhdGljIHZvaWQKLSt0ZXN0X2RlZmxhdGVfb3V0 cHV0X2xpbWl0IChnY29uc3Rwb2ludGVyIGRhdGEpCi0rewotKwljb25zdCBEZWZsYXRlT3V0cHV0 TGltaXRUZXN0ICpjb25maWcgPSBkYXRhOwotKwlTb3VwV2Vic29ja2V0RXh0ZW5zaW9uICpzZW5k ZXI7Ci0rCVNvdXBXZWJzb2NrZXRFeHRlbnNpb24gKnJlY2VpdmVyOwotKwlHQnl0ZXMgKmNvbXBy ZXNzZWQ7Ci0rCUdCeXRlcyAqb3V0cHV0OwotKwlHRXJyb3IgKmVycm9yID0gTlVMTDsKLSsJZ3Vp bnQ4IGhlYWRlciA9IDB4ODI7Ci0rCi0rCXNlbmRlciA9IGdfb2JqZWN0X25ldyAoU09VUF9UWVBF X1dFQlNPQ0tFVF9FWFRFTlNJT05fREVGTEFURSwgTlVMTCk7Ci0rCWdfYXNzZXJ0X3RydWUgKHNv dXBfd2Vic29ja2V0X2V4dGVuc2lvbl9jb25maWd1cmUgKHNlbmRlciwKLSsJCQkJCQkJICAgU09V UF9XRUJTT0NLRVRfQ09OTkVDVElPTl9TRVJWRVIsCi0rCQkJCQkJCSAgIE5VTEwsICZlcnJvcikp OwotKwlnX2Fzc2VydF9ub19lcnJvciAoZXJyb3IpOwotKwotKwlyZWNlaXZlciA9IGdfb2JqZWN0 X25ldyAoU09VUF9UWVBFX1dFQlNPQ0tFVF9FWFRFTlNJT05fREVGTEFURSwgTlVMTCk7Ci0rCWdf YXNzZXJ0X3RydWUgKHNvdXBfd2Vic29ja2V0X2V4dGVuc2lvbl9jb25maWd1cmUgKHJlY2VpdmVy LAotKwkJCQkJCQkgICBTT1VQX1dFQlNPQ0tFVF9DT05ORUNUSU9OX0NMSUVOVCwKLSsJCQkJCQkJ ICAgTlVMTCwgJmVycm9yKSk7Ci0rCWdfYXNzZXJ0X25vX2Vycm9yIChlcnJvcik7Ci0rCi0rCWNv bXByZXNzZWQgPSBnX2J5dGVzX25ld190YWtlIChnX21hbGxvYzAgKGNvbmZpZy0+b3V0cHV0X3Np emUpLCBjb25maWctPm91dHB1dF9zaXplKTsKLSsJY29tcHJlc3NlZCA9IHNvdXBfd2Vic29ja2V0 X2V4dGVuc2lvbl9wcm9jZXNzX291dGdvaW5nX21lc3NhZ2UgKHNlbmRlciwgJmhlYWRlciwKLSsJ CQkJCQkJCQljb21wcmVzc2VkLCAmZXJyb3IpOwotKwlnX2Fzc2VydF9ub19lcnJvciAoZXJyb3Ip OwotKwlnX2Fzc2VydF9ub25udWxsIChjb21wcmVzc2VkKTsKLSsJZ19hc3NlcnRfdHJ1ZSAoaGVh ZGVyICYgMHg0MCk7Ci0rCWdfYXNzZXJ0X2NtcHVpbnQgKGdfYnl0ZXNfZ2V0X3NpemUgKGNvbXBy ZXNzZWQpLCA8LCBjb25maWctPm91dHB1dF9zaXplKTsKLSsKLSsJb3V0cHV0ID0gc291cF93ZWJz b2NrZXRfZXh0ZW5zaW9uX3Byb2Nlc3NfaW5jb21pbmdfbWVzc2FnZV93aXRoX2xpbWl0IChyZWNl aXZlciwKLSsJCQkJCQkJCQkgICAgICAgJmhlYWRlciwKLSsJCQkJCQkJCQkgICAgICAgY29tcHJl c3NlZCwKLSsJCQkJCQkJCQkgICAgICAgY29uZmlnLT5tYXhfb3V0cHV0X3NpemUsCi0rCQkJCQkJ CQkJICAgICAgICZlcnJvcik7Ci0rCWlmIChjb25maWctPmV4cGVjdF90b29fYmlnKSB7Ci0rCQln X2Fzc2VydF9udWxsIChvdXRwdXQpOwotKwkJZ19hc3NlcnRfZXJyb3IgKGVycm9yLCBTT1VQX1dF QlNPQ0tFVF9FUlJPUiwgU09VUF9XRUJTT0NLRVRfQ0xPU0VfVE9PX0JJRyk7Ci0rCQlnX2NsZWFy X2Vycm9yICgmZXJyb3IpOwotKwl9IGVsc2UgewotKwkJZ19hc3NlcnRfbm9fZXJyb3IgKGVycm9y KTsKLSsJCWdfYXNzZXJ0X25vbm51bGwgKG91dHB1dCk7Ci0rCQlnX2Fzc2VydF9jbXB1aW50IChn X2J5dGVzX2dldF9zaXplIChvdXRwdXQpLCA9PSwgY29uZmlnLT5vdXRwdXRfc2l6ZSk7Ci0rCQln X2J5dGVzX3VucmVmIChvdXRwdXQpOwotKwl9Ci0rCi0rCWdfb2JqZWN0X3VucmVmIChyZWNlaXZl cik7Ci0rCWdfb2JqZWN0X3VucmVmIChzZW5kZXIpOwotK30KLSsKLStzdGF0aWMgY29uc3QgRGVm bGF0ZU91dHB1dExpbWl0VGVzdCBkZWZsYXRlX291dHB1dF9iZWxvd19saW1pdCA9IHsKLSsJNDA5 NSwgNDA5NiwgRkFMU0UKLSt9OwotK3N0YXRpYyBjb25zdCBEZWZsYXRlT3V0cHV0TGltaXRUZXN0 IGRlZmxhdGVfb3V0cHV0X2F0X2xpbWl0ID0gewotKwk0MDk2LCA0MDk2LCBGQUxTRQotK307Ci0r c3RhdGljIGNvbnN0IERlZmxhdGVPdXRwdXRMaW1pdFRlc3QgZGVmbGF0ZV9vdXRwdXRfb3Zlcl9s aW1pdCA9IHsKLSsJNDA5NywgNDA5NiwgVFJVRQotK307Ci0rCi0rdHlwZWRlZiBzdHJ1Y3Qgewot KwlnYm9vbGVhbiBzZXJ2ZXJfcmVjZWl2ZXM7Ci0rCWdib29sZWFuIGNvbmZpZ3VyZV9saW1pdDsK LSt9IERlZmxhdGVNZXNzYWdlTGltaXRUZXN0OwotKwotK3N0YXRpYyB2b2lkCi0rdGVzdF9kZWZs YXRlX2V4Y2VlZHNfbWVzc2FnZV9saW1pdCAoVGVzdCAqdGVzdCwKLSsJCQkJICAgIGdjb25zdHBv aW50ZXIgZGF0YSkKLSt7Ci0rCWNvbnN0IERlZmxhdGVNZXNzYWdlTGltaXRUZXN0ICpjb25maWcg PSBkYXRhOwotKwlTb3VwV2Vic29ja2V0Q29ubmVjdGlvbiAqcmVjZWl2ZXI7Ci0rCVNvdXBXZWJz b2NrZXRDb25uZWN0aW9uICpzZW5kZXI7Ci0rCUdCeXRlcyAqcmVjZWl2ZWQgPSBOVUxMOwotKwlH RXJyb3IgKmVycm9yID0gTlVMTDsKLSsJZ3VpbnQ4ICptZXNzYWdlOwotKwotKwlpZiAoY29uZmln LT5zZXJ2ZXJfcmVjZWl2ZXMpIHsKLSsJCXJlY2VpdmVyID0gdGVzdC0+c2VydmVyOwotKwkJc2Vu ZGVyID0gdGVzdC0+Y2xpZW50OwotKwl9IGVsc2UgewotKwkJcmVjZWl2ZXIgPSB0ZXN0LT5jbGll bnQ7Ci0rCQlzZW5kZXIgPSB0ZXN0LT5zZXJ2ZXI7Ci0rCX0KLSsKLSsJaWYgKGNvbmZpZy0+Y29u ZmlndXJlX2xpbWl0KQotKwkJc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9zZXRfbWF4X3RvdGFs X21lc3NhZ2Vfc2l6ZSAocmVjZWl2ZXIsIDEyOCAqIDEwMjQpOwotKwotKwlnX2Fzc2VydF9jbXB1 aW50IChzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX2dldF9tYXhfdG90YWxfbWVzc2FnZV9zaXpl IChyZWNlaXZlciksCi0rCQkJICA9PSwgMTI4ICogMTAyNCk7Ci0rCi0rCWdfc2lnbmFsX2Nvbm5l Y3QgKHJlY2VpdmVyLCAiZXJyb3IiLCBHX0NBTExCQUNLIChvbl9lcnJvcl9jb3B5X29uY2UpLCAm ZXJyb3IpOwotKwlnX3NpZ25hbF9jb25uZWN0IChyZWNlaXZlciwgIm1lc3NhZ2UiLCBHX0NBTExC QUNLIChvbl9iaW5hcnlfbWVzc2FnZSksICZyZWNlaXZlZCk7Ci0rCi0rCW1lc3NhZ2UgPSBnX21h bGxvYzAgKDEyOCAqIDEwMjQgKyAxKTsKLSsJc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9zZW5k X2JpbmFyeSAoc2VuZGVyLCBtZXNzYWdlLCAxMjggKiAxMDI0ICsgMSk7Ci0rCWdfZnJlZSAobWVz c2FnZSk7Ci0rCi0rCVdBSVRfVU5USUwgKGVycm9yICE9IE5VTEwgfHwgcmVjZWl2ZWQgIT0gTlVM TCk7Ci0rCWdfYXNzZXJ0X251bGwgKHJlY2VpdmVkKTsKLSsJZ19hc3NlcnRfZXJyb3IgKGVycm9y LCBTT1VQX1dFQlNPQ0tFVF9FUlJPUiwgU09VUF9XRUJTT0NLRVRfQ0xPU0VfVE9PX0JJRyk7Ci0r CWdfY2xlYXJfZXJyb3IgKCZlcnJvcik7Ci0rCi0rCVdBSVRfVU5USUwgKHNvdXBfd2Vic29ja2V0 X2Nvbm5lY3Rpb25fZ2V0X3N0YXRlIChzZW5kZXIpID09IFNPVVBfV0VCU09DS0VUX1NUQVRFX0NM T1NFRCk7Ci0rCWdfYXNzZXJ0X251bGwgKHJlY2VpdmVkKTsKLSsJZ19hc3NlcnRfY21wdWludCAo c291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9nZXRfY2xvc2VfY29kZSAoc2VuZGVyKSwKLSsJCQkg ID09LCBTT1VQX1dFQlNPQ0tFVF9DTE9TRV9UT09fQklHKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQK LSt0ZXN0X2RlZmxhdGVfZGVmYXVsdF91bmxpbWl0ZWRfbWVzc2FnZV9zaXplIChUZXN0ICp0ZXN0 LAotKwkJCQkJICAgICBnY29uc3Rwb2ludGVyIGRhdGEpCi0rewotKwljb25zdCBEZWZsYXRlTWVz c2FnZUxpbWl0VGVzdCAqY29uZmlnID0gZGF0YTsKLSsJU291cFdlYnNvY2tldENvbm5lY3Rpb24g KnJlY2VpdmVyOwotKwlTb3VwV2Vic29ja2V0Q29ubmVjdGlvbiAqc2VuZGVyOwotKwlHQnl0ZXMg KnJlY2VpdmVkID0gTlVMTDsKLSsJZ3VpbnQ4ICptZXNzYWdlOwotKwotKwlpZiAoY29uZmlnLT5z ZXJ2ZXJfcmVjZWl2ZXMpIHsKLSsJCXJlY2VpdmVyID0gdGVzdC0+c2VydmVyOwotKwkJc2VuZGVy ID0gdGVzdC0+Y2xpZW50OwotKwl9IGVsc2UgewotKwkJcmVjZWl2ZXIgPSB0ZXN0LT5jbGllbnQ7 Ci0rCQlzZW5kZXIgPSB0ZXN0LT5zZXJ2ZXI7Ci0rCX0KLSsKLSsJZ19hc3NlcnRfZmFsc2UgKGNv bmZpZy0+Y29uZmlndXJlX2xpbWl0KTsKLSsJZ19hc3NlcnRfY21wdWludCAoc291cF93ZWJzb2Nr ZXRfY29ubmVjdGlvbl9nZXRfbWF4X3RvdGFsX21lc3NhZ2Vfc2l6ZSAocmVjZWl2ZXIpLCA9PSwg MCk7Ci0rCWdfc2lnbmFsX2Nvbm5lY3QgKHJlY2VpdmVyLCAibWVzc2FnZSIsIEdfQ0FMTEJBQ0sg KG9uX2JpbmFyeV9tZXNzYWdlKSwgJnJlY2VpdmVkKTsKLSsKLSsJbWVzc2FnZSA9IGdfbWFsbG9j MCAoMTI4ICogMTAyNCArIDEpOwotKwlzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX3NlbmRfYmlu YXJ5IChzZW5kZXIsIG1lc3NhZ2UsIDEyOCAqIDEwMjQgKyAxKTsKLSsJZ19mcmVlIChtZXNzYWdl KTsKLSsKLSsJV0FJVF9VTlRJTCAocmVjZWl2ZWQgIT0gTlVMTCk7Ci0rCWdfYXNzZXJ0X2NtcHVp bnQgKGdfYnl0ZXNfZ2V0X3NpemUgKHJlY2VpdmVkKSwgPT0sIDEyOCAqIDEwMjQgKyAxKTsKLSsJ Z19ieXRlc191bnJlZiAocmVjZWl2ZWQpOwotK30KLSsKLStzdGF0aWMgY29uc3QgRGVmbGF0ZU1l c3NhZ2VMaW1pdFRlc3QgZGVmbGF0ZV9zZXJ2ZXJfcmVjZWl2ZXNfY29uZmlndXJlZCA9IHsgVFJV RSwgVFJVRSB9OwotK3N0YXRpYyBjb25zdCBEZWZsYXRlTWVzc2FnZUxpbWl0VGVzdCBkZWZsYXRl X2NsaWVudF9yZWNlaXZlc19jb25maWd1cmVkID0geyBGQUxTRSwgVFJVRSB9OwotK3N0YXRpYyBj b25zdCBEZWZsYXRlTWVzc2FnZUxpbWl0VGVzdCBkZWZsYXRlX3NlcnZlcl9yZWNlaXZlc19kZWZh dWx0ID0geyBUUlVFLCBGQUxTRSB9OwotK3N0YXRpYyBjb25zdCBEZWZsYXRlTWVzc2FnZUxpbWl0 VGVzdCBkZWZsYXRlX2NsaWVudF9yZWNlaXZlc19kZWZhdWx0ID0geyBGQUxTRSwgRkFMU0UgfTsK LSsKLSBzdGF0aWMgdm9pZAotIGRvX2RlZmxhdGUgKHpfc3RyZWFtICp6c3RyZWFtLAotICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKnN0ciwKLUBAIC0xNzcxLDYgKzE5OTcsMzEgQEAgdGVzdF9yZWNl aXZlX2ZyYWdtZW50ZWQgKFRlc3QgKnRlc3QsCi0gCVdBSVRfVU5USUwgKHNvdXBfd2Vic29ja2V0 X2Nvbm5lY3Rpb25fZ2V0X3N0YXRlICh0ZXN0LT5jbGllbnQpID09IFNPVVBfV0VCU09DS0VUX1NU QVRFX0NMT1NFRCk7Ci0gfQotIAotK3N0YXRpYyB2b2lkCi0rdGVzdF9kZWZsYXRlX3JlY2VpdmVf ZnJhZ21lbnRlZF90b29fYmlnIChUZXN0ICp0ZXN0LAotKwkJCQkJIGdjb25zdHBvaW50ZXIgZGF0 YSkKLSt7Ci0rCUdUaHJlYWQgKnRocmVhZDsKLSsJR0J5dGVzICpyZWNlaXZlZCA9IE5VTEw7Ci0r CUdFcnJvciAqZXJyb3IgPSBOVUxMOwotKwotKwlzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX3Nl dF9tYXhfdG90YWxfbWVzc2FnZV9zaXplICh0ZXN0LT5jbGllbnQsIDEyKTsKLSsJZ19zaWduYWxf Y29ubmVjdCAodGVzdC0+Y2xpZW50LCAiZXJyb3IiLCBHX0NBTExCQUNLIChvbl9lcnJvcl9jb3B5 X29uY2UpLCAmZXJyb3IpOwotKwlnX3NpZ25hbF9jb25uZWN0ICh0ZXN0LT5jbGllbnQsICJtZXNz YWdlIiwgR19DQUxMQkFDSyAob25fdGV4dF9tZXNzYWdlKSwgJnJlY2VpdmVkKTsKLSsKLSsJdGhy ZWFkID0gZ190aHJlYWRfbmV3ICgiZGVmbGF0ZS1mcmFnbWVudC10b28tYmlnLXRocmVhZCIsCi0r CQkJICAgICAgIHNlbmRfY29tcHJlc3NlZF9mcmFnbWVudHNfc2VydmVyX3RocmVhZCwKLSsJCQkg ICAgICAgdGVzdCk7Ci0rCi0rCVdBSVRfVU5USUwgKGVycm9yICE9IE5VTEwgfHwgcmVjZWl2ZWQg IT0gTlVMTCk7Ci0rCWdfYXNzZXJ0X251bGwgKHJlY2VpdmVkKTsKLSsJZ19hc3NlcnRfZXJyb3Ig KGVycm9yLCBTT1VQX1dFQlNPQ0tFVF9FUlJPUiwgU09VUF9XRUJTT0NLRVRfQ0xPU0VfVE9PX0JJ Ryk7Ci0rCWdfY2xlYXJfZXJyb3IgKCZlcnJvcik7Ci0rCi0rCWdfdGhyZWFkX2pvaW4gKHRocmVh ZCk7Ci0rCVdBSVRfVU5USUwgKHNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0X3N0YXRlICh0 ZXN0LT5jbGllbnQpID09IFNPVVBfV0VCU09DS0VUX1NUQVRFX0NMT1NFRCk7Ci0rfQotKwotIHR5 cGVkZWYgc3RydWN0IHsKLSAJVGVzdCAqdGVzdDsKLSAJY29uc3QgY2hhciAqaGVhZGVyOwotQEAg LTI3OTgsNiArMzA0OSwxOCBAQCBtYWluIChpbnQgYXJnYywKLSAJCSAgICB0ZXN0X2RlZmxhdGVf bmVnb3RpYXRlX2RpcmVjdCwKLSAJCSAgICBOVUxMKTsKLSAKLSsJZ190ZXN0X2FkZF9mdW5jICgi L3dlYnNvY2tldC9leHRlbnNpb24vaW5jb21pbmctbGltaXQtbGVnYWN5LWZhbGxiYWNrIiwKLSsJ CQkgdGVzdF93ZWJzb2NrZXRfZXh0ZW5zaW9uX2xpbWl0X2ZhbGxiYWNrKTsKLSsJZ190ZXN0X2Fk ZF9kYXRhX2Z1bmMgKCIvd2Vic29ja2V0L2RlZmxhdGUvb3V0cHV0LWxpbWl0L2JlbG93IiwKLSsJ CQkgICAgICAmZGVmbGF0ZV9vdXRwdXRfYmVsb3dfbGltaXQsCi0rCQkJICAgICAgdGVzdF9kZWZs YXRlX291dHB1dF9saW1pdCk7Ci0rCWdfdGVzdF9hZGRfZGF0YV9mdW5jICgiL3dlYnNvY2tldC9k ZWZsYXRlL291dHB1dC1saW1pdC9leGFjdCIsCi0rCQkJICAgICAgJmRlZmxhdGVfb3V0cHV0X2F0 X2xpbWl0LAotKwkJCSAgICAgIHRlc3RfZGVmbGF0ZV9vdXRwdXRfbGltaXQpOwotKwlnX3Rlc3Rf YWRkX2RhdGFfZnVuYyAoIi93ZWJzb2NrZXQvZGVmbGF0ZS9vdXRwdXQtbGltaXQvb3ZlciIsCi0r CQkJICAgICAgJmRlZmxhdGVfb3V0cHV0X292ZXJfbGltaXQsCi0rCQkJICAgICAgdGVzdF9kZWZs YXRlX291dHB1dF9saW1pdCk7Ci0rCi0gCWdfdGVzdF9hZGQgKCIvd2Vic29ja2V0L2RpcmVjdC9k ZWZsYXRlLWRpc2FibGVkLWluLW1lc3NhZ2UiLCBUZXN0LCBOVUxMLCBOVUxMLAotIAkJICAgIHRl c3RfZGVmbGF0ZV9kaXNhYmxlZF9pbl9tZXNzYWdlX2RpcmVjdCwKLSAJCSAgICBOVUxMKTsKLUBA IC0yODIzLDYgKzMwODYsMzcgQEAgbWFpbiAoaW50IGFyZ2MsCi0gCQkgICAgdGVzdF9zZW5kX3Nl cnZlcl90b19jbGllbnQsCi0gCQkgICAgdGVhcmRvd25fc291cF9jb25uZWN0aW9uKTsKLSAKLSsJ Z190ZXN0X2FkZCAoIi93ZWJzb2NrZXQvZGlyZWN0L2RlZmxhdGUtY29uZmlndXJlZC1saW1pdC9j bGllbnQtdG8tc2VydmVyIiwKLSsJCSAgICBUZXN0LCAmZGVmbGF0ZV9zZXJ2ZXJfcmVjZWl2ZXNf Y29uZmlndXJlZCwKLSsJCSAgICBzZXR1cF9kaXJlY3RfY29ubmVjdGlvbl93aXRoX2V4dGVuc2lv bnMsCi0rCQkgICAgdGVzdF9kZWZsYXRlX2V4Y2VlZHNfbWVzc2FnZV9saW1pdCwKLSsJCSAgICB0 ZWFyZG93bl9kaXJlY3RfY29ubmVjdGlvbik7Ci0rCWdfdGVzdF9hZGQgKCIvd2Vic29ja2V0L2Rp cmVjdC9kZWZsYXRlLWNvbmZpZ3VyZWQtbGltaXQvc2VydmVyLXRvLWNsaWVudCIsCi0rCQkgICAg VGVzdCwgJmRlZmxhdGVfY2xpZW50X3JlY2VpdmVzX2NvbmZpZ3VyZWQsCi0rCQkgICAgc2V0dXBf ZGlyZWN0X2Nvbm5lY3Rpb25fd2l0aF9leHRlbnNpb25zLAotKwkJICAgIHRlc3RfZGVmbGF0ZV9l eGNlZWRzX21lc3NhZ2VfbGltaXQsCi0rCQkgICAgdGVhcmRvd25fZGlyZWN0X2Nvbm5lY3Rpb24p OwotKwlnX3Rlc3RfYWRkICgiL3dlYnNvY2tldC9zb3VwL2RlZmxhdGUtZGVmYXVsdC1zZXJ2ZXIt bGltaXQvY2xpZW50LXRvLXNlcnZlciIsCi0rCQkgICAgVGVzdCwgJmRlZmxhdGVfc2VydmVyX3Jl Y2VpdmVzX2RlZmF1bHQsCi0rCQkgICAgc2V0dXBfc291cF9jb25uZWN0aW9uX3dpdGhfZXh0ZW5z aW9ucywKLSsJCSAgICB0ZXN0X2RlZmxhdGVfZXhjZWVkc19tZXNzYWdlX2xpbWl0LAotKwkJICAg IHRlYXJkb3duX3NvdXBfY29ubmVjdGlvbik7Ci0rCWdfdGVzdF9hZGQgKCIvd2Vic29ja2V0L3Nv dXAvZGVmbGF0ZS1jb25maWd1cmVkLWNsaWVudC1saW1pdC9zZXJ2ZXItdG8tY2xpZW50IiwKLSsJ CSAgICBUZXN0LCAmZGVmbGF0ZV9jbGllbnRfcmVjZWl2ZXNfY29uZmlndXJlZCwKLSsJCSAgICBz ZXR1cF9zb3VwX2Nvbm5lY3Rpb25fd2l0aF9leHRlbnNpb25zLAotKwkJICAgIHRlc3RfZGVmbGF0 ZV9leGNlZWRzX21lc3NhZ2VfbGltaXQsCi0rCQkgICAgdGVhcmRvd25fc291cF9jb25uZWN0aW9u KTsKLSsJZ190ZXN0X2FkZCAoIi93ZWJzb2NrZXQvZGlyZWN0L2RlZmxhdGUtZGVmYXVsdC11bmxp bWl0ZWQvY2xpZW50LXRvLXNlcnZlciIsCi0rCQkgICAgVGVzdCwgJmRlZmxhdGVfc2VydmVyX3Jl Y2VpdmVzX2RlZmF1bHQsCi0rCQkgICAgc2V0dXBfZGlyZWN0X2Nvbm5lY3Rpb25fd2l0aF9leHRl bnNpb25zLAotKwkJICAgIHRlc3RfZGVmbGF0ZV9kZWZhdWx0X3VubGltaXRlZF9tZXNzYWdlX3Np emUsCi0rCQkgICAgdGVhcmRvd25fZGlyZWN0X2Nvbm5lY3Rpb24pOwotKwlnX3Rlc3RfYWRkICgi L3dlYnNvY2tldC9kaXJlY3QvZGVmbGF0ZS1kZWZhdWx0LXVubGltaXRlZC9zZXJ2ZXItdG8tY2xp ZW50IiwKLSsJCSAgICBUZXN0LCAmZGVmbGF0ZV9jbGllbnRfcmVjZWl2ZXNfZGVmYXVsdCwKLSsJ CSAgICBzZXR1cF9kaXJlY3RfY29ubmVjdGlvbl93aXRoX2V4dGVuc2lvbnMsCi0rCQkgICAgdGVz dF9kZWZsYXRlX2RlZmF1bHRfdW5saW1pdGVkX21lc3NhZ2Vfc2l6ZSwKLSsJCSAgICB0ZWFyZG93 bl9kaXJlY3RfY29ubmVjdGlvbik7Ci0rCi0gCWdfdGVzdF9hZGQgKCIvd2Vic29ja2V0L2RpcmVj dC9kZWZsYXRlLXNlbmQtYmlnLXBhY2tldHMiLCBUZXN0LCBOVUxMLAotIAkJICAgIHNldHVwX2Rp cmVjdF9jb25uZWN0aW9uX3dpdGhfZXh0ZW5zaW9ucywKLSAJCSAgICB0ZXN0X3NlbmRfYmlnX3Bh Y2tldHNfZGlyZWN0LAotQEAgLTI4NDUsNiArMzEzOSwxMCBAQCBtYWluIChpbnQgYXJnYywKLSAJ CSAgICBzZXR1cF9oYWxmX2RpcmVjdF9jb25uZWN0aW9uX3dpdGhfZXh0ZW5zaW9ucywKLSAJCSAg ICB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRlZCwKLSAJCSAgICB0ZWFyZG93bl9kaXJlY3RfY29ubmVj dGlvbik7Ci0rCWdfdGVzdF9hZGQgKCIvd2Vic29ja2V0L2RpcmVjdC9kZWZsYXRlLXJlY2VpdmUt ZnJhZ21lbnRlZC10b28tYmlnIiwgVGVzdCwgTlVMTCwKLSsJCSAgICBzZXR1cF9oYWxmX2RpcmVj dF9jb25uZWN0aW9uX3dpdGhfZXh0ZW5zaW9ucywKLSsJCSAgICB0ZXN0X2RlZmxhdGVfcmVjZWl2 ZV9mcmFnbWVudGVkX3Rvb19iaWcsCi0rCQkgICAgdGVhcmRvd25fZGlyZWN0X2Nvbm5lY3Rpb24p OwotIAlnX3Rlc3RfYWRkICgiL3dlYnNvY2tldC9kaXJlY3QvZGVmbGF0ZS1yZWNlaXZlLWZyYWdt ZW50ZWQtZXJyb3IiLCBUZXN0LCBOVUxMLAotIAkJICAgIHNldHVwX2hhbGZfZGlyZWN0X2Nvbm5l Y3Rpb25fd2l0aF9leHRlbnNpb25zLAotIAkJICAgIHRlc3RfZGVmbGF0ZV9yZWNlaXZlX2ZyYWdt ZW50ZWRfZXJyb3IsCi0tLSAKLUdpdExhYgotCgpkaWZmIC0tZ2l0IGEvQ1ZFLTIwMjYtMTU3MTEu cGF0Y2ggYi9DVkUtMjAyNi0xNTcxMS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMjJhYjU3Yi4uMDAwMDAwMAotLS0gYS9DVkUtMjAyNi0xNTcxMS5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDE3MiArMCwwIEBACi1Gcm9tIDYwYWExY2UyYmRjN2JiNWRhMzNiZTkwNjJmNTBi Y2VjN2RiNjdmY2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBaYXlkIFJhamFiIDx6 YXlkckBhbWF6b24uY29tPgotRGF0ZTogVGh1LCAxNiBKdWwgMjAyNiAwMjozMjoxOSArMDAwMAot U3ViamVjdDogW1BBVENIXSB3ZWJzb2NrZXQ6IFJlamVjdCBvdmVyc2l6ZWQgY29udHJvbCBmcmFt ZXMKLQotUkZDIDY0NTUgc2VjdGlvbiA1LjUgbGltaXRzIGNvbnRyb2wgZnJhbWUgcGF5bG9hZHMg dG8gMTI1IGJ5dGVzLgotUmVqZWN0IGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoIGluZGljYXRvcnMg YXMgc29vbiBhcyB0aGUgYmFzZSBoZWFkZXIgaXMKLWF2YWlsYWJsZSwgYmVmb3JlIHdhaXRpbmcg Zm9yIGFkZGl0aW9uYWwgbGVuZ3RoIG9yIHBheWxvYWQgYnl0ZXMuCi0KLUFkZCByZWdyZXNzaW9u IGNvdmVyYWdlIGZvciBib3RoIGV4dGVuZGVkIGxlbmd0aCBpbmRpY2F0b3JzIGFuZCBib3RoCi1y ZWNlaXZlIGRpcmVjdGlvbnMuCi0KLVRoaXMgaXMgQ1ZFLTIwMjYtMTU3MTEuCi0KLUNsb3NlcyAj NTE1Ci0tLS0KLSBsaWJzb3VwL3dlYnNvY2tldC9zb3VwLXdlYnNvY2tldC1jb25uZWN0aW9uLmMg fCAgIDcgKysKLSB0ZXN0cy93ZWJzb2NrZXQtdGVzdC5jICAgICAgICAgICAgICAgICAgICAgICAg fCAxMTMgKysrKysrKysrKysrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCAxMjAgaW5zZXJ0aW9u cygrKQotCi1kaWZmIC0tZ2l0IGEvbGlic291cC93ZWJzb2NrZXQvc291cC13ZWJzb2NrZXQtY29u bmVjdGlvbi5jIGIvbGlic291cC93ZWJzb2NrZXQvc291cC13ZWJzb2NrZXQtY29ubmVjdGlvbi5j Ci1pbmRleCAxNGRjZDYzMC4uZmZkNzEzZWYgMTAwNjQ0Ci0tLS0gYS9saWJzb3VwL3dlYnNvY2tl dC9zb3VwLXdlYnNvY2tldC1jb25uZWN0aW9uLmMKLSsrKyBiL2xpYnNvdXAvd2Vic29ja2V0L3Nv dXAtd2Vic29ja2V0LWNvbm5lY3Rpb24uYwotQEAgLTEwODIsNiArMTA4MiwxMyBAQCBwcm9jZXNz X2ZyYW1lIChTb3VwV2Vic29ja2V0Q29ubmVjdGlvbiAqc2VsZikKLSAgICAgICAgICAgICAgICAg cmV0dXJuIEZBTFNFOwotICAgICAgICAgfQotIAotKwkvKiBSRkMgNjQ1NSBzZWN0aW9uIDUuNSBs aW1pdHMgY29udHJvbCBmcmFtZSBwYXlsb2FkcyB0byAxMjUgYnl0ZXMuICovCi0rCWlmIChjb250 cm9sICYmIChoZWFkZXJbMV0gJiAweDdmKSA+IDEyNSkgewotKwkJZ19kZWJ1ZyAoInJlY2VpdmVk IG92ZXJzaXplZCBjb250cm9sIGZyYW1lIik7Ci0rCQlwcm90b2NvbF9lcnJvcl9hbmRfY2xvc2Ug KHNlbGYpOwotKwkJcmV0dXJuIEZBTFNFOwotKwl9Ci0rCi0gCXN3aXRjaCAoaGVhZGVyWzFdICYg MHg3ZikgewotIAljYXNlIDEyNjoKLSAJCS8qIElmIDEyNiwgdGhlIGZvbGxvd2luZyAyIGJ5dGVz IGludGVycHJldGVkIGFzIGEgMTYtYml0Ci1kaWZmIC0tZ2l0IGEvdGVzdHMvd2Vic29ja2V0LXRl c3QuYyBiL3Rlc3RzL3dlYnNvY2tldC10ZXN0LmMKLWluZGV4IGI4ZjcxMzAwLi5kYjA4OGE1NSAx MDA2NDQKLS0tLSBhL3Rlc3RzL3dlYnNvY2tldC10ZXN0LmMKLSsrKyBiL3Rlc3RzL3dlYnNvY2tl dC10ZXN0LmMKLUBAIC04MzUsNiArODM1LDk4IEBAIHRlc3Rfc2VuZF9iYWRfZGF0YSAoVGVzdCAq dGVzdCwKLSAJZ19hc3NlcnRfY21wdWludCAoc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9nZXRf Y2xvc2VfY29kZSAodGVzdC0+Y2xpZW50KSwgPT0sIFNPVVBfV0VCU09DS0VUX0NMT1NFX0JBRF9E QVRBKTsKLSB9Ci0gCi0rc3RhdGljIGdib29sZWFuCi0rb25fdGltZW91dF9zZXRfZmxhZyAoZ3Bv aW50ZXIgdXNlcl9kYXRhKQotK3sKLSsJZ2Jvb2xlYW4gKnRpbWVkX291dCA9IHVzZXJfZGF0YTsK LSsKLSsJKnRpbWVkX291dCA9IFRSVUU7Ci0rCi0rCXJldHVybiBHX1NPVVJDRV9SRU1PVkU7Ci0r fQotKwotK3N0YXRpYyB2b2lkCi0rd2FpdF9mb3Jfd2Vic29ja2V0X2Vycm9yIChHRXJyb3IgKipl cnJvcikKLSt7Ci0rCWdib29sZWFuIHRpbWVkX291dCA9IEZBTFNFOwotKwlndWludCB0aW1lb3V0 X2lkOwotKwotKwl0aW1lb3V0X2lkID0gZ190aW1lb3V0X2FkZF9zZWNvbmRzICgxLCBvbl90aW1l b3V0X3NldF9mbGFnLCAmdGltZWRfb3V0KTsKLSsJV0FJVF9VTlRJTCAoKmVycm9yICE9IE5VTEwg fHwgdGltZWRfb3V0KTsKLSsKLSsJaWYgKCF0aW1lZF9vdXQpCi0rCQlnX3NvdXJjZV9yZW1vdmUg KHRpbWVvdXRfaWQpOwotKwlnX2Fzc2VydF9mYWxzZSAodGltZWRfb3V0KTsKLSt9Ci0rCi0rc3Rh dGljIHZvaWQKLSt3cml0ZV9vdmVyc2l6ZWRfY29udHJvbF9mcmFtZV9oZWFkZXIgKEdJT1N0cmVh bSAqaW8sCi0rCQkJCSAgICAgIGd1aW50OCBsZW5ndGhfaW5kaWNhdG9yLAotKwkJCQkgICAgICBn Ym9vbGVhbiBtYXNrZWQpCi0rewotKwlndWludDggZnJhbWVbXSA9IHsgMHg4YSwgbGVuZ3RoX2lu ZGljYXRvciB9OwotKwlHRXJyb3IgKmVycm9yID0gTlVMTDsKLSsJZ3NpemUgd3JpdHRlbjsKLSsK LSsJZ19hc3NlcnRfdHJ1ZSAobGVuZ3RoX2luZGljYXRvciA9PSAxMjYgfHwgbGVuZ3RoX2luZGlj YXRvciA9PSAxMjcpOwotKwotKwlpZiAobWFza2VkKQotKwkJZnJhbWVbMV0gfD0gMHg4MDsKLSsK LSsJZ19vdXRwdXRfc3RyZWFtX3dyaXRlX2FsbCAoZ19pb19zdHJlYW1fZ2V0X291dHB1dF9zdHJl YW0gKGlvKSwKLSsJCQkJICAgZnJhbWUsIHNpemVvZiAoZnJhbWUpLCAmd3JpdHRlbiwgTlVMTCwg JmVycm9yKTsKLSsJZ19hc3NlcnRfbm9fZXJyb3IgKGVycm9yKTsKLSsJZ19hc3NlcnRfY21wdWlu dCAod3JpdHRlbiwgPT0sIHNpemVvZiAoZnJhbWUpKTsKLSt9Ci0rCi0rdHlwZWRlZiBzdHJ1Y3Qg ewotKwlndWludDggbGVuZ3RoX2luZGljYXRvcjsKLSsJZ2Jvb2xlYW4gc2VydmVyX3JlY2VpdmVz OwotK30gT3ZlcnNpemVkQ29udHJvbEZyYW1lVGVzdDsKLSsKLStzdGF0aWMgdm9pZAotK3Rlc3Rf cmVjZWl2ZV9vdmVyc2l6ZWRfY29udHJvbF9mcmFtZSAoVGVzdCAqdGVzdCwKLSsJCQkJICAgICAg Z2NvbnN0cG9pbnRlciBkYXRhKQotK3sKLSsJY29uc3QgT3ZlcnNpemVkQ29udHJvbEZyYW1lVGVz dCAqY29uZmlnID0gZGF0YTsKLSsJU291cFdlYnNvY2tldENvbm5lY3Rpb24gKnJlY2VpdmVyOwot KwlTb3VwV2Vic29ja2V0Q29ubmVjdGlvbiAqc2VuZGVyOwotKwlHRXJyb3IgKmVycm9yID0gTlVM TDsKLSsJR0lPU3RyZWFtICppbzsKLSsJZ3Vsb25nIGVycm9yX2lkOwotKwlnYm9vbGVhbiBjbG9z ZV9ldmVudCA9IEZBTFNFOwotKwotKwlpZiAoY29uZmlnLT5zZXJ2ZXJfcmVjZWl2ZXMpIHsKLSsJ CXJlY2VpdmVyID0gdGVzdC0+c2VydmVyOwotKwkJc2VuZGVyID0gdGVzdC0+Y2xpZW50OwotKwl9 IGVsc2UgewotKwkJcmVjZWl2ZXIgPSB0ZXN0LT5jbGllbnQ7Ci0rCQlzZW5kZXIgPSB0ZXN0LT5z ZXJ2ZXI7Ci0rCX0KLSsKLSsJZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jIChy ZWNlaXZlciwgb25fZXJyb3Jfbm90X3JlYWNoZWQsIE5VTEwpOwotKwllcnJvcl9pZCA9IGdfc2ln bmFsX2Nvbm5lY3QgKHJlY2VpdmVyLCAiZXJyb3IiLCBHX0NBTExCQUNLIChvbl9lcnJvcl9jb3B5 KSwgJmVycm9yKTsKLSsJZ19zaWduYWxfY29ubmVjdCAoc2VuZGVyLCAiY2xvc2VkIiwgR19DQUxM QkFDSyAob25fY2xvc2Vfc2V0X2ZsYWcpLCAmY2xvc2VfZXZlbnQpOwotKwotKwlpbyA9IHNvdXBf d2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0X2lvX3N0cmVhbSAoc2VuZGVyKTsKLSsJd3JpdGVfb3Zl cnNpemVkX2NvbnRyb2xfZnJhbWVfaGVhZGVyIChpbywgY29uZmlnLT5sZW5ndGhfaW5kaWNhdG9y LAotKwkJCQkJICAgICAgY29uZmlnLT5zZXJ2ZXJfcmVjZWl2ZXMpOwotKwl3YWl0X2Zvcl93ZWJz b2NrZXRfZXJyb3IgKCZlcnJvcik7Ci0rCWdfYXNzZXJ0X2Vycm9yIChlcnJvciwgU09VUF9XRUJT T0NLRVRfRVJST1IsIFNPVVBfV0VCU09DS0VUX0NMT1NFX1BST1RPQ09MX0VSUk9SKTsKLSsJZ19j bGVhcl9lcnJvciAoJmVycm9yKTsKLSsJZ19zaWduYWxfaGFuZGxlcl9kaXNjb25uZWN0IChyZWNl aXZlciwgZXJyb3JfaWQpOwotKwotKwlXQUlUX1VOVElMIChzb3VwX3dlYnNvY2tldF9jb25uZWN0 aW9uX2dldF9zdGF0ZSAoc2VuZGVyKSA9PSBTT1VQX1dFQlNPQ0tFVF9TVEFURV9DTE9TRUQpOwot KwlnX2Fzc2VydF90cnVlIChjbG9zZV9ldmVudCk7Ci0rCWdfYXNzZXJ0X2NtcHVpbnQgKHNvdXBf d2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0X2Nsb3NlX2NvZGUgKHNlbmRlciksID09LAotKwkJCSAg U09VUF9XRUJTT0NLRVRfQ0xPU0VfUFJPVE9DT0xfRVJST1IpOwotK30KLSsKLStzdGF0aWMgY29u c3QgT3ZlcnNpemVkQ29udHJvbEZyYW1lVGVzdCBvdmVyc2l6ZWRfY29udHJvbF9mcmFtZV8xNl9z ZXJ2ZXIgPSB7IDEyNiwgVFJVRSB9OwotK3N0YXRpYyBjb25zdCBPdmVyc2l6ZWRDb250cm9sRnJh bWVUZXN0IG92ZXJzaXplZF9jb250cm9sX2ZyYW1lXzY0X3NlcnZlciA9IHsgMTI3LCBUUlVFIH07 Ci0rc3RhdGljIGNvbnN0IE92ZXJzaXplZENvbnRyb2xGcmFtZVRlc3Qgb3ZlcnNpemVkX2NvbnRy b2xfZnJhbWVfMTZfY2xpZW50ID0geyAxMjYsIEZBTFNFIH07Ci0rc3RhdGljIGNvbnN0IE92ZXJz aXplZENvbnRyb2xGcmFtZVRlc3Qgb3ZlcnNpemVkX2NvbnRyb2xfZnJhbWVfNjRfY2xpZW50ID0g eyAxMjcsIEZBTFNFIH07Ci0rCi0gc3RhdGljIGNvbnN0IGNoYXIgKm5lZ290aWF0ZV9jbGllbnRf cHJvdG9jb2xzW10gPSB7ICJiYmIiLCAiY2NjIiwgTlVMTCB9OwotIHN0YXRpYyBjb25zdCBjaGFy ICpuZWdvdGlhdGVfc2VydmVyX3Byb3RvY29sc1tdID0geyAiYWFhIiwgImJiYiIsICJjY2MiLCBO VUxMIH07Ci0gc3RhdGljIGNvbnN0IGNoYXIgKm5lZ290aWF0ZWRfcHJvdG9jb2wgPSAiYmJiIjsK LUBAIC0yNTc0LDYgKzI2NjYsMjcgQEAgbWFpbiAoaW50IGFyZ2MsCi0gCQkgICAgdGVzdF9zZW5k X2JhZF9kYXRhLAotIAkJICAgIHRlYXJkb3duX3NvdXBfY29ubmVjdGlvbik7Ci0gCi0rCWdfdGVz dF9hZGQgKCIvd2Vic29ja2V0L2RpcmVjdC9zZXJ2ZXItcmVjZWl2ZS1vdmVyc2l6ZWQtY29udHJv bC1mcmFtZS8xNi1iaXQiLAotKwkJICAgIFRlc3QsICZvdmVyc2l6ZWRfY29udHJvbF9mcmFtZV8x Nl9zZXJ2ZXIsCi0rCQkgICAgc2V0dXBfZGlyZWN0X2Nvbm5lY3Rpb24sCi0rCQkgICAgdGVzdF9y ZWNlaXZlX292ZXJzaXplZF9jb250cm9sX2ZyYW1lLAotKwkJICAgIHRlYXJkb3duX2RpcmVjdF9j b25uZWN0aW9uKTsKLSsJZ190ZXN0X2FkZCAoIi93ZWJzb2NrZXQvZGlyZWN0L3NlcnZlci1yZWNl aXZlLW92ZXJzaXplZC1jb250cm9sLWZyYW1lLzY0LWJpdCIsCi0rCQkgICAgVGVzdCwgJm92ZXJz aXplZF9jb250cm9sX2ZyYW1lXzY0X3NlcnZlciwKLSsJCSAgICBzZXR1cF9kaXJlY3RfY29ubmVj dGlvbiwKLSsJCSAgICB0ZXN0X3JlY2VpdmVfb3ZlcnNpemVkX2NvbnRyb2xfZnJhbWUsCi0rCQkg ICAgdGVhcmRvd25fZGlyZWN0X2Nvbm5lY3Rpb24pOwotKwlnX3Rlc3RfYWRkICgiL3dlYnNvY2tl dC9kaXJlY3QvY2xpZW50LXJlY2VpdmUtb3ZlcnNpemVkLWNvbnRyb2wtZnJhbWUvMTYtYml0IiwK LSsJCSAgICBUZXN0LCAmb3ZlcnNpemVkX2NvbnRyb2xfZnJhbWVfMTZfY2xpZW50LAotKwkJICAg IHNldHVwX2RpcmVjdF9jb25uZWN0aW9uLAotKwkJICAgIHRlc3RfcmVjZWl2ZV9vdmVyc2l6ZWRf Y29udHJvbF9mcmFtZSwKLSsJCSAgICB0ZWFyZG93bl9kaXJlY3RfY29ubmVjdGlvbik7Ci0rCWdf dGVzdF9hZGQgKCIvd2Vic29ja2V0L2RpcmVjdC9jbGllbnQtcmVjZWl2ZS1vdmVyc2l6ZWQtY29u dHJvbC1mcmFtZS82NC1iaXQiLAotKwkJICAgIFRlc3QsICZvdmVyc2l6ZWRfY29udHJvbF9mcmFt ZV82NF9jbGllbnQsCi0rCQkgICAgc2V0dXBfZGlyZWN0X2Nvbm5lY3Rpb24sCi0rCQkgICAgdGVz dF9yZWNlaXZlX292ZXJzaXplZF9jb250cm9sX2ZyYW1lLAotKwkJICAgIHRlYXJkb3duX2RpcmVj dF9jb25uZWN0aW9uKTsKLSsKLSAJZ190ZXN0X2FkZCAoIi93ZWJzb2NrZXQvZGlyZWN0L2Nsb3Nl LWNsZWFuLWNsaWVudCIsIFRlc3QsIE5VTEwsIE5VTEwsCi0gCQkgICAgdGVzdF9jbG9zZV9jbGVh bl9jbGllbnRfZGlyZWN0LAotIAkJICAgIE5VTEwpOwotLS0gCi1HaXRMYWIKLQoKZGlmZiAtLWdp dCBhL0NWRS0yMDI2LTE1NzEyLnBhdGNoIGIvQ1ZFLTIwMjYtMTU3MTIucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2MTZkZWMuLjAwMDAwMDAKLS0tIGEvQ1ZFLTIwMjYtMTU3 MTIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1Gcm9tIDNhNmZiNTZhMGNi YTQyZDExZjVmZDFkYjZkZWRjYzdjMmU5Mjc1N2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBNaWtlIEdvcnNlIDxtZ29yc2VAc3VzZS5jb20+Ci1EYXRlOiBGcmksIDQgU2VwIDIwMjYg MTQ6MDU6MDQgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gaHR0cDI6IERvbid0IGFzc3VtZSB0aGF0 IEdPQVdBWSBvcGFxdWUgZGF0YSBpcyBOVUwtdGVybWluYXRlZAotCi1uZ2h0dHAyIGFsbG9jYXRl cyBmcmFtZS0+Z29hd2F5Lm9wYXF1ZV9kYXRhIHdpdGggZXhhY3RseSBvcGFxdWVfZGF0YV9sZW4K LWJ5dGVzIGFuZCBubyB0ZXJtaW5hdG9yLCBzbyBwYXNzaW5nIGl0IHRvIGEgIiVzIiBmb3JtYXQg aW4gaDJfZGVidWcoKQotcmVhZHMgcGFzdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIgd2hlbiBkZWJ1 ZyBsb2dnaW5nIGlzIGVuYWJsZWQuCi0KLVVzZSAiJS4qcyIgd2l0aCBvcGFxdWVfZGF0YV9sZW4g YXMgdGhlIHByZWNpc2lvbiBzbyB0aGUgcmVhZCBpcyBib3VuZGVkCi13aXRob3V0IGFsbG9jYXRp bmcgYSBjb3B5LgotCi1DbG9zZXMgIzU0MAotLS0tCi0gbGlic291cC9odHRwMi9zb3VwLWNsaWVu dC1tZXNzYWdlLWlvLWh0dHAyLmMgfCA1ICsrKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYnNvdXAvaHR0cDIvc291 cC1jbGllbnQtbWVzc2FnZS1pby1odHRwMi5jIGIvbGlic291cC9odHRwMi9zb3VwLWNsaWVudC1t ZXNzYWdlLWlvLWh0dHAyLmMKLWluZGV4IGFiNTIwMDNkLi5iNjc0MjkyNCAxMDA2NDQKLS0tLSBh L2xpYnNvdXAvaHR0cDIvc291cC1jbGllbnQtbWVzc2FnZS1pby1odHRwMi5jCi0rKysgYi9saWJz b3VwL2h0dHAyL3NvdXAtY2xpZW50LW1lc3NhZ2UtaW8taHR0cDIuYwotQEAgLTgxMywxMCArODEz LDExIEBAIG9uX2ZyYW1lX3JlY3ZfY2FsbGJhY2sgKG5naHR0cDJfc2Vzc2lvbiAgICAgKnNlc3Np b24sCi0gCi0gICAgICAgICAgICAgICAgIHN3aXRjaCAoZnJhbWUtPmhkLnR5cGUpIHsKLSAgICAg ICAgICAgICAgICAgY2FzZSBOR0hUVFAyX0dPQVdBWToKLS0gICAgICAgICAgICAgICAgICAgICAg ICBoMl9kZWJ1ZyAoaW8sIE5VTEwsICJbUkVDVl0gR09BV0FZOiBlcnJvcj0lcywgbGFzdF9zdHJl YW1faWQ9JWQgJXMiLAotKyAgICAgICAgICAgICAgICAgICAgICAgIGgyX2RlYnVnIChpbywgTlVM TCwgIltSRUNWXSBHT0FXQVk6IGVycm9yPSVzLCBsYXN0X3N0cmVhbV9pZD0lZCAlLipzIiwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdodHRwMl9odHRwMl9zdHJlcnJvciAo ZnJhbWUtPmdvYXdheS5lcnJvcl9jb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZnJhbWUtPmdvYXdheS5sYXN0X3N0cmVhbV9pZCwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZnJhbWUtPmdvYXdheS5vcGFxdWVfZGF0YSA/IChjaGFyICopZnJhbWUt PmdvYXdheS5vcGFxdWVfZGF0YSA6ICIiKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGludClmcmFtZS0+Z29hd2F5Lm9wYXF1ZV9kYXRhX2xlbiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmdvYXdheS5vcGFxdWVfZGF0YSA/IChjb25zdCBj aGFyICopZnJhbWUtPmdvYXdheS5vcGFxdWVfZGF0YSA6ICIiKTsKLSAgICAgICAgICAgICAgICAg ICAgICAgICBoYW5kbGVfZ29hd2F5IChpbywgZnJhbWUtPmdvYXdheS5lcnJvcl9jb2RlLCBmcmFt ZS0+Z29hd2F5Lmxhc3Rfc3RyZWFtX2lkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICBpby0+ aXNfc2h1dGRvd24gPSBUUlVFOwotICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXBfY2xpZW50 X21lc3NhZ2VfaW9faHR0cDJfdGVybWluYXRlX3Nlc3Npb24gKGlvKTsKLS0tIAotR2l0TGFiCi0K CmRpZmYgLS1naXQgYS9DVkUtMjAyNi0xNTcxMy5wYXRjaCBiL0NWRS0yMDI2LTE1NzEzLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZjg0ZWJiLi4wMDAwMDAwCi0tLSBhL0NW RS0yMDI2LTE1NzEzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTQ4ICswLDAgQEAKLUZyb20g MjRmYjY0NWZhOTQ5ZWNlN2Q3ZTEwMzYzYjc3Y2YyZDVmYTJjMjQ2OSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IE1pbGFuIENyaGEgPG1jcmhhQHJlZGhhdC5jb20+Ci1EYXRlOiBGcmks IDQgU2VwIDIwMjYgMTA6MzQ6MjIgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gY2FjaGU6IFJlamVj dCBjYWNoaW5nIGF1dGhlbnRpY2F0ZWQgcmVzcG9uc2VzIGluIHNoYXJlZAotIGNhY2hlcwotCi1S RkMgNzIzNCBTZWN0aW9uIDMuMiBmb3JiaWRzIHRvIHNhdmUgdG8gYSBzaGFyZWQgY2FjaGUgYSBy ZXNwb25zZSB0bwotYSByZXF1ZXN0IGNvbnRhaW5pbmcgYW4gQXV0aG9yaXphdGlvbiBoZWFkZXIg dW5sZXNzIHRoZSByZXNwb25zZQotZXhwbGljaXRseSBhbGxvd3MgaXQgd2l0aCBwdWJsaWMsIG11 c3QtcmV2YWxpZGF0ZSBvciBzLW1heGFnZS4KLQotVGhpcyBpcyBDVkUtMjAyNi0xNTcxMy4KLQot Q2xvc2VzIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJzb3VwLy0vd29ya19pdGVt cy81NDEKLS0tLQotIGxpYnNvdXAvY2FjaGUvc291cC1jYWNoZS5jIHwgMTUgKysrKysrKysrKysK LSB0ZXN0cy9jYWNoZS10ZXN0LmMgICAgICAgICB8IDU1ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspCi0KLWRp ZmYgLS1naXQgYS9saWJzb3VwL2NhY2hlL3NvdXAtY2FjaGUuYyBiL2xpYnNvdXAvY2FjaGUvc291 cC1jYWNoZS5jCi1pbmRleCA0N2UxZWU3MC4uNTIyNTM4MmQgMTAwNjQ0Ci0tLS0gYS9saWJzb3Vw L2NhY2hlL3NvdXAtY2FjaGUuYwotKysrIGIvbGlic291cC9jYWNoZS9zb3VwLWNhY2hlLmMKLUBA IC0xNzQsNiArMTc0LDcgQEAgZ2V0X2NhY2hlYWJpbGl0eSAoU291cENhY2hlICpjYWNoZSwgU291 cE1lc3NhZ2UgKm1zZykKLSAJU291cENhY2hlYWJpbGl0eSBjYWNoZWFiaWxpdHk7Ci0gCWNvbnN0 IGNoYXIgKmNhY2hlX2NvbnRyb2wsICpjb250ZW50X3R5cGU7Ci0gCWdib29sZWFuIGhhc19tYXhf YWdlID0gRkFMU0U7Ci0rCWdib29sZWFuIHBlcm1pdHNfYXV0aG9yaXplZF9zaGFyZWRfY2FjaGlu ZyA9IEZBTFNFOwotIAotIAkvKiAxLiBUaGUgcmVxdWVzdCBtZXRob2QgbXVzdCBiZSBjYWNoZWFi bGUgKi8KLSAJaWYgKHNvdXBfbWVzc2FnZV9nZXRfbWV0aG9kIChtc2cpID09IFNPVVBfTUVUSE9E X0dFVCkKLUBAIC0yMDEsNiArMjAyLDExIEBAIGdldF9jYWNoZWFiaWxpdHkgKFNvdXBDYWNoZSAq Y2FjaGUsIFNvdXBNZXNzYWdlICptc2cpCi0gCQkJCXNvdXBfaGVhZGVyX2ZyZWVfcGFyYW1fbGlz dCAoaGFzaCk7Ci0gCQkJCXJldHVybiBTT1VQX0NBQ0hFX1VOQ0FDSEVBQkxFOwotIAkJCX0KLSsK LSsJCQlwZXJtaXRzX2F1dGhvcml6ZWRfc2hhcmVkX2NhY2hpbmcgPQotKwkJCQlnX2hhc2hfdGFi bGVfbG9va3VwX2V4dGVuZGVkIChoYXNoLCAicHVibGljIiwgTlVMTCwgTlVMTCkgfHwKLSsJCQkJ Z19oYXNoX3RhYmxlX2xvb2t1cF9leHRlbmRlZCAoaGFzaCwgIm11c3QtcmV2YWxpZGF0ZSIsIE5V TEwsIE5VTEwpIHx8Ci0rCQkJCWdfaGFzaF90YWJsZV9sb29rdXBfZXh0ZW5kZWQgKGhhc2gsICJz LW1heGFnZSIsIE5VTEwsIE5VTEwpOwotIAkJfQotIAotIAkJLyogMi4gVGhlICduby1zdG9yZScg Y2FjaGUgZGlyZWN0aXZlIGRvZXMgbm90IGFwcGVhciBpbiB0aGUKLUBAIC0yMjUsNiArMjMxLDE1 IEBAIGdldF9jYWNoZWFiaWxpdHkgKFNvdXBDYWNoZSAqY2FjaGUsIFNvdXBNZXNzYWdlICptc2cp Ci0gCQlzb3VwX2hlYWRlcl9mcmVlX3BhcmFtX2xpc3QgKGhhc2gpOwotIAl9Ci0gCi0rCS8qIFJG QyA3MjM0IFNlY3Rpb24gMy4yOiBhIHNoYXJlZCBjYWNoZSBNVVNUIE5PVCBzdG9yZSBhIHJlc3Bv bnNlIHRvCi0rCSAqIGEgcmVxdWVzdCBjb250YWluaW5nIGFuIEF1dGhvcml6YXRpb24gaGVhZGVy IHVubGVzcyB0aGUgcmVzcG9uc2UKLSsJICogZXhwbGljaXRseSBhbGxvd3MgaXQgd2l0aCBwdWJs aWMsIG11c3QtcmV2YWxpZGF0ZSBvciBzLW1heGFnZS4KLSsJICovCi0rCWlmIChwcml2LT5jYWNo ZV90eXBlID09IFNPVVBfQ0FDSEVfU0hBUkVEICYmCi0rCSAgICAhcGVybWl0c19hdXRob3JpemVk X3NoYXJlZF9jYWNoaW5nICYmCi0rCSAgICBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lX2Nv bW1vbiAoc291cF9tZXNzYWdlX2dldF9yZXF1ZXN0X2hlYWRlcnMgKG1zZyksIFNPVVBfSEVBREVS X0FVVEhPUklaQVRJT04pKQotKwkJcmV0dXJuIFNPVVBfQ0FDSEVfVU5DQUNIRUFCTEU7Ci0rCi0g CS8qIFNlY3Rpb24gMTMuOSAqLwotIAlpZiAoKGdfdXJpX2dldF9xdWVyeSAoc291cF9tZXNzYWdl X2dldF91cmkgKG1zZykpKSAmJgotIAkgICAgIXNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9vbmVf Y29tbW9uIChzb3VwX21lc3NhZ2VfZ2V0X3Jlc3BvbnNlX2hlYWRlcnMgKG1zZyksIFNPVVBfSEVB REVSX0VYUElSRVMpICYmCi1kaWZmIC0tZ2l0IGEvdGVzdHMvY2FjaGUtdGVzdC5jIGIvdGVzdHMv Y2FjaGUtdGVzdC5jCi1pbmRleCBlZjJlYmViMy4uZGZmNmJkMzUgMTAwNjQ0Ci0tLS0gYS90ZXN0 cy9jYWNoZS10ZXN0LmMKLSsrKyBiL3Rlc3RzL2NhY2hlLXRlc3QuYwotQEAgLTk1LDYgKzk1LDcg QEAgc2VydmVyX2NhbGxiYWNrIChTb3VwU2VydmVyICAgICAgICAqc2VydmVyLAotIAlpZiAoc3Rh dHVzID09IFNPVVBfU1RBVFVTX09LKSB7Ci0gCQlHQ2hlY2tzdW0gKnN1bTsKLSAJCWNvbnN0IGNo YXIgKmJvZHk7Ci0rCQljb25zdCBjaGFyICphdXRob3JpemF0aW9uOwotIAotIAkJc3VtID0gZ19j aGVja3N1bV9uZXcgKEdfQ0hFQ0tTVU1fU0hBMjU2KTsKLSAJCWdfY2hlY2tzdW1fdXBkYXRlIChz dW0sIChndWNoYXIgKilwYXRoLCBzdHJsZW4gKHBhdGgpKTsKLUBAIC0xMDIsNiArMTAzLDkgQEAg c2VydmVyX2NhbGxiYWNrIChTb3VwU2VydmVyICAgICAgICAqc2VydmVyLAotIAkJCWdfY2hlY2tz dW1fdXBkYXRlIChzdW0sIChndWNoYXIgKilsYXN0X21vZGlmaWVkLCBzdHJsZW4gKGxhc3RfbW9k aWZpZWQpKTsKLSAJCWlmIChldGFnKQotIAkJCWdfY2hlY2tzdW1fdXBkYXRlIChzdW0sIChndWNo YXIgKilldGFnLCBzdHJsZW4gKGV0YWcpKTsKLSsJCWF1dGhvcml6YXRpb24gPSBzb3VwX21lc3Nh Z2VfaGVhZGVyc19nZXRfb25lIChyZXF1ZXN0X2hlYWRlcnMsICJBdXRob3JpemF0aW9uIik7Ci0r CQlpZiAoYXV0aG9yaXphdGlvbikKLSsJCQlnX2NoZWNrc3VtX3VwZGF0ZSAoc3VtLCAoZ3VjaGFy ICopYXV0aG9yaXphdGlvbiwgc3RybGVuIChhdXRob3JpemF0aW9uKSk7Ci0gCQlib2R5ID0gZ19j aGVja3N1bV9nZXRfc3RyaW5nIChzdW0pOwotIAkJc291cF9zZXJ2ZXJfbWVzc2FnZV9zZXRfcmVz cG9uc2UgKG1zZywgInRleHQvcGxhaW4iLAotIAkJCQkJCSAgU09VUF9NRU1PUllfQ09QWSwKLUBA IC03MzYsNiArNzQwLDU2IEBAIGRvX2xlYWtzX3Rlc3QgKGdjb25zdHBvaW50ZXIgZGF0YSkKLSAJ Z19mcmVlIChjYWNoZV9kaXIpOwotIH0KLSAKLStzdGF0aWMgdm9pZAotK2RvX3NoYXJlZF9jYWNo ZV9hdXRob3JpemF0aW9uX3Rlc3QgKGdjb25zdHBvaW50ZXIgZGF0YSkKLSt7Ci0rCUdVcmkgKmJh c2VfdXJpID0gKEdVcmkgKilkYXRhOwotKwlTb3VwU2Vzc2lvbiAqYXR0YWNrZXJfc2Vzc2lvbjsK LSsJU291cFNlc3Npb24gKnZpY3RpbV9zZXNzaW9uOwotKwlTb3VwQ2FjaGUgKmF0dGFja2VyX2Nh Y2hlOwotKwlTb3VwQ2FjaGUgKnZpY3RpbV9jYWNoZTsKLSsJY2hhciAqY2FjaGVfZGlyOwotKwlj aGFyICphdHRhY2tlcl9ib2R5OwotKwljaGFyICp2aWN0aW1fYm9keTsKLSsKLSsJY2FjaGVfZGly ID0gZ19kaXJfbWFrZV90bXAgKCJjYWNoZS10ZXN0LVhYWFhYWCIsIE5VTEwpOwotKwlkZWJ1Z19w cmludGYgKDIsICIgIENhY2hpbmcgdG8gJXNcbiIsIGNhY2hlX2Rpcik7Ci0rCi0rCWF0dGFja2Vy X2NhY2hlID0gc291cF9jYWNoZV9uZXcgKGNhY2hlX2RpciwgU09VUF9DQUNIRV9TSEFSRUQpOwot KwlhdHRhY2tlcl9zZXNzaW9uID0gc291cF90ZXN0X3Nlc3Npb25fbmV3IChOVUxMKTsKLSsJc291 cF9zZXNzaW9uX2FkZF9mZWF0dXJlIChhdHRhY2tlcl9zZXNzaW9uLCBTT1VQX1NFU1NJT05fRkVB VFVSRSAoYXR0YWNrZXJfY2FjaGUpKTsKLSsKLSsJYXR0YWNrZXJfYm9keSA9IGRvX3JlcXVlc3Qg KGF0dGFja2VyX3Nlc3Npb24sIGJhc2VfdXJpLCAiR0VUIiwgIi9hdXRoei1zaGFyZWQtY2FjaGUi LCBOVUxMLAotKwkJCQkgICAgIkF1dGhvcml6YXRpb24iLCAiQmVhcmVyIEFUVEFDS0VSX1NFQ1JF VCIsCi0rCQkJCSAgICAiVGVzdC1TZXQtQ2FjaGUtQ29udHJvbCIsICJtYXgtYWdlPTYwMCIsCi0r CQkJCSAgICBOVUxMKTsKLSsJZ19hc3NlcnRfdHJ1ZSAobGFzdF9yZXF1ZXN0X2hpdF9uZXR3b3Jr KTsKLSsKLSsJc291cF9jYWNoZV9kdW1wIChhdHRhY2tlcl9jYWNoZSk7Ci0rCXNvdXBfdGVzdF9z ZXNzaW9uX2Fib3J0X3VucmVmIChhdHRhY2tlcl9zZXNzaW9uKTsKLSsJZ19vYmplY3RfdW5yZWYg KGF0dGFja2VyX2NhY2hlKTsKLSsKLSsJdmljdGltX2NhY2hlID0gc291cF9jYWNoZV9uZXcgKGNh Y2hlX2RpciwgU09VUF9DQUNIRV9TSEFSRUQpOwotKwlzb3VwX2NhY2hlX2xvYWQgKHZpY3RpbV9j YWNoZSk7Ci0rCXZpY3RpbV9zZXNzaW9uID0gc291cF90ZXN0X3Nlc3Npb25fbmV3IChOVUxMKTsK LSsJc291cF9zZXNzaW9uX2FkZF9mZWF0dXJlICh2aWN0aW1fc2Vzc2lvbiwgU09VUF9TRVNTSU9O X0ZFQVRVUkUgKHZpY3RpbV9jYWNoZSkpOwotKwotKwl2aWN0aW1fYm9keSA9IGRvX3JlcXVlc3Qg KHZpY3RpbV9zZXNzaW9uLCBiYXNlX3VyaSwgIkdFVCIsICIvYXV0aHotc2hhcmVkLWNhY2hlIiwg TlVMTCwKLSsJCQkJICAiQXV0aG9yaXphdGlvbiIsICJCZWFyZXIgVklDVElNX1NFQ1JFVCIsCi0r CQkJCSAgIlRlc3QtU2V0LUNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT02MDAiLAotKwkJCQkgIE5V TEwpOwotKwotKwlnX2Fzc2VydF90cnVlIChsYXN0X3JlcXVlc3RfaGl0X25ldHdvcmspOwotKwln X2Fzc2VydF9jbXBzdHIgKGF0dGFja2VyX2JvZHksICE9LCB2aWN0aW1fYm9keSk7Ci0rCi0rCWdf ZnJlZSAoYXR0YWNrZXJfYm9keSk7Ci0rCWdfZnJlZSAodmljdGltX2JvZHkpOwotKwotKwlzb3Vw X3Rlc3Rfc2Vzc2lvbl9hYm9ydF91bnJlZiAodmljdGltX3Nlc3Npb24pOwotKwlnX29iamVjdF91 bnJlZiAodmljdGltX2NhY2hlKTsKLSsJZ19mcmVlIChjYWNoZV9kaXIpOwotK30KLSsKLSBzdGF0 aWMgdm9pZAotIGRvX21ldHJpY3NfdGVzdCAoZ2NvbnN0cG9pbnRlciBkYXRhKQotIHsKLUBAIC0x MTA4LDYgKzExNjIsNyBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0gCWdfdGVzdF9h ZGRfZGF0YV9mdW5jICgiL2NhY2hlL2NhbmNlbGxhdGlvbiIsIGJhc2VfdXJpLCBkb19jYW5jZWxf dGVzdCk7Ci0gCWdfdGVzdF9hZGRfZGF0YV9mdW5jICgiL2NhY2hlL3JlZmNvdW50aW5nIiwgYmFz ZV91cmksIGRvX3JlZmNvdW50aW5nX3Rlc3QpOwotIAlnX3Rlc3RfYWRkX2RhdGFfZnVuYyAoIi9j YWNoZS9oZWFkZXJzIiwgYmFzZV91cmksIGRvX2hlYWRlcnNfdGVzdCk7Ci0rCWdfdGVzdF9hZGRf ZGF0YV9mdW5jICgiL2NhY2hlL3NoYXJlZC1jYWNoZS1hdXRob3JpemF0aW9uIiwgYmFzZV91cmks IGRvX3NoYXJlZF9jYWNoZV9hdXRob3JpemF0aW9uX3Rlc3QpOwotIAlnX3Rlc3RfYWRkX2RhdGFf ZnVuYyAoIi9jYWNoZS9sZWFrcyIsIGJhc2VfdXJpLCBkb19sZWFrc190ZXN0KTsKLSAgICAgICAg IGdfdGVzdF9hZGRfZGF0YV9mdW5jICgiL2NhY2hlL21ldHJpY3MiLCBiYXNlX3VyaSwgZG9fbWV0 cmljc190ZXN0KTsKLSAgICAgICAgIGdfdGVzdF9hZGRfZGF0YV9mdW5jICgiL2NhY2hlL3RocmVh ZHMiLCBiYXNlX3VyaSwgZG9fdGhyZWFkc190ZXN0KTsKLS0tIAotR2l0TGFiCi0KCmRpZmYgLS1n aXQgYS9DVkUtMjAyNi0xNTcxNC5wYXRjaCBiL0NWRS0yMDI2LTE1NzE0LnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTFmNzY3Li4wMDAwMDAwCi0tLSBhL0NWRS0yMDI2LTE1 NzE0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLUZyb20gNzlhNTJjYWRj NDkwMzYwZTI0OWNjMmIyMzAzOGQ1MzJiNDRkYmYyMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IE1pa2UgR29yc2UgPG1nb3JzZUBzdXNlLmNvbT4KLURhdGU6IEZyaSwgNCBTZXAgMjAy NiAxNDoxMDo0NiAtMDUwMAotU3ViamVjdDogW1BBVENIXSBtdWx0aXBhcnQ6IEZpeCBvdXQtb2Yt Ym91bmRzIHJlYWQgaW4gY2FzZSBvZiBhbiBleGNlc3NpdmVseQotIGxvbmcgYm91bmRhcnkKLQot c291cF9tdWx0aXBhcnRfaW5wdXRfc3RyZWFtX3JlYWRfaGVhZGVycygpIGNvbXBhcmVkIG1ldGFf YnVmIGFnYWluc3QgdGhlCi1ib3VuZGFyeSB1c2luZyB0aGUgYm91bmRhcnkgbGVuZ3RoIHdpdGhv dXQgY2hlY2tpbmcgdGhhdCBtZXRhX2J1ZiBoZWxkCi10aGF0IG1hbnkgYnl0ZXMsIHNvIGEgc2Vy dmVyIHNlbmRpbmcgYSBib3VuZGFyeSBsb25nZXIgdGhhbiB0aGUgcmVhZAotYnVmZmVyIGNvdWxk IG1ha2Ugc3RybmNtcCgpIHJlYWQgcGFzdCB0aGUgZW5kIG9mIHRoZSBhbGxvY2F0aW9uLiBJdCBh bHNvCi1jb21wdXRlZCByZWFkX2J1ZiArIG5yZWFkIC0gNCBiZWZvcmUgdmVyaWZ5aW5nIG5yZWFk IHdhcyBsYXJnZSBlbm91Z2gsCi1hbmQgYXNzZXJ0ZWQgcmF0aGVyIHRoYW4gZmFpbGluZyB3aGVu IGEgbGluZSBkaWQgbm90IGVuZCBpbiBhIG5ld2xpbmUuCi0KLU9ubHkgY29tcGFyZSBvbmNlIGVu b3VnaCBieXRlcyBoYXZlIGJlZW4gcmVhZCwgaW5kZXggcmVhZF9idWYgYWZ0ZXIgdGhlCi1sZW5n dGggY2hlY2tzLCBhbmQgdHJlYXQgYW4gdW50ZXJtaW5hdGVkIGxpbmUgYXMgZW5kIG9mIHBhcnNp bmcuCi0KLUNsb3NlcyAhNTQ2Ci0tLS0KLSBsaWJzb3VwL3NvdXAtbXVsdGlwYXJ0LWlucHV0LXN0 cmVhbS5jIHwgMTIgKysrKy0tLS0tCi0gdGVzdHMvbXVsdGlwYXJ0LXRlc3QuYyAgICAgICAgICAg ICAgICB8IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwg NDMgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xpYnNvdXAv c291cC1tdWx0aXBhcnQtaW5wdXQtc3RyZWFtLmMgYi9saWJzb3VwL3NvdXAtbXVsdGlwYXJ0LWlu cHV0LXN0cmVhbS5jCi1pbmRleCBiN2YxZWQ3Mi4uMjJjY2UxMDIgMTAwNjQ0Ci0tLS0gYS9saWJz b3VwL3NvdXAtbXVsdGlwYXJ0LWlucHV0LXN0cmVhbS5jCi0rKysgYi9saWJzb3VwL3NvdXAtbXVs dGlwYXJ0LWlucHV0LXN0cmVhbS5jCi1AQCAtMzYxLDcgKzM2MSw2IEBAIHNvdXBfbXVsdGlwYXJ0 X2lucHV0X3N0cmVhbV9yZWFkX2hlYWRlcnMgKFNvdXBNdWx0aXBhcnRJbnB1dFN0cmVhbSAgKm11 bHRpcGFydCwKLSB7Ci0gCVNvdXBNdWx0aXBhcnRJbnB1dFN0cmVhbVByaXZhdGUgKnByaXYgPSBz b3VwX211bHRpcGFydF9pbnB1dF9zdHJlYW1fZ2V0X2luc3RhbmNlX3ByaXZhdGUgKG11bHRpcGFy dCk7Ci0gCWd1Y2hhciByZWFkX2J1ZltSRVNQT05TRV9CTE9DS19TSVpFXTsKLS0JZ3VjaGFyICpi dWY7Ci0gCWdib29sZWFuIGdvdF9ib3VuZGFyeSA9IEZBTFNFOwotIAlnYm9vbGVhbiBnb3RfbGYg PSBGQUxTRTsKLSAJZ3NzaXplIG5yZWFkID0gMDsKLUBAIC0zODMsMjIgKzM4MiwyMyBAQCBzb3Vw X211bHRpcGFydF9pbnB1dF9zdHJlYW1fcmVhZF9oZWFkZXJzIChTb3VwTXVsdGlwYXJ0SW5wdXRT dHJlYW0gICptdWx0aXBhcnQsCi0gCQkgKiBtYXkgZ2V0IHRoZSBtdWx0aXBhcnQgZW5kIGluZGlj YXRvciB3aXRob3V0IGdldHRpbmcgYSBuZXcgbGluZS4KLSAJCSAqLwotIAkJaWYgKCFnb3RfYm91 bmRhcnkgJiYKLSsJCSAgICBwcml2LT5tZXRhX2J1Zi0+bGVuID49IHByaXYtPmJvdW5kYXJ5X3Np emUgJiYKLSAJCSAgICAhc3RybmNtcCAoKGNoYXIgKilwcml2LT5tZXRhX2J1Zi0+ZGF0YSwKLSAJ CQkgICAgICBwcml2LT5ib3VuZGFyeSwKLSAJCQkgICAgICBwcml2LT5ib3VuZGFyeV9zaXplKSkg ewotIAkJCWdvdF9ib3VuZGFyeSA9IFRSVUU7Ci0gCi0gCQkJLyogTm93IGNoZWNrIGZvciBwb3Nz aWJsZSBtdWx0aXBhcnQgdGVybWluYXRpb24uICovCi0tCQkJYnVmID0gJnJlYWRfYnVmW25yZWFk IC0gNF07Ci0tCQkJaWYgKChucmVhZCA+PSA0ICYmICFtZW1jbXAgKGJ1ZiwgIi0tXHJcbiIsIDQp KSB8fAotLQkJCSAgICAobnJlYWQgPj0gMyAmJiAhbWVtY21wIChidWYgKyAxLCAiLS1cbiIsIDMp KSB8fAotLQkJCSAgICAobnJlYWQgPj0gMyAmJiAhbWVtY21wIChidWYgKyAyLCAiLS0iLCAyKSkp IHsKLSsJCQlpZiAoKG5yZWFkID49IDQgJiYgIW1lbWNtcCAocmVhZF9idWYgKyBucmVhZCAtIDQs ICItLVxyXG4iLCA0KSkgfHwKLSsJCQkgICAgKG5yZWFkID49IDMgJiYgIW1lbWNtcCAocmVhZF9i dWYgKyBucmVhZCAtIDMsICItLVxuIiwgMykpIHx8Ci0rCQkJICAgIChucmVhZCA+PSAzICYmICFt ZW1jbXAgKHJlYWRfYnVmICsgbnJlYWQgLSAyLCAiLS0iLCAyKSkpIHsKLSAJCQkJZ19ieXRlX2Fy cmF5X3NldF9zaXplIChwcml2LT5tZXRhX2J1ZiwgMCk7Ci0gCQkJCXJldHVybiBGQUxTRTsKLSAJ CQl9Ci0gCQl9Ci0gCi0tCQlnX3JldHVybl92YWxfaWZfZmFpbCAoZ290X2xmLCBGQUxTRSk7Ci0r CQlpZiAoIWdvdF9sZikKLSsJCQlyZXR1cm4gRkFMU0U7Ci0gCi0gCQkvKiBEaXNjYXJkIHByZS1i b3VuZGFyeSBsaW5lcy4gKi8KLSAJCWlmICghZ290X2JvdW5kYXJ5KSB7Ci1kaWZmIC0tZ2l0IGEv dGVzdHMvbXVsdGlwYXJ0LXRlc3QuYyBiL3Rlc3RzL211bHRpcGFydC10ZXN0LmMKLWluZGV4IGIx YmY1YmI4Li5hNTk4YTFjOCAxMDA2NDQKLS0tLSBhL3Rlc3RzL211bHRpcGFydC10ZXN0LmMKLSsr KyBiL3Rlc3RzL211bHRpcGFydC10ZXN0LmMKLUBAIC01OTYsNiArNTk2LDQyIEBAIHRlc3RfbXVs dGlwYXJ0X2JvdW5kc19iYWRfMyAodm9pZCkKLSAgICAgICAgIGdfb2JqZWN0X3VucmVmIChtc2cp OwotIH0KLSAKLStzdGF0aWMgdm9pZAotK3Rlc3RfbXVsdGlwYXJ0X2JvdW5kc19iYWRfNCAodm9p ZCkKLSt7Ci0rICAgICAgICBTb3VwTWVzc2FnZSAqbXNnOwotKyAgICAgICAgU291cE1lc3NhZ2VI ZWFkZXJzICpoZWFkZXJzOwotKyAgICAgICAgR0lucHV0U3RyZWFtICppbjsKLSsgICAgICAgIEdJ bnB1dFN0cmVhbSAqbmV4dF9wYXJ0OwotKyAgICAgICAgU291cE11bHRpcGFydElucHV0U3RyZWFt ICptdWx0aXBhcnQ7Ci0rICAgICAgICBHRXJyb3IgKmVycm9yID0gTlVMTDsKLSsgICAgICAgIGdj aGFyICpib3VuZGFyeTsKLSsgICAgICAgIGdjaGFyICpjb250ZW50X3R5cGU7Ci0rICAgICAgICBn Y2hhciAqcmF3X2RhdGE7Ci0rCi0rICAgICAgICBib3VuZGFyeSA9IGdfbmV3IChnY2hhciwgMjAw MDEpOwotKyAgICAgICAgbWVtc2V0IChib3VuZGFyeSwgJ2EnLCAyMDAwMCk7Ci0rICAgICAgICBi b3VuZGFyeVsyMDAwMF0gPSAnXDAnOwotKwotKyAgICAgICAgbXNnID0gc291cF9tZXNzYWdlX25l dyhTT1VQX01FVEhPRF9QT1NULCAiaHR0cDovL2Zvby91cGxvYWQiKTsKLSsgICAgICAgIGhlYWRl cnMgPSBzb3VwX21lc3NhZ2VfZ2V0X3Jlc3BvbnNlX2hlYWRlcnMgKG1zZyk7Ci0rICAgICAgICBj b250ZW50X3R5cGUgPSBnX3N0cmNvbmNhdCAoIm11bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5 PVwiIiwgYm91bmRhcnksICJcIiIsIE5VTEwpOwotKyAgICAgICAgc291cF9tZXNzYWdlX2hlYWRl cnNfcmVwbGFjZSAoaGVhZGVycywgIkNvbnRlbnQtVHlwZSIsIGNvbnRlbnRfdHlwZSk7Ci0rCi0r ICAgICAgICByYXdfZGF0YSA9IGdfc3RyY29uY2F0ICgiLS0iLCBib3VuZGFyeSwgIlxyXG5Db250 ZW50LVR5cGU6IHRleHQtcGxhaW5cclxuXHJcblhcclxuIiwgTlVMTCk7Ci0rICAgICAgICBpbiA9 IGdfbWVtb3J5X2lucHV0X3N0cmVhbV9uZXdfZnJvbV9kYXRhIChyYXdfZGF0YSwgc3RybGVuIChy YXdfZGF0YSksIE5VTEwpOwotKyAgICAgICAgbXVsdGlwYXJ0ID0gc291cF9tdWx0aXBhcnRfaW5w dXRfc3RyZWFtX25ldyAobXNnLCBpbik7Ci0rICAgICAgICBnX29iamVjdF91bnJlZiAoaW4pOwot KyAgICAgICAgbmV4dF9wYXJ0ID0gc291cF9tdWx0aXBhcnRfaW5wdXRfc3RyZWFtX25leHRfcGFy dCAobXVsdGlwYXJ0LCBOVUxMLCAmZXJyb3IpOwotKyAgICAgICAgZ19hc3NlcnRfbm9fZXJyb3Ig KGVycm9yKTsKLSsgICAgICAgIGdfYXNzZXJ0X251bGwgKG5leHRfcGFydCk7Ci0rICAgICAgICBn X29iamVjdF91bnJlZiAobXVsdGlwYXJ0KTsKLSsgICAgICAgIGdfb2JqZWN0X3VucmVmIChtc2cp OwotKyAgICAgICAgZ19mcmVlIChyYXdfZGF0YSk7Ci0rICAgICAgICBnX2ZyZWUgKGNvbnRlbnRf dHlwZSk7Ci0rICAgICAgICBnX2ZyZWUgKGJvdW5kYXJ5KTsKLSt9Ci0rCi0gc3RhdGljIHZvaWQK LSB0ZXN0X211bHRpcGFydF90b29fbGFyZ2UgKHZvaWQpCi0gewotQEAgLTY2Niw2ICs3MDIsNyBA QCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0gCWdfdGVzdF9hZGRfZnVuYyAoIi9tdWx0 aXBhcnQvYm91bmRzLWJhZCIsIHRlc3RfbXVsdGlwYXJ0X2JvdW5kc19iYWQpOwotIAlnX3Rlc3Rf YWRkX2Z1bmMgKCIvbXVsdGlwYXJ0L2JvdW5kcy1iYWQtMiIsIHRlc3RfbXVsdGlwYXJ0X2JvdW5k c19iYWRfMik7Ci0gICAgICAgICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbXVsdGlwYXJ0L2JvdW5kcy1i YWQtMyIsIHRlc3RfbXVsdGlwYXJ0X2JvdW5kc19iYWRfMyk7Ci0rICAgICAgICBnX3Rlc3RfYWRk X2Z1bmMgKCIvbXVsdGlwYXJ0L2JvdW5kcy1iYWQtNCIsIHRlc3RfbXVsdGlwYXJ0X2JvdW5kc19i YWRfNCk7Ci0gCWdfdGVzdF9hZGRfZnVuYyAoIi9tdWx0aXBhcnQvdG9vLWxhcmdlIiwgdGVzdF9t dWx0aXBhcnRfdG9vX2xhcmdlKTsKLSAKLSAJcmV0ID0gZ190ZXN0X3J1biAoKTsKLS0tIAotR2l0 TGFiCi0KCmRpZmYgLS1naXQgYS9DVkUtMjAyNi03NzY4MC5wYXRjaCBiL0NWRS0yMDI2LTc3Njgw LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTE0MmIwLi4wMDAwMDAwCi0t LSBhL0NWRS0yMDI2LTc3NjgwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjgxICswLDAgQEAK LUZyb20gZTgyYzEzYmEwM2RlZmNlZTEwZjk4MWFjOTY0ZjRkNTcwYjIxYTI1MSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IFBhdHJpY2sgR3JpZmZpcyA8cGdyaWZmaXNAaWdhbGlhLmNv bT4KLURhdGU6IFdlZCwgMTIgQXVnIDIwMjYgMTQ6MjE6NTIgLTA1MDAKLVN1YmplY3Q6IFtQQVRD SF0gbWVzc2FnZS1oZWFkZXJzOiBGaXggUmFuZ2UgcGFyc2luZyBvdmVyZmxvd3MgYW5kIGNvYWxl c2NpbmcKLSBjb3N0Ci0KLUEgc3VmZml4IHJhbmdlIGxvbmdlciB0aGFuIHRoZSBib2R5IGRyb3Zl IHRoZSByYW5nZSBzdGFydCBuZWdhdGl2ZSwgd2hpY2gKLXRoZW4gcmVhY2hlZCBhIGdfYXNzZXJ0 KCkgYW5kIGFib3J0ZWQgdGhlIHByb2Nlc3MuIENsYW1wIGl0IHRvIHNlbGVjdCB0aGUKLXdob2xl IGJvZHkgaW5zdGVhZCwgYXMgUkZDIDkxMTAgc2VjdGlvbiAxNC4xLjIgcmVxdWlyZXMuIFJhbmdl IHN0YXJ0cyBhbmQKLWVuZHMgd2hpY2ggb3ZlcmZsb3cgdGhlIGdvZmZzZXQgdGhleSBhcmUgcGFy c2VkIGludG8gYXJlIG5vdyByZWplY3RlZCBhbmQKLWNsYW1wZWQgcmVzcGVjdGl2ZWx5LCByYXRo ZXIgdGhhbiB3cmFwcGluZyBuZWdhdGl2ZSBhbmQgcmVhY2hpbmcgdGhlIHNhbWUKLWFzc2VydGlv bi4KLQotUmFuZ2VzIGFyZSBubyBsb25nZXIgY29hbGVzY2VkIGJ5IHJlbW92aW5nIGVhY2ggbWVy Z2VkIGVsZW1lbnQgaW4gdHVybiwKLXdoaWNoIHdhcyBxdWFkcmF0aWMgaW4gdGhlaXIgbnVtYmVy LCBhbmQgYSBSYW5nZSBoZWFkZXIgbGlzdGluZyBtb3JlIHRoYW4KLU1BWF9SQU5HRVMgcmFuZ2Vz IGlzIG5vdyBhbnN3ZXJlZCB3aXRoIDQxNiBpbnN0ZWFkIG9mIGJlaW5nIHNlcnZlZDsgUkZDCi05 MTEwIHNlY3Rpb24gMTUuNS4xNyBuYW1lcyBhbiBleGNlc3NpdmUgbnVtYmVyIG9mIHJhbmdlcyBh cyBhIHJlYXNvbiBmb3IKLXRoYXQgc3RhdHVzLgotCi1GaW5hbGx5LCBzb3J0X3JhbmdlcygpIHJl dHVybmVkIGEgZ29mZnNldCBkaWZmZXJlbmNlIHRydW5jYXRlZCB0byBpbnQsIHNvCi1pdCByZXBv cnRlZCB0aGUgd3Jvbmcgb3JkZXIgZm9yIHJhbmdlcyBtb3JlIHRoYW4gR19NQVhJTlQgYXBhcnQs IGFuZCB0aGUKLW1lcmdlIGJlbG93IGl0IHRoZW4gZHJvcHBlZCByYW5nZXMgZnJvbSByZXNwb25z ZXMgb3ZlciAyR0IuCi0KLUZpeGVzICM1MTYKLUZpeGVzICM1MTkKLUZpeGVzICM1MzUKLUZpeGVz ICM1MzgKLUZpeGVzICM1NDQKLUZpeGVzICM1NDcKLUZpeGVzICM1NDgKLS0tLQotIGxpYnNvdXAv c291cC1tZXNzYWdlLWhlYWRlcnMtcHJpdmF0ZS5oIHwgICAyICsKLSBsaWJzb3VwL3NvdXAtbWVz c2FnZS1oZWFkZXJzLmMgICAgICAgICB8ICA4OSArKysrKy0tCi0gdGVzdHMvcmFuZ2UtdGVzdC5j ICAgICAgICAgICAgICAgICAgICAgfCAzNDcgKysrKysrKysrKysrKysrKysrKysrKysrKwotIHRl c3RzL3NlcnZlci1tZW0tbGltaXQtdGVzdC5jICAgICAgICAgIHwgIDYxICsrKy0tCi0gNCBmaWxl cyBjaGFuZ2VkLCA0NjQgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9saWJzb3VwL3NvdXAtbWVzc2FnZS1oZWFkZXJzLXByaXZhdGUuaCBiL2xpYnNvdXAvc291 cC1tZXNzYWdlLWhlYWRlcnMtcHJpdmF0ZS5oCi1pbmRleCA3MDhhZmU5OC4uMmU5NmFmMzQgMTAw NjQ0Ci0tLS0gYS9saWJzb3VwL3NvdXAtbWVzc2FnZS1oZWFkZXJzLXByaXZhdGUuaAotKysrIGIv bGlic291cC9zb3VwLW1lc3NhZ2UtaGVhZGVycy1wcml2YXRlLmgKLUBAIC0xMiw2ICsxMiw4IEBA IEdfQkVHSU5fREVDTFMKLSAKLSAjZGVmaW5lIE1BWF9IRUFERVJTX0JVRkZFUl9TSVpFIDI1NiAq IDEwMjQgLyogMjU2SyAqLwotIAotKyNkZWZpbmUgTUFYX1JBTkdFUyAyMDAKLSsKLSB0eXBlZGVm IGVudW0gewotICAgICAgICAgU09VUF9IRUFERVJfVkFMVUVfVU5UUlVTVEVELAotICAgICAgICAg U09VUF9IRUFERVJfVkFMVUVfVFJVU1RFRAotZGlmZiAtLWdpdCBhL2xpYnNvdXAvc291cC1tZXNz YWdlLWhlYWRlcnMuYyBiL2xpYnNvdXAvc291cC1tZXNzYWdlLWhlYWRlcnMuYwotaW5kZXggYjJl YzAzNmMuLjdlMmU2NTgzIDEwMDY0NAotLS0tIGEvbGlic291cC9zb3VwLW1lc3NhZ2UtaGVhZGVy cy5jCi0rKysgYi9saWJzb3VwL3NvdXAtbWVzc2FnZS1oZWFkZXJzLmMKLUBAIC0xMjI2LDcgKzEy MjYsMTIgQEAgc29ydF9yYW5nZXMgKGdjb25zdHBvaW50ZXIgYSwgZ2NvbnN0cG9pbnRlciBiKQot IAlTb3VwUmFuZ2UgKnJhID0gKFNvdXBSYW5nZSAqKWE7Ci0gCVNvdXBSYW5nZSAqcmIgPSAoU291 cFJhbmdlICopYjsKLSAKLS0JcmV0dXJuIHJhLT5zdGFydCAtIHJiLT5zdGFydDsKLSsJaWYgKHJh LT5zdGFydCA8IHJiLT5zdGFydCkKLSsJCXJldHVybiAtMTsKLSsJZWxzZSBpZiAocmEtPnN0YXJ0 ID4gcmItPnN0YXJ0KQotKwkJcmV0dXJuIDE7Ci0rCWVsc2UKLSsJCXJldHVybiAwOwotIH0KLSAK LSAvKiBsaWtlIHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9yYW5nZXMoKSwgZXhjZXB0IGl0IHJl dHVybnM6Ci1AQCAtMTI3MCw2ICsxMjc1LDE3IEBAIHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9y YW5nZXNfaW50ZXJuYWwgKFNvdXBNZXNzYWdlSGVhZGVycyAgKmhkcnMsCi0gCWlmICghcmFuZ2Vf bGlzdCkKLSAJCXJldHVybiBTT1VQX1NUQVRVU19PSzsgIC8qIGludmFsaWQgbGlzdCAqLwotIAot KwkvKiBSZWplY3QgdGhlIGhlYWRlciBvdXRyaWdodCBpZiBpdCBhc2tzIGZvciBtb3JlIHJhbmdl cyB0aGFuIHdlIGFyZQotKwkgKiB3aWxsaW5nIHRvIHNlcnZlLCByYXRoZXIgdGhhbiBhbnN3ZXJp bmcgd2l0aCB0aGUgd2hvbGUgYm9keTogYSBjbGllbnQKLSsJICogYXNraW5nIGZvciB0aGlzIG1h bnkgcmFuZ2VzIHdhbnRzIHRvIGJlIHRvbGQgc28sIGFuZCBSRkMgOTExMCDCpzE0LjIKLSsJICog YWxsb3dzIHJlamVjdGluZyBzdWNoIGEgaGVhZGVyIGZvciBleGFjdGx5IHRoaXMgcmVhc29uLgot KwkgKi8KLSsJaWYgKGdfc2xpc3RfbGVuZ3RoIChyYW5nZV9saXN0KSA+IE1BWF9SQU5HRVMpIHsK LSsJCXNvdXBfaGVhZGVyX2ZyZWVfbGlzdCAocmFuZ2VfbGlzdCk7Ci0rCQlyZXR1cm4gY2hlY2tf c2F0aXNmaWFibGUgPyBTT1VQX1NUQVRVU19SRVFVRVNURURfUkFOR0VfTk9UX1NBVElTRklBQkxF Ci0rCQkJCQkgOiBTT1VQX1NUQVRVU19PSzsKLSsJfQotKwotIAkvKiBMb29wIHRocm91Z2ggdGhl IHJhbmdlcyBhbmQgbW9kaWZ5IHRoZSBzdGF0dXMgYWNjb3JkaW5nbHkuIERlZmF1bHQgdG8KLSAJ ICogc3RhdHVzIDIwMCAoT0ssIGlnbm9yaW5nIHRoZSByYW5nZXMpLiBTd2l0Y2ggdG8gc3RhdHVz IDIwNiAoUGFydGlhbAotIAkgKiBDb250ZW50KSBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFy dGlhbGx5IHZhbGlkIHJhbmdlLiBTd2l0Y2ggdG8KLUBAIC0xMjgxLDE1ICsxMjk3LDQ4IEBAIHNv dXBfbWVzc2FnZV9oZWFkZXJzX2dldF9yYW5nZXNfaW50ZXJuYWwgKFNvdXBNZXNzYWdlSGVhZGVy cyAgKmhkcnMsCi0gCi0gCQlzcGVjID0gci0+ZGF0YTsKLSAJCWlmICgqc3BlYyA9PSAnLScpIHsK LS0JCQljdXIuc3RhcnQgPSBnX2FzY2lpX3N0cnRvbGwgKHNwZWMsICZlbmQsIDEwKSArIHRvdGFs X2xlbmd0aDsKLSsJCQlnaW50NjQgc3VmZml4X2xlbmd0aDsKLSsKLSsJCQllcnJubyA9IDA7Ci0r CQkJc3VmZml4X2xlbmd0aCA9IGdfYXNjaWlfc3RydG9sbCAoc3BlYywgJmVuZCwgMTApOwotKwot KwkJCS8qIEEgc3VmZml4IHJhbmdlIGFza3MgZm9yIHRoZSBsYXN0IC1zdWZmaXhfbGVuZ3RoIGJ5 dGVzCi0rCQkJICogb2YgdGhlIGJvZHkuIElmIHRoZSBib2R5IGlzIHNob3J0ZXIgdGhhbiB0aGF0 IHRoZW4gdGhlCi0rCQkJICogd2hvbGUgYm9keSBpcyB1c2VkLCBwZXIgUkZDIDkxMTAgwqcxNC4x LjI7IHdpdGhvdXQKLSsJCQkgKiBjbGFtcGluZywgdGhlIHN0YXJ0IHdvdWxkIGdvIG5lZ2F0aXZl IGFuZCByZWFjaCB0aGUKLSsJCQkgKiBhc3NlcnRpb24gYmVsb3cuCi0rCQkJICovCi0rCQkJaWYg KGVycm5vID09IEVSQU5HRSB8fCBzdWZmaXhfbGVuZ3RoIDw9IC10b3RhbF9sZW5ndGgpCi0rCQkJ CWN1ci5zdGFydCA9IDA7Ci0rCQkJZWxzZQotKwkJCQljdXIuc3RhcnQgPSB0b3RhbF9sZW5ndGgg KyBzdWZmaXhfbGVuZ3RoOwotKwotIAkJCWN1ci5lbmQgPSB0b3RhbF9sZW5ndGggLSAxOwotIAkJ fSBlbHNlIHsKLS0JCQljdXIuc3RhcnQgPSBnX2FzY2lpX3N0cnRvdWxsIChzcGVjLCAmZW5kLCAx MCk7Ci0rCQkJZ3VpbnQ2NCB2YWx1ZTsKLSsKLSsJCQllcnJubyA9IDA7Ci0rCQkJdmFsdWUgPSBn X2FzY2lpX3N0cnRvdWxsIChzcGVjLCAmZW5kLCAxMCk7Ci0rCQkJaWYgKGVycm5vID09IEVSQU5H RSB8fCB2YWx1ZSA+IEdfTUFYSU5UNjQpIHsKLSsJCQkJaXNfYWxsX3ZhbGlkID0gRkFMU0U7Ci0r CQkJCWNvbnRpbnVlOwotKwkJCX0KLSsJCQljdXIuc3RhcnQgPSAoZ29mZnNldCkgdmFsdWU7Ci0r Ci0gCQkJaWYgKCplbmQgPT0gJy0nKQotIAkJCQllbmQrKzsKLS0JCQlpZiAoKmVuZCkKLS0JCQkJ Y3VyLmVuZCA9IGdfYXNjaWlfc3RydG91bGwgKGVuZCwgJmVuZCwgMTApOwotLQkJCWVsc2UKLSsJ CQlpZiAoKmVuZCkgewotKwkJCQllcnJubyA9IDA7Ci0rCQkJCXZhbHVlID0gZ19hc2NpaV9zdHJ0 b3VsbCAoZW5kLCAmZW5kLCAxMCk7Ci0rCi0rCQkJCS8qIEFuIGVuZCB0aGlzIGxhcmdlIGlzIGNs YW1wZWQgdG8gdGhlIGVuZCBvZiB0aGUKLSsJCQkJICogYm9keSBiZWxvdywgbGlrZSBhbnkgb3Ro ZXIgZW5kIHBhc3QgaXQuCi0rCQkJCSAqLwotKwkJCQlpZiAoZXJybm8gPT0gRVJBTkdFIHx8IHZh bHVlID4gR19NQVhJTlQ2NCkKLSsJCQkJCWN1ci5lbmQgPSBHX01BWElOVDY0OwotKwkJCQllbHNl Ci0rCQkJCQljdXIuZW5kID0gKGdvZmZzZXQpIHZhbHVlOwotKwkJCX0gZWxzZQotIAkJCQljdXIu ZW5kID0gdG90YWxfbGVuZ3RoIC0gMTsKLSAJCX0KLSAKLUBAIC0xMzMwLDE5ICsxMzc5LDI0IEBA IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9yYW5nZXNfaW50ZXJuYWwgKFNvdXBNZXNzYWdlSGVh ZGVycyAgKmhkcnMsCi0gCX0KLSAKLSAJaWYgKHRvdGFsX2xlbmd0aCkgewotLQkJZ3VpbnQgaTsK LSsJCVNvdXBSYW5nZSAqZGF0YTsKLSsJCWd1aW50IGksIGxhc3QgPSAwOwotIAotIAkJZ19hcnJh eV9zb3J0IChhcnJheSwgc29ydF9yYW5nZXMpOwotLQkJZm9yIChpID0gMTsgaSA8IGFycmF5LT5s ZW47IGkrKykgewotLQkJCVNvdXBSYW5nZSAqY3VyID0gJigoU291cFJhbmdlICopYXJyYXktPmRh dGEpW2ldOwotLQkJCVNvdXBSYW5nZSAqcHJldiA9ICYoKFNvdXBSYW5nZSAqKWFycmF5LT5kYXRh KVtpIC0gMV07Ci0gCi0tCQkJaWYgKGN1ci0+c3RhcnQgPD0gcHJldi0+ZW5kKSB7Ci0tCQkJCXBy ZXYtPmVuZCA9IE1BWCAocHJldi0+ZW5kLCBjdXItPmVuZCk7Ci0tCQkJCWdfYXJyYXlfcmVtb3Zl X2luZGV4IChhcnJheSwgaSk7Ci0tCQkJCWktLTsKLS0JCQl9Ci0rCQkvKiBNZXJnZSBvdmVybGFw cGluZyByYW5nZXMgaW50byB0aGUgcnVuIGJlaW5nIGJ1aWx0IGF0IEBsYXN0LgotKwkJICogUmVt b3ZpbmcgdGhlIG1lcmdlZCBlbGVtZW50cyBvbmUgYXQgYSB0aW1lIGluc3RlYWQgbWFkZSB0aGlz Ci0rCQkgKiBxdWFkcmF0aWMgaW4gdGhlIG51bWJlciBvZiByYW5nZXMuCi0rCQkgKi8KLSsJCWRh dGEgPSAoU291cFJhbmdlICopYXJyYXktPmRhdGE7Ci0rCQlmb3IgKGkgPSAxOyBpIDwgYXJyYXkt PmxlbjsgaSsrKSB7Ci0rCQkJaWYgKGRhdGFbaV0uc3RhcnQgPD0gZGF0YVtsYXN0XS5lbmQpCi0r CQkJCWRhdGFbbGFzdF0uZW5kID0gTUFYIChkYXRhW2xhc3RdLmVuZCwgZGF0YVtpXS5lbmQpOwot KwkJCWVsc2UKLSsJCQkJZGF0YVsrK2xhc3RdID0gZGF0YVtpXTsKLSAJCX0KLSsKLSsJCWdfYXJy YXlfc2V0X3NpemUgKGFycmF5LCBsYXN0ICsgMSk7Ci0gCX0KLSAKLSAJKnJhbmdlcyA9IChTb3Vw UmFuZ2UgKilhcnJheS0+ZGF0YTsKLUBAIC0xMzc1LDYgKzE0MjksMTEgQEAgc291cF9tZXNzYWdl X2hlYWRlcnNfZ2V0X3Jhbmdlc19pbnRlcm5hbCAoU291cE1lc3NhZ2VIZWFkZXJzICAqaGRycywK LSAgKiBCZXdhcmUgdGhhdCBldmVuIGlmIGdpdmVuIGEgQHRvdGFsX2xlbmd0aCwgdGhpcyBmdW5j dGlvbiBkb2VzIG5vdAotICAqIGNoZWNrIHRoYXQgdGhlIHJhbmdlcyBhcmUgc2F0aXNmaWFibGUu Ci0gICoKLSsgKiBBIFJhbmdlIGhlYWRlciByZXF1ZXN0aW5nIG1vcmUgdGhhbiAyMDAgcmFuZ2Vz IGlzIHJlamVjdGVkLCBzaW5jZSBzZXJ2aW5nCi0rICogdGhhdCBtYW55IHJhbmdlcyBjb3N0cyBm YXIgbW9yZSB0aGFuIHRoZSByZXF1ZXN0IGFza2luZyBmb3IgdGhlbS4KLSsgKiBbY2xhc3NAU2Vy dmVyXSBhbnN3ZXJzIHN1Y2ggYSByZXF1ZXN0IHdpdGgKLSsgKiAlU09VUF9TVEFUVVNfUkVRVUVT VEVEX1JBTkdFX05PVF9TQVRJU0ZJQUJMRS4KLSsgKgotICAqIFtjbGFzc0BTZXJ2ZXJdIGhhcyBi dWlsdC1pbiBoYW5kbGluZyBmb3IgcmFuZ2UgcmVxdWVzdHMuIElmIHlvdXIKLSAgKiBzZXJ2ZXIg aGFuZGxlciByZXR1cm5zIGEgJVNPVVBfU1RBVFVTX09LIHJlc3BvbnNlIGNvbnRhaW5pbmcgdGhl Ci0gICogY29tcGxldGUgcmVzcG9uc2UgYm9keSAocmF0aGVyIHRoYW4gcGF1c2luZyB0aGUgbWVz c2FnZSBhbmQKLWRpZmYgLS1naXQgYS90ZXN0cy9yYW5nZS10ZXN0LmMgYi90ZXN0cy9yYW5nZS10 ZXN0LmMKLWluZGV4IGNmZDVmNjEzLi45ZTRlZDJjOSAxMDA2NDQKLS0tLSBhL3Rlc3RzL3Jhbmdl LXRlc3QuYwotKysrIGIvdGVzdHMvcmFuZ2UtdGVzdC5jCi1AQCAtMyw2ICszLDggQEAKLSAjaW5j bHVkZSAiY29uZmlnLmgiCi0gCi0gI2luY2x1ZGUgInRlc3QtdXRpbHMuaCIKLSsjaW5jbHVkZSAi c291cC1tZXNzYWdlLWhlYWRlcnMtcHJpdmF0ZS5oIgotKyNpbmNsdWRlICJzb3VwLW1pc2MuaCIK LSAKLSBHQnl0ZXMgKmZ1bGxfcmVzcG9uc2U7Ci0gaW50IHRvdGFsX2xlbmd0aDsKLUBAIC0xNjEs NiArMTYzLDIxIEBAIHJlcXVlc3Rfc2luZ2xlX3JhbmdlX2J5X3N0cmluZyAoU291cFNlc3Npb24g KnNlc3Npb24sIGNvbnN0IGNoYXIgKnVyaSwKLSAJZ19vYmplY3RfdW5yZWYgKG1zZyk7Ci0gfQot IAotKy8qIExpa2UgcmVxdWVzdF9zaW5nbGVfcmFuZ2VfYnlfc3RyaW5nKCksIGJ1dCBhYmxlIHRv IGNoZWNrIHRoZSByYW5nZXMgb2YgYQotKyAqIHN1Y2Nlc3NmdWwgMjA2IGFzIHdlbGwuICovCi0r c3RhdGljIHZvaWQKLStyZXF1ZXN0X3NpbmdsZV9yYW5nZV9ieV9zdHJpbmdfZnVsbCAoU291cFNl c3Npb24gKnNlc3Npb24sIGNvbnN0IGNoYXIgKnVyaSwKLSsJCQkJICAgICBjb25zdCBjaGFyICpy YW5nZSwgU291cFN0YXR1cyBleHBlY3RlZF9zdGF0dXMsCi0rCQkJCSAgICAgaW50IGV4cGVjdGVk X3N0YXJ0LCBpbnQgZXhwZWN0ZWRfZW5kKQotK3sKLSsJU291cE1lc3NhZ2UgKm1zZzsKLSsKLSsJ bXNnID0gc291cF9tZXNzYWdlX25ldyAoIkdFVCIsIHVyaSk7Ci0rCXNvdXBfbWVzc2FnZV9oZWFk ZXJzX3JlcGxhY2UgKHNvdXBfbWVzc2FnZV9nZXRfcmVxdWVzdF9oZWFkZXJzIChtc2cpLCAiUmFu Z2UiLCByYW5nZSk7Ci0rCi0rCWRvX3NpbmdsZV9yYW5nZSAoc2Vzc2lvbiwgbXNnLCAwLCAwLCBl eHBlY3RlZF9zdGF0dXMsIGV4cGVjdGVkX3N0YXJ0LCBleHBlY3RlZF9lbmQpOwotK30KLSsKLSBz dGF0aWMgdm9pZAotIGRvX211bHRpX3JhbmdlIChTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwgU291cE1l c3NhZ2UgKm1zZywKLSAJCWludCBleHBlY3RlZF9yZXR1cm5fcmFuZ2VzKQotQEAgLTQ0NSw2ICs0 NjIsMjkwIEBAIGRvX3JhbmdlX3Rlc3QgKFNvdXBTZXNzaW9uICpzZXNzaW9uLCBjb25zdCBjaGFy ICp1cmksCi0gCQkJCQlTT1VQX1NUQVRVU19PSyk7Ci0gfQotIAotKy8qIFRlc3RzIGZvciB0aGUg UmFuZ2UgcGFyc2VyIGl0c2VsZi4gVW5saWtlIHRoZSB0ZXN0cyBhYm92ZSwgdGhlc2UgZG9uJ3Qg bmVlZAotKyAqIGEgc2VydmVyLCBzbyB0aGV5IGNhbiB1c2UgdG90YWwgbGVuZ3RocyB3aGljaCB3 b3VsZCBiZSBpbXByYWN0aWNhbCB0bwotKyAqIGFjdHVhbGx5IHNlcnZlLCBhbmQgdGhleSBjYW4g Y2hlY2sgdGhlIGV4YWN0IHN0YXR1cyB3aGljaCB0aGUgc2VydmVyIHdvdWxkCi0rICogdXNlIHJh dGhlciB0aGFuIG9ubHkgdGhlIG9uZXMgYSBjbGllbnQgY2FuIGRpc3Rpbmd1aXNoLgotKyAqLwot K3R5cGVkZWYgc3RydWN0IHsKLSsJY29uc3QgY2hhciAqZGVzY3JpcHRpb247Ci0rCWNvbnN0IGNo YXIgKmJ1Z3JlZjsKLSsJY29uc3QgY2hhciAqcmFuZ2U7Ci0rCWdvZmZzZXQgdG90YWxfbGVuZ3Ro OwotKwlndWludCBleHBlY3RlZF9zdGF0dXM7Ci0rCWludCBleHBlY3RlZF9uX3JhbmdlczsKLSsJ U291cFJhbmdlIGV4cGVjdGVkX3Jhbmdlc1szXTsKLSt9IFJhbmdlUGFyc2luZ1Rlc3Q7Ci0rCi0r c3RhdGljIGNvbnN0IFJhbmdlUGFyc2luZ1Rlc3QgcmFuZ2VfcGFyc2luZ190ZXN0c1tdID0gewot KwkvKiBWYWxpZCByYW5nZXMgYWdhaW5zdCBhIHRlbiBieXRlIGJvZHksIGFzIGEgYmFzZWxpbmUu ICovCi0rCXsgInNpbXBsZSByYW5nZSIsIE5VTEwsCi0rCSAgImJ5dGVzPTAtNCIsIDEwLCBTT1VQ X1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDEsIHsgeyAwLCA0IH0gfSB9LAotKwl7ICJ3aG9sZSBi b2R5IiwgTlVMTCwKLSsJICAiYnl0ZXM9MC05IiwgMTAsIFNPVVBfU1RBVFVTX1BBUlRJQUxfQ09O VEVOVCwgMSwgeyB7IDAsIDkgfSB9IH0sCi0rCXsgIm9wZW4gZW5kZWQgcmFuZ2UiLCBOVUxMLAot KwkgICJieXRlcz01LSIsIDEwLCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDEsIHsgeyA1 LCA5IH0gfSB9LAotKwl7ICJmaW5hbCBieXRlIiwgTlVMTCwKLSsJICAiYnl0ZXM9OS0iLCAxMCwg U09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5ULCAxLCB7IHsgOSwgOSB9IH0gfSwKLSsJeyAiZW5k IHBhc3QgdGhlIGJvZHkgaXMgY2xhbXBlZCIsIE5VTEwsCi0rCSAgImJ5dGVzPTEtMTAwIiwgMTAs IFNPVVBfU1RBVFVTX1BBUlRJQUxfQ09OVEVOVCwgMSwgeyB7IDEsIDkgfSB9IH0sCi0rCXsgInN1 ZmZpeCByYW5nZSIsIE5VTEwsCi0rCSAgImJ5dGVzPS01IiwgMTAsIFNPVVBfU1RBVFVTX1BBUlRJ QUxfQ09OVEVOVCwgMSwgeyB7IDUsIDkgfSB9IH0sCi0rCXsgInNpbmdsZSBieXRlIHN1ZmZpeCBy YW5nZSIsIE5VTEwsCi0rCSAgImJ5dGVzPS0xIiwgMTAsIFNPVVBfU1RBVFVTX1BBUlRJQUxfQ09O VEVOVCwgMSwgeyB7IDksIDkgfSB9IH0sCi0rCXsgIndoaXRlc3BhY2UgYXJvdW5kIHRoZSByYW5n ZXMiLCBOVUxMLAotKwkgICJieXRlcyBcdCA9IFx0IDAtNCIsIDEwLCBTT1VQX1NUQVRVU19QQVJU SUFMX0NPTlRFTlQsIDEsIHsgeyAwLCA0IH0gfSB9LAotKwotKwkvKiBVbnNhdGlzZmlhYmxlIGFu ZCBpbnZhbGlkIHJhbmdlcy4gKi8KLSsJeyAic3RhcnQgcGFzdCB0aGUgYm9keSIsIE5VTEwsCi0r CSAgImJ5dGVzPTEwLTIwIiwgMTAsIFNPVVBfU1RBVFVTX1JFUVVFU1RFRF9SQU5HRV9OT1RfU0FU SVNGSUFCTEUsIDAsIHsgfSB9LAotKwl7ICJlbmQgYmVmb3JlIHN0YXJ0IiwgTlVMTCwKLSsJICAi Ynl0ZXM9MTAtMSIsIDEwLCBTT1VQX1NUQVRVU19PSywgMCwgeyB9IH0sCi0rCXsgInplcm8gbGVu Z3RoIHN1ZmZpeCByYW5nZSIsIE5VTEwsCi0rCSAgImJ5dGVzPS0wIiwgMTAsIFNPVVBfU1RBVFVT X09LLCAwLCB7IH0gfSwKLSsJeyAidHJhaWxpbmcgZ2FyYmFnZSIsIE5VTEwsCi0rCSAgImJ5dGVz PTAtMTAgYnV0IHdpdGggd2VpcmQgdHJhaWxpbmcgY29udGVudCIsIDEwLCBTT1VQX1NUQVRVU19P SywgMCwgeyB9IH0sCi0rCXsgImludmFsaWQgcmFuZ2UgZGFzaCIsIE5VTEwsCi0rCSAgImJ5dGVz PTBhMTAiLCAxMCwgU09VUF9TVEFUVVNfT0ssIDAsIHsgfSB9LAotKwl7ICJ1bmtub3duIHJhbmdl IHVuaXQiLCBOVUxMLAotKwkgICJob3JzZXM9MC0xMCIsIDEwLCBTT1VQX1NUQVRVU19PSywgMCwg eyB9IH0sCi0rCXsgIm1pc3NpbmcgZXF1YWxzIiwgTlVMTCwKLSsJICAiYnl0ZXMgMC0xMCIsIDEw LCBTT1VQX1NUQVRVU19PSywgMCwgeyB9IH0sCi0rCXsgImRlbGltaXRlcnMgYnV0IG5vIHJhbmdl cyIsIE5VTEwsCi0rCSAgImJ5dGVzPSwgLCxcdCwgIiwgMTAsIFNPVVBfU1RBVFVTX09LLCAwLCB7 IH0gfSwKLSsKLSsJLyogQSBzdWZmaXggbGVuZ3RoIGF0IGxlYXN0IGFzIGxvbmcgYXMgdGhlIGJv ZHkgc2VsZWN0cyB0aGUgd2hvbGUgYm9keSwKLSsJICogcGVyIFJGQyA5MTEwIMKnMTQuMS4yLiBU aGVzZSB1c2VkIHRvIGRyaXZlIHRoZSByYW5nZSBzdGFydCBuZWdhdGl2ZSwKLSsJICogd2hpY2gg YWJvcnRlZCB0aGUgcHJvY2VzcyBhdCB0aGUgZ19hc3NlcnQoKSBiZWxvdyB0aGUgcGFyc2UuCi0r CSAqLwotKwl7ICJzdWZmaXggcmFuZ2UgdGhlIGxlbmd0aCBvZiB0aGUgYm9keSIsICJodHRwczov L2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGlic291cC8tL2lzc3Vlcy81MTYiLAotKwkgICJieXRl cz0tMTAiLCAxMCwgU09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5ULCAxLCB7IHsgMCwgOSB9IH0g fSwKLSsJeyAic3VmZml4IHJhbmdlIG9uZSBsb25nZXIgdGhhbiB0aGUgYm9keSIsICJodHRwczov L2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGlic291cC8tL2lzc3Vlcy81MTYiLAotKwkgICJieXRl cz0tMTEiLCAxMCwgU09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5ULCAxLCB7IHsgMCwgOSB9IH0g fSwKLSsJeyAic3VmZml4IHJhbmdlIG11Y2ggbG9uZ2VyIHRoYW4gdGhlIGJvZHkiLCAiaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xpYnNvdXAvLS9pc3N1ZXMvNTQ4IiwKLSsJICAiYnl0 ZXM9LTk5OTk5OSIsIDEwLCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDEsIHsgeyAwLCA5 IH0gfSB9LAotKwl7ICJzdWZmaXggcmFuZ2Ugb2YgR19NSU5JTlQiLCAiaHR0cHM6Ly9naXRsYWIu Z25vbWUub3JnL0dOT01FL2xpYnNvdXAvLS9pc3N1ZXMvNTQ3IiwKLSsJICAiYnl0ZXM9LTIxNDc0 ODM2NDgiLCAxMCwgU09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5ULCAxLCB7IHsgMCwgOSB9IH0g fSwKLSsJeyAic3VmZml4IHJhbmdlIGxhcmdlciB0aGFuIGEgZ3VpbnQzMiIsICJodHRwczovL2dp dGxhYi5nbm9tZS5vcmcvR05PTUUvbGlic291cC8tL2lzc3Vlcy81NDciLAotKwkgICJieXRlcz0t NDI5NDk2NzI5NiIsIDEwLCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDEsIHsgeyAwLCA5 IH0gfSB9LAotKwl7ICJzdWZmaXggcmFuZ2Ugb2YgR19NQVhJTlQ2NCIsICJodHRwczovL2dpdGxh Yi5nbm9tZS5vcmcvR05PTUUvbGlic291cC8tL2lzc3Vlcy81NDciLAotKwkgICJieXRlcz0tOTIy MzM3MjAzNjg1NDc3NTgwNyIsIDEwLCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDEsIHsg eyAwLCA5IH0gfSB9LAotKwl7ICJzdWZmaXggcmFuZ2Ugb2YgR19NSU5JTlQ2NCIsICJodHRwczov L2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGlic291cC8tL2lzc3Vlcy81NDciLAotKwkgICJieXRl cz0tOTIyMzM3MjAzNjg1NDc3NTgwOCIsIDEwLCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQs IDEsIHsgeyAwLCA5IH0gfSB9LAotKwl7ICJzdWZmaXggcmFuZ2Ugb3ZlcmZsb3dpbmcgZ2ludDY0 IiwgImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJzb3VwLy0vaXNzdWVzLzUzNSIs Ci0rCSAgImJ5dGVzPS05OTk5OTk5OTk5OTk5OTk5OTk5OSIsIDEwLCBTT1VQX1NUQVRVU19QQVJU SUFMX0NPTlRFTlQsIDEsIHsgeyAwLCA5IH0gfSB9LAotKwl7ICJvdmVyc2l6ZWQgc3VmZml4IHJh bmdlIG1lcmdlZCB3aXRoIGEgdmFsaWQgcmFuZ2UiLCAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3Jn L0dOT01FL2xpYnNvdXAvLS9pc3N1ZXMvNTQ4IiwKLSsJICAiYnl0ZXM9LTk5OTk5OSw0LTUiLCAx MCwgU09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5ULCAxLCB7IHsgMCwgOSB9IH0gfSwKLSsKLSsJ LyogUmFuZ2Ugc3RhcnRzIGFuZCBlbmRzIHdoaWNoIG92ZXJmbG93IHRoZSBzaWduZWQgZ29mZnNl dCB0aGV5IGFyZQotKwkgKiBwYXJzZWQgaW50by4gQW4gb3ZlcmZsb3dpbmcgc3RhcnQgaXMgdHJl YXRlZCBsaWtlIGFueSBvdGhlciBzdGFydAotKwkgKiBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgYm9k eSwgYW5kIGFuIG92ZXJmbG93aW5nIGVuZCBpcyBjbGFtcGVkIGxpa2UKLSsJICogYW55IG90aGVy IGVuZCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgYm9keS4KLSsJICovCi0rCXsgInN0YXJ0IG92ZXJm bG93aW5nIGdpbnQ2NCIsICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGlic291cC8t L2lzc3Vlcy81MzUiLAotKwkgICJieXRlcz05ODg4ODg4ODg4ODg4MDE5OTAwLSIsIDEwLCBTT1VQ X1NUQVRVU19PSywgMCwgeyB9IH0sCi0rCXsgInN0YXJ0IG92ZXJmbG93aW5nIGdpbnQ2NCB3aXRo IG5vIGRhc2giLCAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xpYnNvdXAvLS9pc3N1 ZXMvNTM1IiwKLSsJICAiYnl0ZXM9OTg4ODg4ODg4ODg4ODAxOTkwMCIsIDEwLCBTT1VQX1NUQVRV U19PSywgMCwgeyB9IH0sCi0rCXsgInN0YXJ0IG9mIEdfTUFYSU5UNjQgKyAxIiwgImh0dHBzOi8v Z2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJzb3VwLy0vaXNzdWVzLzUzNSIsCi0rCSAgImJ5dGVz PTkyMjMzNzIwMzY4NTQ3NzU4MDgtIiwgMTAsIFNPVVBfU1RBVFVTX09LLCAwLCB7IH0gfSwKLSsJ eyAic3RhcnQgb3ZlcmZsb3dpbmcgZ3VpbnQ2NCIsICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcv R05PTUUvbGlic291cC8tL2lzc3Vlcy81MzUiLAotKwkgICJieXRlcz0xODQ0Njc0NDA3MzcwOTU1 MTYxNi0iLCAxMCwgU09VUF9TVEFUVVNfT0ssIDAsIHsgfSB9LAotKwl7ICJzdGFydCBhbmQgZW5k IG92ZXJmbG93aW5nIGdpbnQ2NCIsICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGli c291cC8tL2lzc3Vlcy81MzUiLAotKwkgICJieXRlcz05ODg4ODg4ODg4ODg4MDE5OTAwLTk4ODg4 ODg4ODg4ODgwMTk5MDEiLCAxMCwgU09VUF9TVEFUVVNfT0ssIDAsIHsgfSB9LAotKwl7ICJlbmQg b3ZlcmZsb3dpbmcgZ2ludDY0IiwgImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJz b3VwLy0vaXNzdWVzLzUzNSIsCi0rCSAgImJ5dGVzPTAtOTg4ODg4ODg4ODg4ODAxOTkwMCIsIDEw LCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDEsIHsgeyAwLCA5IH0gfSB9LAotKwl7ICJl bmQgb3ZlcmZsb3dpbmcgZ3VpbnQ2NCIsICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUv bGlic291cC8tL2lzc3Vlcy81MzUiLAotKwkgICJieXRlcz0wLTE4NDQ2NzQ0MDczNzA5NTUxNjE2 IiwgMTAsIFNPVVBfU1RBVFVTX1BBUlRJQUxfQ09OVEVOVCwgMSwgeyB7IDAsIDkgfSB9IH0sCi0r Ci0rCS8qIFplcm8gbGVuZ3RoIGJvZGllcy4gc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X3Jhbmdl cygpIGlzIHB1YmxpYyBBUEksCi0rCSAqIHNvIGl0IGNhbiBiZSBjYWxsZWQgd2l0aCBvbmUgZXZl biB0aG91Z2ggdGhlIHNlcnZlciBuZXZlciBkb2VzLgotKwkgKi8KLSsJeyAicmFuZ2UgYWdhaW5z dCBhbiBlbXB0eSBib2R5IiwgTlVMTCwKLSsJICAiYnl0ZXM9MC05IiwgMCwgU09VUF9TVEFUVVNf UkVRVUVTVEVEX1JBTkdFX05PVF9TQVRJU0ZJQUJMRSwgMCwgeyB9IH0sCi0rCXsgInN1ZmZpeCBy YW5nZSBhZ2FpbnN0IGFuIGVtcHR5IGJvZHkiLCAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dO T01FL2xpYnNvdXAvLS9pc3N1ZXMvNTQ4IiwKLSsJICAiYnl0ZXM9LTUiLCAwLCBTT1VQX1NUQVRV U19PSywgMCwgeyB9IH0sCi0rCi0rCS8qIE1lcmdpbmcuICovCi0rCXsgIm92ZXJsYXBwaW5nIHJh bmdlcyBhcmUgbWVyZ2VkIiwgTlVMTCwKLSsJICAiYnl0ZXM9MC0xMCw1LTIwIiwgMTAwLCBTT1VQ X1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDEsIHsgeyAwLCAyMCB9IH0gfSwKLSsJeyAiY29udGFp bmVkIHJhbmdlcyBhcmUgbWVyZ2VkIiwgTlVMTCwKLSsJICAiYnl0ZXM9MC0yMCw1LTEwIiwgMTAw LCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDEsIHsgeyAwLCAyMCB9IH0gfSwKLSsJeyAi dG91Y2hpbmcgcmFuZ2VzIGFyZSBub3QgbWVyZ2VkIiwgTlVMTCwKLSsJICAiYnl0ZXM9MC00LDUt OSIsIDEwMCwgU09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5ULCAyLCB7IHsgMCwgNCB9LCB7IDUs IDkgfSB9IH0sCi0rCXsgInJhbmdlcyBhcmUgc29ydGVkIiwgTlVMTCwKLSsJICAiYnl0ZXM9MjAt MjksMC05IiwgMTAwLCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDIsIHsgeyAwLCA5IH0s IHsgMjAsIDI5IH0gfSB9LAotKwl7ICJpbnZhbGlkIHJhbmdlcyBkbyBub3QgcHJldmVudCB2YWxp ZCBvbmVzIiwgTlVMTCwKLSsJICAiYnl0ZXM9MC05LDUwLTQwLDIwLTI5IiwgMTAwLCBTT1VQX1NU QVRVU19QQVJUSUFMX0NPTlRFTlQsIDIsIHsgeyAwLCA5IH0sIHsgMjAsIDI5IH0gfSB9LAotKwot KwkvKiBUaGUgY29tcGFyaXNvbiBmdW5jdGlvbiB1c2VkIHRvIHNvcnQgdGhlIHJhbmdlcyBiZWZv cmUgbWVyZ2luZyB0aGVtCi0rCSAqIHVzZWQgdG8gdHJ1bmNhdGUgYSBnb2Zmc2V0IGRpZmZlcmVu Y2UgdG8gaW50LCB3aGljaCBmbGlwcyBpdHMgc2lnbgotKwkgKiBmb3IgYm9kaWVzIG92ZXIgMkdC IGFuZCBzaWxlbnRseSBkcm9wcGVkIHJhbmdlcyBmcm9tIHRoZSByZXNwb25zZS4KLSsJICovCi0r CXsgInJhbmdlcyBtb3JlIHRoYW4gR19NQVhJTlQgYXBhcnQiLCAiaHR0cHM6Ly9naXRsYWIuZ25v bWUub3JnL0dOT01FL2xpYnNvdXAvLS9pc3N1ZXMvNTE5IiwKLSsJICAiYnl0ZXM9MC0xMDAsIDI1 MDAwMDAwMDAtMjUwMDAwMDEwMCwgNDk5OTk5OTAwMC00OTk5OTk5MTAwIiwgNTAwMDAwMDAwMCwK LSsJICBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDMsCi0rCSAgeyB7IDAsIDEwMCB9LCB7 IDI1MDAwMDAwMDAsIDI1MDAwMDAxMDAgfSwgeyA0OTk5OTk5MDAwLCA0OTk5OTk5MTAwIH0gfSB9 LAotKwl7ICJ1bnNvcnRlZCByYW5nZXMgbW9yZSB0aGFuIEdfTUFYSU5UIGFwYXJ0IiwgImh0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJzb3VwLy0vaXNzdWVzLzUxOSIsCi0rCSAgImJ5 dGVzPTQ5OTk5OTkwMDAtNDk5OTk5OTEwMCwgMC0xMDAsIDI1MDAwMDAwMDAtMjUwMDAwMDEwMCIs IDUwMDAwMDAwMDAsCi0rCSAgU09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5ULCAzLAotKwkgIHsg eyAwLCAxMDAgfSwgeyAyNTAwMDAwMDAwLCAyNTAwMDAwMTAwIH0sIHsgNDk5OTk5OTAwMCwgNDk5 OTk5OTEwMCB9IH0gfSwKLSt9OwotKwotK3N0YXRpYyB2b2lkCi0rY2hlY2tfcGFyc2VkX3Jhbmdl cyAoY29uc3QgY2hhciAqcmFuZ2UsCi0rCQkgICAgIGdvZmZzZXQgICAgIHRvdGFsX2xlbmd0aCwK LSsJCSAgICAgZ3VpbnQgICAgICAgZXhwZWN0ZWRfc3RhdHVzLAotKwkJICAgICBpbnQgICAgICAg ICBleHBlY3RlZF9uX3JhbmdlcywKLSsJCSAgICAgY29uc3QgU291cFJhbmdlICpleHBlY3RlZF9y YW5nZXMpCi0rewotKwlTb3VwTWVzc2FnZUhlYWRlcnMgKmhkcnM7Ci0rCVNvdXBSYW5nZSAqcmFu Z2VzID0gTlVMTDsKLSsJaW50IG5fcmFuZ2VzID0gMDsKLSsJZ3VpbnQgc3RhdHVzOwotKwlpbnQg aTsKLSsKLSsJaGRycyA9IHNvdXBfbWVzc2FnZV9oZWFkZXJzX25ldyAoU09VUF9NRVNTQUdFX0hF QURFUlNfUkVRVUVTVCk7Ci0rCXNvdXBfbWVzc2FnZV9oZWFkZXJzX3JlcGxhY2UgKGhkcnMsICJS YW5nZSIsIHJhbmdlKTsKLSsKLSsJc3RhdHVzID0gc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X3Jh bmdlc19pbnRlcm5hbCAoaGRycywgdG90YWxfbGVuZ3RoLCBUUlVFLAotKwkJCQkJCQkgICAmcmFu Z2VzLCAmbl9yYW5nZXMpOwotKwotKwlnX2Fzc2VydF9jbXB1aW50IChzdGF0dXMsID09LCBleHBl Y3RlZF9zdGF0dXMpOwotKwotKwlpZiAoc3RhdHVzID09IFNPVVBfU1RBVFVTX1BBUlRJQUxfQ09O VEVOVCkgewotKwkJZ19hc3NlcnRfbm9ubnVsbCAocmFuZ2VzKTsKLSsJCWdfYXNzZXJ0X2NtcGlu dCAobl9yYW5nZXMsID09LCBleHBlY3RlZF9uX3Jhbmdlcyk7Ci0rCi0rCQlmb3IgKGkgPSAwOyBp IDwgbl9yYW5nZXM7IGkrKykgewotKwkJCWRlYnVnX3ByaW50ZiAoMiwgIiAgICBbJWRdOiAlIiBH X0dJTlQ2NF9GT1JNQVQgIi0lIiBHX0dJTlQ2NF9GT1JNQVQgIlxuIiwKLSsJCQkJICAgICAgaSwg cmFuZ2VzW2ldLnN0YXJ0LCByYW5nZXNbaV0uZW5kKTsKLSsKLSsJCQlnX2Fzc2VydF9jbXBpbnQg KHJhbmdlc1tpXS5zdGFydCwgPT0sIGV4cGVjdGVkX3Jhbmdlc1tpXS5zdGFydCk7Ci0rCQkJZ19h c3NlcnRfY21waW50IChyYW5nZXNbaV0uZW5kLCA9PSwgZXhwZWN0ZWRfcmFuZ2VzW2ldLmVuZCk7 Ci0rCi0rCQkJLyogV2hhdGV2ZXIgdGhlIGlucHV0LCB0aGUgcGFyc2VkIHJhbmdlcyBtdXN0IGJl IHVzYWJsZQotKwkJCSAqIGFzIG9mZnNldHMgaW50byBhIGJ1ZmZlciBvZiB0b3RhbF9sZW5ndGgg Ynl0ZXMuCi0rCQkJICovCi0rCQkJZ19hc3NlcnRfY21waW50IChyYW5nZXNbaV0uc3RhcnQsID49 LCAwKTsKLSsJCQlnX2Fzc2VydF9jbXBpbnQgKHJhbmdlc1tpXS5lbmQsID49LCByYW5nZXNbaV0u c3RhcnQpOwotKwkJCWdfYXNzZXJ0X2NtcGludCAocmFuZ2VzW2ldLmVuZCwgPCwgdG90YWxfbGVu Z3RoKTsKLSsJCX0KLSsJfQotKwotKwlzb3VwX21lc3NhZ2VfaGVhZGVyc19mcmVlX3JhbmdlcyAo aGRycywgcmFuZ2VzKTsKLSsJc291cF9tZXNzYWdlX2hlYWRlcnNfdW5yZWYgKGhkcnMpOwotK30K LSsKLStzdGF0aWMgdm9pZAotK2RvX3JhbmdlX3BhcnNpbmdfdGVzdCAodm9pZCkKLSt7Ci0rCWd1 aW50IGk7Ci0rCi0rCWZvciAoaSA9IDA7IGkgPCBHX05fRUxFTUVOVFMgKHJhbmdlX3BhcnNpbmdf dGVzdHMpOyBpKyspIHsKLSsJCWNvbnN0IFJhbmdlUGFyc2luZ1Rlc3QgKnRlc3QgPSAmcmFuZ2Vf cGFyc2luZ190ZXN0c1tpXTsKLSsKLSsJCWRlYnVnX3ByaW50ZiAoMSwgIiUydS4gJXM6ICclcycg YWdhaW5zdCAlIiBHX0dPRkZTRVRfRk9STUFUICIgYnl0ZXNcbiIsCi0rCQkJICAgICAgaSArIDEs IHRlc3QtPmRlc2NyaXB0aW9uLCB0ZXN0LT5yYW5nZSwgdGVzdC0+dG90YWxfbGVuZ3RoKTsKLSsK LSsJCWlmICh0ZXN0LT5idWdyZWYpCi0rCQkJZ190ZXN0X21lc3NhZ2UgKCJCdWcgcmVmZXJlbmNl OiAlcyIsIHRlc3QtPmJ1Z3JlZik7Ci0rCi0rCQljaGVja19wYXJzZWRfcmFuZ2VzICh0ZXN0LT5y YW5nZSwgdGVzdC0+dG90YWxfbGVuZ3RoLAotKwkJCQkgICAgIHRlc3QtPmV4cGVjdGVkX3N0YXR1 cywgdGVzdC0+ZXhwZWN0ZWRfbl9yYW5nZXMsCi0rCQkJCSAgICAgdGVzdC0+ZXhwZWN0ZWRfcmFu Z2VzKTsKLSsJfQotK30KLSsKLSsvKiBBIHNpbmdsZSBSYW5nZSBoZWFkZXIgY2FuIGxpc3QgZmFy IG1vcmUgcmFuZ2VzIHRoYW4gYXJlIHJlYXNvbmFibGUgdG8gc2VydmU6Ci0rICogdGhlIG9ubHkg bGltaXQgb24gdGhlIHdpcmUgaXMgdGhlIG1heGltdW0gcmVxdWVzdCBoZWFkZXIgc2l6ZS4gKi8K LStzdGF0aWMgdm9pZAotK2RvX3JhbmdlX2NvdW50X3Rlc3QgKHZvaWQpCi0rewotKwlzdHJ1Y3Qg ewotKwkJaW50IG5fcmFuZ2VzOwotKwkJZ2Jvb2xlYW4gaWRlbnRpY2FsOwotKwkJZ3VpbnQgZXhw ZWN0ZWRfc3RhdHVzOwotKwkJaW50IGV4cGVjdGVkX25fcmFuZ2VzOwotKwl9IHRlc3RzW10gPSB7 Ci0rCQkvKiBEaXN0aW5jdCByYW5nZXMsIHVwIHRvIGFuZCB0aGVuIHBhc3QgdGhlIGxpbWl0LiBH b2luZyBwYXN0IGl0Ci0rCQkgKiBpcyByZWplY3RlZCByYXRoZXIgdGhhbiBpZ25vcmVkLgotKwkJ ICovCi0rCQl7IDEwMCwgRkFMU0UsIFNPVVBfU1RBVFVTX1BBUlRJQUxfQ09OVEVOVCwgMTAwIH0s Ci0rCQl7IE1BWF9SQU5HRVMsIEZBTFNFLCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIE1B WF9SQU5HRVMgfSwKLSsJCXsgTUFYX1JBTkdFUyArIDEsIEZBTFNFLCBTT1VQX1NUQVRVU19SRVFV RVNURURfUkFOR0VfTk9UX1NBVElTRklBQkxFLCAwIH0sCi0rCi0rCQkvKiBJZGVudGljYWwgcmFu Z2VzLCB3aGljaCBhbGwgbWVyZ2UgaW50byBvbmUuIFRoaXMgaXMgdGhlCi0rCQkgKiBzaGFwZSB3 aGljaCB1c2VkIHRvIGJlIHF1YWRyYXRpYy4KLSsJCSAqLwotKwkJeyBNQVhfUkFOR0VTLCBUUlVF LCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDEgfSwKLSsJCXsgTUFYX1JBTkdFUyArIDEs IFRSVUUsIFNPVVBfU1RBVFVTX1JFUVVFU1RFRF9SQU5HRV9OT1RfU0FUSVNGSUFCTEUsIDAgfSwK LSsJCXsgMjU1ODUsIFRSVUUsIFNPVVBfU1RBVFVTX1JFUVVFU1RFRF9SQU5HRV9OT1RfU0FUSVNG SUFCTEUsIDAgfSwKLSsJfTsKLSsJZ3VpbnQgaTsKLSsJaW50IGo7Ci0rCi0rCWZvciAoaSA9IDA7 IGkgPCBHX05fRUxFTUVOVFMgKHRlc3RzKTsgaSsrKSB7Ci0rCQlTb3VwTWVzc2FnZUhlYWRlcnMg KmhkcnM7Ci0rCQlTb3VwUmFuZ2UgKnJhbmdlcyA9IE5VTEw7Ci0rCQlpbnQgbl9yYW5nZXMgPSAw OwotKwkJZ3VpbnQgc3RhdHVzOwotKwkJR1N0cmluZyAqcmFuZ2U7Ci0rCi0rCQlkZWJ1Z19wcmlu dGYgKDEsICIlMnUuICVkICVzIHJhbmdlc1xuIiwgaSArIDEsIHRlc3RzW2ldLm5fcmFuZ2VzLAot KwkJCSAgICAgIHRlc3RzW2ldLmlkZW50aWNhbCA/ICJpZGVudGljYWwiIDogImRpc3RpbmN0Iik7 Ci0rCi0rCQlyYW5nZSA9IGdfc3RyaW5nX25ldyAoImJ5dGVzPSIpOwotKwkJZm9yIChqID0gMDsg aiA8IHRlc3RzW2ldLm5fcmFuZ2VzOyBqKyspIHsKLSsJCQlpbnQgc3RhcnQgPSB0ZXN0c1tpXS5p ZGVudGljYWwgPyAwIDogaiAqIDI7Ci0rCi0rCQkJaWYgKGogPiAwKQotKwkJCQlnX3N0cmluZ19h cHBlbmRfYyAocmFuZ2UsICcsJyk7Ci0rCQkJZ19zdHJpbmdfYXBwZW5kX3ByaW50ZiAocmFuZ2Us ICIlZC0lZCIsIHN0YXJ0LCBzdGFydCk7Ci0rCQl9Ci0rCi0rCQloZHJzID0gc291cF9tZXNzYWdl X2hlYWRlcnNfbmV3IChTT1VQX01FU1NBR0VfSEVBREVSU19SRVFVRVNUKTsKLSsJCXNvdXBfbWVz c2FnZV9oZWFkZXJzX3JlcGxhY2UgKGhkcnMsICJSYW5nZSIsIHJhbmdlLT5zdHIpOwotKwkJZ19z dHJpbmdfZnJlZSAocmFuZ2UsIFRSVUUpOwotKwotKwkJc3RhdHVzID0gc291cF9tZXNzYWdlX2hl YWRlcnNfZ2V0X3Jhbmdlc19pbnRlcm5hbCAoaGRycywgMTAwMDAwMCwgVFJVRSwKLSsJCQkJCQkJ CSAgICZyYW5nZXMsICZuX3Jhbmdlcyk7Ci0rCi0rCQlnX2Fzc2VydF9jbXB1aW50IChzdGF0dXMs ID09LCB0ZXN0c1tpXS5leHBlY3RlZF9zdGF0dXMpOwotKwkJaWYgKHN0YXR1cyA9PSBTT1VQX1NU QVRVU19QQVJUSUFMX0NPTlRFTlQpCi0rCQkJZ19hc3NlcnRfY21waW50IChuX3JhbmdlcywgPT0s IHRlc3RzW2ldLmV4cGVjdGVkX25fcmFuZ2VzKTsKLSsKLSsJCXNvdXBfbWVzc2FnZV9oZWFkZXJz X2ZyZWVfcmFuZ2VzIChoZHJzLCByYW5nZXMpOwotKwkJc291cF9tZXNzYWdlX2hlYWRlcnNfdW5y ZWYgKGhkcnMpOwotKwl9Ci0rCi0rCS8qIENhbGxlcnMgd2hpY2ggZG9uJ3QgYXNrIGFib3V0IHNh dGlzZmlhYmlsaXR5LCBzdWNoIGFzIHRoZSBwdWJsaWMKLSsJICogc291cF9tZXNzYWdlX2hlYWRl cnNfZ2V0X3JhbmdlcygpLCBjYW4ndCBiZSB0b2xkIDQxNiwgc28gYW4KLSsJICogb3Zlci1saW1p dCBoZWFkZXIganVzdCByZXBvcnRzIG5vIHJhbmdlcyB0byB0aGVtLgotKwkgKi8KLSsJewotKwkJ U291cE1lc3NhZ2VIZWFkZXJzICpoZHJzOwotKwkJU291cFJhbmdlICpyYW5nZXMgPSBOVUxMOwot KwkJaW50IG5fcmFuZ2VzID0gMDsKLSsJCUdTdHJpbmcgKnJhbmdlOwotKwotKwkJcmFuZ2UgPSBn X3N0cmluZ19uZXcgKCJieXRlcz0wLTAiKTsKLSsJCWZvciAoaiA9IDA7IGogPCBNQVhfUkFOR0VT OyBqKyspCi0rCQkJZ19zdHJpbmdfYXBwZW5kIChyYW5nZSwgIiwwLTAiKTsKLSsKLSsJCWhkcnMg PSBzb3VwX21lc3NhZ2VfaGVhZGVyc19uZXcgKFNPVVBfTUVTU0FHRV9IRUFERVJTX1JFUVVFU1Qp OwotKwkJc291cF9tZXNzYWdlX2hlYWRlcnNfcmVwbGFjZSAoaGRycywgIlJhbmdlIiwgcmFuZ2Ut PnN0cik7Ci0rCQlnX3N0cmluZ19mcmVlIChyYW5nZSwgVFJVRSk7Ci0rCi0rCQlnX2Fzc2VydF9j bXB1aW50IChzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfcmFuZ2VzX2ludGVybmFsIChoZHJzLCAx MDAwMDAwLCBGQUxTRSwKLSsJCQkJCQkJCQkgICAgJnJhbmdlcywgJm5fcmFuZ2VzKSwKLSsJCQkJ ICA9PSwgU09VUF9TVEFUVVNfT0spOwotKwkJZ19hc3NlcnRfZmFsc2UgKHNvdXBfbWVzc2FnZV9o ZWFkZXJzX2dldF9yYW5nZXMgKGhkcnMsIDEwMDAwMDAsICZyYW5nZXMsICZuX3JhbmdlcykpOwot KwotKwkJc291cF9tZXNzYWdlX2hlYWRlcnNfZnJlZV9yYW5nZXMgKGhkcnMsIHJhbmdlcyk7Ci0r CQlzb3VwX21lc3NhZ2VfaGVhZGVyc191bnJlZiAoaGRycyk7Ci0rCX0KLSt9Ci0rCi0gI2lmZGVm IEhBVkVfQVBBQ0hFCi0gc3RhdGljIHZvaWQKLSBkb19hcGFjaGVfcmFuZ2VfdGVzdCAodm9pZCkK LUBAIC00NzMsNiArNzc0LDQ5IEBAIHNlcnZlcl9oYW5kbGVyIChTb3VwU2VydmVyICAgICAgICAq c2VydmVyLAotIAkJCQkJZnVsbF9yZXNwb25zZSk7Ci0gfQotIAotK3N0YXRpYyB2b2lkCi0rZG9f bGlic291cF9vbmx5X3JhbmdlX3Rlc3QgKFNvdXBTZXNzaW9uICpzZXNzaW9uLCBjb25zdCBjaGFy ICp1cmkpCi0rewotKwlnc2l6ZSBmdWxsX3Jlc3BvbnNlX2xlbmd0aCA9IGdfYnl0ZXNfZ2V0X3Np emUgKGZ1bGxfcmVzcG9uc2UpOwotKwlHU3RyaW5nICpyYW5nZTsKLSsJaW50IGk7Ci0rCi0rCS8q IEEgc3VmZml4IGxlbmd0aCBhdCBsZWFzdCBhcyBsb25nIGFzIHRoZSBib2R5IHNlbGVjdHMgdGhl IHdob2xlIGJvZHkuICovCi0rCWRlYnVnX3ByaW50ZiAoMSwgIlJlcXVlc3RpbmcgKHN1ZmZpeCBy YW5nZSB0aGUgbGVuZ3RoIG9mIHRoZSBib2R5KSAtJWRcbiIsCi0rCQkgICAgICAoaW50KSBmdWxs X3Jlc3BvbnNlX2xlbmd0aCk7Ci0rCXJlcXVlc3Rfc2luZ2xlX3JhbmdlIChzZXNzaW9uLCB1cmks Ci0rCQkJICAgICAgLSgoaW50KSBmdWxsX3Jlc3BvbnNlX2xlbmd0aCksIC0xLAotKwkJCSAgICAg IFNPVVBfU1RBVFVTX1BBUlRJQUxfQ09OVEVOVCwgMCwgLTEpOwotKwotKwlkZWJ1Z19wcmludGYg KDEsICJSZXF1ZXN0aW5nIChzdWZmaXggcmFuZ2UgbG9uZ2VyIHRoYW4gdGhlIGJvZHkpIC05OTk5 OTlcbiIpOwotKwlyZXF1ZXN0X3NpbmdsZV9yYW5nZV9ieV9zdHJpbmdfZnVsbCAoc2Vzc2lvbiwg dXJpLCAiYnl0ZXM9LTk5OTk5OSIsCi0rCQkJCQkgICAgIFNPVVBfU1RBVFVTX1BBUlRJQUxfQ09O VEVOVCwgMCwgLTEpOwotKwotKwlkZWJ1Z19wcmludGYgKDEsICJSZXF1ZXN0aW5nIChzdWZmaXgg cmFuZ2Ugb3ZlcmZsb3dpbmcgZ2ludDY0KSAtOTk5OTk5OTk5OTk5OTk5OTk5OTlcbiIpOwotKwly ZXF1ZXN0X3NpbmdsZV9yYW5nZV9ieV9zdHJpbmdfZnVsbCAoc2Vzc2lvbiwgdXJpLCAiYnl0ZXM9 LTk5OTk5OTk5OTk5OTk5OTk5OTk5IiwKLSsJCQkJCSAgICAgU09VUF9TVEFUVVNfUEFSVElBTF9D T05URU5ULCAwLCAtMSk7Ci0rCi0rCS8qIEEgc3RhcnQgd2hpY2ggb3ZlcmZsb3dzIGdpbnQ2NCBp cyB0cmVhdGVkIGxpa2UgYW55IG90aGVyIHN0YXJ0IHBhc3QKLSsJICogdGhlIGVuZCBvZiB0aGUg Ym9keS4KLSsJICogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xpYnNvdXAvLS9pc3N1 ZXMvNTM1Ci0rCSAqLwotKwlkZWJ1Z19wcmludGYgKDEsICJSZXF1ZXN0aW5nIChzdGFydCBvdmVy Zmxvd2luZyBnaW50NjQpIDk4ODg4ODg4ODg4ODgwMTk5MDAtXG4iKTsKLSsJcmVxdWVzdF9zaW5n bGVfcmFuZ2VfYnlfc3RyaW5nIChzZXNzaW9uLCB1cmksICJieXRlcz05ODg4ODg4ODg4ODg4MDE5 OTAwLSIsCi0rCQkJCQlTT1VQX1NUQVRVU19PSyk7Ci0rCi0rCS8qIE1vcmUgcmFuZ2VzIHRoYW4g dGhlIHNlcnZlciBpcyB3aWxsaW5nIHRvIGNvYWxlc2NlLCB3aGljaCBpcwotKwkgKiByZWplY3Rl ZCByYXRoZXIgdGhhbiBhbnN3ZXJlZCB3aXRoIHRoZSB3aG9sZSBib2R5LgotKwkgKiBodHRwczov L2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGlic291cC8tL2lzc3Vlcy81MzgKLSsJICovCi0rCWRl YnVnX3ByaW50ZiAoMSwgIlJlcXVlc3RpbmcgKG1vcmUgcmFuZ2VzIHRoYW4gdGhlIGxpbWl0KVxu Iik7Ci0rCXJhbmdlID0gZ19zdHJpbmdfbmV3ICgiYnl0ZXM9Iik7Ci0rCWZvciAoaSA9IDA7IGkg PCBNQVhfUkFOR0VTICsgMTsgaSsrKQotKwkJZ19zdHJpbmdfYXBwZW5kIChyYW5nZSwgaSA+IDAg PyAiLDAtMCIgOiAiMC0wIik7Ci0rCXJlcXVlc3Rfc2luZ2xlX3JhbmdlX2J5X3N0cmluZyAoc2Vz c2lvbiwgdXJpLCByYW5nZS0+c3RyLAotKwkJCQkJU09VUF9TVEFUVVNfUkVRVUVTVEVEX1JBTkdF X05PVF9TQVRJU0ZJQUJMRSk7Ci0rCWdfc3RyaW5nX2ZyZWUgKHJhbmdlLCBUUlVFKTsKLSt9Ci0r Ci0gc3RhdGljIHZvaWQKLSBkb19saWJzb3VwX3JhbmdlX3Rlc3QgKHZvaWQpCi0gewotQEAgLTQ4 OCw2ICs4MzIsNyBAQCBkb19saWJzb3VwX3JhbmdlX3Rlc3QgKHZvaWQpCi0gCWJhc2VfdXJpID0g c291cF90ZXN0X3NlcnZlcl9nZXRfdXJpIChzZXJ2ZXIsICJodHRwIiwgTlVMTCk7Ci0gCWJhc2Vf dXJpX3N0ciA9IGdfdXJpX3RvX3N0cmluZyAoYmFzZV91cmkpOwotIAlkb19yYW5nZV90ZXN0IChz ZXNzaW9uLCBiYXNlX3VyaV9zdHIsIFRSVUUsIFRSVUUpOwotKwlkb19saWJzb3VwX29ubHlfcmFu Z2VfdGVzdCAoc2Vzc2lvbiwgYmFzZV91cmlfc3RyKTsKLSAJZ191cmlfdW5yZWYgKGJhc2VfdXJp KTsKLSAJZ19mcmVlIChiYXNlX3VyaV9zdHIpOwotIAlzb3VwX3Rlc3Rfc2VydmVyX3F1aXRfdW5y ZWYgKHNlcnZlcik7Ci1AQCAtNTEyLDYgKzg1Nyw4IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoq YXJndikKLSAJZ190ZXN0X2FkZF9mdW5jICgiL3Jhbmdlcy9hcGFjaGUiLCBkb19hcGFjaGVfcmFu Z2VfdGVzdCk7Ci0gI2VuZGlmCi0gCWdfdGVzdF9hZGRfZnVuYyAoIi9yYW5nZXMvbGlic291cCIs IGRvX2xpYnNvdXBfcmFuZ2VfdGVzdCk7Ci0rCWdfdGVzdF9hZGRfZnVuYyAoIi9yYW5nZXMvcGFy c2luZyIsIGRvX3JhbmdlX3BhcnNpbmdfdGVzdCk7Ci0rCWdfdGVzdF9hZGRfZnVuYyAoIi9yYW5n ZXMvY291bnQiLCBkb19yYW5nZV9jb3VudF90ZXN0KTsKLSAKLSAJcmV0ID0gZ190ZXN0X3J1biAo KTsKLSAKLWRpZmYgLS1naXQgYS90ZXN0cy9zZXJ2ZXItbWVtLWxpbWl0LXRlc3QuYyBiL3Rlc3Rz L3NlcnZlci1tZW0tbGltaXQtdGVzdC5jCi1pbmRleCA2NWRjODc1ZS4uZWUyMGJhOWIgMTAwNjQ0 Ci0tLS0gYS90ZXN0cy9zZXJ2ZXItbWVtLWxpbWl0LXRlc3QuYwotKysrIGIvdGVzdHMvc2VydmVy LW1lbS1saW1pdC10ZXN0LmMKLUBAIC00LDYgKzQsNyBAQAotICAqLwotIAotICNpbmNsdWRlICJ0 ZXN0LXV0aWxzLmgiCi0rI2luY2x1ZGUgInNvdXAtbWVzc2FnZS1oZWFkZXJzLXByaXZhdGUuaCIK LSAKLSAjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+Ci0gCi1AQCAtODEsNDYgKzgyLDY2IEBAIHNl cnZlcl9maWxlX2NhbGxiYWNrIChTb3VwU2VydmVyICAgICAgICAqc2VydmVyLAotIH0KLSAKLSBz dGF0aWMgdm9pZAotLWRvX3Jhbmdlc19vdmVybGFwc190ZXN0IChTZXJ2ZXJEYXRhICpzZCwgZ2Nv bnN0cG9pbnRlciB0ZXN0X2RhdGEpCi0rcmVxdWVzdF9yYW5nZXMgKFNlcnZlckRhdGEgKnNkLCBj b25zdCBjaGFyICpyYW5nZSwgU291cFN0YXR1cyBleHBlY3RlZF9zdGF0dXMpCi0gewotIAlTb3Vw U2Vzc2lvbiAqc2Vzc2lvbjsKLSAJU291cE1lc3NhZ2UgKm1zZzsKLS0JR1N0cmluZyAqcmFuZ2U7 Ci0gCUdVcmkgKnVyaTsKLS0JY29uc3QgY2hhciAqY2h1bmsgPSAiLDAsMCwwLDAsMCwwLDAsMCww LDAsMCI7Ci0tCi0tCWdfdGVzdF9idWcgKCI0MjgiKTsKLS0KLS0JI2lmZGVmIEdfT1NfV0lOMzIK LS0JZ190ZXN0X3NraXAgKCJDYW5ub3QgcnVuIHVuZGVyIHdpbmRvd3MiKTsKLS0JcmV0dXJuOwot LQkjZW5kaWYKLS0KLS0JcmFuZ2UgPSBnX3N0cmluZ19zaXplZF9uZXcgKDk5ICogMTAyNCk7Ci0t CWdfc3RyaW5nX2FwcGVuZCAocmFuZ2UsICJieXRlcz0xMDI0Iik7Ci0tCXdoaWxlIChyYW5nZS0+ bGVuIDwgOTkgKiAxMDI0KQotLQkJZ19zdHJpbmdfYXBwZW5kIChyYW5nZSwgY2h1bmspOwotIAot IAlzZXNzaW9uID0gc291cF90ZXN0X3Nlc3Npb25fbmV3IChOVUxMKTsKLS0Jc2VydmVyX2FkZF9o YW5kbGVyIChzZCwgIi9maWxlIiwgc2VydmVyX2ZpbGVfY2FsbGJhY2ssIE5VTEwsIE5VTEwpOwot IAotIAl1cmkgPSBnX3VyaV9wYXJzZV9yZWxhdGl2ZSAoc2QtPmJhc2VfdXJpLCAiL2ZpbGUiLCBT T1VQX0hUVFBfVVJJX0ZMQUdTLCBOVUxMKTsKLSAKLSAJbXNnID0gc291cF9tZXNzYWdlX25ld19m cm9tX3VyaSAoIkdFVCIsIHVyaSk7Ci0tCXNvdXBfbWVzc2FnZV9oZWFkZXJzX2FwcGVuZCAoc291 cF9tZXNzYWdlX2dldF9yZXF1ZXN0X2hlYWRlcnMgKG1zZyksICJSYW5nZSIsIHJhbmdlLT5zdHIp OwotKwlzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQgKHNvdXBfbWVzc2FnZV9nZXRfcmVxdWVz dF9oZWFkZXJzIChtc2cpLCAiUmFuZ2UiLCByYW5nZSk7Ci0gCi0gCXNvdXBfdGVzdF9zZXNzaW9u X3NlbmRfbWVzc2FnZSAoc2Vzc2lvbiwgbXNnKTsKLSAKLS0Jc291cF90ZXN0X2Fzc2VydF9tZXNz YWdlX3N0YXR1cyAobXNnLCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQpOwotKwlzb3VwX3Rl c3RfYXNzZXJ0X21lc3NhZ2Vfc3RhdHVzIChtc2csIGV4cGVjdGVkX3N0YXR1cyk7Ci0gCi0gCWdf b2JqZWN0X3VucmVmIChtc2cpOwotLQotLQlnX3N0cmluZ19mcmVlIChyYW5nZSwgVFJVRSk7Ci0g CWdfdXJpX3VucmVmICh1cmkpOwotIAotIAlzb3VwX3Rlc3Rfc2Vzc2lvbl9hYm9ydF91bnJlZiAo c2Vzc2lvbik7Ci0gfQotIAotK3N0YXRpYyB2b2lkCi0rZG9fcmFuZ2VzX292ZXJsYXBzX3Rlc3Qg KFNlcnZlckRhdGEgKnNkLCBnY29uc3Rwb2ludGVyIHRlc3RfZGF0YSkKLSt7Ci0rCUdTdHJpbmcg KnJhbmdlOwotKwljb25zdCBjaGFyICpjaHVuayA9ICIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwIjsK LSsJaW50IGk7Ci0rCi0rCWdfdGVzdF9idWcgKCI0MjgiKTsKLSsKLSsJI2lmZGVmIEdfT1NfV0lO MzIKLSsJZ190ZXN0X3NraXAgKCJDYW5ub3QgcnVuIHVuZGVyIHdpbmRvd3MiKTsKLSsJcmV0dXJu OwotKwkjZW5kaWYKLSsKLSsJc2VydmVyX2FkZF9oYW5kbGVyIChzZCwgIi9maWxlIiwgc2VydmVy X2ZpbGVfY2FsbGJhY2ssIE5VTEwsIE5VTEwpOwotKwotKwkvKiBSZXF1ZXN0aW5nIHRoZSBzYW1l IHJhbmdlIG1hbnkgdGltZXMgb3ZlciB1c2VkIHRvIG1ha2UgdGhlIHNlcnZlcgotKwkgKiBhbGxv Y2F0ZSBhIHJlc3BvbnNlIHByb3BvcnRpb25hbCB0byB0aGUgbnVtYmVyIG9mIHJhbmdlcyBpbnN0 ZWFkIG9mCi0rCSAqIGNvYWxlc2NpbmcgdGhlbSBpbnRvIG9uZS4gRWFjaCAiMCIgaGVyZSBpcyBh biBvcGVuIGVuZGVkIHJhbmdlCi0rCSAqIGNvdmVyaW5nIHRoZSB3aG9sZSBib2R5LCBzbyB0aGV5 IGFsbCBjb2xsYXBzZSBpbnRvIGEgc2luZ2xlIHJhbmdlLgotKwkgKi8KLSsJcmFuZ2UgPSBnX3N0 cmluZ19uZXcgKCJieXRlcz0xMDI0Iik7Ci0rCWZvciAoaSA9IDE7IGkgPCBNQVhfUkFOR0VTOyBp KyspCi0rCQlnX3N0cmluZ19hcHBlbmQgKHJhbmdlLCAiLDAiKTsKLSsJcmVxdWVzdF9yYW5nZXMg KHNkLCByYW5nZS0+c3RyLCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQpOwotKwlnX3N0cmlu Z19mcmVlIChyYW5nZSwgVFJVRSk7Ci0rCi0rCS8qIEEgaGVhZGVyIGxpc3RpbmcgbW9yZSByYW5n ZXMgdGhhbiB0aGUgc2VydmVyIGlzIHdpbGxpbmcgdG8gY29hbGVzY2UKLSsJICogaXMgcmVqZWN0 ZWQgb3V0cmlnaHQuICovCi0rCXJhbmdlID0gZ19zdHJpbmdfc2l6ZWRfbmV3ICgoZ3NpemUpOTkg KiAxMDI0KTsKLSsJZ19zdHJpbmdfYXBwZW5kIChyYW5nZSwgImJ5dGVzPTEwMjQiKTsKLSsJd2hp bGUgKHJhbmdlLT5sZW4gPCAoZ3NzaXplKTk5ICogMTAyNCkKLSsJCWdfc3RyaW5nX2FwcGVuZCAo cmFuZ2UsIGNodW5rKTsKLSsJcmVxdWVzdF9yYW5nZXMgKHNkLCByYW5nZS0+c3RyLCBTT1VQX1NU QVRVU19SRVFVRVNURURfUkFOR0VfTk9UX1NBVElTRklBQkxFKTsKLSsJZ19zdHJpbmdfZnJlZSAo cmFuZ2UsIFRSVUUpOwotK30KLSsKLSBpbnQKLSBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3Yp Ci0gewotLS0gCi1HaXRMYWIKLQoKZGlmZiAtLWdpdCBhL2xpYnNvdXAzLnNwZWMgYi9saWJzb3Vw My5zcGVjCmluZGV4IGFlMWJiZWIuLmZjYmMzNDEgMTAwNjQ0Ci0tLSBhL2xpYnNvdXAzLnNwZWMK KysrIGIvbGlic291cDMuc3BlYwpAQCAtNyw3ICs3LDcgQEAKICVlbmRpZgogCiBOYW1lOiAgICBs aWJzb3VwMwotVmVyc2lvbjogMy43LjIKK1ZlcnNpb246IDMuNy4zCiBSZWxlYXNlOiAlYXV0b3Jl bGVhc2UKIFN1bW1hcnk6IFNvdXAsIGFuIEhUVFAgbGlicmFyeSBpbXBsZW1lbnRhdGlvbgogCkBA IC0yMSwxNCArMjEsNiBAQCBQYXRjaDogICBuby1udGxtLWluLWZpcHMtbW9kZS5wYXRjaAogIyBo dHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGlic291cC8tL3dvcmtfaXRlbXMvNTMwCiBQ YXRjaDogICBza2lwLWxvZ2dlci10ZXN0LW9uLTMyYml0LnBhdGNoCiAKLVBhdGNoOiAgIENWRS0y MDI2LTc3NjgwLnBhdGNoCi1QYXRjaDogICBDVkUtMjAyNi0xNTcxMS5wYXRjaAotUGF0Y2g6ICAg Q1ZFLTIwMjYtMTU3MTQucGF0Y2gKLVBhdGNoOiAgIENWRS0yMDI2LTE1NzA5LnBhdGNoCi1QYXRj aDogICBDVkUtMjAyNi0xNTcxMy5wYXRjaAotUGF0Y2g6ICAgQ1ZFLTIwMjYtMTU3MTIucGF0Y2gK LQotCiBCdWlsZFJlcXVpcmVzOiBnY2MKIEJ1aWxkUmVxdWlyZXM6IGdldHRleHQKIEJ1aWxkUmVx dWlyZXM6IGdsaWItbmV0d29ya2luZyA+PSAle2dsaWIyX3ZlcnNpb259CgpkaWZmIC0tZ2l0IGEv c291cmNlcyBiL3NvdXJjZXMKaW5kZXggZDU2ZDk2Ny4uMTUxYWNkMSAxMDA2NDQKLS0tIGEvc291 cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi1TSEE1MTIgKGxpYnNvdXAtMy43LjIudGFy Lnh6KSA9IDg5NjQyZmUwNTI1NTc3NTRlMTUxZjBkNzA1ZmE2YmNhMTM1YmMwMWIxZjVlM2QyYjFm OGRhNjdiNzA4YTlmZmJhNGI0MGY5MjNiNmExMDE5YTZlMmZhMjhmZWRiN2RjMzBiZWQ2NGY5ODYx M2U0YjcxMzllOThkYzE5N2ZjYTQ5CitTSEE1MTIgKGxpYnNvdXAtMy43LjMudGFyLnh6KSA9IDQ0 ZTE2Njc0MmJhNjQ5ZTliMGU2YjAwZDRiY2JjODA2ODViZThmMzI4YTQyNWZjYmUxZWZkOTYwMTIx YzMzYzg5YjY2OGIxOWZlZjI3MjNjOTNjOTJhZjY3MjlkOTUzYjUzNTNkMTMzYzQ3ZDRkMThkNzQ4 ODY1MzdkYWEzNmY2Cg==