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] f45: Update to 3.7.3 and drop upstreamed CVE patches Date: Thu, 24 Sep 2026 18:37:34 GMT Message-ID: <179027505476.1.10933125524906881602.rpms-libsoup3-8323f6109b28@fedoraproject.org> List-ID: X-Git-Repo: rpms/libsoup3 X-Git-Branch: f45 X-Git-Rev: 8323f6109b28bfc9248ff4810e36c464d4b5f3ee QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvbGlic291cDMKQnJh bmNoIDogZjQ1CkNvbW1pdCA6IDgzMjNmNjEwOWIyOGJmYzkyNDhmZjQ4MTBlMzZjNDY0ZDRiNWYz ZWUKQXV0aG9yIDogUGV0ciBTY2hpbmRsZXIgPHBzY2hpbmRsQHJlZGhhdC5jb20+CkRhdGUgICA6 IDIwMjYtMDktMjRUMjA6MjY6MzIrMDI6MDAKU3RhdHMgIDogKzIvLTE5NTIgaW4gOCBmaWxlKHMp ClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvbGlic291cDMvYy84 MzIzZjYxMDliMjhiZmM5MjQ4ZmY0ODEwZTM2YzQ2NGQ0YjVmM2VlP2JyYW5jaD1mNDUKCkxvZzoK VXBkYXRlIHRvIDMuNy4zIGFuZCBkcm9wIHVwc3RyZWFtZWQgQ1ZFIHBhdGNoZXMKCi0tLQpkaWZm IC0tZ2l0IGEvQ1ZFLTIwMjYtMTU3MDkucGF0Y2ggYi9DVkUtMjAyNi0xNTcwOS5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzk5YzM3OC4uMDAwMDAwMAotLS0gYS9DVkUtMjAy Ni0xNTcwOS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDc4MiArMCwwIEBACi1Gcm9tIGE0Mjk0 MDQ0NDY2ZGY2NmVhOTg0OTJkNjdiYjc0MTcyZWQzZjg3NjIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBaYXlkIFJhamFiIDx6YXlkckBhbWF6b24uY29tPgotRGF0ZTogRnJpLCA0IFNl cCAyMDI2IDE0OjE3OjIzIC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHdlYnNvY2tldDogQm91bmQg ZGVjb21wcmVzc2VkIG1lc3NhZ2Ugc2l6ZSBkdXJpbmcgaW5mbGF0aW9uCi0KLVBhc3MgZWFjaCBj b25uZWN0aW9uJ3MgcmVtYWluaW5nIG1heC10b3RhbC1tZXNzYWdlLXNpemUgYWxsb3dhbmNlIHRo cm91Z2gKLXRoZSBnZW5lcmljIFdlYlNvY2tldCBleHRlbnNpb24gcHJvY2Vzc2luZyBwYXRoIHZp YSBhIG5ldwotcHJvY2Vzc19pbmNvbWluZ19tZXNzYWdlX3dpdGhfbGltaXQgdmZ1bmMsIGZhbGxp bmcgYmFjayB0bwotcHJvY2Vzc19pbmNvbWluZ19tZXNzYWdlIGZvciBleHRlbnNpb25zIHRoYXQg ZG9uJ3QgaW1wbGVtZW50IGl0LiBCb3VuZAotcGVybWVzc2FnZS1kZWZsYXRlIG91dHB1dCBncm93 dGggdG8gdGhhdCBhbGxvd2FuY2UgYW5kIHVzZSBhIG9uZS1ieXRlCi1wcm9iZSB0byBkZXRlY3Qg b3V0cHV0IGJleW9uZCBhbiBleGFjdCBib3VuZGFyeSB3aXRob3V0IGFsbG9jYXRpbmcKLWFub3Ro ZXIgbm9ybWFsIG91dHB1dCBjaHVuay4KLQotUHJlc2VydmUgdGhlIGRvY3VtZW50ZWQgdW5saW1p dGVkIGRlZmF1bHQgZm9yIGNsaWVudHMgYW5kIGRpcmVjdAotY29ubmVjdGlvbnMuIFNvdXBTZXJ2 ZXIgY29udGludWVzIGFwcGx5aW5nIGl0cyBleGlzdGluZyAxMjggS2lCIGRlZmF1bHQsCi13aGls ZSBjYWxsZXJzIGNhbiBjb25maWd1cmUgdGhlIGxpbWl0IGV4cGxpY2l0bHkgaW4gZWl0aGVyIHJl Y2VpdmUKLWRpcmVjdGlvbi4KLQotQWRkIGJvdW5kYXJ5LCBnZW5lcmljLWV4dGVuc2lvbiBmYWxs YmFjaywgcmVjZWl2ZS1kaXJlY3Rpb24sIFNvdXBTZXJ2ZXIsCi1mcmFnbWVudGF0aW9uLCBhbmQg dW5saW1pdGVkLW1vZGUgY292ZXJhZ2UuCi0KLVRoaXMgYWRkcmVzc2VzIENWRS0yMDI2LTE1NzA5 LgotCi1SZXBvcnRlZC1ieTogVHJpc3RhbiBNYWRhbmkgPHNlY2llbnRpc3RAZ21haWwuY29tPgot Q2xvc2VzICE1NDMKLS0tLQotIGxpYnNvdXAvd2Vic29ja2V0L3NvdXAtd2Vic29ja2V0LWNvbm5l Y3Rpb24uYyB8ICAzNCArLQotIC4uLi9zb3VwLXdlYnNvY2tldC1leHRlbnNpb24tZGVmbGF0ZS5j ICAgICAgICB8IDE0NCArKysrKystLS0KLSBsaWJzb3VwL3dlYnNvY2tldC9zb3VwLXdlYnNvY2tl dC1leHRlbnNpb24uYyAgfCAgNTMgKysrCi0gbGlic291cC93ZWJzb2NrZXQvc291cC13ZWJzb2Nr ZXQtZXh0ZW5zaW9uLmggIHwgIDE0ICstCi0gdGVzdHMvd2Vic29ja2V0LXRlc3QuYyAgICAgICAg ICAgICAgICAgICAgICAgIHwgMzA2ICsrKysrKysrKysrKysrKysrLQotIDUgZmlsZXMgY2hhbmdl ZCwgNTA2IGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGli c291cC93ZWJzb2NrZXQvc291cC13ZWJzb2NrZXQtY29ubmVjdGlvbi5jIGIvbGlic291cC93ZWJz b2NrZXQvc291cC13ZWJzb2NrZXQtY29ubmVjdGlvbi5jCi1pbmRleCBmZmQ3MTNlZi4uZjA3ZDQy MTkgMTAwNjQ0Ci0tLS0gYS9saWJzb3VwL3dlYnNvY2tldC9zb3VwLXdlYnNvY2tldC1jb25uZWN0 aW9uLmMKLSsrKyBiL2xpYnNvdXAvd2Vic29ja2V0L3NvdXAtd2Vic29ja2V0LWNvbm5lY3Rpb24u YwotQEAgLTk5MCw4ICs5OTAsMTUgQEAgcHJvY2Vzc19jb250ZW50cyAoU291cFdlYnNvY2tldENv bm5lY3Rpb24gKnNlbGYsCi0gCQljYXNlIDB4MDI6Ci0gCQkJLyogU2FmZXR5IHZhbHZlICovCi0g CQkJaWYgKHByaXYtPm1heF90b3RhbF9tZXNzYWdlX3NpemUgPiAwICYmCi0tCQkJICAgIChwcml2 LT5tZXNzYWdlX2RhdGEtPmxlbiArIHBheWxvYWRfbGVuKSA+IHByaXYtPm1heF90b3RhbF9tZXNz YWdlX3NpemUpIHsKLS0JCQkJdG9vX2JpZ19tZXNzYWdlX2Vycm9yX2FuZF9jbG9zZSAoc2VsZiwg KHByaXYtPm1lc3NhZ2VfZGF0YS0+bGVuICsgcGF5bG9hZF9sZW4pKTsKLSsJCQkgICAgKHByaXYt Pm1lc3NhZ2VfZGF0YS0+bGVuID4gcHJpdi0+bWF4X3RvdGFsX21lc3NhZ2Vfc2l6ZSB8fAotKwkJ CSAgICAgcGF5bG9hZF9sZW4gPiBwcml2LT5tYXhfdG90YWxfbWVzc2FnZV9zaXplIC0gcHJpdi0+ bWVzc2FnZV9kYXRhLT5sZW4pKSB7Ci0rCQkJCWd1aW50NjQgbWVzc2FnZV9zaXplID0gcHJpdi0+ bWVzc2FnZV9kYXRhLT5sZW47Ci0rCi0rCQkJCWlmIChwYXlsb2FkX2xlbiA+IEdfTUFYVUlOVDY0 IC0gbWVzc2FnZV9zaXplKQotKwkJCQkJbWVzc2FnZV9zaXplID0gR19NQVhVSU5UNjQ7Ci0rCQkJ CWVsc2UKLSsJCQkJCW1lc3NhZ2Vfc2l6ZSArPSBwYXlsb2FkX2xlbjsKLSsJCQkJdG9vX2JpZ19t ZXNzYWdlX2Vycm9yX2FuZF9jbG9zZSAoc2VsZiwgbWVzc2FnZV9zaXplKTsKLSAJCQkJcmV0dXJu OwotIAkJCX0KLSAJCQlnX2J5dGVfYXJyYXlfYXBwZW5kIChwcml2LT5tZXNzYWdlX2RhdGEsIHBh eWxvYWQsIHBheWxvYWRfbGVuKTsKLUBAIC0xMDM2LDYgKzEwNDMsMjEgQEAgcHJvY2Vzc19jb250 ZW50cyAoU291cFdlYnNvY2tldENvbm5lY3Rpb24gKnNlbGYsCi0gCX0KLSB9Ci0gCi0rc3RhdGlj IGd1aW50NjQKLStnZXRfcmVtYWluaW5nX21lc3NhZ2Vfc2l6ZSAoU291cFdlYnNvY2tldENvbm5l Y3Rpb25Qcml2YXRlICpwcml2KQotK3sKLSsJaWYgKHByaXYtPm1heF90b3RhbF9tZXNzYWdlX3Np emUgPT0gMCkKLSsJCXJldHVybiBHX01BWFVJTlQ2NDsKLSsKLSsJaWYgKCFwcml2LT5tZXNzYWdl X2RhdGEpCi0rCQlyZXR1cm4gcHJpdi0+bWF4X3RvdGFsX21lc3NhZ2Vfc2l6ZTsKLSsKLSsJaWYg KHByaXYtPm1lc3NhZ2VfZGF0YS0+bGVuID49IHByaXYtPm1heF90b3RhbF9tZXNzYWdlX3NpemUp Ci0rCQlyZXR1cm4gMDsKLSsKLSsJcmV0dXJuIHByaXYtPm1heF90b3RhbF9tZXNzYWdlX3NpemUg LSBwcml2LT5tZXNzYWdlX2RhdGEtPmxlbjsKLSt9Ci0rCi0gc3RhdGljIGdib29sZWFuCi0gcHJv Y2Vzc19mcmFtZSAoU291cFdlYnNvY2tldENvbm5lY3Rpb24gKnNlbGYpCi0gewotQEAgLTEwNTEs NiArMTA3Myw3IEBAIHByb2Nlc3NfZnJhbWUgKFNvdXBXZWJzb2NrZXRDb25uZWN0aW9uICpzZWxm KQotIAlnc2l6ZSBsZW47Ci0gCWdzaXplIGF0OwotIAlHQnl0ZXMgKmZpbHRlcmVkX2J5dGVzOwot KwlndWludDY0IG1heF9vdXRwdXRfc2l6ZTsKLSAJR0xpc3QgKmw7Ci0gCUdFcnJvciAqZXJyb3Ig PSBOVUxMOwotIAotQEAgLTExNjUsMTEgKzExODgsMTYgQEAgcHJvY2Vzc19mcmFtZSAoU291cFdl YnNvY2tldENvbm5lY3Rpb24gKnNlbGYpCi0gCX0KLSAKLSAJZmlsdGVyZWRfYnl0ZXMgPSBnX2J5 dGVzX25ld19zdGF0aWMgKHBheWxvYWQsIHBheWxvYWRfbGVuKTsKLSsJbWF4X291dHB1dF9zaXpl ID0gZ2V0X3JlbWFpbmluZ19tZXNzYWdlX3NpemUgKHByaXYpOwotIAlmb3IgKGwgPSBwcml2LT5l eHRlbnNpb25zOyBsICE9IE5VTEw7IGwgPSBnX2xpc3RfbmV4dCAobCkpIHsKLSAJCVNvdXBXZWJz b2NrZXRFeHRlbnNpb24gKmV4dGVuc2lvbjsKLSAKLSAJCWV4dGVuc2lvbiA9IChTb3VwV2Vic29j a2V0RXh0ZW5zaW9uICopbC0+ZGF0YTsKLS0JCWZpbHRlcmVkX2J5dGVzID0gc291cF93ZWJzb2Nr ZXRfZXh0ZW5zaW9uX3Byb2Nlc3NfaW5jb21pbmdfbWVzc2FnZSAoZXh0ZW5zaW9uLCBwcml2LT5p bmNvbWluZy0+ZGF0YSwgZmlsdGVyZWRfYnl0ZXMsICZlcnJvcik7Ci0rCQlmaWx0ZXJlZF9ieXRl cyA9IHNvdXBfd2Vic29ja2V0X2V4dGVuc2lvbl9wcm9jZXNzX2luY29taW5nX21lc3NhZ2Vfd2l0 aF9saW1pdCAoZXh0ZW5zaW9uLAotKwkJCQkJCQkJCQkJICAgICAgIHByaXYtPmluY29taW5nLT5k YXRhLAotKwkJCQkJCQkJCQkJICAgICAgIGZpbHRlcmVkX2J5dGVzLAotKwkJCQkJCQkJCQkJICAg ICAgIG1heF9vdXRwdXRfc2l6ZSwKLSsJCQkJCQkJCQkJCSAgICAgICAmZXJyb3IpOwotIAkJaWYg KGVycm9yKSB7Ci0gCQkJZW1pdF9lcnJvcl9hbmRfY2xvc2UgKHNlbGYsIGVycm9yLCBGQUxTRSk7 Ci0gCQkJcmV0dXJuIEZBTFNFOwotZGlmZiAtLWdpdCBhL2xpYnNvdXAvd2Vic29ja2V0L3NvdXAt d2Vic29ja2V0LWV4dGVuc2lvbi1kZWZsYXRlLmMgYi9saWJzb3VwL3dlYnNvY2tldC9zb3VwLXdl YnNvY2tldC1leHRlbnNpb24tZGVmbGF0ZS5jCi1pbmRleCBmYTk4YTJlMi4uMmM2NDlhODggMTAw NjQ0Ci0tLS0gYS9saWJzb3VwL3dlYnNvY2tldC9zb3VwLXdlYnNvY2tldC1leHRlbnNpb24tZGVm bGF0ZS5jCi0rKysgYi9saWJzb3VwL3dlYnNvY2tldC9zb3VwLXdlYnNvY2tldC1leHRlbnNpb24t ZGVmbGF0ZS5jCi1AQCAtMzU5LDE5ICszNTksMjkgQEAgc291cF93ZWJzb2NrZXRfZXh0ZW5zaW9u X2RlZmxhdGVfcHJvY2Vzc19vdXRnb2luZ19tZXNzYWdlIChTb3VwV2Vic29ja2V0RXh0ZW5zaW8K LSAgICAgICAgIHJldHVybiBnX2J5dGVfYXJyYXlfZnJlZV90b19ieXRlcyAoYnVmZmVyKTsKLSB9 Ci0gCi0rc3RhdGljIHZvaWQKLStpbmZsYXRlcl9yZXNldCAoSW5mbGF0ZXIgKmluZmxhdGVyKQot K3sKLSsgICAgICAgIGluZmxhdGVSZXNldCAoJmluZmxhdGVyLT56c3RyZWFtKTsKLSsgICAgICAg IGluZmxhdGVyLT51bmNvbXByZXNzX29uZ29pbmcgPSBGQUxTRTsKLSt9Ci0rCi0gc3RhdGljIEdC eXRlcyAqCi0tc291cF93ZWJzb2NrZXRfZXh0ZW5zaW9uX2RlZmxhdGVfcHJvY2Vzc19pbmNvbWlu Z19tZXNzYWdlIChTb3VwV2Vic29ja2V0RXh0ZW5zaW9uICpleHRlbnNpb24sCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludDgg ICAgICAgICAgICAgICAgICpoZWFkZXIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQnl0ZXMgICAgICAgICAgICAgICAgICpwYXls b2FkLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR0Vycm9yICAgICAgICAgICAgICAgICoqZXJyb3IpCi0rc291cF93ZWJzb2NrZXRf ZXh0ZW5zaW9uX2RlZmxhdGVfcHJvY2Vzc19pbmNvbWluZ19tZXNzYWdlX3dpdGhfbGltaXQgKFNv dXBXZWJzb2NrZXRFeHRlbnNpb24gKmV4dGVuc2lvbiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQ4ICAg ICAgICAgICAgICAgICAqaGVhZGVyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQnl0ZXMgICAgICAgICAgICAg ICAgICpwYXlsb2FkLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludDY0ICAgICAgICAgICAgICAgICBtYXhf b3V0cHV0X3NpemUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAgICAqKmVycm9y KQotIHsKLSAgICAgICAgIGNvbnN0IGd1aW50OCAqcGF5bG9hZF9kYXRhOwotICAgICAgICAgZ3Np emUgcGF5bG9hZF9sZW5ndGg7Ci0gICAgICAgICBnYm9vbGVhbiBmaW4sIGNvbnRyb2wsIGNvbXBy ZXNzZWQ7Ci0gICAgICAgICBHQnl0ZUFycmF5ICpidWZmZXI7Ci0tICAgICAgICBnc2l6ZSBieXRl c19yZWFkLCBieXRlc193cml0dGVuOwotKyAgICAgICAgZ3NpemUgaW5wdXRfb2Zmc2V0LCBieXRl c193cml0dGVuOwotICAgICAgICAgaW50IHJlc3VsdDsKLSAgICAgICAgIGdib29sZWFuIHRhaWxf YWRkZWQgPSBGQUxTRTsKLSsgICAgICAgIGdib29sZWFuIHVzaW5nX2xpbWl0X3Byb2JlID0gRkFM U0U7Ci0rICAgICAgICBndWludDggbGltaXRfcHJvYmU7Ci0gICAgICAgICBTb3VwV2Vic29ja2V0 RXh0ZW5zaW9uRGVmbGF0ZVByaXZhdGUgKnByaXY7Ci0gCi0gICAgICAgICBwcml2ID0gc291cF93 ZWJzb2NrZXRfZXh0ZW5zaW9uX2RlZmxhdGVfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKFNPVVBfV0VC U09DS0VUX0VYVEVOU0lPTl9ERUZMQVRFIChleHRlbnNpb24pKTsKLUBAIC0zOTQsNiArNDA0LDcg QEAgc291cF93ZWJzb2NrZXRfZXh0ZW5zaW9uX2RlZmxhdGVfcHJvY2Vzc19pbmNvbWluZ19tZXNz YWdlIChTb3VwV2Vic29ja2V0RXh0ZW5zaW8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU09VUF9XRUJTT0NLRVRfRVJST1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNPVVBfV0VCU09DS0VUX0NMT1NFX1BST1RPQ09MX0VSUk9SLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmVjZWl2ZWQgYSBub24tZmlyc3QgZnJh bWUgd2l0aCBSU1YxIGZsYWcgc2V0Iik7Ci0rICAgICAgICAgICAgICAgIGluZmxhdGVyX3Jlc2V0 ICgmcHJpdi0+aW5mbGF0ZXIpOwotICAgICAgICAgICAgICAgICBnX2J5dGVzX3VucmVmIChwYXls b2FkKTsKLSAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICB9Ci1AQCAtNDEw LDY0ICs0MjEsMTIyIEBAIHNvdXBfd2Vic29ja2V0X2V4dGVuc2lvbl9kZWZsYXRlX3Byb2Nlc3Nf aW5jb21pbmdfbWVzc2FnZSAoU291cFdlYnNvY2tldEV4dGVuc2lvCi0gCi0gICAgICAgICBidWZm ZXIgPSBnX2J5dGVfYXJyYXlfbmV3ICgpOwotIAotLSAgICAgICAgYnl0ZXNfcmVhZCA9IDA7Ci0t ICAgICAgICBwcml2LT5pbmZsYXRlci56c3RyZWFtLm5leHRfaW4gPSAodm9pZCAqKXBheWxvYWRf ZGF0YTsKLS0gICAgICAgIHByaXYtPmluZmxhdGVyLnpzdHJlYW0uYXZhaWxfaW4gPSBwYXlsb2Fk X2xlbmd0aDsKLS0KLSsgICAgICAgIGlucHV0X29mZnNldCA9IDA7Ci0rICAgICAgICBwcml2LT5p bmZsYXRlci56c3RyZWFtLmF2YWlsX2luID0gMDsKLSAgICAgICAgIGJ5dGVzX3dyaXR0ZW4gPSAw OwotICAgICAgICAgcHJpdi0+aW5mbGF0ZXIuenN0cmVhbS5hdmFpbF9vdXQgPSAwOwotIAotLSAg ICAgICAgZG8gewotLSAgICAgICAgICAgICAgICBnc2l6ZSByZWFkX3JlbWFpbmluZzsKLS0gICAg ICAgICAgICAgICAgZ3NpemUgd3JpdGVfcmVtYWluaW5nOwotKyAgICAgICAgd2hpbGUgKFRSVUUp IHsKLSsgICAgICAgICAgICAgICAgdUludCBpbnB1dF9iZWZvcmUsIG91dHB1dF9iZWZvcmU7Ci0r ICAgICAgICAgICAgICAgIHVJbnQgaW5wdXRfY29uc3VtZWQsIG91dHB1dF9wcm9kdWNlZDsKLSAK LS0gICAgICAgICAgICAgICAgaWYgKHByaXYtPmluZmxhdGVyLnpzdHJlYW0uYXZhaWxfb3V0ID09 IDApIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBndWludCBjdXJyZW50X3Bvc2l0aW9uOwot KyAgICAgICAgICAgICAgICBpZiAocHJpdi0+aW5mbGF0ZXIuenN0cmVhbS5hdmFpbF9pbiA9PSAw ICYmIGlucHV0X29mZnNldCA8IHBheWxvYWRfbGVuZ3RoKSB7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgZ3NpemUgaW5wdXRfbGVuZ3RoID0gTUlOIChwYXlsb2FkX2xlbmd0aCAtIGlucHV0X29m ZnNldCwgR19NQVhVSU5UKTsKLSAKLS0gICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5pbmZs YXRlci56c3RyZWFtLmF2YWlsX291dCA9IEJVRkZFUl9TSVpFOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGN1cnJlbnRfcG9zaXRpb24gPSBidWZmZXItPmxlbjsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBnX2J5dGVfYXJyYXlfc2V0X3NpemUgKGJ1ZmZlciwgYnVmZmVyLT5sZW4gKyBCVUZG RVJfU0laRSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+aW5mbGF0ZXIuenN0cmVh bS5uZXh0X291dCA9IGJ1ZmZlci0+ZGF0YSArIGN1cnJlbnRfcG9zaXRpb247Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgcHJpdi0+aW5mbGF0ZXIuenN0cmVhbS5uZXh0X2luID0gKHZvaWQgKiko cGF5bG9hZF9kYXRhICsgaW5wdXRfb2Zmc2V0KTsKLSsgICAgICAgICAgICAgICAgICAgICAgICBw cml2LT5pbmZsYXRlci56c3RyZWFtLmF2YWlsX2luID0gKHVJbnQpaW5wdXRfbGVuZ3RoOwotKyAg ICAgICAgICAgICAgICAgICAgICAgIGlucHV0X29mZnNldCArPSBpbnB1dF9sZW5ndGg7Ci0gICAg ICAgICAgICAgICAgIH0KLSAKLS0gICAgICAgICAgICAgICAgaWYgKHByaXYtPmluZmxhdGVyLnpz dHJlYW0uYXZhaWxfaW4gPT0gMCAmJiAhdGFpbF9hZGRlZCAmJiBmaW4pIHsKLSsgICAgICAgICAg ICAgICAgaWYgKHByaXYtPmluZmxhdGVyLnpzdHJlYW0uYXZhaWxfaW4gPT0gMCAmJgotKyAgICAg ICAgICAgICAgICAgICAgaW5wdXRfb2Zmc2V0ID09IHBheWxvYWRfbGVuZ3RoICYmCi0rICAgICAg ICAgICAgICAgICAgICAhdGFpbF9hZGRlZCAmJiBmaW4pIHsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAvKiBBcHBlbmQgNCBvY3RldHMgb2YgMHgwMCAweDAwIDB4ZmYgMHhmZiB0byB0aGUgdGFp bCBlbmQgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5pbmZsYXRlci56c3RyZWFt Lm5leHRfaW4gPSAodm9pZCAqKSJceDAwXHgwMFx4ZmZceGZmIjsKLSAgICAgICAgICAgICAgICAg ICAgICAgICBwcml2LT5pbmZsYXRlci56c3RyZWFtLmF2YWlsX2luID0gNDsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBieXRlc19yZWFkID0gMDsKLSAgICAgICAgICAgICAgICAgICAgICAgICB0 YWlsX2FkZGVkID0gVFJVRTsKLSAgICAgICAgICAgICAgICAgfQotIAotLSAgICAgICAgICAgICAg ICByZWFkX3JlbWFpbmluZyA9IHRhaWxfYWRkZWQgPyA0IDogcGF5bG9hZF9sZW5ndGggLSBieXRl c19yZWFkOwotLSAgICAgICAgICAgICAgICB3cml0ZV9yZW1haW5pbmcgPSBidWZmZXItPmxlbiAt IGJ5dGVzX3dyaXR0ZW47Ci0rICAgICAgICAgICAgICAgIGlmIChwcml2LT5pbmZsYXRlci56c3Ry ZWFtLmF2YWlsX291dCA9PSAwKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgb3V0 cHV0X2xlbmd0aCA9IEJVRkZFUl9TSVpFOwotKwotKyAgICAgICAgICAgICAgICAgICAgICAgIGlm IChieXRlc193cml0dGVuID49IG1heF9vdXRwdXRfc2l6ZSB8fCBidWZmZXItPmxlbiA9PSBHX01B WFVJTlQpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPmluZmxhdGVy LnpzdHJlYW0ubmV4dF9vdXQgPSAmbGltaXRfcHJvYmU7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwcml2LT5pbmZsYXRlci56c3RyZWFtLmF2YWlsX291dCA9IDE7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1c2luZ19saW1pdF9wcm9iZSA9IFRSVUU7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGd1aW50NjQgcmVtYWluaW5nID0gbWF4X291dHB1dF9zaXplIC0gYnl0ZXNfd3JpdHRl bjsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50IGN1cnJlbnRfcG9zaXRp b24gPSBidWZmZXItPmxlbjsKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91 dHB1dF9sZW5ndGggPSBNSU4gKChndWludDY0KW91dHB1dF9sZW5ndGgsIHJlbWFpbmluZyk7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfbGVuZ3RoID0gTUlOIChvdXRw dXRfbGVuZ3RoLCBHX01BWFVJTlQgLSBidWZmZXItPmxlbik7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnX2Fzc2VydCAob3V0cHV0X2xlbmd0aCA+IDApOwotKwotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ19ieXRlX2FycmF5X3NldF9zaXplIChidWZmZXIsIGJ1 ZmZlci0+bGVuICsgb3V0cHV0X2xlbmd0aCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwcml2LT5pbmZsYXRlci56c3RyZWFtLm5leHRfb3V0ID0gYnVmZmVyLT5kYXRhICsgY3Vy cmVudF9wb3NpdGlvbjsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPmlu ZmxhdGVyLnpzdHJlYW0uYXZhaWxfb3V0ID0gb3V0cHV0X2xlbmd0aDsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVzaW5nX2xpbWl0X3Byb2JlID0gRkFMU0U7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICB9Ci0rCi0rICAgICAgICAgICAgICAg IGlucHV0X2JlZm9yZSA9IHByaXYtPmluZmxhdGVyLnpzdHJlYW0uYXZhaWxfaW47Ci0rICAgICAg ICAgICAgICAgIG91dHB1dF9iZWZvcmUgPSBwcml2LT5pbmZsYXRlci56c3RyZWFtLmF2YWlsX291 dDsKLSAgICAgICAgICAgICAgICAgcmVzdWx0ID0gaW5mbGF0ZSAoJnByaXYtPmluZmxhdGVyLnpz dHJlYW0sIHRhaWxfYWRkZWQgPyBaX0ZJTklTSCA6IFpfTk9fRkxVU0gpOwotLSAgICAgICAgICAg ICAgICBieXRlc19yZWFkICs9IHJlYWRfcmVtYWluaW5nIC0gcHJpdi0+aW5mbGF0ZXIuenN0cmVh bS5hdmFpbF9pbjsKLS0gICAgICAgICAgICAgICAgYnl0ZXNfd3JpdHRlbiArPSB3cml0ZV9yZW1h aW5pbmcgLSBwcml2LT5pbmZsYXRlci56c3RyZWFtLmF2YWlsX291dDsKLSsgICAgICAgICAgICAg ICAgaW5wdXRfY29uc3VtZWQgPSBpbnB1dF9iZWZvcmUgLSBwcml2LT5pbmZsYXRlci56c3RyZWFt LmF2YWlsX2luOwotKyAgICAgICAgICAgICAgICBvdXRwdXRfcHJvZHVjZWQgPSBvdXRwdXRfYmVm b3JlIC0gcHJpdi0+aW5mbGF0ZXIuenN0cmVhbS5hdmFpbF9vdXQ7Ci0rCi0rICAgICAgICAgICAg ICAgIGlmICh1c2luZ19saW1pdF9wcm9iZSAmJiBvdXRwdXRfcHJvZHVjZWQgPiAwKQotKyAgICAg ICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0cHV0X3Rvb19sYXJnZTsKLSsKLSsgICAgICAgICAg ICAgICAgYnl0ZXNfd3JpdHRlbiArPSBvdXRwdXRfcHJvZHVjZWQ7Ci0rCi0gICAgICAgICAgICAg ICAgIGlmICghdGFpbF9hZGRlZCAmJiByZXN1bHQgPT0gWl9TVFJFQU1fRU5EKSB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgLyogUmVjZWl2ZWQgYSBibG9jayB3aXRoIEJGSU5BTCBzZXQgdG8g MS4gUmVzZXQgZGVjb21wcmVzc2lvbiBzdGF0ZS4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAg ICByZXN1bHQgPSBpbmZsYXRlUmVzZXQgKCZwcml2LT5pbmZsYXRlci56c3RyZWFtKTsKLSAgICAg ICAgICAgICAgICAgfQotIAotLSAgICAgICAgICAgICAgICBpZiAoKCFmaW4gJiYgYnl0ZXNfcmVh ZCA9PSBwYXlsb2FkX2xlbmd0aCkgfHwgKGZpbiAmJiB0YWlsX2FkZGVkICYmIGJ5dGVzX3JlYWQg PT0gNCkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICB9IHdoaWxl IChyZXN1bHQgPT0gWl9PSyB8fCByZXN1bHQgPT0gWl9CVUZfRVJST1IpOwotLQotLSAgICAgICAg Z19ieXRlc191bnJlZiAocGF5bG9hZCk7Ci0rICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0g Wl9PSyAmJiByZXN1bHQgIT0gWl9CVUZfRVJST1IpCi0rICAgICAgICAgICAgICAgICAgICAgICAg Z290byBpbnZhbGlkX2RhdGE7Ci0gCi0tICAgICAgICBpZiAocmVzdWx0ICE9IFpfT0sgJiYgcmVz dWx0ICE9IFpfQlVGX0VSUk9SKSB7Ci0tICAgICAgICAgICAgICAgIHByaXYtPmluZmxhdGVyLnVu Y29tcHJlc3Nfb25nb2luZyA9IEZBTFNFOwotLSAgICAgICAgICAgICAgICBnX3NldF9lcnJvcl9s aXRlcmFsIChlcnJvciwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU09V UF9XRUJTT0NLRVRfRVJST1IsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNPVVBfV0VCU09DS0VUX0NMT1NFX1BST1RPQ09MX0VSUk9SLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIHVuY29tcHJlc3MgaW5jb21pbmcgZnJhbWUi KTsKLS0gICAgICAgICAgICAgICAgZ19ieXRlX2FycmF5X3VucmVmIChidWZmZXIpOwotKyAgICAg ICAgICAgICAgICBpZiAocHJpdi0+aW5mbGF0ZXIuenN0cmVhbS5hdmFpbF9pbiA9PSAwICYmCi0r ICAgICAgICAgICAgICAgICAgICBpbnB1dF9vZmZzZXQgPT0gcGF5bG9hZF9sZW5ndGggJiYKLSsg ICAgICAgICAgICAgICAgICAgICgoIWZpbiAmJiAhdGFpbF9hZGRlZCkgfHwgKGZpbiAmJiB0YWls X2FkZGVkKSkgJiYKLSsgICAgICAgICAgICAgICAgICAgIHByaXYtPmluZmxhdGVyLnpzdHJlYW0u YXZhaWxfb3V0ID4gMCkKLSsgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAKLS0gICAg ICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0rICAgICAgICAgICAgICAgIGlmIChpbnB1dF9jb25z dW1lZCA9PSAwICYmIG91dHB1dF9wcm9kdWNlZCA9PSAwKQotKyAgICAgICAgICAgICAgICAgICAg ICAgIGdvdG8gaW52YWxpZF9kYXRhOwotICAgICAgICAgfQotIAotKyAgICAgICAgZ19ieXRlc191 bnJlZiAocGF5bG9hZCk7Ci0gICAgICAgICBnX2J5dGVfYXJyYXlfc2V0X3NpemUgKGJ1ZmZlciwg Ynl0ZXNfd3JpdHRlbik7Ci0gCi0gICAgICAgICByZXR1cm4gZ19ieXRlX2FycmF5X2ZyZWVfdG9f Ynl0ZXMgKGJ1ZmZlcik7Ci0rCi0rb3V0cHV0X3Rvb19sYXJnZToKLSsgICAgICAgIGluZmxhdGVy X3Jlc2V0ICgmcHJpdi0+aW5mbGF0ZXIpOwotKyAgICAgICAgZ19ieXRlc191bnJlZiAocGF5bG9h ZCk7Ci0rICAgICAgICBnX2J5dGVfYXJyYXlfdW5yZWYgKGJ1ZmZlcik7Ci0rICAgICAgICBnX3Nl dF9lcnJvcl9saXRlcmFsIChlcnJvciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNP VVBfV0VCU09DS0VUX0VSUk9SLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU09VUF9X RUJTT0NLRVRfQ0xPU0VfVE9PX0JJRywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJE ZWNvbXByZXNzZWQgV2ViU29ja2V0IG1lc3NhZ2UgZXhjZWVkcyBjb25maWd1cmVkIG1heGltdW0g c2l6ZSIpOwotKwotKyAgICAgICAgcmV0dXJuIE5VTEw7Ci0rCi0raW52YWxpZF9kYXRhOgotKyAg ICAgICAgaW5mbGF0ZXJfcmVzZXQgKCZwcml2LT5pbmZsYXRlcik7Ci0rICAgICAgICBnX2J5dGVz X3VucmVmIChwYXlsb2FkKTsKLSsgICAgICAgIGdfYnl0ZV9hcnJheV91bnJlZiAoYnVmZmVyKTsK LSsgICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwgKGVycm9yLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU09VUF9XRUJTT0NLRVRfRVJST1IsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTT1VQX1dFQlNPQ0tFVF9DTE9TRV9QUk9UT0NPTF9FUlJPUiwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gdW5jb21wcmVzcyBpbmNvbWluZyBmcmFtZSIp OwotKwotKyAgICAgICAgcmV0dXJuIE5VTEw7Ci0rfQotKwotK3N0YXRpYyBHQnl0ZXMgKgotK3Nv dXBfd2Vic29ja2V0X2V4dGVuc2lvbl9kZWZsYXRlX3Byb2Nlc3NfaW5jb21pbmdfbWVzc2FnZSAo U291cFdlYnNvY2tldEV4dGVuc2lvbiAqZXh0ZW5zaW9uLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQ4ICAgICAgICAgICAg ICAgICAqaGVhZGVyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR0J5dGVzICAgICAgICAgICAgICAgICAqcGF5bG9hZCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdF cnJvciAgICAgICAgICAgICAgICAqKmVycm9yKQotK3sKLSsgICAgICAgIHJldHVybiBzb3VwX3dl YnNvY2tldF9leHRlbnNpb25fZGVmbGF0ZV9wcm9jZXNzX2luY29taW5nX21lc3NhZ2Vfd2l0aF9s aW1pdCAoZXh0ZW5zaW9uLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXIsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdfTUFYVUlOVDY0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJv cik7Ci0gfQotIAotIHN0YXRpYyB2b2lkCi1AQCAtNDgzLDYgKzU1Miw3IEBAIHNvdXBfd2Vic29j a2V0X2V4dGVuc2lvbl9kZWZsYXRlX2NsYXNzX2luaXQgKFNvdXBXZWJzb2NrZXRFeHRlbnNpb25E ZWZsYXRlQ2xhc3MKLSAgICAgICAgIGV4dGVuc2lvbl9jbGFzcy0+Z2V0X3Jlc3BvbnNlX3BhcmFt cyA9IHNvdXBfd2Vic29ja2V0X2V4dGVuc2lvbl9kZWZsYXRlX2dldF9yZXNwb25zZV9wYXJhbXM7 Ci0gICAgICAgICBleHRlbnNpb25fY2xhc3MtPnByb2Nlc3Nfb3V0Z29pbmdfbWVzc2FnZSA9IHNv dXBfd2Vic29ja2V0X2V4dGVuc2lvbl9kZWZsYXRlX3Byb2Nlc3Nfb3V0Z29pbmdfbWVzc2FnZTsK LSAgICAgICAgIGV4dGVuc2lvbl9jbGFzcy0+cHJvY2Vzc19pbmNvbWluZ19tZXNzYWdlID0gc291 cF93ZWJzb2NrZXRfZXh0ZW5zaW9uX2RlZmxhdGVfcHJvY2Vzc19pbmNvbWluZ19tZXNzYWdlOwot KyAgICAgICAgZXh0ZW5zaW9uX2NsYXNzLT5wcm9jZXNzX2luY29taW5nX21lc3NhZ2Vfd2l0aF9s aW1pdCA9IHNvdXBfd2Vic29ja2V0X2V4dGVuc2lvbl9kZWZsYXRlX3Byb2Nlc3NfaW5jb21pbmdf bWVzc2FnZV93aXRoX2xpbWl0OwotIAotICAgICAgICAgb2JqZWN0X2NsYXNzLT5maW5hbGl6ZSA9 IHNvdXBfd2Vic29ja2V0X2V4dGVuc2lvbl9kZWZsYXRlX2ZpbmFsaXplOwotIH0KLWRpZmYgLS1n aXQgYS9saWJzb3VwL3dlYnNvY2tldC9zb3VwLXdlYnNvY2tldC1leHRlbnNpb24uYyBiL2xpYnNv dXAvd2Vic29ja2V0L3NvdXAtd2Vic29ja2V0LWV4dGVuc2lvbi5jCi1pbmRleCA4ODgyZDJjMC4u OTU3MTllOGMgMTAwNjQ0Ci0tLS0gYS9saWJzb3VwL3dlYnNvY2tldC9zb3VwLXdlYnNvY2tldC1l eHRlbnNpb24uYwotKysrIGIvbGlic291cC93ZWJzb2NrZXQvc291cC13ZWJzb2NrZXQtZXh0ZW5z aW9uLmMKLUBAIC00Nyw2ICs0Nyw5IEBACi0gICogICAgYmVmb3JlIGl0J3Mgc2VudC4gUmVzZXJ2 ZWQgYml0cyBvZiB0aGUgaGVhZGVyIHNob3VsZCBiZSBjaGFuZ2VkLgotICAqIEBwcm9jZXNzX2lu Y29taW5nX21lc3NhZ2U6IGNhbGxlZCB0byBwcm9jZXNzIHRoZSBwYXlsb2FkIGRhdGEgb2YgYSBt ZXNzYWdlCi0gICogICAgYWZ0ZXIgaXQncyByZWNlaXZlZC4gUmVzZXJ2ZWQgYml0cyBvZiB0aGUg aGVhZGVyIHNob3VsZCBiZSBjbGVhcmVkLgotKyAqIEBwcm9jZXNzX2luY29taW5nX21lc3NhZ2Vf d2l0aF9saW1pdDogY2FsbGVkIHRvIHByb2Nlc3MgdGhlIHBheWxvYWQgZGF0YSBvZgotKyAqICAg IGEgbWVzc2FnZSBhZnRlciBpdCdzIHJlY2VpdmVkIHdpdGhvdXQgZXhjZWVkaW5nIHRoZSByZXF1 ZXN0ZWQgbWF4aW11bQotKyAqICAgIG91dHB1dCBzaXplLiBJZiB1bnNldCwgQHByb2Nlc3NfaW5j b21pbmdfbWVzc2FnZSBpcyB1c2VkLiBTaW5jZSAzLjgKLSAgKgotICAqIFRoZSBjbGFzcyBzdHJ1 Y3R1cmUgZm9yIHRoZSBbY2xhc3NAV2Vic29ja2V0RXh0ZW5zaW9uXS4KLSAgKi8KLUBAIC0yMTYs MyArMjE5LDUzIEBAIHNvdXBfd2Vic29ja2V0X2V4dGVuc2lvbl9wcm9jZXNzX2luY29taW5nX21l c3NhZ2UgKFNvdXBXZWJzb2NrZXRFeHRlbnNpb24gKmV4dGVuCi0gCi0gCXJldHVybiBrbGFzcy0+ cHJvY2Vzc19pbmNvbWluZ19tZXNzYWdlIChleHRlbnNpb24sIGhlYWRlciwgcGF5bG9hZCwgZXJy b3IpOwotIH0KLSsKLSsvKioKLSsgKiBzb3VwX3dlYnNvY2tldF9leHRlbnNpb25fcHJvY2Vzc19p bmNvbWluZ19tZXNzYWdlX3dpdGhfbGltaXQ6Ci0rICogQGV4dGVuc2lvbjogYSAjU291cFdlYnNv Y2tldEV4dGVuc2lvbgotKyAqIEBoZWFkZXI6IChpbm91dCk6IHRoZSBtZXNzYWdlIGhlYWRlcgot KyAqIEBwYXlsb2FkOiAodHJhbnNmZXIgZnVsbCk6IHRoZSBwYXlsb2FkIGRhdGEKLSsgKiBAbWF4 X291dHB1dF9zaXplOiB0aGUgbWF4aW11bSBzaXplIGluIGJ5dGVzIG9mIHRoZSBwcm9jZXNzZWQg cGF5bG9hZAotKyAqIEBlcnJvcjogcmV0dXJuIGxvY2F0aW9uIGZvciBhICNHRXJyb3IKLSsgKgot KyAqIFByb2Nlc3MgYSBtZXNzYWdlIGFmdGVyIGl0J3MgcmVjZWl2ZWQsIHdpdGhvdXQgcHJvZHVj aW5nIG1vcmUgdGhhbgotKyAqIEBtYXhfb3V0cHV0X3NpemUgYnl0ZXMgb2Ygb3V0cHV0LgotKyAq Ci0rICogVGhpcyBiZWhhdmVzIGxpa2UgW21ldGhvZEBXZWJzb2NrZXRFeHRlbnNpb24ucHJvY2Vz c19pbmNvbWluZ19tZXNzYWdlXSwKLSsgKiBidXQgZXh0ZW5zaW9ucyB0aGF0IGV4cGFuZCB0aGVp ciBpbnB1dCAoc3VjaCBhcyBgcGVybWVzc2FnZS1kZWZsYXRlYCkKLSsgKiBzdG9wIGFuZCByZXR1 cm4gYW4gZXJyb3Igd2l0aCBbZXJyb3JAV2Vic29ja2V0RXJyb3IuQ0xPU0VfVE9PX0JJR10KLSsg KiBpbnN0ZWFkIG9mIHByb2R1Y2luZyBvdXRwdXQgbGFyZ2VyIHRoYW4gQG1heF9vdXRwdXRfc2l6 ZS4gRXh0ZW5zaW9ucwotKyAqIHRoYXQgZG9uJ3QgaW1wbGVtZW50IHRoaXMgZmFsbCBiYWNrIHRv Ci0rICogW21ldGhvZEBXZWJzb2NrZXRFeHRlbnNpb24ucHJvY2Vzc19pbmNvbWluZ19tZXNzYWdl XS4KLSsgKgotKyAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogdGhlIG1lc3NhZ2UgcGF5bG9h ZCBkYXRhLCBvciAlTlVMTCBpbiBjYXNlIG9mIGVycm9yCi0rICoKLSsgKiBTaW5jZTogMy44Ci0r ICovCi0rR0J5dGVzICoKLStzb3VwX3dlYnNvY2tldF9leHRlbnNpb25fcHJvY2Vzc19pbmNvbWlu Z19tZXNzYWdlX3dpdGhfbGltaXQgKFNvdXBXZWJzb2NrZXRFeHRlbnNpb24gKmV4dGVuc2lvbiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGd1aW50OCAgICAgICAgICAgICAgICAgKmhlYWRlciwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdCeXRlcyAgICAg ICAgICAgICAgICAgKnBheWxvYWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludDY0ICAgICAgICAgICAgICAgICBtYXhf b3V0cHV0X3NpemUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAgICAgKiplcnJvcikKLSt7Ci0r CVNvdXBXZWJzb2NrZXRFeHRlbnNpb25DbGFzcyAqa2xhc3M7Ci0rCi0rCWdfcmV0dXJuX3ZhbF9p Zl9mYWlsIChTT1VQX0lTX1dFQlNPQ0tFVF9FWFRFTlNJT04gKGV4dGVuc2lvbiksIE5VTEwpOwot KwlnX3JldHVybl92YWxfaWZfZmFpbCAoaGVhZGVyICE9IE5VTEwsIE5VTEwpOwotKwlnX3JldHVy bl92YWxfaWZfZmFpbCAocGF5bG9hZCAhPSBOVUxMLCBOVUxMKTsKLSsJZ19yZXR1cm5fdmFsX2lm X2ZhaWwgKGVycm9yID09IE5VTEwgfHwgKmVycm9yID09IE5VTEwsIE5VTEwpOwotKwotKwlrbGFz cyA9IFNPVVBfV0VCU09DS0VUX0VYVEVOU0lPTl9HRVRfQ0xBU1MgKGV4dGVuc2lvbik7Ci0rCWlm ICgha2xhc3MtPnByb2Nlc3NfaW5jb21pbmdfbWVzc2FnZV93aXRoX2xpbWl0KQotKwkJcmV0dXJu IHNvdXBfd2Vic29ja2V0X2V4dGVuc2lvbl9wcm9jZXNzX2luY29taW5nX21lc3NhZ2UgKGV4dGVu c2lvbiwKLSsJCQkJCQkJCQkgIGhlYWRlciwKLSsJCQkJCQkJCQkgIHBheWxvYWQsCi0rCQkJCQkJ CQkJICBlcnJvcik7Ci0rCi0rCXJldHVybiBrbGFzcy0+cHJvY2Vzc19pbmNvbWluZ19tZXNzYWdl X3dpdGhfbGltaXQgKGV4dGVuc2lvbiwKLSsJCQkJCQkJICAgaGVhZGVyLAotKwkJCQkJCQkgICBw YXlsb2FkLAotKwkJCQkJCQkgICBtYXhfb3V0cHV0X3NpemUsCi0rCQkJCQkJCSAgIGVycm9yKTsK LSt9Ci1kaWZmIC0tZ2l0IGEvbGlic291cC93ZWJzb2NrZXQvc291cC13ZWJzb2NrZXQtZXh0ZW5z aW9uLmggYi9saWJzb3VwL3dlYnNvY2tldC9zb3VwLXdlYnNvY2tldC1leHRlbnNpb24uaAotaW5k ZXggMTkzMWEyNjQuLmE5ZDVlMzVjIDEwMDY0NAotLS0tIGEvbGlic291cC93ZWJzb2NrZXQvc291 cC13ZWJzb2NrZXQtZXh0ZW5zaW9uLmgKLSsrKyBiL2xpYnNvdXAvd2Vic29ja2V0L3NvdXAtd2Vi c29ja2V0LWV4dGVuc2lvbi5oCi1AQCAtNTUsOCArNTUsMTQgQEAgc3RydWN0IF9Tb3VwV2Vic29j a2V0RXh0ZW5zaW9uQ2xhc3MgewotIAkJCQkJICAgICAgIEdCeXRlcyAgICAgICAgICAgICAgICAg ICAgICpwYXlsb2FkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR0Vycm9yICAgICAgICAgICAgICAgICAgICAqKmVycm9yKTsKLSAKLSsJR0J5dGVzICAq KCogcHJvY2Vzc19pbmNvbWluZ19tZXNzYWdlX3dpdGhfbGltaXQpIChTb3VwV2Vic29ja2V0RXh0 ZW5zaW9uICpleHRlbnNpb24sCi0rCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3VpbnQ4ICAgICAgICAgICAgICAgICAqaGVhZGVyLAotKwkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdCeXRlcyAgICAgICAg ICAgICAgICAgKnBheWxvYWQsCi0rCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3VpbnQ2NCAgICAgICAgICAgICAgICAgbWF4X291dHB1dF9zaXplLAot KwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJv ciAgICAgICAgICAgICAgICAqKmVycm9yKTsKLSsKLSAgICAgICAgIC8qIDxwcml2YXRlPiAqLwot LQlncG9pbnRlciBwYWRkaW5nWzZdOwotKwlncG9pbnRlciBwYWRkaW5nWzVdOwotIH07Ci0gCi0g U09VUF9BVkFJTEFCTEVfSU5fQUxMCi1AQCAtODAsNSArODYsMTEgQEAgR0J5dGVzICAgICAgICAg ICAgICAgICAgKnNvdXBfd2Vic29ja2V0X2V4dGVuc2lvbl9wcm9jZXNzX2luY29taW5nX21lc3Nh Z2UgKFNvdXAKLSAJCQkJCQkJCQkgICAgZ3VpbnQ4ICAgICAgICAgICAgICAgICAgICAgKmhlYWRl ciwKLSAJCQkJCQkJCQkgICAgR0J5dGVzICAgICAgICAgICAgICAgICAgICAgKnBheWxvYWQsCi0g CQkJCQkJCQkJICAgIEdFcnJvciAgICAgICAgICAgICAgICAgICAgKiplcnJvcik7Ci0rU09VUF9B VkFJTEFCTEVfSU5fM184Ci0rR0J5dGVzICAgICAgICAgICAgICAgICAgKnNvdXBfd2Vic29ja2V0 X2V4dGVuc2lvbl9wcm9jZXNzX2luY29taW5nX21lc3NhZ2Vfd2l0aF9saW1pdCAoU291cFdlYnNv Y2tldEV4dGVuc2lvbiAqZXh0ZW5zaW9uLAotKwkJCQkJCQkJCQkJICAgICAgIGd1aW50OCAgICAg ICAgICAgICAgICAgKmhlYWRlciwKLSsJCQkJCQkJCQkJCSAgICAgICBHQnl0ZXMgICAgICAgICAg ICAgICAgICpwYXlsb2FkLAotKwkJCQkJCQkJCQkJICAgICAgIGd1aW50NjQgICAgICAgICAgICAg ICAgIG1heF9vdXRwdXRfc2l6ZSwKLSsJCQkJCQkJCQkJCSAgICAgICBHRXJyb3IgICAgICAgICAg ICAgICAgKiplcnJvcik7Ci0gCi0gR19FTkRfREVDTFMKLWRpZmYgLS1naXQgYS90ZXN0cy93ZWJz b2NrZXQtdGVzdC5jIGIvdGVzdHMvd2Vic29ja2V0LXRlc3QuYwotaW5kZXggZGIwODhhNTUuLjVm OTRiNWY2IDEwMDY0NAotLS0tIGEvdGVzdHMvd2Vic29ja2V0LXRlc3QuYwotKysrIGIvdGVzdHMv d2Vic29ja2V0LXRlc3QuYwotQEAgLTczLDYgKzczLDE4IEBAIG9uX2Vycm9yX2NvcHkgKFNvdXBX ZWJzb2NrZXRDb25uZWN0aW9uICp3cywKLSAJKmNvcHkgPSBnX2Vycm9yX2NvcHkgKGVycm9yKTsK LSB9Ci0gCi0rc3RhdGljIHZvaWQKLStvbl9lcnJvcl9jb3B5X29uY2UgKFNvdXBXZWJzb2NrZXRD b25uZWN0aW9uICp3cywKLSsJCSAgICBHRXJyb3IgKmVycm9yLAotKwkJICAgIGdwb2ludGVyIHVz ZXJfZGF0YSkKLSt7Ci0rCUdFcnJvciAqKmNvcHkgPSB1c2VyX2RhdGE7Ci0rCi0rCWdfYXNzZXJ0 X251bGwgKCpjb3B5KTsKLSsJKmNvcHkgPSBnX2Vycm9yX2NvcHkgKGVycm9yKTsKLSsJZ19zaWdu YWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jICh3cywgR19DQUxMQkFDSyAob25fZXJyb3Jf Y29weV9vbmNlKSwgdXNlcl9kYXRhKTsKLSt9Ci0rCi0gc3RhdGljIHZvaWQKLSBzZXR1cF9saXN0 ZW5lciAoVGVzdCAqdGVzdCkKLSB7Ci1AQCAtNjQ5LDcgKzY2MSw3IEBAIHRlc3Rfc2VuZF9iaWdf cGFja2V0c19zb3VwIChUZXN0ICp0ZXN0LAotIAlnX2Fzc2VydF9jbXB1aW50IChzb3VwX3dlYnNv Y2tldF9jb25uZWN0aW9uX2dldF9tYXhfaW5jb21pbmdfcGF5bG9hZF9zaXplICh0ZXN0LT5jbGll bnQpLCA9PSwgMTI4ICogMTAyNCk7Ci0gCWdfYXNzZXJ0X2NtcHVpbnQgKHNvdXBfd2Vic29ja2V0 X2Nvbm5lY3Rpb25fZ2V0X21heF90b3RhbF9tZXNzYWdlX3NpemUgKHRlc3QtPmNsaWVudCksID09 LCAwKTsKLSAKLS0JLyogTWF4IHRvdGFsIG1lc3NhZ2Ugc2l6ZSBkZWZhdWx0cyB0byAwICh1bmxp bWl0ZWQpLCBidXQgU291cFNlcnZlciBhcHBsaWVzIGl0cyBvd24gbGltaXQgYnkgZGVmYXVsdC4g Ki8KLSsJLyogU291cFNlcnZlciBhcHBsaWVzIGl0cyBvd24gdG90YWwgbWVzc2FnZSBzaXplIGxp bWl0IGJ5IGRlZmF1bHQuICovCi0gCWdfYXNzZXJ0X2NtcHVpbnQgKHNvdXBfd2Vic29ja2V0X2Nv bm5lY3Rpb25fZ2V0X21heF9pbmNvbWluZ19wYXlsb2FkX3NpemUgKHRlc3QtPnNlcnZlciksID09 LCAxMjggKiAxMDI0KTsKLSAJZ19hc3NlcnRfY21wdWludCAoc291cF93ZWJzb2NrZXRfY29ubmVj dGlvbl9nZXRfbWF4X3RvdGFsX21lc3NhZ2Vfc2l6ZSAodGVzdC0+c2VydmVyKSwgPT0sIDEyOCAq IDEwMjQpOwotIAotQEAgLTc1Niw5ICs3NjgsNyBAQCB0ZXN0X3NlbmRfZXhjZWVkaW5nX3NlcnZl cl9tYXhfbWVzc2FnZV9zaXplIChUZXN0ICp0ZXN0LAotIAlzb3VwX3dlYnNvY2tldF9jb25uZWN0 aW9uX3NldF9tYXhfdG90YWxfbWVzc2FnZV9zaXplICh0ZXN0LT5jbGllbnQsIDApOwotIAlnX2Fz c2VydF9jbXB1aW50IChzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX2dldF9tYXhfdG90YWxfbWVz c2FnZV9zaXplICh0ZXN0LT5jbGllbnQpLCA9PSwgMCk7Ci0gCi0tCS8qIFNldCB0aGUgc2VydmVy IG1lc3NhZ2UgdG90YWwgbWVzc2FnZSBzaXplIG1hbnVhbGx5LCBiZWNhdXNlIGl0cwotLQkgKiBk ZWZhdWx0IGlzIGRpZmZlcmVudCBmb3IgZGlyZWN0IGNvbm5lY3Rpb24gdnMuIHNvdXAgY29ubmVj dGlvbi4KLS0JICovCi0rCS8qIFRoZSBkaXJlY3Qgc2VydmVyIGNvbm5lY3Rpb24gZGVmYXVsdHMg dG8gdW5saW1pdGVkLiAqLwotIAlzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX3NldF9tYXhfdG90 YWxfbWVzc2FnZV9zaXplICh0ZXN0LT5zZXJ2ZXIsIDEyOCAqIDEwMjQpOwotIAlnX2Fzc2VydF9j bXB1aW50IChzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX2dldF9tYXhfdG90YWxfbWVzc2FnZV9z aXplICh0ZXN0LT5zZXJ2ZXIpLCA9PSwgMTI4ICogMTAyNCk7Ci0gCi1AQCAtMTY3MCw2ICsxNjgw LDIyMiBAQCBzZW5kX2ZyYWdtZW50c19zZXJ2ZXJfdGhyZWFkIChncG9pbnRlciB1c2VyX2RhdGEp Ci0gCXJldHVybiBOVUxMOwotIH0KLSAKLSt0eXBlZGVmIHN0cnVjdCB7Ci0rCVNvdXBXZWJzb2Nr ZXRFeHRlbnNpb24gcGFyZW50X2luc3RhbmNlOwotK30gTGVnYWN5V2Vic29ja2V0RXh0ZW5zaW9u OwotKwotK3R5cGVkZWYgc3RydWN0IHsKLSsJU291cFdlYnNvY2tldEV4dGVuc2lvbkNsYXNzIHBh cmVudF9jbGFzczsKLSt9IExlZ2FjeVdlYnNvY2tldEV4dGVuc2lvbkNsYXNzOwotKwotK0dUeXBl IGxlZ2FjeV93ZWJzb2NrZXRfZXh0ZW5zaW9uX2dldF90eXBlICh2b2lkKTsKLSsKLSsjZGVmaW5l IExFR0FDWV9UWVBFX1dFQlNPQ0tFVF9FWFRFTlNJT04gKGxlZ2FjeV93ZWJzb2NrZXRfZXh0ZW5z aW9uX2dldF90eXBlICgpKQotK0dfREVGSU5FX1RZUEUgKExlZ2FjeVdlYnNvY2tldEV4dGVuc2lv biwgbGVnYWN5X3dlYnNvY2tldF9leHRlbnNpb24sIFNPVVBfVFlQRV9XRUJTT0NLRVRfRVhURU5T SU9OKQotKwotK3N0YXRpYyBnYm9vbGVhbiBsZWdhY3lfZXh0ZW5zaW9uX3Byb2Nlc3NlZDsKLSsK LStzdGF0aWMgR0J5dGVzICoKLStsZWdhY3lfd2Vic29ja2V0X2V4dGVuc2lvbl9wcm9jZXNzX2lu Y29taW5nX21lc3NhZ2UgKFNvdXBXZWJzb2NrZXRFeHRlbnNpb24gKmV4dGVuc2lvbiwKLSsJCQkJ CQkgICAgIGd1aW50OCAgICAgICAgICAgICAgICAgKmhlYWRlciwKLSsJCQkJCQkgICAgIEdCeXRl cyAgICAgICAgICAgICAgICAgKnBheWxvYWQsCi0rCQkJCQkJICAgICBHRXJyb3IgICAgICAgICAg ICAgICAgKiplcnJvcikKLSt7Ci0rCWxlZ2FjeV9leHRlbnNpb25fcHJvY2Vzc2VkID0gVFJVRTsK LSsKLSsJcmV0dXJuIHBheWxvYWQ7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rbGVnYWN5X3dlYnNv Y2tldF9leHRlbnNpb25fY2xhc3NfaW5pdCAoTGVnYWN5V2Vic29ja2V0RXh0ZW5zaW9uQ2xhc3Mg KmtsYXNzKQotK3sKLSsJU291cFdlYnNvY2tldEV4dGVuc2lvbkNsYXNzICpleHRlbnNpb25fY2xh c3MgPSBTT1VQX1dFQlNPQ0tFVF9FWFRFTlNJT05fQ0xBU1MgKGtsYXNzKTsKLSsKLSsJZXh0ZW5z aW9uX2NsYXNzLT5wcm9jZXNzX2luY29taW5nX21lc3NhZ2UgPSBsZWdhY3lfd2Vic29ja2V0X2V4 dGVuc2lvbl9wcm9jZXNzX2luY29taW5nX21lc3NhZ2U7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0r bGVnYWN5X3dlYnNvY2tldF9leHRlbnNpb25faW5pdCAoTGVnYWN5V2Vic29ja2V0RXh0ZW5zaW9u ICpleHRlbnNpb24pCi0rewotK30KLSsKLStzdGF0aWMgdm9pZAotK3Rlc3Rfd2Vic29ja2V0X2V4 dGVuc2lvbl9saW1pdF9mYWxsYmFjayAodm9pZCkKLSt7Ci0rCVNvdXBXZWJzb2NrZXRFeHRlbnNp b24gKmV4dGVuc2lvbjsKLSsJR0J5dGVzICpwYXlsb2FkOwotKwlHQnl0ZXMgKm91dHB1dDsKLSsJ R0Vycm9yICplcnJvciA9IE5VTEw7Ci0rCWd1aW50OCBoZWFkZXIgPSAweDgyOwotKwotKwlsZWdh Y3lfZXh0ZW5zaW9uX3Byb2Nlc3NlZCA9IEZBTFNFOwotKwlleHRlbnNpb24gPSBnX29iamVjdF9u ZXcgKExFR0FDWV9UWVBFX1dFQlNPQ0tFVF9FWFRFTlNJT04sIE5VTEwpOwotKwlwYXlsb2FkID0g Z19ieXRlc19uZXdfc3RhdGljICgieCIsIDEpOwotKwlvdXRwdXQgPSBzb3VwX3dlYnNvY2tldF9l eHRlbnNpb25fcHJvY2Vzc19pbmNvbWluZ19tZXNzYWdlX3dpdGhfbGltaXQgKGV4dGVuc2lvbiwK LSsJCQkJCQkJCQkgICAgICAgJmhlYWRlciwKLSsJCQkJCQkJCQkgICAgICAgcGF5bG9hZCwKLSsJ CQkJCQkJCQkgICAgICAgMSwKLSsJCQkJCQkJCQkgICAgICAgJmVycm9yKTsKLSsKLSsJZ19hc3Nl cnRfbm9fZXJyb3IgKGVycm9yKTsKLSsJZ19hc3NlcnRfdHJ1ZSAobGVnYWN5X2V4dGVuc2lvbl9w cm9jZXNzZWQpOwotKwlnX2Fzc2VydF90cnVlIChvdXRwdXQgPT0gcGF5bG9hZCk7Ci0rCi0rCWdf Ynl0ZXNfdW5yZWYgKG91dHB1dCk7Ci0rCWdfb2JqZWN0X3VucmVmIChleHRlbnNpb24pOwotK30K LSsKLSt0eXBlZGVmIHN0cnVjdCB7Ci0rCWdzaXplIG91dHB1dF9zaXplOwotKwlndWludDY0IG1h eF9vdXRwdXRfc2l6ZTsKLSsJZ2Jvb2xlYW4gZXhwZWN0X3Rvb19iaWc7Ci0rfSBEZWZsYXRlT3V0 cHV0TGltaXRUZXN0OwotKwotK3N0YXRpYyB2b2lkCi0rdGVzdF9kZWZsYXRlX291dHB1dF9saW1p dCAoZ2NvbnN0cG9pbnRlciBkYXRhKQotK3sKLSsJY29uc3QgRGVmbGF0ZU91dHB1dExpbWl0VGVz dCAqY29uZmlnID0gZGF0YTsKLSsJU291cFdlYnNvY2tldEV4dGVuc2lvbiAqc2VuZGVyOwotKwlT b3VwV2Vic29ja2V0RXh0ZW5zaW9uICpyZWNlaXZlcjsKLSsJR0J5dGVzICpjb21wcmVzc2VkOwot KwlHQnl0ZXMgKm91dHB1dDsKLSsJR0Vycm9yICplcnJvciA9IE5VTEw7Ci0rCWd1aW50OCBoZWFk ZXIgPSAweDgyOwotKwotKwlzZW5kZXIgPSBnX29iamVjdF9uZXcgKFNPVVBfVFlQRV9XRUJTT0NL RVRfRVhURU5TSU9OX0RFRkxBVEUsIE5VTEwpOwotKwlnX2Fzc2VydF90cnVlIChzb3VwX3dlYnNv Y2tldF9leHRlbnNpb25fY29uZmlndXJlIChzZW5kZXIsCi0rCQkJCQkJCSAgIFNPVVBfV0VCU09D S0VUX0NPTk5FQ1RJT05fU0VSVkVSLAotKwkJCQkJCQkgICBOVUxMLCAmZXJyb3IpKTsKLSsJZ19h c3NlcnRfbm9fZXJyb3IgKGVycm9yKTsKLSsKLSsJcmVjZWl2ZXIgPSBnX29iamVjdF9uZXcgKFNP VVBfVFlQRV9XRUJTT0NLRVRfRVhURU5TSU9OX0RFRkxBVEUsIE5VTEwpOwotKwlnX2Fzc2VydF90 cnVlIChzb3VwX3dlYnNvY2tldF9leHRlbnNpb25fY29uZmlndXJlIChyZWNlaXZlciwKLSsJCQkJ CQkJICAgU09VUF9XRUJTT0NLRVRfQ09OTkVDVElPTl9DTElFTlQsCi0rCQkJCQkJCSAgIE5VTEws ICZlcnJvcikpOwotKwlnX2Fzc2VydF9ub19lcnJvciAoZXJyb3IpOwotKwotKwljb21wcmVzc2Vk ID0gZ19ieXRlc19uZXdfdGFrZSAoZ19tYWxsb2MwIChjb25maWctPm91dHB1dF9zaXplKSwgY29u ZmlnLT5vdXRwdXRfc2l6ZSk7Ci0rCWNvbXByZXNzZWQgPSBzb3VwX3dlYnNvY2tldF9leHRlbnNp b25fcHJvY2Vzc19vdXRnb2luZ19tZXNzYWdlIChzZW5kZXIsICZoZWFkZXIsCi0rCQkJCQkJCQkJ Y29tcHJlc3NlZCwgJmVycm9yKTsKLSsJZ19hc3NlcnRfbm9fZXJyb3IgKGVycm9yKTsKLSsJZ19h c3NlcnRfbm9ubnVsbCAoY29tcHJlc3NlZCk7Ci0rCWdfYXNzZXJ0X3RydWUgKGhlYWRlciAmIDB4 NDApOwotKwlnX2Fzc2VydF9jbXB1aW50IChnX2J5dGVzX2dldF9zaXplIChjb21wcmVzc2VkKSwg PCwgY29uZmlnLT5vdXRwdXRfc2l6ZSk7Ci0rCi0rCW91dHB1dCA9IHNvdXBfd2Vic29ja2V0X2V4 dGVuc2lvbl9wcm9jZXNzX2luY29taW5nX21lc3NhZ2Vfd2l0aF9saW1pdCAocmVjZWl2ZXIsCi0r CQkJCQkJCQkJICAgICAgICZoZWFkZXIsCi0rCQkJCQkJCQkJICAgICAgIGNvbXByZXNzZWQsCi0r CQkJCQkJCQkJICAgICAgIGNvbmZpZy0+bWF4X291dHB1dF9zaXplLAotKwkJCQkJCQkJCSAgICAg ICAmZXJyb3IpOwotKwlpZiAoY29uZmlnLT5leHBlY3RfdG9vX2JpZykgewotKwkJZ19hc3NlcnRf bnVsbCAob3V0cHV0KTsKLSsJCWdfYXNzZXJ0X2Vycm9yIChlcnJvciwgU09VUF9XRUJTT0NLRVRf RVJST1IsIFNPVVBfV0VCU09DS0VUX0NMT1NFX1RPT19CSUcpOwotKwkJZ19jbGVhcl9lcnJvciAo JmVycm9yKTsKLSsJfSBlbHNlIHsKLSsJCWdfYXNzZXJ0X25vX2Vycm9yIChlcnJvcik7Ci0rCQln X2Fzc2VydF9ub25udWxsIChvdXRwdXQpOwotKwkJZ19hc3NlcnRfY21wdWludCAoZ19ieXRlc19n ZXRfc2l6ZSAob3V0cHV0KSwgPT0sIGNvbmZpZy0+b3V0cHV0X3NpemUpOwotKwkJZ19ieXRlc191 bnJlZiAob3V0cHV0KTsKLSsJfQotKwotKwlnX29iamVjdF91bnJlZiAocmVjZWl2ZXIpOwotKwln X29iamVjdF91bnJlZiAoc2VuZGVyKTsKLSt9Ci0rCi0rc3RhdGljIGNvbnN0IERlZmxhdGVPdXRw dXRMaW1pdFRlc3QgZGVmbGF0ZV9vdXRwdXRfYmVsb3dfbGltaXQgPSB7Ci0rCTQwOTUsIDQwOTYs IEZBTFNFCi0rfTsKLStzdGF0aWMgY29uc3QgRGVmbGF0ZU91dHB1dExpbWl0VGVzdCBkZWZsYXRl X291dHB1dF9hdF9saW1pdCA9IHsKLSsJNDA5NiwgNDA5NiwgRkFMU0UKLSt9OwotK3N0YXRpYyBj b25zdCBEZWZsYXRlT3V0cHV0TGltaXRUZXN0IGRlZmxhdGVfb3V0cHV0X292ZXJfbGltaXQgPSB7 Ci0rCTQwOTcsIDQwOTYsIFRSVUUKLSt9OwotKwotK3R5cGVkZWYgc3RydWN0IHsKLSsJZ2Jvb2xl YW4gc2VydmVyX3JlY2VpdmVzOwotKwlnYm9vbGVhbiBjb25maWd1cmVfbGltaXQ7Ci0rfSBEZWZs YXRlTWVzc2FnZUxpbWl0VGVzdDsKLSsKLStzdGF0aWMgdm9pZAotK3Rlc3RfZGVmbGF0ZV9leGNl ZWRzX21lc3NhZ2VfbGltaXQgKFRlc3QgKnRlc3QsCi0rCQkJCSAgICBnY29uc3Rwb2ludGVyIGRh dGEpCi0rewotKwljb25zdCBEZWZsYXRlTWVzc2FnZUxpbWl0VGVzdCAqY29uZmlnID0gZGF0YTsK LSsJU291cFdlYnNvY2tldENvbm5lY3Rpb24gKnJlY2VpdmVyOwotKwlTb3VwV2Vic29ja2V0Q29u bmVjdGlvbiAqc2VuZGVyOwotKwlHQnl0ZXMgKnJlY2VpdmVkID0gTlVMTDsKLSsJR0Vycm9yICpl cnJvciA9IE5VTEw7Ci0rCWd1aW50OCAqbWVzc2FnZTsKLSsKLSsJaWYgKGNvbmZpZy0+c2VydmVy X3JlY2VpdmVzKSB7Ci0rCQlyZWNlaXZlciA9IHRlc3QtPnNlcnZlcjsKLSsJCXNlbmRlciA9IHRl c3QtPmNsaWVudDsKLSsJfSBlbHNlIHsKLSsJCXJlY2VpdmVyID0gdGVzdC0+Y2xpZW50OwotKwkJ c2VuZGVyID0gdGVzdC0+c2VydmVyOwotKwl9Ci0rCi0rCWlmIChjb25maWctPmNvbmZpZ3VyZV9s aW1pdCkKLSsJCXNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fc2V0X21heF90b3RhbF9tZXNzYWdl X3NpemUgKHJlY2VpdmVyLCAxMjggKiAxMDI0KTsKLSsKLSsJZ19hc3NlcnRfY21wdWludCAoc291 cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9nZXRfbWF4X3RvdGFsX21lc3NhZ2Vfc2l6ZSAocmVjZWl2 ZXIpLAotKwkJCSAgPT0sIDEyOCAqIDEwMjQpOwotKwotKwlnX3NpZ25hbF9jb25uZWN0IChyZWNl aXZlciwgImVycm9yIiwgR19DQUxMQkFDSyAob25fZXJyb3JfY29weV9vbmNlKSwgJmVycm9yKTsK LSsJZ19zaWduYWxfY29ubmVjdCAocmVjZWl2ZXIsICJtZXNzYWdlIiwgR19DQUxMQkFDSyAob25f YmluYXJ5X21lc3NhZ2UpLCAmcmVjZWl2ZWQpOwotKwotKwltZXNzYWdlID0gZ19tYWxsb2MwICgx MjggKiAxMDI0ICsgMSk7Ci0rCXNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fc2VuZF9iaW5hcnkg KHNlbmRlciwgbWVzc2FnZSwgMTI4ICogMTAyNCArIDEpOwotKwlnX2ZyZWUgKG1lc3NhZ2UpOwot KwotKwlXQUlUX1VOVElMIChlcnJvciAhPSBOVUxMIHx8IHJlY2VpdmVkICE9IE5VTEwpOwotKwln X2Fzc2VydF9udWxsIChyZWNlaXZlZCk7Ci0rCWdfYXNzZXJ0X2Vycm9yIChlcnJvciwgU09VUF9X RUJTT0NLRVRfRVJST1IsIFNPVVBfV0VCU09DS0VUX0NMT1NFX1RPT19CSUcpOwotKwlnX2NsZWFy X2Vycm9yICgmZXJyb3IpOwotKwotKwlXQUlUX1VOVElMIChzb3VwX3dlYnNvY2tldF9jb25uZWN0 aW9uX2dldF9zdGF0ZSAoc2VuZGVyKSA9PSBTT1VQX1dFQlNPQ0tFVF9TVEFURV9DTE9TRUQpOwot KwlnX2Fzc2VydF9udWxsIChyZWNlaXZlZCk7Ci0rCWdfYXNzZXJ0X2NtcHVpbnQgKHNvdXBfd2Vi c29ja2V0X2Nvbm5lY3Rpb25fZ2V0X2Nsb3NlX2NvZGUgKHNlbmRlciksCi0rCQkJICA9PSwgU09V UF9XRUJTT0NLRVRfQ0xPU0VfVE9PX0JJRyk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rdGVzdF9k ZWZsYXRlX2RlZmF1bHRfdW5saW1pdGVkX21lc3NhZ2Vfc2l6ZSAoVGVzdCAqdGVzdCwKLSsJCQkJ CSAgICAgZ2NvbnN0cG9pbnRlciBkYXRhKQotK3sKLSsJY29uc3QgRGVmbGF0ZU1lc3NhZ2VMaW1p dFRlc3QgKmNvbmZpZyA9IGRhdGE7Ci0rCVNvdXBXZWJzb2NrZXRDb25uZWN0aW9uICpyZWNlaXZl cjsKLSsJU291cFdlYnNvY2tldENvbm5lY3Rpb24gKnNlbmRlcjsKLSsJR0J5dGVzICpyZWNlaXZl ZCA9IE5VTEw7Ci0rCWd1aW50OCAqbWVzc2FnZTsKLSsKLSsJaWYgKGNvbmZpZy0+c2VydmVyX3Jl Y2VpdmVzKSB7Ci0rCQlyZWNlaXZlciA9IHRlc3QtPnNlcnZlcjsKLSsJCXNlbmRlciA9IHRlc3Qt PmNsaWVudDsKLSsJfSBlbHNlIHsKLSsJCXJlY2VpdmVyID0gdGVzdC0+Y2xpZW50OwotKwkJc2Vu ZGVyID0gdGVzdC0+c2VydmVyOwotKwl9Ci0rCi0rCWdfYXNzZXJ0X2ZhbHNlIChjb25maWctPmNv bmZpZ3VyZV9saW1pdCk7Ci0rCWdfYXNzZXJ0X2NtcHVpbnQgKHNvdXBfd2Vic29ja2V0X2Nvbm5l Y3Rpb25fZ2V0X21heF90b3RhbF9tZXNzYWdlX3NpemUgKHJlY2VpdmVyKSwgPT0sIDApOwotKwln X3NpZ25hbF9jb25uZWN0IChyZWNlaXZlciwgIm1lc3NhZ2UiLCBHX0NBTExCQUNLIChvbl9iaW5h cnlfbWVzc2FnZSksICZyZWNlaXZlZCk7Ci0rCi0rCW1lc3NhZ2UgPSBnX21hbGxvYzAgKDEyOCAq IDEwMjQgKyAxKTsKLSsJc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9zZW5kX2JpbmFyeSAoc2Vu ZGVyLCBtZXNzYWdlLCAxMjggKiAxMDI0ICsgMSk7Ci0rCWdfZnJlZSAobWVzc2FnZSk7Ci0rCi0r CVdBSVRfVU5USUwgKHJlY2VpdmVkICE9IE5VTEwpOwotKwlnX2Fzc2VydF9jbXB1aW50IChnX2J5 dGVzX2dldF9zaXplIChyZWNlaXZlZCksID09LCAxMjggKiAxMDI0ICsgMSk7Ci0rCWdfYnl0ZXNf dW5yZWYgKHJlY2VpdmVkKTsKLSt9Ci0rCi0rc3RhdGljIGNvbnN0IERlZmxhdGVNZXNzYWdlTGlt aXRUZXN0IGRlZmxhdGVfc2VydmVyX3JlY2VpdmVzX2NvbmZpZ3VyZWQgPSB7IFRSVUUsIFRSVUUg fTsKLStzdGF0aWMgY29uc3QgRGVmbGF0ZU1lc3NhZ2VMaW1pdFRlc3QgZGVmbGF0ZV9jbGllbnRf cmVjZWl2ZXNfY29uZmlndXJlZCA9IHsgRkFMU0UsIFRSVUUgfTsKLStzdGF0aWMgY29uc3QgRGVm bGF0ZU1lc3NhZ2VMaW1pdFRlc3QgZGVmbGF0ZV9zZXJ2ZXJfcmVjZWl2ZXNfZGVmYXVsdCA9IHsg VFJVRSwgRkFMU0UgfTsKLStzdGF0aWMgY29uc3QgRGVmbGF0ZU1lc3NhZ2VMaW1pdFRlc3QgZGVm bGF0ZV9jbGllbnRfcmVjZWl2ZXNfZGVmYXVsdCA9IHsgRkFMU0UsIEZBTFNFIH07Ci0rCi0gc3Rh dGljIHZvaWQKLSBkb19kZWZsYXRlICh6X3N0cmVhbSAqenN0cmVhbSwKLSAgICAgICAgICAgICBj b25zdCBjaGFyICpzdHIsCi1AQCAtMTc3MSw2ICsxOTk3LDMxIEBAIHRlc3RfcmVjZWl2ZV9mcmFn bWVudGVkIChUZXN0ICp0ZXN0LAotIAlXQUlUX1VOVElMIChzb3VwX3dlYnNvY2tldF9jb25uZWN0 aW9uX2dldF9zdGF0ZSAodGVzdC0+Y2xpZW50KSA9PSBTT1VQX1dFQlNPQ0tFVF9TVEFURV9DTE9T RUQpOwotIH0KLSAKLStzdGF0aWMgdm9pZAotK3Rlc3RfZGVmbGF0ZV9yZWNlaXZlX2ZyYWdtZW50 ZWRfdG9vX2JpZyAoVGVzdCAqdGVzdCwKLSsJCQkJCSBnY29uc3Rwb2ludGVyIGRhdGEpCi0rewot KwlHVGhyZWFkICp0aHJlYWQ7Ci0rCUdCeXRlcyAqcmVjZWl2ZWQgPSBOVUxMOwotKwlHRXJyb3Ig KmVycm9yID0gTlVMTDsKLSsKLSsJc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9zZXRfbWF4X3Rv dGFsX21lc3NhZ2Vfc2l6ZSAodGVzdC0+Y2xpZW50LCAxMik7Ci0rCWdfc2lnbmFsX2Nvbm5lY3Qg KHRlc3QtPmNsaWVudCwgImVycm9yIiwgR19DQUxMQkFDSyAob25fZXJyb3JfY29weV9vbmNlKSwg JmVycm9yKTsKLSsJZ19zaWduYWxfY29ubmVjdCAodGVzdC0+Y2xpZW50LCAibWVzc2FnZSIsIEdf Q0FMTEJBQ0sgKG9uX3RleHRfbWVzc2FnZSksICZyZWNlaXZlZCk7Ci0rCi0rCXRocmVhZCA9IGdf dGhyZWFkX25ldyAoImRlZmxhdGUtZnJhZ21lbnQtdG9vLWJpZy10aHJlYWQiLAotKwkJCSAgICAg ICBzZW5kX2NvbXByZXNzZWRfZnJhZ21lbnRzX3NlcnZlcl90aHJlYWQsCi0rCQkJICAgICAgIHRl c3QpOwotKwotKwlXQUlUX1VOVElMIChlcnJvciAhPSBOVUxMIHx8IHJlY2VpdmVkICE9IE5VTEwp OwotKwlnX2Fzc2VydF9udWxsIChyZWNlaXZlZCk7Ci0rCWdfYXNzZXJ0X2Vycm9yIChlcnJvciwg U09VUF9XRUJTT0NLRVRfRVJST1IsIFNPVVBfV0VCU09DS0VUX0NMT1NFX1RPT19CSUcpOwotKwln X2NsZWFyX2Vycm9yICgmZXJyb3IpOwotKwotKwlnX3RocmVhZF9qb2luICh0aHJlYWQpOwotKwlX QUlUX1VOVElMIChzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX2dldF9zdGF0ZSAodGVzdC0+Y2xp ZW50KSA9PSBTT1VQX1dFQlNPQ0tFVF9TVEFURV9DTE9TRUQpOwotK30KLSsKLSB0eXBlZGVmIHN0 cnVjdCB7Ci0gCVRlc3QgKnRlc3Q7Ci0gCWNvbnN0IGNoYXIgKmhlYWRlcjsKLUBAIC0yNzk4LDYg KzMwNDksMTggQEAgbWFpbiAoaW50IGFyZ2MsCi0gCQkgICAgdGVzdF9kZWZsYXRlX25lZ290aWF0 ZV9kaXJlY3QsCi0gCQkgICAgTlVMTCk7Ci0gCi0rCWdfdGVzdF9hZGRfZnVuYyAoIi93ZWJzb2Nr ZXQvZXh0ZW5zaW9uL2luY29taW5nLWxpbWl0LWxlZ2FjeS1mYWxsYmFjayIsCi0rCQkJIHRlc3Rf d2Vic29ja2V0X2V4dGVuc2lvbl9saW1pdF9mYWxsYmFjayk7Ci0rCWdfdGVzdF9hZGRfZGF0YV9m dW5jICgiL3dlYnNvY2tldC9kZWZsYXRlL291dHB1dC1saW1pdC9iZWxvdyIsCi0rCQkJICAgICAg JmRlZmxhdGVfb3V0cHV0X2JlbG93X2xpbWl0LAotKwkJCSAgICAgIHRlc3RfZGVmbGF0ZV9vdXRw dXRfbGltaXQpOwotKwlnX3Rlc3RfYWRkX2RhdGFfZnVuYyAoIi93ZWJzb2NrZXQvZGVmbGF0ZS9v dXRwdXQtbGltaXQvZXhhY3QiLAotKwkJCSAgICAgICZkZWZsYXRlX291dHB1dF9hdF9saW1pdCwK LSsJCQkgICAgICB0ZXN0X2RlZmxhdGVfb3V0cHV0X2xpbWl0KTsKLSsJZ190ZXN0X2FkZF9kYXRh X2Z1bmMgKCIvd2Vic29ja2V0L2RlZmxhdGUvb3V0cHV0LWxpbWl0L292ZXIiLAotKwkJCSAgICAg ICZkZWZsYXRlX291dHB1dF9vdmVyX2xpbWl0LAotKwkJCSAgICAgIHRlc3RfZGVmbGF0ZV9vdXRw dXRfbGltaXQpOwotKwotIAlnX3Rlc3RfYWRkICgiL3dlYnNvY2tldC9kaXJlY3QvZGVmbGF0ZS1k aXNhYmxlZC1pbi1tZXNzYWdlIiwgVGVzdCwgTlVMTCwgTlVMTCwKLSAJCSAgICB0ZXN0X2RlZmxh dGVfZGlzYWJsZWRfaW5fbWVzc2FnZV9kaXJlY3QsCi0gCQkgICAgTlVMTCk7Ci1AQCAtMjgyMyw2 ICszMDg2LDM3IEBAIG1haW4gKGludCBhcmdjLAotIAkJICAgIHRlc3Rfc2VuZF9zZXJ2ZXJfdG9f Y2xpZW50LAotIAkJICAgIHRlYXJkb3duX3NvdXBfY29ubmVjdGlvbik7Ci0gCi0rCWdfdGVzdF9h ZGQgKCIvd2Vic29ja2V0L2RpcmVjdC9kZWZsYXRlLWNvbmZpZ3VyZWQtbGltaXQvY2xpZW50LXRv LXNlcnZlciIsCi0rCQkgICAgVGVzdCwgJmRlZmxhdGVfc2VydmVyX3JlY2VpdmVzX2NvbmZpZ3Vy ZWQsCi0rCQkgICAgc2V0dXBfZGlyZWN0X2Nvbm5lY3Rpb25fd2l0aF9leHRlbnNpb25zLAotKwkJ ICAgIHRlc3RfZGVmbGF0ZV9leGNlZWRzX21lc3NhZ2VfbGltaXQsCi0rCQkgICAgdGVhcmRvd25f ZGlyZWN0X2Nvbm5lY3Rpb24pOwotKwlnX3Rlc3RfYWRkICgiL3dlYnNvY2tldC9kaXJlY3QvZGVm bGF0ZS1jb25maWd1cmVkLWxpbWl0L3NlcnZlci10by1jbGllbnQiLAotKwkJICAgIFRlc3QsICZk ZWZsYXRlX2NsaWVudF9yZWNlaXZlc19jb25maWd1cmVkLAotKwkJICAgIHNldHVwX2RpcmVjdF9j b25uZWN0aW9uX3dpdGhfZXh0ZW5zaW9ucywKLSsJCSAgICB0ZXN0X2RlZmxhdGVfZXhjZWVkc19t ZXNzYWdlX2xpbWl0LAotKwkJICAgIHRlYXJkb3duX2RpcmVjdF9jb25uZWN0aW9uKTsKLSsJZ190 ZXN0X2FkZCAoIi93ZWJzb2NrZXQvc291cC9kZWZsYXRlLWRlZmF1bHQtc2VydmVyLWxpbWl0L2Ns aWVudC10by1zZXJ2ZXIiLAotKwkJICAgIFRlc3QsICZkZWZsYXRlX3NlcnZlcl9yZWNlaXZlc19k ZWZhdWx0LAotKwkJICAgIHNldHVwX3NvdXBfY29ubmVjdGlvbl93aXRoX2V4dGVuc2lvbnMsCi0r CQkgICAgdGVzdF9kZWZsYXRlX2V4Y2VlZHNfbWVzc2FnZV9saW1pdCwKLSsJCSAgICB0ZWFyZG93 bl9zb3VwX2Nvbm5lY3Rpb24pOwotKwlnX3Rlc3RfYWRkICgiL3dlYnNvY2tldC9zb3VwL2RlZmxh dGUtY29uZmlndXJlZC1jbGllbnQtbGltaXQvc2VydmVyLXRvLWNsaWVudCIsCi0rCQkgICAgVGVz dCwgJmRlZmxhdGVfY2xpZW50X3JlY2VpdmVzX2NvbmZpZ3VyZWQsCi0rCQkgICAgc2V0dXBfc291 cF9jb25uZWN0aW9uX3dpdGhfZXh0ZW5zaW9ucywKLSsJCSAgICB0ZXN0X2RlZmxhdGVfZXhjZWVk c19tZXNzYWdlX2xpbWl0LAotKwkJICAgIHRlYXJkb3duX3NvdXBfY29ubmVjdGlvbik7Ci0rCWdf dGVzdF9hZGQgKCIvd2Vic29ja2V0L2RpcmVjdC9kZWZsYXRlLWRlZmF1bHQtdW5saW1pdGVkL2Ns aWVudC10by1zZXJ2ZXIiLAotKwkJICAgIFRlc3QsICZkZWZsYXRlX3NlcnZlcl9yZWNlaXZlc19k ZWZhdWx0LAotKwkJICAgIHNldHVwX2RpcmVjdF9jb25uZWN0aW9uX3dpdGhfZXh0ZW5zaW9ucywK LSsJCSAgICB0ZXN0X2RlZmxhdGVfZGVmYXVsdF91bmxpbWl0ZWRfbWVzc2FnZV9zaXplLAotKwkJ ICAgIHRlYXJkb3duX2RpcmVjdF9jb25uZWN0aW9uKTsKLSsJZ190ZXN0X2FkZCAoIi93ZWJzb2Nr ZXQvZGlyZWN0L2RlZmxhdGUtZGVmYXVsdC11bmxpbWl0ZWQvc2VydmVyLXRvLWNsaWVudCIsCi0r CQkgICAgVGVzdCwgJmRlZmxhdGVfY2xpZW50X3JlY2VpdmVzX2RlZmF1bHQsCi0rCQkgICAgc2V0 dXBfZGlyZWN0X2Nvbm5lY3Rpb25fd2l0aF9leHRlbnNpb25zLAotKwkJICAgIHRlc3RfZGVmbGF0 ZV9kZWZhdWx0X3VubGltaXRlZF9tZXNzYWdlX3NpemUsCi0rCQkgICAgdGVhcmRvd25fZGlyZWN0 X2Nvbm5lY3Rpb24pOwotKwotIAlnX3Rlc3RfYWRkICgiL3dlYnNvY2tldC9kaXJlY3QvZGVmbGF0 ZS1zZW5kLWJpZy1wYWNrZXRzIiwgVGVzdCwgTlVMTCwKLSAJCSAgICBzZXR1cF9kaXJlY3RfY29u bmVjdGlvbl93aXRoX2V4dGVuc2lvbnMsCi0gCQkgICAgdGVzdF9zZW5kX2JpZ19wYWNrZXRzX2Rp cmVjdCwKLUBAIC0yODQ1LDYgKzMxMzksMTAgQEAgbWFpbiAoaW50IGFyZ2MsCi0gCQkgICAgc2V0 dXBfaGFsZl9kaXJlY3RfY29ubmVjdGlvbl93aXRoX2V4dGVuc2lvbnMsCi0gCQkgICAgdGVzdF9y ZWNlaXZlX2ZyYWdtZW50ZWQsCi0gCQkgICAgdGVhcmRvd25fZGlyZWN0X2Nvbm5lY3Rpb24pOwot KwlnX3Rlc3RfYWRkICgiL3dlYnNvY2tldC9kaXJlY3QvZGVmbGF0ZS1yZWNlaXZlLWZyYWdtZW50 ZWQtdG9vLWJpZyIsIFRlc3QsIE5VTEwsCi0rCQkgICAgc2V0dXBfaGFsZl9kaXJlY3RfY29ubmVj dGlvbl93aXRoX2V4dGVuc2lvbnMsCi0rCQkgICAgdGVzdF9kZWZsYXRlX3JlY2VpdmVfZnJhZ21l bnRlZF90b29fYmlnLAotKwkJICAgIHRlYXJkb3duX2RpcmVjdF9jb25uZWN0aW9uKTsKLSAJZ190 ZXN0X2FkZCAoIi93ZWJzb2NrZXQvZGlyZWN0L2RlZmxhdGUtcmVjZWl2ZS1mcmFnbWVudGVkLWVy cm9yIiwgVGVzdCwgTlVMTCwKLSAJCSAgICBzZXR1cF9oYWxmX2RpcmVjdF9jb25uZWN0aW9uX3dp dGhfZXh0ZW5zaW9ucywKLSAJCSAgICB0ZXN0X2RlZmxhdGVfcmVjZWl2ZV9mcmFnbWVudGVkX2Vy cm9yLAotLS0gCi1HaXRMYWIKLQoKZGlmZiAtLWdpdCBhL0NWRS0yMDI2LTE1NzExLnBhdGNoIGIv Q1ZFLTIwMjYtMTU3MTEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyYWI1 N2IuLjAwMDAwMDAKLS0tIGEvQ1ZFLTIwMjYtMTU3MTEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSwxNzIgKzAsMCBAQAotRnJvbSA2MGFhMWNlMmJkYzdiYjVkYTMzYmU5MDYyZjUwYmNlYzdkYjY3 ZmNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogWmF5ZCBSYWphYiA8emF5ZHJAYW1h em9uLmNvbT4KLURhdGU6IFRodSwgMTYgSnVsIDIwMjYgMDI6MzI6MTkgKzAwMDAKLVN1YmplY3Q6 IFtQQVRDSF0gd2Vic29ja2V0OiBSZWplY3Qgb3ZlcnNpemVkIGNvbnRyb2wgZnJhbWVzCi0KLVJG QyA2NDU1IHNlY3Rpb24gNS41IGxpbWl0cyBjb250cm9sIGZyYW1lIHBheWxvYWRzIHRvIDEyNSBi eXRlcy4KLVJlamVjdCBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCBpbmRpY2F0b3JzIGFzIHNvb24g YXMgdGhlIGJhc2UgaGVhZGVyIGlzCi1hdmFpbGFibGUsIGJlZm9yZSB3YWl0aW5nIGZvciBhZGRp dGlvbmFsIGxlbmd0aCBvciBwYXlsb2FkIGJ5dGVzLgotCi1BZGQgcmVncmVzc2lvbiBjb3ZlcmFn ZSBmb3IgYm90aCBleHRlbmRlZCBsZW5ndGggaW5kaWNhdG9ycyBhbmQgYm90aAotcmVjZWl2ZSBk aXJlY3Rpb25zLgotCi1UaGlzIGlzIENWRS0yMDI2LTE1NzExLgotCi1DbG9zZXMgIzUxNQotLS0t Ci0gbGlic291cC93ZWJzb2NrZXQvc291cC13ZWJzb2NrZXQtY29ubmVjdGlvbi5jIHwgICA3ICsr Ci0gdGVzdHMvd2Vic29ja2V0LXRlc3QuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMTEzICsr KysrKysrKysrKysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgMTIwIGluc2VydGlvbnMoKykKLQot ZGlmZiAtLWdpdCBhL2xpYnNvdXAvd2Vic29ja2V0L3NvdXAtd2Vic29ja2V0LWNvbm5lY3Rpb24u YyBiL2xpYnNvdXAvd2Vic29ja2V0L3NvdXAtd2Vic29ja2V0LWNvbm5lY3Rpb24uYwotaW5kZXgg MTRkY2Q2MzAuLmZmZDcxM2VmIDEwMDY0NAotLS0tIGEvbGlic291cC93ZWJzb2NrZXQvc291cC13 ZWJzb2NrZXQtY29ubmVjdGlvbi5jCi0rKysgYi9saWJzb3VwL3dlYnNvY2tldC9zb3VwLXdlYnNv Y2tldC1jb25uZWN0aW9uLmMKLUBAIC0xMDgyLDYgKzEwODIsMTMgQEAgcHJvY2Vzc19mcmFtZSAo U291cFdlYnNvY2tldENvbm5lY3Rpb24gKnNlbGYpCi0gICAgICAgICAgICAgICAgIHJldHVybiBG QUxTRTsKLSAgICAgICAgIH0KLSAKLSsJLyogUkZDIDY0NTUgc2VjdGlvbiA1LjUgbGltaXRzIGNv bnRyb2wgZnJhbWUgcGF5bG9hZHMgdG8gMTI1IGJ5dGVzLiAqLwotKwlpZiAoY29udHJvbCAmJiAo aGVhZGVyWzFdICYgMHg3ZikgPiAxMjUpIHsKLSsJCWdfZGVidWcgKCJyZWNlaXZlZCBvdmVyc2l6 ZWQgY29udHJvbCBmcmFtZSIpOwotKwkJcHJvdG9jb2xfZXJyb3JfYW5kX2Nsb3NlIChzZWxmKTsK LSsJCXJldHVybiBGQUxTRTsKLSsJfQotKwotIAlzd2l0Y2ggKGhlYWRlclsxXSAmIDB4N2YpIHsK LSAJY2FzZSAxMjY6Ci0gCQkvKiBJZiAxMjYsIHRoZSBmb2xsb3dpbmcgMiBieXRlcyBpbnRlcnBy ZXRlZCBhcyBhIDE2LWJpdAotZGlmZiAtLWdpdCBhL3Rlc3RzL3dlYnNvY2tldC10ZXN0LmMgYi90 ZXN0cy93ZWJzb2NrZXQtdGVzdC5jCi1pbmRleCBiOGY3MTMwMC4uZGIwODhhNTUgMTAwNjQ0Ci0t LS0gYS90ZXN0cy93ZWJzb2NrZXQtdGVzdC5jCi0rKysgYi90ZXN0cy93ZWJzb2NrZXQtdGVzdC5j Ci1AQCAtODM1LDYgKzgzNSw5OCBAQCB0ZXN0X3NlbmRfYmFkX2RhdGEgKFRlc3QgKnRlc3QsCi0g CWdfYXNzZXJ0X2NtcHVpbnQgKHNvdXBfd2Vic29ja2V0X2Nvbm5lY3Rpb25fZ2V0X2Nsb3NlX2Nv ZGUgKHRlc3QtPmNsaWVudCksID09LCBTT1VQX1dFQlNPQ0tFVF9DTE9TRV9CQURfREFUQSk7Ci0g fQotIAotK3N0YXRpYyBnYm9vbGVhbgotK29uX3RpbWVvdXRfc2V0X2ZsYWcgKGdwb2ludGVyIHVz ZXJfZGF0YSkKLSt7Ci0rCWdib29sZWFuICp0aW1lZF9vdXQgPSB1c2VyX2RhdGE7Ci0rCi0rCSp0 aW1lZF9vdXQgPSBUUlVFOwotKwotKwlyZXR1cm4gR19TT1VSQ0VfUkVNT1ZFOwotK30KLSsKLStz dGF0aWMgdm9pZAotK3dhaXRfZm9yX3dlYnNvY2tldF9lcnJvciAoR0Vycm9yICoqZXJyb3IpCi0r ewotKwlnYm9vbGVhbiB0aW1lZF9vdXQgPSBGQUxTRTsKLSsJZ3VpbnQgdGltZW91dF9pZDsKLSsK LSsJdGltZW91dF9pZCA9IGdfdGltZW91dF9hZGRfc2Vjb25kcyAoMSwgb25fdGltZW91dF9zZXRf ZmxhZywgJnRpbWVkX291dCk7Ci0rCVdBSVRfVU5USUwgKCplcnJvciAhPSBOVUxMIHx8IHRpbWVk X291dCk7Ci0rCi0rCWlmICghdGltZWRfb3V0KQotKwkJZ19zb3VyY2VfcmVtb3ZlICh0aW1lb3V0 X2lkKTsKLSsJZ19hc3NlcnRfZmFsc2UgKHRpbWVkX291dCk7Ci0rfQotKwotK3N0YXRpYyB2b2lk Ci0rd3JpdGVfb3ZlcnNpemVkX2NvbnRyb2xfZnJhbWVfaGVhZGVyIChHSU9TdHJlYW0gKmlvLAot KwkJCQkgICAgICBndWludDggbGVuZ3RoX2luZGljYXRvciwKLSsJCQkJICAgICAgZ2Jvb2xlYW4g bWFza2VkKQotK3sKLSsJZ3VpbnQ4IGZyYW1lW10gPSB7IDB4OGEsIGxlbmd0aF9pbmRpY2F0b3Ig fTsKLSsJR0Vycm9yICplcnJvciA9IE5VTEw7Ci0rCWdzaXplIHdyaXR0ZW47Ci0rCi0rCWdfYXNz ZXJ0X3RydWUgKGxlbmd0aF9pbmRpY2F0b3IgPT0gMTI2IHx8IGxlbmd0aF9pbmRpY2F0b3IgPT0g MTI3KTsKLSsKLSsJaWYgKG1hc2tlZCkKLSsJCWZyYW1lWzFdIHw9IDB4ODA7Ci0rCi0rCWdfb3V0 cHV0X3N0cmVhbV93cml0ZV9hbGwgKGdfaW9fc3RyZWFtX2dldF9vdXRwdXRfc3RyZWFtIChpbyks Ci0rCQkJCSAgIGZyYW1lLCBzaXplb2YgKGZyYW1lKSwgJndyaXR0ZW4sIE5VTEwsICZlcnJvcik7 Ci0rCWdfYXNzZXJ0X25vX2Vycm9yIChlcnJvcik7Ci0rCWdfYXNzZXJ0X2NtcHVpbnQgKHdyaXR0 ZW4sID09LCBzaXplb2YgKGZyYW1lKSk7Ci0rfQotKwotK3R5cGVkZWYgc3RydWN0IHsKLSsJZ3Vp bnQ4IGxlbmd0aF9pbmRpY2F0b3I7Ci0rCWdib29sZWFuIHNlcnZlcl9yZWNlaXZlczsKLSt9IE92 ZXJzaXplZENvbnRyb2xGcmFtZVRlc3Q7Ci0rCi0rc3RhdGljIHZvaWQKLSt0ZXN0X3JlY2VpdmVf b3ZlcnNpemVkX2NvbnRyb2xfZnJhbWUgKFRlc3QgKnRlc3QsCi0rCQkJCSAgICAgIGdjb25zdHBv aW50ZXIgZGF0YSkKLSt7Ci0rCWNvbnN0IE92ZXJzaXplZENvbnRyb2xGcmFtZVRlc3QgKmNvbmZp ZyA9IGRhdGE7Ci0rCVNvdXBXZWJzb2NrZXRDb25uZWN0aW9uICpyZWNlaXZlcjsKLSsJU291cFdl YnNvY2tldENvbm5lY3Rpb24gKnNlbmRlcjsKLSsJR0Vycm9yICplcnJvciA9IE5VTEw7Ci0rCUdJ T1N0cmVhbSAqaW87Ci0rCWd1bG9uZyBlcnJvcl9pZDsKLSsJZ2Jvb2xlYW4gY2xvc2VfZXZlbnQg PSBGQUxTRTsKLSsKLSsJaWYgKGNvbmZpZy0+c2VydmVyX3JlY2VpdmVzKSB7Ci0rCQlyZWNlaXZl ciA9IHRlc3QtPnNlcnZlcjsKLSsJCXNlbmRlciA9IHRlc3QtPmNsaWVudDsKLSsJfSBlbHNlIHsK LSsJCXJlY2VpdmVyID0gdGVzdC0+Y2xpZW50OwotKwkJc2VuZGVyID0gdGVzdC0+c2VydmVyOwot Kwl9Ci0rCi0rCWdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyAocmVjZWl2ZXIs IG9uX2Vycm9yX25vdF9yZWFjaGVkLCBOVUxMKTsKLSsJZXJyb3JfaWQgPSBnX3NpZ25hbF9jb25u ZWN0IChyZWNlaXZlciwgImVycm9yIiwgR19DQUxMQkFDSyAob25fZXJyb3JfY29weSksICZlcnJv cik7Ci0rCWdfc2lnbmFsX2Nvbm5lY3QgKHNlbmRlciwgImNsb3NlZCIsIEdfQ0FMTEJBQ0sgKG9u X2Nsb3NlX3NldF9mbGFnKSwgJmNsb3NlX2V2ZW50KTsKLSsKLSsJaW8gPSBzb3VwX3dlYnNvY2tl dF9jb25uZWN0aW9uX2dldF9pb19zdHJlYW0gKHNlbmRlcik7Ci0rCXdyaXRlX292ZXJzaXplZF9j b250cm9sX2ZyYW1lX2hlYWRlciAoaW8sIGNvbmZpZy0+bGVuZ3RoX2luZGljYXRvciwKLSsJCQkJ CSAgICAgIGNvbmZpZy0+c2VydmVyX3JlY2VpdmVzKTsKLSsJd2FpdF9mb3Jfd2Vic29ja2V0X2Vy cm9yICgmZXJyb3IpOwotKwlnX2Fzc2VydF9lcnJvciAoZXJyb3IsIFNPVVBfV0VCU09DS0VUX0VS Uk9SLCBTT1VQX1dFQlNPQ0tFVF9DTE9TRV9QUk9UT0NPTF9FUlJPUik7Ci0rCWdfY2xlYXJfZXJy b3IgKCZlcnJvcik7Ci0rCWdfc2lnbmFsX2hhbmRsZXJfZGlzY29ubmVjdCAocmVjZWl2ZXIsIGVy cm9yX2lkKTsKLSsKLSsJV0FJVF9VTlRJTCAoc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9nZXRf c3RhdGUgKHNlbmRlcikgPT0gU09VUF9XRUJTT0NLRVRfU1RBVEVfQ0xPU0VEKTsKLSsJZ19hc3Nl cnRfdHJ1ZSAoY2xvc2VfZXZlbnQpOwotKwlnX2Fzc2VydF9jbXB1aW50IChzb3VwX3dlYnNvY2tl dF9jb25uZWN0aW9uX2dldF9jbG9zZV9jb2RlIChzZW5kZXIpLCA9PSwKLSsJCQkgIFNPVVBfV0VC U09DS0VUX0NMT1NFX1BST1RPQ09MX0VSUk9SKTsKLSt9Ci0rCi0rc3RhdGljIGNvbnN0IE92ZXJz aXplZENvbnRyb2xGcmFtZVRlc3Qgb3ZlcnNpemVkX2NvbnRyb2xfZnJhbWVfMTZfc2VydmVyID0g eyAxMjYsIFRSVUUgfTsKLStzdGF0aWMgY29uc3QgT3ZlcnNpemVkQ29udHJvbEZyYW1lVGVzdCBv dmVyc2l6ZWRfY29udHJvbF9mcmFtZV82NF9zZXJ2ZXIgPSB7IDEyNywgVFJVRSB9OwotK3N0YXRp YyBjb25zdCBPdmVyc2l6ZWRDb250cm9sRnJhbWVUZXN0IG92ZXJzaXplZF9jb250cm9sX2ZyYW1l XzE2X2NsaWVudCA9IHsgMTI2LCBGQUxTRSB9OwotK3N0YXRpYyBjb25zdCBPdmVyc2l6ZWRDb250 cm9sRnJhbWVUZXN0IG92ZXJzaXplZF9jb250cm9sX2ZyYW1lXzY0X2NsaWVudCA9IHsgMTI3LCBG QUxTRSB9OwotKwotIHN0YXRpYyBjb25zdCBjaGFyICpuZWdvdGlhdGVfY2xpZW50X3Byb3RvY29s c1tdID0geyAiYmJiIiwgImNjYyIsIE5VTEwgfTsKLSBzdGF0aWMgY29uc3QgY2hhciAqbmVnb3Rp YXRlX3NlcnZlcl9wcm90b2NvbHNbXSA9IHsgImFhYSIsICJiYmIiLCAiY2NjIiwgTlVMTCB9Owot IHN0YXRpYyBjb25zdCBjaGFyICpuZWdvdGlhdGVkX3Byb3RvY29sID0gImJiYiI7Ci1AQCAtMjU3 NCw2ICsyNjY2LDI3IEBAIG1haW4gKGludCBhcmdjLAotIAkJICAgIHRlc3Rfc2VuZF9iYWRfZGF0 YSwKLSAJCSAgICB0ZWFyZG93bl9zb3VwX2Nvbm5lY3Rpb24pOwotIAotKwlnX3Rlc3RfYWRkICgi L3dlYnNvY2tldC9kaXJlY3Qvc2VydmVyLXJlY2VpdmUtb3ZlcnNpemVkLWNvbnRyb2wtZnJhbWUv MTYtYml0IiwKLSsJCSAgICBUZXN0LCAmb3ZlcnNpemVkX2NvbnRyb2xfZnJhbWVfMTZfc2VydmVy LAotKwkJICAgIHNldHVwX2RpcmVjdF9jb25uZWN0aW9uLAotKwkJICAgIHRlc3RfcmVjZWl2ZV9v dmVyc2l6ZWRfY29udHJvbF9mcmFtZSwKLSsJCSAgICB0ZWFyZG93bl9kaXJlY3RfY29ubmVjdGlv bik7Ci0rCWdfdGVzdF9hZGQgKCIvd2Vic29ja2V0L2RpcmVjdC9zZXJ2ZXItcmVjZWl2ZS1vdmVy c2l6ZWQtY29udHJvbC1mcmFtZS82NC1iaXQiLAotKwkJICAgIFRlc3QsICZvdmVyc2l6ZWRfY29u dHJvbF9mcmFtZV82NF9zZXJ2ZXIsCi0rCQkgICAgc2V0dXBfZGlyZWN0X2Nvbm5lY3Rpb24sCi0r CQkgICAgdGVzdF9yZWNlaXZlX292ZXJzaXplZF9jb250cm9sX2ZyYW1lLAotKwkJICAgIHRlYXJk b3duX2RpcmVjdF9jb25uZWN0aW9uKTsKLSsJZ190ZXN0X2FkZCAoIi93ZWJzb2NrZXQvZGlyZWN0 L2NsaWVudC1yZWNlaXZlLW92ZXJzaXplZC1jb250cm9sLWZyYW1lLzE2LWJpdCIsCi0rCQkgICAg VGVzdCwgJm92ZXJzaXplZF9jb250cm9sX2ZyYW1lXzE2X2NsaWVudCwKLSsJCSAgICBzZXR1cF9k aXJlY3RfY29ubmVjdGlvbiwKLSsJCSAgICB0ZXN0X3JlY2VpdmVfb3ZlcnNpemVkX2NvbnRyb2xf ZnJhbWUsCi0rCQkgICAgdGVhcmRvd25fZGlyZWN0X2Nvbm5lY3Rpb24pOwotKwlnX3Rlc3RfYWRk ICgiL3dlYnNvY2tldC9kaXJlY3QvY2xpZW50LXJlY2VpdmUtb3ZlcnNpemVkLWNvbnRyb2wtZnJh bWUvNjQtYml0IiwKLSsJCSAgICBUZXN0LCAmb3ZlcnNpemVkX2NvbnRyb2xfZnJhbWVfNjRfY2xp ZW50LAotKwkJICAgIHNldHVwX2RpcmVjdF9jb25uZWN0aW9uLAotKwkJICAgIHRlc3RfcmVjZWl2 ZV9vdmVyc2l6ZWRfY29udHJvbF9mcmFtZSwKLSsJCSAgICB0ZWFyZG93bl9kaXJlY3RfY29ubmVj dGlvbik7Ci0rCi0gCWdfdGVzdF9hZGQgKCIvd2Vic29ja2V0L2RpcmVjdC9jbG9zZS1jbGVhbi1j bGllbnQiLCBUZXN0LCBOVUxMLCBOVUxMLAotIAkJICAgIHRlc3RfY2xvc2VfY2xlYW5fY2xpZW50 X2RpcmVjdCwKLSAJCSAgICBOVUxMKTsKLS0tIAotR2l0TGFiCi0KCmRpZmYgLS1naXQgYS9DVkUt MjAyNi0xNTcxMi5wYXRjaCBiL0NWRS0yMDI2LTE1NzEyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA1NjE2ZGVjLi4wMDAwMDAwCi0tLSBhL0NWRS0yMDI2LTE1NzEyLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotRnJvbSAzYTZmYjU2YTBjYmE0MmQxMWY1 ZmQxZGI2ZGVkY2M3YzJlOTI3NTdiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWlr ZSBHb3JzZSA8bWdvcnNlQHN1c2UuY29tPgotRGF0ZTogRnJpLCA0IFNlcCAyMDI2IDE0OjA1OjA0 IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGh0dHAyOiBEb24ndCBhc3N1bWUgdGhhdCBHT0FXQVkg b3BhcXVlIGRhdGEgaXMgTlVMLXRlcm1pbmF0ZWQKLQotbmdodHRwMiBhbGxvY2F0ZXMgZnJhbWUt PmdvYXdheS5vcGFxdWVfZGF0YSB3aXRoIGV4YWN0bHkgb3BhcXVlX2RhdGFfbGVuCi1ieXRlcyBh bmQgbm8gdGVybWluYXRvciwgc28gcGFzc2luZyBpdCB0byBhICIlcyIgZm9ybWF0IGluIGgyX2Rl YnVnKCkKLXJlYWRzIHBhc3QgdGhlIGVuZCBvZiB0aGUgYnVmZmVyIHdoZW4gZGVidWcgbG9nZ2lu ZyBpcyBlbmFibGVkLgotCi1Vc2UgIiUuKnMiIHdpdGggb3BhcXVlX2RhdGFfbGVuIGFzIHRoZSBw cmVjaXNpb24gc28gdGhlIHJlYWQgaXMgYm91bmRlZAotd2l0aG91dCBhbGxvY2F0aW5nIGEgY29w eS4KLQotQ2xvc2VzICM1NDAKLS0tLQotIGxpYnNvdXAvaHR0cDIvc291cC1jbGllbnQtbWVzc2Fn ZS1pby1odHRwMi5jIHwgNSArKystLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWJzb3VwL2h0dHAyL3NvdXAtY2xpZW50 LW1lc3NhZ2UtaW8taHR0cDIuYyBiL2xpYnNvdXAvaHR0cDIvc291cC1jbGllbnQtbWVzc2FnZS1p by1odHRwMi5jCi1pbmRleCBhYjUyMDAzZC4uYjY3NDI5MjQgMTAwNjQ0Ci0tLS0gYS9saWJzb3Vw L2h0dHAyL3NvdXAtY2xpZW50LW1lc3NhZ2UtaW8taHR0cDIuYwotKysrIGIvbGlic291cC9odHRw Mi9zb3VwLWNsaWVudC1tZXNzYWdlLWlvLWh0dHAyLmMKLUBAIC04MTMsMTAgKzgxMywxMSBAQCBv bl9mcmFtZV9yZWN2X2NhbGxiYWNrIChuZ2h0dHAyX3Nlc3Npb24gICAgICpzZXNzaW9uLAotIAot ICAgICAgICAgICAgICAgICBzd2l0Y2ggKGZyYW1lLT5oZC50eXBlKSB7Ci0gICAgICAgICAgICAg ICAgIGNhc2UgTkdIVFRQMl9HT0FXQVk6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgaDJfZGVi dWcgKGlvLCBOVUxMLCAiW1JFQ1ZdIEdPQVdBWTogZXJyb3I9JXMsIGxhc3Rfc3RyZWFtX2lkPSVk ICVzIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICBoMl9kZWJ1ZyAoaW8sIE5VTEwsICJbUkVD Vl0gR09BV0FZOiBlcnJvcj0lcywgbGFzdF9zdHJlYW1faWQ9JWQgJS4qcyIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5naHR0cDJfaHR0cDJfc3RyZXJyb3IgKGZyYW1lLT5n b2F3YXkuZXJyb3JfY29kZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZy YW1lLT5nb2F3YXkubGFzdF9zdHJlYW1faWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZyYW1lLT5nb2F3YXkub3BhcXVlX2RhdGEgPyAoY2hhciAqKWZyYW1lLT5nb2F3YXku b3BhcXVlX2RhdGEgOiAiIik7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChp bnQpZnJhbWUtPmdvYXdheS5vcGFxdWVfZGF0YV9sZW4sCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZyYW1lLT5nb2F3YXkub3BhcXVlX2RhdGEgPyAoY29uc3QgY2hhciAqKWZy YW1lLT5nb2F3YXkub3BhcXVlX2RhdGEgOiAiIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg aGFuZGxlX2dvYXdheSAoaW8sIGZyYW1lLT5nb2F3YXkuZXJyb3JfY29kZSwgZnJhbWUtPmdvYXdh eS5sYXN0X3N0cmVhbV9pZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaW8tPmlzX3NodXRk b3duID0gVFJVRTsKLSAgICAgICAgICAgICAgICAgICAgICAgICBzb3VwX2NsaWVudF9tZXNzYWdl X2lvX2h0dHAyX3Rlcm1pbmF0ZV9zZXNzaW9uIChpbyk7Ci0tLSAKLUdpdExhYgotCgpkaWZmIC0t Z2l0IGEvQ1ZFLTIwMjYtMTU3MTMucGF0Y2ggYi9DVkUtMjAyNi0xNTcxMy5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWY4NGViYi4uMDAwMDAwMAotLS0gYS9DVkUtMjAyNi0x NTcxMy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE0OCArMCwwIEBACi1Gcm9tIDI0ZmI2NDVm YTk0OWVjZTdkN2UxMDM2M2I3N2NmMmQ1ZmEyYzI0NjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBNaWxhbiBDcmhhIDxtY3JoYUByZWRoYXQuY29tPgotRGF0ZTogRnJpLCA0IFNlcCAy MDI2IDEwOjM0OjIyICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGNhY2hlOiBSZWplY3QgY2FjaGlu ZyBhdXRoZW50aWNhdGVkIHJlc3BvbnNlcyBpbiBzaGFyZWQKLSBjYWNoZXMKLQotUkZDIDcyMzQg U2VjdGlvbiAzLjIgZm9yYmlkcyB0byBzYXZlIHRvIGEgc2hhcmVkIGNhY2hlIGEgcmVzcG9uc2Ug dG8KLWEgcmVxdWVzdCBjb250YWluaW5nIGFuIEF1dGhvcml6YXRpb24gaGVhZGVyIHVubGVzcyB0 aGUgcmVzcG9uc2UKLWV4cGxpY2l0bHkgYWxsb3dzIGl0IHdpdGggcHVibGljLCBtdXN0LXJldmFs aWRhdGUgb3Igcy1tYXhhZ2UuCi0KLVRoaXMgaXMgQ1ZFLTIwMjYtMTU3MTMuCi0KLUNsb3NlcyBo dHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGlic291cC8tL3dvcmtfaXRlbXMvNTQxCi0t LS0KLSBsaWJzb3VwL2NhY2hlL3NvdXAtY2FjaGUuYyB8IDE1ICsrKysrKysrKysrCi0gdGVzdHMv Y2FjaGUtdGVzdC5jICAgICAgICAgfCA1NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0 IGEvbGlic291cC9jYWNoZS9zb3VwLWNhY2hlLmMgYi9saWJzb3VwL2NhY2hlL3NvdXAtY2FjaGUu YwotaW5kZXggNDdlMWVlNzAuLjUyMjUzODJkIDEwMDY0NAotLS0tIGEvbGlic291cC9jYWNoZS9z b3VwLWNhY2hlLmMKLSsrKyBiL2xpYnNvdXAvY2FjaGUvc291cC1jYWNoZS5jCi1AQCAtMTc0LDYg KzE3NCw3IEBAIGdldF9jYWNoZWFiaWxpdHkgKFNvdXBDYWNoZSAqY2FjaGUsIFNvdXBNZXNzYWdl ICptc2cpCi0gCVNvdXBDYWNoZWFiaWxpdHkgY2FjaGVhYmlsaXR5OwotIAljb25zdCBjaGFyICpj YWNoZV9jb250cm9sLCAqY29udGVudF90eXBlOwotIAlnYm9vbGVhbiBoYXNfbWF4X2FnZSA9IEZB TFNFOwotKwlnYm9vbGVhbiBwZXJtaXRzX2F1dGhvcml6ZWRfc2hhcmVkX2NhY2hpbmcgPSBGQUxT RTsKLSAKLSAJLyogMS4gVGhlIHJlcXVlc3QgbWV0aG9kIG11c3QgYmUgY2FjaGVhYmxlICovCi0g CWlmIChzb3VwX21lc3NhZ2VfZ2V0X21ldGhvZCAobXNnKSA9PSBTT1VQX01FVEhPRF9HRVQpCi1A QCAtMjAxLDYgKzIwMiwxMSBAQCBnZXRfY2FjaGVhYmlsaXR5IChTb3VwQ2FjaGUgKmNhY2hlLCBT b3VwTWVzc2FnZSAqbXNnKQotIAkJCQlzb3VwX2hlYWRlcl9mcmVlX3BhcmFtX2xpc3QgKGhhc2gp OwotIAkJCQlyZXR1cm4gU09VUF9DQUNIRV9VTkNBQ0hFQUJMRTsKLSAJCQl9Ci0rCi0rCQkJcGVy bWl0c19hdXRob3JpemVkX3NoYXJlZF9jYWNoaW5nID0KLSsJCQkJZ19oYXNoX3RhYmxlX2xvb2t1 cF9leHRlbmRlZCAoaGFzaCwgInB1YmxpYyIsIE5VTEwsIE5VTEwpIHx8Ci0rCQkJCWdfaGFzaF90 YWJsZV9sb29rdXBfZXh0ZW5kZWQgKGhhc2gsICJtdXN0LXJldmFsaWRhdGUiLCBOVUxMLCBOVUxM KSB8fAotKwkJCQlnX2hhc2hfdGFibGVfbG9va3VwX2V4dGVuZGVkIChoYXNoLCAicy1tYXhhZ2Ui LCBOVUxMLCBOVUxMKTsKLSAJCX0KLSAKLSAJCS8qIDIuIFRoZSAnbm8tc3RvcmUnIGNhY2hlIGRp cmVjdGl2ZSBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlCi1AQCAtMjI1LDYgKzIzMSwxNSBAQCBnZXRf Y2FjaGVhYmlsaXR5IChTb3VwQ2FjaGUgKmNhY2hlLCBTb3VwTWVzc2FnZSAqbXNnKQotIAkJc291 cF9oZWFkZXJfZnJlZV9wYXJhbV9saXN0IChoYXNoKTsKLSAJfQotIAotKwkvKiBSRkMgNzIzNCBT ZWN0aW9uIDMuMjogYSBzaGFyZWQgY2FjaGUgTVVTVCBOT1Qgc3RvcmUgYSByZXNwb25zZSB0bwot KwkgKiBhIHJlcXVlc3QgY29udGFpbmluZyBhbiBBdXRob3JpemF0aW9uIGhlYWRlciB1bmxlc3Mg dGhlIHJlc3BvbnNlCi0rCSAqIGV4cGxpY2l0bHkgYWxsb3dzIGl0IHdpdGggcHVibGljLCBtdXN0 LXJldmFsaWRhdGUgb3Igcy1tYXhhZ2UuCi0rCSAqLwotKwlpZiAocHJpdi0+Y2FjaGVfdHlwZSA9 PSBTT1VQX0NBQ0hFX1NIQVJFRCAmJgotKwkgICAgIXBlcm1pdHNfYXV0aG9yaXplZF9zaGFyZWRf Y2FjaGluZyAmJgotKwkgICAgc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZV9jb21tb24gKHNv dXBfbWVzc2FnZV9nZXRfcmVxdWVzdF9oZWFkZXJzIChtc2cpLCBTT1VQX0hFQURFUl9BVVRIT1JJ WkFUSU9OKSkKLSsJCXJldHVybiBTT1VQX0NBQ0hFX1VOQ0FDSEVBQkxFOwotKwotIAkvKiBTZWN0 aW9uIDEzLjkgKi8KLSAJaWYgKChnX3VyaV9nZXRfcXVlcnkgKHNvdXBfbWVzc2FnZV9nZXRfdXJp IChtc2cpKSkgJiYKLSAJICAgICFzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lX2NvbW1vbiAo c291cF9tZXNzYWdlX2dldF9yZXNwb25zZV9oZWFkZXJzIChtc2cpLCBTT1VQX0hFQURFUl9FWFBJ UkVTKSAmJgotZGlmZiAtLWdpdCBhL3Rlc3RzL2NhY2hlLXRlc3QuYyBiL3Rlc3RzL2NhY2hlLXRl c3QuYwotaW5kZXggZWYyZWJlYjMuLmRmZjZiZDM1IDEwMDY0NAotLS0tIGEvdGVzdHMvY2FjaGUt dGVzdC5jCi0rKysgYi90ZXN0cy9jYWNoZS10ZXN0LmMKLUBAIC05NSw2ICs5NSw3IEBAIHNlcnZl cl9jYWxsYmFjayAoU291cFNlcnZlciAgICAgICAgKnNlcnZlciwKLSAJaWYgKHN0YXR1cyA9PSBT T1VQX1NUQVRVU19PSykgewotIAkJR0NoZWNrc3VtICpzdW07Ci0gCQljb25zdCBjaGFyICpib2R5 OwotKwkJY29uc3QgY2hhciAqYXV0aG9yaXphdGlvbjsKLSAKLSAJCXN1bSA9IGdfY2hlY2tzdW1f bmV3IChHX0NIRUNLU1VNX1NIQTI1Nik7Ci0gCQlnX2NoZWNrc3VtX3VwZGF0ZSAoc3VtLCAoZ3Vj aGFyICopcGF0aCwgc3RybGVuIChwYXRoKSk7Ci1AQCAtMTAyLDYgKzEwMyw5IEBAIHNlcnZlcl9j YWxsYmFjayAoU291cFNlcnZlciAgICAgICAgKnNlcnZlciwKLSAJCQlnX2NoZWNrc3VtX3VwZGF0 ZSAoc3VtLCAoZ3VjaGFyICopbGFzdF9tb2RpZmllZCwgc3RybGVuIChsYXN0X21vZGlmaWVkKSk7 Ci0gCQlpZiAoZXRhZykKLSAJCQlnX2NoZWNrc3VtX3VwZGF0ZSAoc3VtLCAoZ3VjaGFyICopZXRh Zywgc3RybGVuIChldGFnKSk7Ci0rCQlhdXRob3JpemF0aW9uID0gc291cF9tZXNzYWdlX2hlYWRl cnNfZ2V0X29uZSAocmVxdWVzdF9oZWFkZXJzLCAiQXV0aG9yaXphdGlvbiIpOwotKwkJaWYgKGF1 dGhvcml6YXRpb24pCi0rCQkJZ19jaGVja3N1bV91cGRhdGUgKHN1bSwgKGd1Y2hhciAqKWF1dGhv cml6YXRpb24sIHN0cmxlbiAoYXV0aG9yaXphdGlvbikpOwotIAkJYm9keSA9IGdfY2hlY2tzdW1f Z2V0X3N0cmluZyAoc3VtKTsKLSAJCXNvdXBfc2VydmVyX21lc3NhZ2Vfc2V0X3Jlc3BvbnNlICht c2csICJ0ZXh0L3BsYWluIiwKLSAJCQkJCQkgIFNPVVBfTUVNT1JZX0NPUFksCi1AQCAtNzM2LDYg Kzc0MCw1NiBAQCBkb19sZWFrc190ZXN0IChnY29uc3Rwb2ludGVyIGRhdGEpCi0gCWdfZnJlZSAo Y2FjaGVfZGlyKTsKLSB9Ci0gCi0rc3RhdGljIHZvaWQKLStkb19zaGFyZWRfY2FjaGVfYXV0aG9y aXphdGlvbl90ZXN0IChnY29uc3Rwb2ludGVyIGRhdGEpCi0rewotKwlHVXJpICpiYXNlX3VyaSA9 IChHVXJpICopZGF0YTsKLSsJU291cFNlc3Npb24gKmF0dGFja2VyX3Nlc3Npb247Ci0rCVNvdXBT ZXNzaW9uICp2aWN0aW1fc2Vzc2lvbjsKLSsJU291cENhY2hlICphdHRhY2tlcl9jYWNoZTsKLSsJ U291cENhY2hlICp2aWN0aW1fY2FjaGU7Ci0rCWNoYXIgKmNhY2hlX2RpcjsKLSsJY2hhciAqYXR0 YWNrZXJfYm9keTsKLSsJY2hhciAqdmljdGltX2JvZHk7Ci0rCi0rCWNhY2hlX2RpciA9IGdfZGly X21ha2VfdG1wICgiY2FjaGUtdGVzdC1YWFhYWFgiLCBOVUxMKTsKLSsJZGVidWdfcHJpbnRmICgy LCAiICBDYWNoaW5nIHRvICVzXG4iLCBjYWNoZV9kaXIpOwotKwotKwlhdHRhY2tlcl9jYWNoZSA9 IHNvdXBfY2FjaGVfbmV3IChjYWNoZV9kaXIsIFNPVVBfQ0FDSEVfU0hBUkVEKTsKLSsJYXR0YWNr ZXJfc2Vzc2lvbiA9IHNvdXBfdGVzdF9zZXNzaW9uX25ldyAoTlVMTCk7Ci0rCXNvdXBfc2Vzc2lv bl9hZGRfZmVhdHVyZSAoYXR0YWNrZXJfc2Vzc2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRVUkUgKGF0 dGFja2VyX2NhY2hlKSk7Ci0rCi0rCWF0dGFja2VyX2JvZHkgPSBkb19yZXF1ZXN0IChhdHRhY2tl cl9zZXNzaW9uLCBiYXNlX3VyaSwgIkdFVCIsICIvYXV0aHotc2hhcmVkLWNhY2hlIiwgTlVMTCwK LSsJCQkJICAgICJBdXRob3JpemF0aW9uIiwgIkJlYXJlciBBVFRBQ0tFUl9TRUNSRVQiLAotKwkJ CQkgICAgIlRlc3QtU2V0LUNhY2hlLUNvbnRyb2wiLCAibWF4LWFnZT02MDAiLAotKwkJCQkgICAg TlVMTCk7Ci0rCWdfYXNzZXJ0X3RydWUgKGxhc3RfcmVxdWVzdF9oaXRfbmV0d29yayk7Ci0rCi0r CXNvdXBfY2FjaGVfZHVtcCAoYXR0YWNrZXJfY2FjaGUpOwotKwlzb3VwX3Rlc3Rfc2Vzc2lvbl9h Ym9ydF91bnJlZiAoYXR0YWNrZXJfc2Vzc2lvbik7Ci0rCWdfb2JqZWN0X3VucmVmIChhdHRhY2tl cl9jYWNoZSk7Ci0rCi0rCXZpY3RpbV9jYWNoZSA9IHNvdXBfY2FjaGVfbmV3IChjYWNoZV9kaXIs IFNPVVBfQ0FDSEVfU0hBUkVEKTsKLSsJc291cF9jYWNoZV9sb2FkICh2aWN0aW1fY2FjaGUpOwot Kwl2aWN0aW1fc2Vzc2lvbiA9IHNvdXBfdGVzdF9zZXNzaW9uX25ldyAoTlVMTCk7Ci0rCXNvdXBf c2Vzc2lvbl9hZGRfZmVhdHVyZSAodmljdGltX3Nlc3Npb24sIFNPVVBfU0VTU0lPTl9GRUFUVVJF ICh2aWN0aW1fY2FjaGUpKTsKLSsKLSsJdmljdGltX2JvZHkgPSBkb19yZXF1ZXN0ICh2aWN0aW1f c2Vzc2lvbiwgYmFzZV91cmksICJHRVQiLCAiL2F1dGh6LXNoYXJlZC1jYWNoZSIsIE5VTEwsCi0r CQkJCSAgIkF1dGhvcml6YXRpb24iLCAiQmVhcmVyIFZJQ1RJTV9TRUNSRVQiLAotKwkJCQkgICJU ZXN0LVNldC1DYWNoZS1Db250cm9sIiwgIm1heC1hZ2U9NjAwIiwKLSsJCQkJICBOVUxMKTsKLSsK LSsJZ19hc3NlcnRfdHJ1ZSAobGFzdF9yZXF1ZXN0X2hpdF9uZXR3b3JrKTsKLSsJZ19hc3NlcnRf Y21wc3RyIChhdHRhY2tlcl9ib2R5LCAhPSwgdmljdGltX2JvZHkpOwotKwotKwlnX2ZyZWUgKGF0 dGFja2VyX2JvZHkpOwotKwlnX2ZyZWUgKHZpY3RpbV9ib2R5KTsKLSsKLSsJc291cF90ZXN0X3Nl c3Npb25fYWJvcnRfdW5yZWYgKHZpY3RpbV9zZXNzaW9uKTsKLSsJZ19vYmplY3RfdW5yZWYgKHZp Y3RpbV9jYWNoZSk7Ci0rCWdfZnJlZSAoY2FjaGVfZGlyKTsKLSt9Ci0rCi0gc3RhdGljIHZvaWQK LSBkb19tZXRyaWNzX3Rlc3QgKGdjb25zdHBvaW50ZXIgZGF0YSkKLSB7Ci1AQCAtMTEwOCw2ICsx MTYyLDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAlnX3Rlc3RfYWRkX2RhdGFf ZnVuYyAoIi9jYWNoZS9jYW5jZWxsYXRpb24iLCBiYXNlX3VyaSwgZG9fY2FuY2VsX3Rlc3QpOwot IAlnX3Rlc3RfYWRkX2RhdGFfZnVuYyAoIi9jYWNoZS9yZWZjb3VudGluZyIsIGJhc2VfdXJpLCBk b19yZWZjb3VudGluZ190ZXN0KTsKLSAJZ190ZXN0X2FkZF9kYXRhX2Z1bmMgKCIvY2FjaGUvaGVh ZGVycyIsIGJhc2VfdXJpLCBkb19oZWFkZXJzX3Rlc3QpOwotKwlnX3Rlc3RfYWRkX2RhdGFfZnVu YyAoIi9jYWNoZS9zaGFyZWQtY2FjaGUtYXV0aG9yaXphdGlvbiIsIGJhc2VfdXJpLCBkb19zaGFy ZWRfY2FjaGVfYXV0aG9yaXphdGlvbl90ZXN0KTsKLSAJZ190ZXN0X2FkZF9kYXRhX2Z1bmMgKCIv Y2FjaGUvbGVha3MiLCBiYXNlX3VyaSwgZG9fbGVha3NfdGVzdCk7Ci0gICAgICAgICBnX3Rlc3Rf YWRkX2RhdGFfZnVuYyAoIi9jYWNoZS9tZXRyaWNzIiwgYmFzZV91cmksIGRvX21ldHJpY3NfdGVz dCk7Ci0gICAgICAgICBnX3Rlc3RfYWRkX2RhdGFfZnVuYyAoIi9jYWNoZS90aHJlYWRzIiwgYmFz ZV91cmksIGRvX3RocmVhZHNfdGVzdCk7Ci0tLSAKLUdpdExhYgotCgpkaWZmIC0tZ2l0IGEvQ1ZF LTIwMjYtMTU3MTQucGF0Y2ggYi9DVkUtMjAyNi0xNTcxNC5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggNDUxZjc2Ny4uMDAwMDAwMAotLS0gYS9DVkUtMjAyNi0xNTcxNC5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDEyMSArMCwwIEBACi1Gcm9tIDc5YTUyY2FkYzQ5MDM2MGUy NDljYzJiMjMwMzhkNTMyYjQ0ZGJmMjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBN aWtlIEdvcnNlIDxtZ29yc2VAc3VzZS5jb20+Ci1EYXRlOiBGcmksIDQgU2VwIDIwMjYgMTQ6MTA6 NDYgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gbXVsdGlwYXJ0OiBGaXggb3V0LW9mLWJvdW5kcyBy ZWFkIGluIGNhc2Ugb2YgYW4gZXhjZXNzaXZlbHkKLSBsb25nIGJvdW5kYXJ5Ci0KLXNvdXBfbXVs dGlwYXJ0X2lucHV0X3N0cmVhbV9yZWFkX2hlYWRlcnMoKSBjb21wYXJlZCBtZXRhX2J1ZiBhZ2Fp bnN0IHRoZQotYm91bmRhcnkgdXNpbmcgdGhlIGJvdW5kYXJ5IGxlbmd0aCB3aXRob3V0IGNoZWNr aW5nIHRoYXQgbWV0YV9idWYgaGVsZAotdGhhdCBtYW55IGJ5dGVzLCBzbyBhIHNlcnZlciBzZW5k aW5nIGEgYm91bmRhcnkgbG9uZ2VyIHRoYW4gdGhlIHJlYWQKLWJ1ZmZlciBjb3VsZCBtYWtlIHN0 cm5jbXAoKSByZWFkIHBhc3QgdGhlIGVuZCBvZiB0aGUgYWxsb2NhdGlvbi4gSXQgYWxzbwotY29t cHV0ZWQgcmVhZF9idWYgKyBucmVhZCAtIDQgYmVmb3JlIHZlcmlmeWluZyBucmVhZCB3YXMgbGFy Z2UgZW5vdWdoLAotYW5kIGFzc2VydGVkIHJhdGhlciB0aGFuIGZhaWxpbmcgd2hlbiBhIGxpbmUg ZGlkIG5vdCBlbmQgaW4gYSBuZXdsaW5lLgotCi1Pbmx5IGNvbXBhcmUgb25jZSBlbm91Z2ggYnl0 ZXMgaGF2ZSBiZWVuIHJlYWQsIGluZGV4IHJlYWRfYnVmIGFmdGVyIHRoZQotbGVuZ3RoIGNoZWNr cywgYW5kIHRyZWF0IGFuIHVudGVybWluYXRlZCBsaW5lIGFzIGVuZCBvZiBwYXJzaW5nLgotCi1D bG9zZXMgITU0NgotLS0tCi0gbGlic291cC9zb3VwLW11bHRpcGFydC1pbnB1dC1zdHJlYW0uYyB8 IDEyICsrKystLS0tLQotIHRlc3RzL211bHRpcGFydC10ZXN0LmMgICAgICAgICAgICAgICAgfCAz NyArKysrKysrKysrKysrKysrKysrKysrKysrKysKLSAyIGZpbGVzIGNoYW5nZWQsIDQzIGluc2Vy dGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWJzb3VwL3NvdXAtbXVs dGlwYXJ0LWlucHV0LXN0cmVhbS5jIGIvbGlic291cC9zb3VwLW11bHRpcGFydC1pbnB1dC1zdHJl YW0uYwotaW5kZXggYjdmMWVkNzIuLjIyY2NlMTAyIDEwMDY0NAotLS0tIGEvbGlic291cC9zb3Vw LW11bHRpcGFydC1pbnB1dC1zdHJlYW0uYwotKysrIGIvbGlic291cC9zb3VwLW11bHRpcGFydC1p bnB1dC1zdHJlYW0uYwotQEAgLTM2MSw3ICszNjEsNiBAQCBzb3VwX211bHRpcGFydF9pbnB1dF9z dHJlYW1fcmVhZF9oZWFkZXJzIChTb3VwTXVsdGlwYXJ0SW5wdXRTdHJlYW0gICptdWx0aXBhcnQs Ci0gewotIAlTb3VwTXVsdGlwYXJ0SW5wdXRTdHJlYW1Qcml2YXRlICpwcml2ID0gc291cF9tdWx0 aXBhcnRfaW5wdXRfc3RyZWFtX2dldF9pbnN0YW5jZV9wcml2YXRlIChtdWx0aXBhcnQpOwotIAln dWNoYXIgcmVhZF9idWZbUkVTUE9OU0VfQkxPQ0tfU0laRV07Ci0tCWd1Y2hhciAqYnVmOwotIAln Ym9vbGVhbiBnb3RfYm91bmRhcnkgPSBGQUxTRTsKLSAJZ2Jvb2xlYW4gZ290X2xmID0gRkFMU0U7 Ci0gCWdzc2l6ZSBucmVhZCA9IDA7Ci1AQCAtMzgzLDIyICszODIsMjMgQEAgc291cF9tdWx0aXBh cnRfaW5wdXRfc3RyZWFtX3JlYWRfaGVhZGVycyAoU291cE11bHRpcGFydElucHV0U3RyZWFtICAq bXVsdGlwYXJ0LAotIAkJICogbWF5IGdldCB0aGUgbXVsdGlwYXJ0IGVuZCBpbmRpY2F0b3Igd2l0 aG91dCBnZXR0aW5nIGEgbmV3IGxpbmUuCi0gCQkgKi8KLSAJCWlmICghZ290X2JvdW5kYXJ5ICYm Ci0rCQkgICAgcHJpdi0+bWV0YV9idWYtPmxlbiA+PSBwcml2LT5ib3VuZGFyeV9zaXplICYmCi0g CQkgICAgIXN0cm5jbXAgKChjaGFyICopcHJpdi0+bWV0YV9idWYtPmRhdGEsCi0gCQkJICAgICAg cHJpdi0+Ym91bmRhcnksCi0gCQkJICAgICAgcHJpdi0+Ym91bmRhcnlfc2l6ZSkpIHsKLSAJCQln b3RfYm91bmRhcnkgPSBUUlVFOwotIAotIAkJCS8qIE5vdyBjaGVjayBmb3IgcG9zc2libGUgbXVs dGlwYXJ0IHRlcm1pbmF0aW9uLiAqLwotLQkJCWJ1ZiA9ICZyZWFkX2J1ZltucmVhZCAtIDRdOwot LQkJCWlmICgobnJlYWQgPj0gNCAmJiAhbWVtY21wIChidWYsICItLVxyXG4iLCA0KSkgfHwKLS0J CQkgICAgKG5yZWFkID49IDMgJiYgIW1lbWNtcCAoYnVmICsgMSwgIi0tXG4iLCAzKSkgfHwKLS0J CQkgICAgKG5yZWFkID49IDMgJiYgIW1lbWNtcCAoYnVmICsgMiwgIi0tIiwgMikpKSB7Ci0rCQkJ aWYgKChucmVhZCA+PSA0ICYmICFtZW1jbXAgKHJlYWRfYnVmICsgbnJlYWQgLSA0LCAiLS1cclxu IiwgNCkpIHx8Ci0rCQkJICAgIChucmVhZCA+PSAzICYmICFtZW1jbXAgKHJlYWRfYnVmICsgbnJl YWQgLSAzLCAiLS1cbiIsIDMpKSB8fAotKwkJCSAgICAobnJlYWQgPj0gMyAmJiAhbWVtY21wIChy ZWFkX2J1ZiArIG5yZWFkIC0gMiwgIi0tIiwgMikpKSB7Ci0gCQkJCWdfYnl0ZV9hcnJheV9zZXRf c2l6ZSAocHJpdi0+bWV0YV9idWYsIDApOwotIAkJCQlyZXR1cm4gRkFMU0U7Ci0gCQkJfQotIAkJ fQotIAotLQkJZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGdvdF9sZiwgRkFMU0UpOwotKwkJaWYgKCFn b3RfbGYpCi0rCQkJcmV0dXJuIEZBTFNFOwotIAotIAkJLyogRGlzY2FyZCBwcmUtYm91bmRhcnkg bGluZXMuICovCi0gCQlpZiAoIWdvdF9ib3VuZGFyeSkgewotZGlmZiAtLWdpdCBhL3Rlc3RzL211 bHRpcGFydC10ZXN0LmMgYi90ZXN0cy9tdWx0aXBhcnQtdGVzdC5jCi1pbmRleCBiMWJmNWJiOC4u YTU5OGExYzggMTAwNjQ0Ci0tLS0gYS90ZXN0cy9tdWx0aXBhcnQtdGVzdC5jCi0rKysgYi90ZXN0 cy9tdWx0aXBhcnQtdGVzdC5jCi1AQCAtNTk2LDYgKzU5Niw0MiBAQCB0ZXN0X211bHRpcGFydF9i b3VuZHNfYmFkXzMgKHZvaWQpCi0gICAgICAgICBnX29iamVjdF91bnJlZiAobXNnKTsKLSB9Ci0g Ci0rc3RhdGljIHZvaWQKLSt0ZXN0X211bHRpcGFydF9ib3VuZHNfYmFkXzQgKHZvaWQpCi0rewot KyAgICAgICAgU291cE1lc3NhZ2UgKm1zZzsKLSsgICAgICAgIFNvdXBNZXNzYWdlSGVhZGVycyAq aGVhZGVyczsKLSsgICAgICAgIEdJbnB1dFN0cmVhbSAqaW47Ci0rICAgICAgICBHSW5wdXRTdHJl YW0gKm5leHRfcGFydDsKLSsgICAgICAgIFNvdXBNdWx0aXBhcnRJbnB1dFN0cmVhbSAqbXVsdGlw YXJ0OwotKyAgICAgICAgR0Vycm9yICplcnJvciA9IE5VTEw7Ci0rICAgICAgICBnY2hhciAqYm91 bmRhcnk7Ci0rICAgICAgICBnY2hhciAqY29udGVudF90eXBlOwotKyAgICAgICAgZ2NoYXIgKnJh d19kYXRhOwotKwotKyAgICAgICAgYm91bmRhcnkgPSBnX25ldyAoZ2NoYXIsIDIwMDAxKTsKLSsg ICAgICAgIG1lbXNldCAoYm91bmRhcnksICdhJywgMjAwMDApOwotKyAgICAgICAgYm91bmRhcnlb MjAwMDBdID0gJ1wwJzsKLSsKLSsgICAgICAgIG1zZyA9IHNvdXBfbWVzc2FnZV9uZXcoU09VUF9N RVRIT0RfUE9TVCwgImh0dHA6Ly9mb28vdXBsb2FkIik7Ci0rICAgICAgICBoZWFkZXJzID0gc291 cF9tZXNzYWdlX2dldF9yZXNwb25zZV9oZWFkZXJzIChtc2cpOwotKyAgICAgICAgY29udGVudF90 eXBlID0gZ19zdHJjb25jYXQgKCJtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT1cIiIsIGJv dW5kYXJ5LCAiXCIiLCBOVUxMKTsKLSsgICAgICAgIHNvdXBfbWVzc2FnZV9oZWFkZXJzX3JlcGxh Y2UgKGhlYWRlcnMsICJDb250ZW50LVR5cGUiLCBjb250ZW50X3R5cGUpOwotKwotKyAgICAgICAg cmF3X2RhdGEgPSBnX3N0cmNvbmNhdCAoIi0tIiwgYm91bmRhcnksICJcclxuQ29udGVudC1UeXBl OiB0ZXh0LXBsYWluXHJcblxyXG5YXHJcbiIsIE5VTEwpOwotKyAgICAgICAgaW4gPSBnX21lbW9y eV9pbnB1dF9zdHJlYW1fbmV3X2Zyb21fZGF0YSAocmF3X2RhdGEsIHN0cmxlbiAocmF3X2RhdGEp LCBOVUxMKTsKLSsgICAgICAgIG11bHRpcGFydCA9IHNvdXBfbXVsdGlwYXJ0X2lucHV0X3N0cmVh bV9uZXcgKG1zZywgaW4pOwotKyAgICAgICAgZ19vYmplY3RfdW5yZWYgKGluKTsKLSsgICAgICAg IG5leHRfcGFydCA9IHNvdXBfbXVsdGlwYXJ0X2lucHV0X3N0cmVhbV9uZXh0X3BhcnQgKG11bHRp cGFydCwgTlVMTCwgJmVycm9yKTsKLSsgICAgICAgIGdfYXNzZXJ0X25vX2Vycm9yIChlcnJvcik7 Ci0rICAgICAgICBnX2Fzc2VydF9udWxsIChuZXh0X3BhcnQpOwotKyAgICAgICAgZ19vYmplY3Rf dW5yZWYgKG11bHRpcGFydCk7Ci0rICAgICAgICBnX29iamVjdF91bnJlZiAobXNnKTsKLSsgICAg ICAgIGdfZnJlZSAocmF3X2RhdGEpOwotKyAgICAgICAgZ19mcmVlIChjb250ZW50X3R5cGUpOwot KyAgICAgICAgZ19mcmVlIChib3VuZGFyeSk7Ci0rfQotKwotIHN0YXRpYyB2b2lkCi0gdGVzdF9t dWx0aXBhcnRfdG9vX2xhcmdlICh2b2lkKQotIHsKLUBAIC02NjYsNiArNzAyLDcgQEAgbWFpbiAo aW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAlnX3Rlc3RfYWRkX2Z1bmMgKCIvbXVsdGlwYXJ0L2Jv dW5kcy1iYWQiLCB0ZXN0X211bHRpcGFydF9ib3VuZHNfYmFkKTsKLSAJZ190ZXN0X2FkZF9mdW5j ICgiL211bHRpcGFydC9ib3VuZHMtYmFkLTIiLCB0ZXN0X211bHRpcGFydF9ib3VuZHNfYmFkXzIp OwotICAgICAgICAgZ190ZXN0X2FkZF9mdW5jICgiL211bHRpcGFydC9ib3VuZHMtYmFkLTMiLCB0 ZXN0X211bHRpcGFydF9ib3VuZHNfYmFkXzMpOwotKyAgICAgICAgZ190ZXN0X2FkZF9mdW5jICgi L211bHRpcGFydC9ib3VuZHMtYmFkLTQiLCB0ZXN0X211bHRpcGFydF9ib3VuZHNfYmFkXzQpOwot IAlnX3Rlc3RfYWRkX2Z1bmMgKCIvbXVsdGlwYXJ0L3Rvby1sYXJnZSIsIHRlc3RfbXVsdGlwYXJ0 X3Rvb19sYXJnZSk7Ci0gCi0gCXJldCA9IGdfdGVzdF9ydW4gKCk7Ci0tLSAKLUdpdExhYgotCgpk aWZmIC0tZ2l0IGEvQ1ZFLTIwMjYtNzc2ODAucGF0Y2ggYi9DVkUtMjAyNi03NzY4MC5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmUxNDJiMC4uMDAwMDAwMAotLS0gYS9DVkUt MjAyNi03NzY4MC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDY4MSArMCwwIEBACi1Gcm9tIGU4 MmMxM2JhMDNkZWZjZWUxMGY5ODFhYzk2NGY0ZDU3MGIyMWEyNTEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBQYXRyaWNrIEdyaWZmaXMgPHBncmlmZmlzQGlnYWxpYS5jb20+Ci1EYXRl OiBXZWQsIDEyIEF1ZyAyMDI2IDE0OjIxOjUyIC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIG1lc3Nh Z2UtaGVhZGVyczogRml4IFJhbmdlIHBhcnNpbmcgb3ZlcmZsb3dzIGFuZCBjb2FsZXNjaW5nCi0g Y29zdAotCi1BIHN1ZmZpeCByYW5nZSBsb25nZXIgdGhhbiB0aGUgYm9keSBkcm92ZSB0aGUgcmFu Z2Ugc3RhcnQgbmVnYXRpdmUsIHdoaWNoCi10aGVuIHJlYWNoZWQgYSBnX2Fzc2VydCgpIGFuZCBh Ym9ydGVkIHRoZSBwcm9jZXNzLiBDbGFtcCBpdCB0byBzZWxlY3QgdGhlCi13aG9sZSBib2R5IGlu c3RlYWQsIGFzIFJGQyA5MTEwIHNlY3Rpb24gMTQuMS4yIHJlcXVpcmVzLiBSYW5nZSBzdGFydHMg YW5kCi1lbmRzIHdoaWNoIG92ZXJmbG93IHRoZSBnb2Zmc2V0IHRoZXkgYXJlIHBhcnNlZCBpbnRv IGFyZSBub3cgcmVqZWN0ZWQgYW5kCi1jbGFtcGVkIHJlc3BlY3RpdmVseSwgcmF0aGVyIHRoYW4g d3JhcHBpbmcgbmVnYXRpdmUgYW5kIHJlYWNoaW5nIHRoZSBzYW1lCi1hc3NlcnRpb24uCi0KLVJh bmdlcyBhcmUgbm8gbG9uZ2VyIGNvYWxlc2NlZCBieSByZW1vdmluZyBlYWNoIG1lcmdlZCBlbGVt ZW50IGluIHR1cm4sCi13aGljaCB3YXMgcXVhZHJhdGljIGluIHRoZWlyIG51bWJlciwgYW5kIGEg UmFuZ2UgaGVhZGVyIGxpc3RpbmcgbW9yZSB0aGFuCi1NQVhfUkFOR0VTIHJhbmdlcyBpcyBub3cg YW5zd2VyZWQgd2l0aCA0MTYgaW5zdGVhZCBvZiBiZWluZyBzZXJ2ZWQ7IFJGQwotOTExMCBzZWN0 aW9uIDE1LjUuMTcgbmFtZXMgYW4gZXhjZXNzaXZlIG51bWJlciBvZiByYW5nZXMgYXMgYSByZWFz b24gZm9yCi10aGF0IHN0YXR1cy4KLQotRmluYWxseSwgc29ydF9yYW5nZXMoKSByZXR1cm5lZCBh IGdvZmZzZXQgZGlmZmVyZW5jZSB0cnVuY2F0ZWQgdG8gaW50LCBzbwotaXQgcmVwb3J0ZWQgdGhl IHdyb25nIG9yZGVyIGZvciByYW5nZXMgbW9yZSB0aGFuIEdfTUFYSU5UIGFwYXJ0LCBhbmQgdGhl Ci1tZXJnZSBiZWxvdyBpdCB0aGVuIGRyb3BwZWQgcmFuZ2VzIGZyb20gcmVzcG9uc2VzIG92ZXIg MkdCLgotCi1GaXhlcyAjNTE2Ci1GaXhlcyAjNTE5Ci1GaXhlcyAjNTM1Ci1GaXhlcyAjNTM4Ci1G aXhlcyAjNTQ0Ci1GaXhlcyAjNTQ3Ci1GaXhlcyAjNTQ4Ci0tLS0KLSBsaWJzb3VwL3NvdXAtbWVz c2FnZS1oZWFkZXJzLXByaXZhdGUuaCB8ICAgMiArCi0gbGlic291cC9zb3VwLW1lc3NhZ2UtaGVh ZGVycy5jICAgICAgICAgfCAgODkgKysrKystLQotIHRlc3RzL3JhbmdlLXRlc3QuYyAgICAgICAg ICAgICAgICAgICAgIHwgMzQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysKLSB0ZXN0cy9zZXJ2 ZXItbWVtLWxpbWl0LXRlc3QuYyAgICAgICAgICB8ICA2MSArKystLQotIDQgZmlsZXMgY2hhbmdl ZCwgNDY0IGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGli c291cC9zb3VwLW1lc3NhZ2UtaGVhZGVycy1wcml2YXRlLmggYi9saWJzb3VwL3NvdXAtbWVzc2Fn ZS1oZWFkZXJzLXByaXZhdGUuaAotaW5kZXggNzA4YWZlOTguLjJlOTZhZjM0IDEwMDY0NAotLS0t IGEvbGlic291cC9zb3VwLW1lc3NhZ2UtaGVhZGVycy1wcml2YXRlLmgKLSsrKyBiL2xpYnNvdXAv c291cC1tZXNzYWdlLWhlYWRlcnMtcHJpdmF0ZS5oCi1AQCAtMTIsNiArMTIsOCBAQCBHX0JFR0lO X0RFQ0xTCi0gCi0gI2RlZmluZSBNQVhfSEVBREVSU19CVUZGRVJfU0laRSAyNTYgKiAxMDI0IC8q IDI1NksgKi8KLSAKLSsjZGVmaW5lIE1BWF9SQU5HRVMgMjAwCi0rCi0gdHlwZWRlZiBlbnVtIHsK LSAgICAgICAgIFNPVVBfSEVBREVSX1ZBTFVFX1VOVFJVU1RFRCwKLSAgICAgICAgIFNPVVBfSEVB REVSX1ZBTFVFX1RSVVNURUQKLWRpZmYgLS1naXQgYS9saWJzb3VwL3NvdXAtbWVzc2FnZS1oZWFk ZXJzLmMgYi9saWJzb3VwL3NvdXAtbWVzc2FnZS1oZWFkZXJzLmMKLWluZGV4IGIyZWMwMzZjLi43 ZTJlNjU4MyAxMDA2NDQKLS0tLSBhL2xpYnNvdXAvc291cC1tZXNzYWdlLWhlYWRlcnMuYwotKysr IGIvbGlic291cC9zb3VwLW1lc3NhZ2UtaGVhZGVycy5jCi1AQCAtMTIyNiw3ICsxMjI2LDEyIEBA IHNvcnRfcmFuZ2VzIChnY29uc3Rwb2ludGVyIGEsIGdjb25zdHBvaW50ZXIgYikKLSAJU291cFJh bmdlICpyYSA9IChTb3VwUmFuZ2UgKilhOwotIAlTb3VwUmFuZ2UgKnJiID0gKFNvdXBSYW5nZSAq KWI7Ci0gCi0tCXJldHVybiByYS0+c3RhcnQgLSByYi0+c3RhcnQ7Ci0rCWlmIChyYS0+c3RhcnQg PCByYi0+c3RhcnQpCi0rCQlyZXR1cm4gLTE7Ci0rCWVsc2UgaWYgKHJhLT5zdGFydCA+IHJiLT5z dGFydCkKLSsJCXJldHVybiAxOwotKwllbHNlCi0rCQlyZXR1cm4gMDsKLSB9Ci0gCi0gLyogbGlr ZSBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfcmFuZ2VzKCksIGV4Y2VwdCBpdCByZXR1cm5zOgot QEAgLTEyNzAsNiArMTI3NSwxNyBAQCBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfcmFuZ2VzX2lu dGVybmFsIChTb3VwTWVzc2FnZUhlYWRlcnMgICpoZHJzLAotIAlpZiAoIXJhbmdlX2xpc3QpCi0g CQlyZXR1cm4gU09VUF9TVEFUVVNfT0s7ICAvKiBpbnZhbGlkIGxpc3QgKi8KLSAKLSsJLyogUmVq ZWN0IHRoZSBoZWFkZXIgb3V0cmlnaHQgaWYgaXQgYXNrcyBmb3IgbW9yZSByYW5nZXMgdGhhbiB3 ZSBhcmUKLSsJICogd2lsbGluZyB0byBzZXJ2ZSwgcmF0aGVyIHRoYW4gYW5zd2VyaW5nIHdpdGgg dGhlIHdob2xlIGJvZHk6IGEgY2xpZW50Ci0rCSAqIGFza2luZyBmb3IgdGhpcyBtYW55IHJhbmdl cyB3YW50cyB0byBiZSB0b2xkIHNvLCBhbmQgUkZDIDkxMTAgwqcxNC4yCi0rCSAqIGFsbG93cyBy ZWplY3Rpbmcgc3VjaCBhIGhlYWRlciBmb3IgZXhhY3RseSB0aGlzIHJlYXNvbi4KLSsJICovCi0r CWlmIChnX3NsaXN0X2xlbmd0aCAocmFuZ2VfbGlzdCkgPiBNQVhfUkFOR0VTKSB7Ci0rCQlzb3Vw X2hlYWRlcl9mcmVlX2xpc3QgKHJhbmdlX2xpc3QpOwotKwkJcmV0dXJuIGNoZWNrX3NhdGlzZmlh YmxlID8gU09VUF9TVEFUVVNfUkVRVUVTVEVEX1JBTkdFX05PVF9TQVRJU0ZJQUJMRQotKwkJCQkJ IDogU09VUF9TVEFUVVNfT0s7Ci0rCX0KLSsKLSAJLyogTG9vcCB0aHJvdWdoIHRoZSByYW5nZXMg YW5kIG1vZGlmeSB0aGUgc3RhdHVzIGFjY29yZGluZ2x5LiBEZWZhdWx0IHRvCi0gCSAqIHN0YXR1 cyAyMDAgKE9LLCBpZ25vcmluZyB0aGUgcmFuZ2VzKS4gU3dpdGNoIHRvIHN0YXR1cyAyMDYgKFBh cnRpYWwKLSAJICogQ29udGVudCkgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhcnRpYWxseSB2 YWxpZCByYW5nZS4gU3dpdGNoIHRvCi1AQCAtMTI4MSwxNSArMTI5Nyw0OCBAQCBzb3VwX21lc3Nh Z2VfaGVhZGVyc19nZXRfcmFuZ2VzX2ludGVybmFsIChTb3VwTWVzc2FnZUhlYWRlcnMgICpoZHJz LAotIAotIAkJc3BlYyA9IHItPmRhdGE7Ci0gCQlpZiAoKnNwZWMgPT0gJy0nKSB7Ci0tCQkJY3Vy LnN0YXJ0ID0gZ19hc2NpaV9zdHJ0b2xsIChzcGVjLCAmZW5kLCAxMCkgKyB0b3RhbF9sZW5ndGg7 Ci0rCQkJZ2ludDY0IHN1ZmZpeF9sZW5ndGg7Ci0rCi0rCQkJZXJybm8gPSAwOwotKwkJCXN1ZmZp eF9sZW5ndGggPSBnX2FzY2lpX3N0cnRvbGwgKHNwZWMsICZlbmQsIDEwKTsKLSsKLSsJCQkvKiBB IHN1ZmZpeCByYW5nZSBhc2tzIGZvciB0aGUgbGFzdCAtc3VmZml4X2xlbmd0aCBieXRlcwotKwkJ CSAqIG9mIHRoZSBib2R5LiBJZiB0aGUgYm9keSBpcyBzaG9ydGVyIHRoYW4gdGhhdCB0aGVuIHRo ZQotKwkJCSAqIHdob2xlIGJvZHkgaXMgdXNlZCwgcGVyIFJGQyA5MTEwIMKnMTQuMS4yOyB3aXRo b3V0Ci0rCQkJICogY2xhbXBpbmcsIHRoZSBzdGFydCB3b3VsZCBnbyBuZWdhdGl2ZSBhbmQgcmVh Y2ggdGhlCi0rCQkJICogYXNzZXJ0aW9uIGJlbG93LgotKwkJCSAqLwotKwkJCWlmIChlcnJubyA9 PSBFUkFOR0UgfHwgc3VmZml4X2xlbmd0aCA8PSAtdG90YWxfbGVuZ3RoKQotKwkJCQljdXIuc3Rh cnQgPSAwOwotKwkJCWVsc2UKLSsJCQkJY3VyLnN0YXJ0ID0gdG90YWxfbGVuZ3RoICsgc3VmZml4 X2xlbmd0aDsKLSsKLSAJCQljdXIuZW5kID0gdG90YWxfbGVuZ3RoIC0gMTsKLSAJCX0gZWxzZSB7 Ci0tCQkJY3VyLnN0YXJ0ID0gZ19hc2NpaV9zdHJ0b3VsbCAoc3BlYywgJmVuZCwgMTApOwotKwkJ CWd1aW50NjQgdmFsdWU7Ci0rCi0rCQkJZXJybm8gPSAwOwotKwkJCXZhbHVlID0gZ19hc2NpaV9z dHJ0b3VsbCAoc3BlYywgJmVuZCwgMTApOwotKwkJCWlmIChlcnJubyA9PSBFUkFOR0UgfHwgdmFs dWUgPiBHX01BWElOVDY0KSB7Ci0rCQkJCWlzX2FsbF92YWxpZCA9IEZBTFNFOwotKwkJCQljb250 aW51ZTsKLSsJCQl9Ci0rCQkJY3VyLnN0YXJ0ID0gKGdvZmZzZXQpIHZhbHVlOwotKwotIAkJCWlm ICgqZW5kID09ICctJykKLSAJCQkJZW5kKys7Ci0tCQkJaWYgKCplbmQpCi0tCQkJCWN1ci5lbmQg PSBnX2FzY2lpX3N0cnRvdWxsIChlbmQsICZlbmQsIDEwKTsKLS0JCQllbHNlCi0rCQkJaWYgKCpl bmQpIHsKLSsJCQkJZXJybm8gPSAwOwotKwkJCQl2YWx1ZSA9IGdfYXNjaWlfc3RydG91bGwgKGVu ZCwgJmVuZCwgMTApOwotKwotKwkJCQkvKiBBbiBlbmQgdGhpcyBsYXJnZSBpcyBjbGFtcGVkIHRv IHRoZSBlbmQgb2YgdGhlCi0rCQkJCSAqIGJvZHkgYmVsb3csIGxpa2UgYW55IG90aGVyIGVuZCBw YXN0IGl0LgotKwkJCQkgKi8KLSsJCQkJaWYgKGVycm5vID09IEVSQU5HRSB8fCB2YWx1ZSA+IEdf TUFYSU5UNjQpCi0rCQkJCQljdXIuZW5kID0gR19NQVhJTlQ2NDsKLSsJCQkJZWxzZQotKwkJCQkJ Y3VyLmVuZCA9IChnb2Zmc2V0KSB2YWx1ZTsKLSsJCQl9IGVsc2UKLSAJCQkJY3VyLmVuZCA9IHRv dGFsX2xlbmd0aCAtIDE7Ci0gCQl9Ci0gCi1AQCAtMTMzMCwxOSArMTM3OSwyNCBAQCBzb3VwX21l c3NhZ2VfaGVhZGVyc19nZXRfcmFuZ2VzX2ludGVybmFsIChTb3VwTWVzc2FnZUhlYWRlcnMgICpo ZHJzLAotIAl9Ci0gCi0gCWlmICh0b3RhbF9sZW5ndGgpIHsKLS0JCWd1aW50IGk7Ci0rCQlTb3Vw UmFuZ2UgKmRhdGE7Ci0rCQlndWludCBpLCBsYXN0ID0gMDsKLSAKLSAJCWdfYXJyYXlfc29ydCAo YXJyYXksIHNvcnRfcmFuZ2VzKTsKLS0JCWZvciAoaSA9IDE7IGkgPCBhcnJheS0+bGVuOyBpKysp IHsKLS0JCQlTb3VwUmFuZ2UgKmN1ciA9ICYoKFNvdXBSYW5nZSAqKWFycmF5LT5kYXRhKVtpXTsK LS0JCQlTb3VwUmFuZ2UgKnByZXYgPSAmKChTb3VwUmFuZ2UgKilhcnJheS0+ZGF0YSlbaSAtIDFd OwotIAotLQkJCWlmIChjdXItPnN0YXJ0IDw9IHByZXYtPmVuZCkgewotLQkJCQlwcmV2LT5lbmQg PSBNQVggKHByZXYtPmVuZCwgY3VyLT5lbmQpOwotLQkJCQlnX2FycmF5X3JlbW92ZV9pbmRleCAo YXJyYXksIGkpOwotLQkJCQlpLS07Ci0tCQkJfQotKwkJLyogTWVyZ2Ugb3ZlcmxhcHBpbmcgcmFu Z2VzIGludG8gdGhlIHJ1biBiZWluZyBidWlsdCBhdCBAbGFzdC4KLSsJCSAqIFJlbW92aW5nIHRo ZSBtZXJnZWQgZWxlbWVudHMgb25lIGF0IGEgdGltZSBpbnN0ZWFkIG1hZGUgdGhpcwotKwkJICog cXVhZHJhdGljIGluIHRoZSBudW1iZXIgb2YgcmFuZ2VzLgotKwkJICovCi0rCQlkYXRhID0gKFNv dXBSYW5nZSAqKWFycmF5LT5kYXRhOwotKwkJZm9yIChpID0gMTsgaSA8IGFycmF5LT5sZW47IGkr KykgewotKwkJCWlmIChkYXRhW2ldLnN0YXJ0IDw9IGRhdGFbbGFzdF0uZW5kKQotKwkJCQlkYXRh W2xhc3RdLmVuZCA9IE1BWCAoZGF0YVtsYXN0XS5lbmQsIGRhdGFbaV0uZW5kKTsKLSsJCQllbHNl Ci0rCQkJCWRhdGFbKytsYXN0XSA9IGRhdGFbaV07Ci0gCQl9Ci0rCi0rCQlnX2FycmF5X3NldF9z aXplIChhcnJheSwgbGFzdCArIDEpOwotIAl9Ci0gCi0gCSpyYW5nZXMgPSAoU291cFJhbmdlICop YXJyYXktPmRhdGE7Ci1AQCAtMTM3NSw2ICsxNDI5LDExIEBAIHNvdXBfbWVzc2FnZV9oZWFkZXJz X2dldF9yYW5nZXNfaW50ZXJuYWwgKFNvdXBNZXNzYWdlSGVhZGVycyAgKmhkcnMsCi0gICogQmV3 YXJlIHRoYXQgZXZlbiBpZiBnaXZlbiBhIEB0b3RhbF9sZW5ndGgsIHRoaXMgZnVuY3Rpb24gZG9l cyBub3QKLSAgKiBjaGVjayB0aGF0IHRoZSByYW5nZXMgYXJlIHNhdGlzZmlhYmxlLgotICAqCi0r ICogQSBSYW5nZSBoZWFkZXIgcmVxdWVzdGluZyBtb3JlIHRoYW4gMjAwIHJhbmdlcyBpcyByZWpl Y3RlZCwgc2luY2Ugc2VydmluZwotKyAqIHRoYXQgbWFueSByYW5nZXMgY29zdHMgZmFyIG1vcmUg dGhhbiB0aGUgcmVxdWVzdCBhc2tpbmcgZm9yIHRoZW0uCi0rICogW2NsYXNzQFNlcnZlcl0gYW5z d2VycyBzdWNoIGEgcmVxdWVzdCB3aXRoCi0rICogJVNPVVBfU1RBVFVTX1JFUVVFU1RFRF9SQU5H RV9OT1RfU0FUSVNGSUFCTEUuCi0rICoKLSAgKiBbY2xhc3NAU2VydmVyXSBoYXMgYnVpbHQtaW4g aGFuZGxpbmcgZm9yIHJhbmdlIHJlcXVlc3RzLiBJZiB5b3VyCi0gICogc2VydmVyIGhhbmRsZXIg cmV0dXJucyBhICVTT1VQX1NUQVRVU19PSyByZXNwb25zZSBjb250YWluaW5nIHRoZQotICAqIGNv bXBsZXRlIHJlc3BvbnNlIGJvZHkgKHJhdGhlciB0aGFuIHBhdXNpbmcgdGhlIG1lc3NhZ2UgYW5k Ci1kaWZmIC0tZ2l0IGEvdGVzdHMvcmFuZ2UtdGVzdC5jIGIvdGVzdHMvcmFuZ2UtdGVzdC5jCi1p bmRleCBjZmQ1ZjYxMy4uOWU0ZWQyYzkgMTAwNjQ0Ci0tLS0gYS90ZXN0cy9yYW5nZS10ZXN0LmMK LSsrKyBiL3Rlc3RzL3JhbmdlLXRlc3QuYwotQEAgLTMsNiArMyw4IEBACi0gI2luY2x1ZGUgImNv bmZpZy5oIgotIAotICNpbmNsdWRlICJ0ZXN0LXV0aWxzLmgiCi0rI2luY2x1ZGUgInNvdXAtbWVz c2FnZS1oZWFkZXJzLXByaXZhdGUuaCIKLSsjaW5jbHVkZSAic291cC1taXNjLmgiCi0gCi0gR0J5 dGVzICpmdWxsX3Jlc3BvbnNlOwotIGludCB0b3RhbF9sZW5ndGg7Ci1AQCAtMTYxLDYgKzE2Mywy MSBAQCByZXF1ZXN0X3NpbmdsZV9yYW5nZV9ieV9zdHJpbmcgKFNvdXBTZXNzaW9uICpzZXNzaW9u LCBjb25zdCBjaGFyICp1cmksCi0gCWdfb2JqZWN0X3VucmVmIChtc2cpOwotIH0KLSAKLSsvKiBM aWtlIHJlcXVlc3Rfc2luZ2xlX3JhbmdlX2J5X3N0cmluZygpLCBidXQgYWJsZSB0byBjaGVjayB0 aGUgcmFuZ2VzIG9mIGEKLSsgKiBzdWNjZXNzZnVsIDIwNiBhcyB3ZWxsLiAqLwotK3N0YXRpYyB2 b2lkCi0rcmVxdWVzdF9zaW5nbGVfcmFuZ2VfYnlfc3RyaW5nX2Z1bGwgKFNvdXBTZXNzaW9uICpz ZXNzaW9uLCBjb25zdCBjaGFyICp1cmksCi0rCQkJCSAgICAgY29uc3QgY2hhciAqcmFuZ2UsIFNv dXBTdGF0dXMgZXhwZWN0ZWRfc3RhdHVzLAotKwkJCQkgICAgIGludCBleHBlY3RlZF9zdGFydCwg aW50IGV4cGVjdGVkX2VuZCkKLSt7Ci0rCVNvdXBNZXNzYWdlICptc2c7Ci0rCi0rCW1zZyA9IHNv dXBfbWVzc2FnZV9uZXcgKCJHRVQiLCB1cmkpOwotKwlzb3VwX21lc3NhZ2VfaGVhZGVyc19yZXBs YWNlIChzb3VwX21lc3NhZ2VfZ2V0X3JlcXVlc3RfaGVhZGVycyAobXNnKSwgIlJhbmdlIiwgcmFu Z2UpOwotKwotKwlkb19zaW5nbGVfcmFuZ2UgKHNlc3Npb24sIG1zZywgMCwgMCwgZXhwZWN0ZWRf c3RhdHVzLCBleHBlY3RlZF9zdGFydCwgZXhwZWN0ZWRfZW5kKTsKLSt9Ci0rCi0gc3RhdGljIHZv aWQKLSBkb19tdWx0aV9yYW5nZSAoU291cFNlc3Npb24gKnNlc3Npb24sIFNvdXBNZXNzYWdlICpt c2csCi0gCQlpbnQgZXhwZWN0ZWRfcmV0dXJuX3JhbmdlcykKLUBAIC00NDUsNiArNDYyLDI5MCBA QCBkb19yYW5nZV90ZXN0IChTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwgY29uc3QgY2hhciAqdXJpLAot IAkJCQkJU09VUF9TVEFUVVNfT0spOwotIH0KLSAKLSsvKiBUZXN0cyBmb3IgdGhlIFJhbmdlIHBh cnNlciBpdHNlbGYuIFVubGlrZSB0aGUgdGVzdHMgYWJvdmUsIHRoZXNlIGRvbid0IG5lZWQKLSsg KiBhIHNlcnZlciwgc28gdGhleSBjYW4gdXNlIHRvdGFsIGxlbmd0aHMgd2hpY2ggd291bGQgYmUg aW1wcmFjdGljYWwgdG8KLSsgKiBhY3R1YWxseSBzZXJ2ZSwgYW5kIHRoZXkgY2FuIGNoZWNrIHRo ZSBleGFjdCBzdGF0dXMgd2hpY2ggdGhlIHNlcnZlciB3b3VsZAotKyAqIHVzZSByYXRoZXIgdGhh biBvbmx5IHRoZSBvbmVzIGEgY2xpZW50IGNhbiBkaXN0aW5ndWlzaC4KLSsgKi8KLSt0eXBlZGVm IHN0cnVjdCB7Ci0rCWNvbnN0IGNoYXIgKmRlc2NyaXB0aW9uOwotKwljb25zdCBjaGFyICpidWdy ZWY7Ci0rCWNvbnN0IGNoYXIgKnJhbmdlOwotKwlnb2Zmc2V0IHRvdGFsX2xlbmd0aDsKLSsJZ3Vp bnQgZXhwZWN0ZWRfc3RhdHVzOwotKwlpbnQgZXhwZWN0ZWRfbl9yYW5nZXM7Ci0rCVNvdXBSYW5n ZSBleHBlY3RlZF9yYW5nZXNbM107Ci0rfSBSYW5nZVBhcnNpbmdUZXN0OwotKwotK3N0YXRpYyBj b25zdCBSYW5nZVBhcnNpbmdUZXN0IHJhbmdlX3BhcnNpbmdfdGVzdHNbXSA9IHsKLSsJLyogVmFs aWQgcmFuZ2VzIGFnYWluc3QgYSB0ZW4gYnl0ZSBib2R5LCBhcyBhIGJhc2VsaW5lLiAqLwotKwl7 ICJzaW1wbGUgcmFuZ2UiLCBOVUxMLAotKwkgICJieXRlcz0wLTQiLCAxMCwgU09VUF9TVEFUVVNf UEFSVElBTF9DT05URU5ULCAxLCB7IHsgMCwgNCB9IH0gfSwKLSsJeyAid2hvbGUgYm9keSIsIE5V TEwsCi0rCSAgImJ5dGVzPTAtOSIsIDEwLCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDEs IHsgeyAwLCA5IH0gfSB9LAotKwl7ICJvcGVuIGVuZGVkIHJhbmdlIiwgTlVMTCwKLSsJICAiYnl0 ZXM9NS0iLCAxMCwgU09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5ULCAxLCB7IHsgNSwgOSB9IH0g fSwKLSsJeyAiZmluYWwgYnl0ZSIsIE5VTEwsCi0rCSAgImJ5dGVzPTktIiwgMTAsIFNPVVBfU1RB VFVTX1BBUlRJQUxfQ09OVEVOVCwgMSwgeyB7IDksIDkgfSB9IH0sCi0rCXsgImVuZCBwYXN0IHRo ZSBib2R5IGlzIGNsYW1wZWQiLCBOVUxMLAotKwkgICJieXRlcz0xLTEwMCIsIDEwLCBTT1VQX1NU QVRVU19QQVJUSUFMX0NPTlRFTlQsIDEsIHsgeyAxLCA5IH0gfSB9LAotKwl7ICJzdWZmaXggcmFu Z2UiLCBOVUxMLAotKwkgICJieXRlcz0tNSIsIDEwLCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRF TlQsIDEsIHsgeyA1LCA5IH0gfSB9LAotKwl7ICJzaW5nbGUgYnl0ZSBzdWZmaXggcmFuZ2UiLCBO VUxMLAotKwkgICJieXRlcz0tMSIsIDEwLCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDEs IHsgeyA5LCA5IH0gfSB9LAotKwl7ICJ3aGl0ZXNwYWNlIGFyb3VuZCB0aGUgcmFuZ2VzIiwgTlVM TCwKLSsJICAiYnl0ZXMgXHQgPSBcdCAwLTQiLCAxMCwgU09VUF9TVEFUVVNfUEFSVElBTF9DT05U RU5ULCAxLCB7IHsgMCwgNCB9IH0gfSwKLSsKLSsJLyogVW5zYXRpc2ZpYWJsZSBhbmQgaW52YWxp ZCByYW5nZXMuICovCi0rCXsgInN0YXJ0IHBhc3QgdGhlIGJvZHkiLCBOVUxMLAotKwkgICJieXRl cz0xMC0yMCIsIDEwLCBTT1VQX1NUQVRVU19SRVFVRVNURURfUkFOR0VfTk9UX1NBVElTRklBQkxF LCAwLCB7IH0gfSwKLSsJeyAiZW5kIGJlZm9yZSBzdGFydCIsIE5VTEwsCi0rCSAgImJ5dGVzPTEw LTEiLCAxMCwgU09VUF9TVEFUVVNfT0ssIDAsIHsgfSB9LAotKwl7ICJ6ZXJvIGxlbmd0aCBzdWZm aXggcmFuZ2UiLCBOVUxMLAotKwkgICJieXRlcz0tMCIsIDEwLCBTT1VQX1NUQVRVU19PSywgMCwg eyB9IH0sCi0rCXsgInRyYWlsaW5nIGdhcmJhZ2UiLCBOVUxMLAotKwkgICJieXRlcz0wLTEwIGJ1 dCB3aXRoIHdlaXJkIHRyYWlsaW5nIGNvbnRlbnQiLCAxMCwgU09VUF9TVEFUVVNfT0ssIDAsIHsg fSB9LAotKwl7ICJpbnZhbGlkIHJhbmdlIGRhc2giLCBOVUxMLAotKwkgICJieXRlcz0wYTEwIiwg MTAsIFNPVVBfU1RBVFVTX09LLCAwLCB7IH0gfSwKLSsJeyAidW5rbm93biByYW5nZSB1bml0Iiwg TlVMTCwKLSsJICAiaG9yc2VzPTAtMTAiLCAxMCwgU09VUF9TVEFUVVNfT0ssIDAsIHsgfSB9LAot Kwl7ICJtaXNzaW5nIGVxdWFscyIsIE5VTEwsCi0rCSAgImJ5dGVzIDAtMTAiLCAxMCwgU09VUF9T VEFUVVNfT0ssIDAsIHsgfSB9LAotKwl7ICJkZWxpbWl0ZXJzIGJ1dCBubyByYW5nZXMiLCBOVUxM LAotKwkgICJieXRlcz0sICwsXHQsICIsIDEwLCBTT1VQX1NUQVRVU19PSywgMCwgeyB9IH0sCi0r Ci0rCS8qIEEgc3VmZml4IGxlbmd0aCBhdCBsZWFzdCBhcyBsb25nIGFzIHRoZSBib2R5IHNlbGVj dHMgdGhlIHdob2xlIGJvZHksCi0rCSAqIHBlciBSRkMgOTExMCDCpzE0LjEuMi4gVGhlc2UgdXNl ZCB0byBkcml2ZSB0aGUgcmFuZ2Ugc3RhcnQgbmVnYXRpdmUsCi0rCSAqIHdoaWNoIGFib3J0ZWQg dGhlIHByb2Nlc3MgYXQgdGhlIGdfYXNzZXJ0KCkgYmVsb3cgdGhlIHBhcnNlLgotKwkgKi8KLSsJ eyAic3VmZml4IHJhbmdlIHRoZSBsZW5ndGggb2YgdGhlIGJvZHkiLCAiaHR0cHM6Ly9naXRsYWIu Z25vbWUub3JnL0dOT01FL2xpYnNvdXAvLS9pc3N1ZXMvNTE2IiwKLSsJICAiYnl0ZXM9LTEwIiwg MTAsIFNPVVBfU1RBVFVTX1BBUlRJQUxfQ09OVEVOVCwgMSwgeyB7IDAsIDkgfSB9IH0sCi0rCXsg InN1ZmZpeCByYW5nZSBvbmUgbG9uZ2VyIHRoYW4gdGhlIGJvZHkiLCAiaHR0cHM6Ly9naXRsYWIu Z25vbWUub3JnL0dOT01FL2xpYnNvdXAvLS9pc3N1ZXMvNTE2IiwKLSsJICAiYnl0ZXM9LTExIiwg MTAsIFNPVVBfU1RBVFVTX1BBUlRJQUxfQ09OVEVOVCwgMSwgeyB7IDAsIDkgfSB9IH0sCi0rCXsg InN1ZmZpeCByYW5nZSBtdWNoIGxvbmdlciB0aGFuIHRoZSBib2R5IiwgImh0dHBzOi8vZ2l0bGFi Lmdub21lLm9yZy9HTk9NRS9saWJzb3VwLy0vaXNzdWVzLzU0OCIsCi0rCSAgImJ5dGVzPS05OTk5 OTkiLCAxMCwgU09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5ULCAxLCB7IHsgMCwgOSB9IH0gfSwK LSsJeyAic3VmZml4IHJhbmdlIG9mIEdfTUlOSU5UIiwgImh0dHBzOi8vZ2l0bGFiLmdub21lLm9y Zy9HTk9NRS9saWJzb3VwLy0vaXNzdWVzLzU0NyIsCi0rCSAgImJ5dGVzPS0yMTQ3NDgzNjQ4Iiwg MTAsIFNPVVBfU1RBVFVTX1BBUlRJQUxfQ09OVEVOVCwgMSwgeyB7IDAsIDkgfSB9IH0sCi0rCXsg InN1ZmZpeCByYW5nZSBsYXJnZXIgdGhhbiBhIGd1aW50MzIiLCAiaHR0cHM6Ly9naXRsYWIuZ25v bWUub3JnL0dOT01FL2xpYnNvdXAvLS9pc3N1ZXMvNTQ3IiwKLSsJICAiYnl0ZXM9LTQyOTQ5Njcy OTYiLCAxMCwgU09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5ULCAxLCB7IHsgMCwgOSB9IH0gfSwK LSsJeyAic3VmZml4IHJhbmdlIG9mIEdfTUFYSU5UNjQiLCAiaHR0cHM6Ly9naXRsYWIuZ25vbWUu b3JnL0dOT01FL2xpYnNvdXAvLS9pc3N1ZXMvNTQ3IiwKLSsJICAiYnl0ZXM9LTkyMjMzNzIwMzY4 NTQ3NzU4MDciLCAxMCwgU09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5ULCAxLCB7IHsgMCwgOSB9 IH0gfSwKLSsJeyAic3VmZml4IHJhbmdlIG9mIEdfTUlOSU5UNjQiLCAiaHR0cHM6Ly9naXRsYWIu Z25vbWUub3JnL0dOT01FL2xpYnNvdXAvLS9pc3N1ZXMvNTQ3IiwKLSsJICAiYnl0ZXM9LTkyMjMz NzIwMzY4NTQ3NzU4MDgiLCAxMCwgU09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5ULCAxLCB7IHsg MCwgOSB9IH0gfSwKLSsJeyAic3VmZml4IHJhbmdlIG92ZXJmbG93aW5nIGdpbnQ2NCIsICJodHRw czovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGlic291cC8tL2lzc3Vlcy81MzUiLAotKwkgICJi eXRlcz0tOTk5OTk5OTk5OTk5OTk5OTk5OTkiLCAxMCwgU09VUF9TVEFUVVNfUEFSVElBTF9DT05U RU5ULCAxLCB7IHsgMCwgOSB9IH0gfSwKLSsJeyAib3ZlcnNpemVkIHN1ZmZpeCByYW5nZSBtZXJn ZWQgd2l0aCBhIHZhbGlkIHJhbmdlIiwgImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9s aWJzb3VwLy0vaXNzdWVzLzU0OCIsCi0rCSAgImJ5dGVzPS05OTk5OTksNC01IiwgMTAsIFNPVVBf U1RBVFVTX1BBUlRJQUxfQ09OVEVOVCwgMSwgeyB7IDAsIDkgfSB9IH0sCi0rCi0rCS8qIFJhbmdl IHN0YXJ0cyBhbmQgZW5kcyB3aGljaCBvdmVyZmxvdyB0aGUgc2lnbmVkIGdvZmZzZXQgdGhleSBh cmUKLSsJICogcGFyc2VkIGludG8uIEFuIG92ZXJmbG93aW5nIHN0YXJ0IGlzIHRyZWF0ZWQgbGlr ZSBhbnkgb3RoZXIgc3RhcnQKLSsJICogYmV5b25kIHRoZSBlbmQgb2YgdGhlIGJvZHksIGFuZCBh biBvdmVyZmxvd2luZyBlbmQgaXMgY2xhbXBlZCBsaWtlCi0rCSAqIGFueSBvdGhlciBlbmQgYmV5 b25kIHRoZSBlbmQgb2YgdGhlIGJvZHkuCi0rCSAqLwotKwl7ICJzdGFydCBvdmVyZmxvd2luZyBn aW50NjQiLCAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xpYnNvdXAvLS9pc3N1ZXMv NTM1IiwKLSsJICAiYnl0ZXM9OTg4ODg4ODg4ODg4ODAxOTkwMC0iLCAxMCwgU09VUF9TVEFUVVNf T0ssIDAsIHsgfSB9LAotKwl7ICJzdGFydCBvdmVyZmxvd2luZyBnaW50NjQgd2l0aCBubyBkYXNo IiwgImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJzb3VwLy0vaXNzdWVzLzUzNSIs Ci0rCSAgImJ5dGVzPTk4ODg4ODg4ODg4ODgwMTk5MDAiLCAxMCwgU09VUF9TVEFUVVNfT0ssIDAs IHsgfSB9LAotKwl7ICJzdGFydCBvZiBHX01BWElOVDY0ICsgMSIsICJodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvbGlic291cC8tL2lzc3Vlcy81MzUiLAotKwkgICJieXRlcz05MjIzMzcy MDM2ODU0Nzc1ODA4LSIsIDEwLCBTT1VQX1NUQVRVU19PSywgMCwgeyB9IH0sCi0rCXsgInN0YXJ0 IG92ZXJmbG93aW5nIGd1aW50NjQiLCAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xp YnNvdXAvLS9pc3N1ZXMvNTM1IiwKLSsJICAiYnl0ZXM9MTg0NDY3NDQwNzM3MDk1NTE2MTYtIiwg MTAsIFNPVVBfU1RBVFVTX09LLCAwLCB7IH0gfSwKLSsJeyAic3RhcnQgYW5kIGVuZCBvdmVyZmxv d2luZyBnaW50NjQiLCAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xpYnNvdXAvLS9p c3N1ZXMvNTM1IiwKLSsJICAiYnl0ZXM9OTg4ODg4ODg4ODg4ODAxOTkwMC05ODg4ODg4ODg4ODg4 MDE5OTAxIiwgMTAsIFNPVVBfU1RBVFVTX09LLCAwLCB7IH0gfSwKLSsJeyAiZW5kIG92ZXJmbG93 aW5nIGdpbnQ2NCIsICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGlic291cC8tL2lz c3Vlcy81MzUiLAotKwkgICJieXRlcz0wLTk4ODg4ODg4ODg4ODgwMTk5MDAiLCAxMCwgU09VUF9T VEFUVVNfUEFSVElBTF9DT05URU5ULCAxLCB7IHsgMCwgOSB9IH0gfSwKLSsJeyAiZW5kIG92ZXJm bG93aW5nIGd1aW50NjQiLCAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xpYnNvdXAv LS9pc3N1ZXMvNTM1IiwKLSsJICAiYnl0ZXM9MC0xODQ0Njc0NDA3MzcwOTU1MTYxNiIsIDEwLCBT T1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDEsIHsgeyAwLCA5IH0gfSB9LAotKwotKwkvKiBa ZXJvIGxlbmd0aCBib2RpZXMuIHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9yYW5nZXMoKSBpcyBw dWJsaWMgQVBJLAotKwkgKiBzbyBpdCBjYW4gYmUgY2FsbGVkIHdpdGggb25lIGV2ZW4gdGhvdWdo IHRoZSBzZXJ2ZXIgbmV2ZXIgZG9lcy4KLSsJICovCi0rCXsgInJhbmdlIGFnYWluc3QgYW4gZW1w dHkgYm9keSIsIE5VTEwsCi0rCSAgImJ5dGVzPTAtOSIsIDAsIFNPVVBfU1RBVFVTX1JFUVVFU1RF RF9SQU5HRV9OT1RfU0FUSVNGSUFCTEUsIDAsIHsgfSB9LAotKwl7ICJzdWZmaXggcmFuZ2UgYWdh aW5zdCBhbiBlbXB0eSBib2R5IiwgImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJz b3VwLy0vaXNzdWVzLzU0OCIsCi0rCSAgImJ5dGVzPS01IiwgMCwgU09VUF9TVEFUVVNfT0ssIDAs IHsgfSB9LAotKwotKwkvKiBNZXJnaW5nLiAqLwotKwl7ICJvdmVybGFwcGluZyByYW5nZXMgYXJl IG1lcmdlZCIsIE5VTEwsCi0rCSAgImJ5dGVzPTAtMTAsNS0yMCIsIDEwMCwgU09VUF9TVEFUVVNf UEFSVElBTF9DT05URU5ULCAxLCB7IHsgMCwgMjAgfSB9IH0sCi0rCXsgImNvbnRhaW5lZCByYW5n ZXMgYXJlIG1lcmdlZCIsIE5VTEwsCi0rCSAgImJ5dGVzPTAtMjAsNS0xMCIsIDEwMCwgU09VUF9T VEFUVVNfUEFSVElBTF9DT05URU5ULCAxLCB7IHsgMCwgMjAgfSB9IH0sCi0rCXsgInRvdWNoaW5n IHJhbmdlcyBhcmUgbm90IG1lcmdlZCIsIE5VTEwsCi0rCSAgImJ5dGVzPTAtNCw1LTkiLCAxMDAs IFNPVVBfU1RBVFVTX1BBUlRJQUxfQ09OVEVOVCwgMiwgeyB7IDAsIDQgfSwgeyA1LCA5IH0gfSB9 LAotKwl7ICJyYW5nZXMgYXJlIHNvcnRlZCIsIE5VTEwsCi0rCSAgImJ5dGVzPTIwLTI5LDAtOSIs IDEwMCwgU09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5ULCAyLCB7IHsgMCwgOSB9LCB7IDIwLCAy OSB9IH0gfSwKLSsJeyAiaW52YWxpZCByYW5nZXMgZG8gbm90IHByZXZlbnQgdmFsaWQgb25lcyIs IE5VTEwsCi0rCSAgImJ5dGVzPTAtOSw1MC00MCwyMC0yOSIsIDEwMCwgU09VUF9TVEFUVVNfUEFS VElBTF9DT05URU5ULCAyLCB7IHsgMCwgOSB9LCB7IDIwLCAyOSB9IH0gfSwKLSsKLSsJLyogVGhl IGNvbXBhcmlzb24gZnVuY3Rpb24gdXNlZCB0byBzb3J0IHRoZSByYW5nZXMgYmVmb3JlIG1lcmdp bmcgdGhlbQotKwkgKiB1c2VkIHRvIHRydW5jYXRlIGEgZ29mZnNldCBkaWZmZXJlbmNlIHRvIGlu dCwgd2hpY2ggZmxpcHMgaXRzIHNpZ24KLSsJICogZm9yIGJvZGllcyBvdmVyIDJHQiBhbmQgc2ls ZW50bHkgZHJvcHBlZCByYW5nZXMgZnJvbSB0aGUgcmVzcG9uc2UuCi0rCSAqLwotKwl7ICJyYW5n ZXMgbW9yZSB0aGFuIEdfTUFYSU5UIGFwYXJ0IiwgImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9H Tk9NRS9saWJzb3VwLy0vaXNzdWVzLzUxOSIsCi0rCSAgImJ5dGVzPTAtMTAwLCAyNTAwMDAwMDAw LTI1MDAwMDAxMDAsIDQ5OTk5OTkwMDAtNDk5OTk5OTEwMCIsIDUwMDAwMDAwMDAsCi0rCSAgU09V UF9TVEFUVVNfUEFSVElBTF9DT05URU5ULCAzLAotKwkgIHsgeyAwLCAxMDAgfSwgeyAyNTAwMDAw MDAwLCAyNTAwMDAwMTAwIH0sIHsgNDk5OTk5OTAwMCwgNDk5OTk5OTEwMCB9IH0gfSwKLSsJeyAi dW5zb3J0ZWQgcmFuZ2VzIG1vcmUgdGhhbiBHX01BWElOVCBhcGFydCIsICJodHRwczovL2dpdGxh Yi5nbm9tZS5vcmcvR05PTUUvbGlic291cC8tL2lzc3Vlcy81MTkiLAotKwkgICJieXRlcz00OTk5 OTk5MDAwLTQ5OTk5OTkxMDAsIDAtMTAwLCAyNTAwMDAwMDAwLTI1MDAwMDAxMDAiLCA1MDAwMDAw MDAwLAotKwkgIFNPVVBfU1RBVFVTX1BBUlRJQUxfQ09OVEVOVCwgMywKLSsJICB7IHsgMCwgMTAw IH0sIHsgMjUwMDAwMDAwMCwgMjUwMDAwMDEwMCB9LCB7IDQ5OTk5OTkwMDAsIDQ5OTk5OTkxMDAg fSB9IH0sCi0rfTsKLSsKLStzdGF0aWMgdm9pZAotK2NoZWNrX3BhcnNlZF9yYW5nZXMgKGNvbnN0 IGNoYXIgKnJhbmdlLAotKwkJICAgICBnb2Zmc2V0ICAgICB0b3RhbF9sZW5ndGgsCi0rCQkgICAg IGd1aW50ICAgICAgIGV4cGVjdGVkX3N0YXR1cywKLSsJCSAgICAgaW50ICAgICAgICAgZXhwZWN0 ZWRfbl9yYW5nZXMsCi0rCQkgICAgIGNvbnN0IFNvdXBSYW5nZSAqZXhwZWN0ZWRfcmFuZ2VzKQot K3sKLSsJU291cE1lc3NhZ2VIZWFkZXJzICpoZHJzOwotKwlTb3VwUmFuZ2UgKnJhbmdlcyA9IE5V TEw7Ci0rCWludCBuX3JhbmdlcyA9IDA7Ci0rCWd1aW50IHN0YXR1czsKLSsJaW50IGk7Ci0rCi0r CWhkcnMgPSBzb3VwX21lc3NhZ2VfaGVhZGVyc19uZXcgKFNPVVBfTUVTU0FHRV9IRUFERVJTX1JF UVVFU1QpOwotKwlzb3VwX21lc3NhZ2VfaGVhZGVyc19yZXBsYWNlIChoZHJzLCAiUmFuZ2UiLCBy YW5nZSk7Ci0rCi0rCXN0YXR1cyA9IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9yYW5nZXNfaW50 ZXJuYWwgKGhkcnMsIHRvdGFsX2xlbmd0aCwgVFJVRSwKLSsJCQkJCQkJICAgJnJhbmdlcywgJm5f cmFuZ2VzKTsKLSsKLSsJZ19hc3NlcnRfY21wdWludCAoc3RhdHVzLCA9PSwgZXhwZWN0ZWRfc3Rh dHVzKTsKLSsKLSsJaWYgKHN0YXR1cyA9PSBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQpIHsK LSsJCWdfYXNzZXJ0X25vbm51bGwgKHJhbmdlcyk7Ci0rCQlnX2Fzc2VydF9jbXBpbnQgKG5fcmFu Z2VzLCA9PSwgZXhwZWN0ZWRfbl9yYW5nZXMpOwotKwotKwkJZm9yIChpID0gMDsgaSA8IG5fcmFu Z2VzOyBpKyspIHsKLSsJCQlkZWJ1Z19wcmludGYgKDIsICIgICAgWyVkXTogJSIgR19HSU5UNjRf Rk9STUFUICItJSIgR19HSU5UNjRfRk9STUFUICJcbiIsCi0rCQkJCSAgICAgIGksIHJhbmdlc1tp XS5zdGFydCwgcmFuZ2VzW2ldLmVuZCk7Ci0rCi0rCQkJZ19hc3NlcnRfY21waW50IChyYW5nZXNb aV0uc3RhcnQsID09LCBleHBlY3RlZF9yYW5nZXNbaV0uc3RhcnQpOwotKwkJCWdfYXNzZXJ0X2Nt cGludCAocmFuZ2VzW2ldLmVuZCwgPT0sIGV4cGVjdGVkX3Jhbmdlc1tpXS5lbmQpOwotKwotKwkJ CS8qIFdoYXRldmVyIHRoZSBpbnB1dCwgdGhlIHBhcnNlZCByYW5nZXMgbXVzdCBiZSB1c2FibGUK LSsJCQkgKiBhcyBvZmZzZXRzIGludG8gYSBidWZmZXIgb2YgdG90YWxfbGVuZ3RoIGJ5dGVzLgot KwkJCSAqLwotKwkJCWdfYXNzZXJ0X2NtcGludCAocmFuZ2VzW2ldLnN0YXJ0LCA+PSwgMCk7Ci0r CQkJZ19hc3NlcnRfY21waW50IChyYW5nZXNbaV0uZW5kLCA+PSwgcmFuZ2VzW2ldLnN0YXJ0KTsK LSsJCQlnX2Fzc2VydF9jbXBpbnQgKHJhbmdlc1tpXS5lbmQsIDwsIHRvdGFsX2xlbmd0aCk7Ci0r CQl9Ci0rCX0KLSsKLSsJc291cF9tZXNzYWdlX2hlYWRlcnNfZnJlZV9yYW5nZXMgKGhkcnMsIHJh bmdlcyk7Ci0rCXNvdXBfbWVzc2FnZV9oZWFkZXJzX3VucmVmIChoZHJzKTsKLSt9Ci0rCi0rc3Rh dGljIHZvaWQKLStkb19yYW5nZV9wYXJzaW5nX3Rlc3QgKHZvaWQpCi0rewotKwlndWludCBpOwot KwotKwlmb3IgKGkgPSAwOyBpIDwgR19OX0VMRU1FTlRTIChyYW5nZV9wYXJzaW5nX3Rlc3RzKTsg aSsrKSB7Ci0rCQljb25zdCBSYW5nZVBhcnNpbmdUZXN0ICp0ZXN0ID0gJnJhbmdlX3BhcnNpbmdf dGVzdHNbaV07Ci0rCi0rCQlkZWJ1Z19wcmludGYgKDEsICIlMnUuICVzOiAnJXMnIGFnYWluc3Qg JSIgR19HT0ZGU0VUX0ZPUk1BVCAiIGJ5dGVzXG4iLAotKwkJCSAgICAgIGkgKyAxLCB0ZXN0LT5k ZXNjcmlwdGlvbiwgdGVzdC0+cmFuZ2UsIHRlc3QtPnRvdGFsX2xlbmd0aCk7Ci0rCi0rCQlpZiAo dGVzdC0+YnVncmVmKQotKwkJCWdfdGVzdF9tZXNzYWdlICgiQnVnIHJlZmVyZW5jZTogJXMiLCB0 ZXN0LT5idWdyZWYpOwotKwotKwkJY2hlY2tfcGFyc2VkX3JhbmdlcyAodGVzdC0+cmFuZ2UsIHRl c3QtPnRvdGFsX2xlbmd0aCwKLSsJCQkJICAgICB0ZXN0LT5leHBlY3RlZF9zdGF0dXMsIHRlc3Qt PmV4cGVjdGVkX25fcmFuZ2VzLAotKwkJCQkgICAgIHRlc3QtPmV4cGVjdGVkX3Jhbmdlcyk7Ci0r CX0KLSt9Ci0rCi0rLyogQSBzaW5nbGUgUmFuZ2UgaGVhZGVyIGNhbiBsaXN0IGZhciBtb3JlIHJh bmdlcyB0aGFuIGFyZSByZWFzb25hYmxlIHRvIHNlcnZlOgotKyAqIHRoZSBvbmx5IGxpbWl0IG9u IHRoZSB3aXJlIGlzIHRoZSBtYXhpbXVtIHJlcXVlc3QgaGVhZGVyIHNpemUuICovCi0rc3RhdGlj IHZvaWQKLStkb19yYW5nZV9jb3VudF90ZXN0ICh2b2lkKQotK3sKLSsJc3RydWN0IHsKLSsJCWlu dCBuX3JhbmdlczsKLSsJCWdib29sZWFuIGlkZW50aWNhbDsKLSsJCWd1aW50IGV4cGVjdGVkX3N0 YXR1czsKLSsJCWludCBleHBlY3RlZF9uX3JhbmdlczsKLSsJfSB0ZXN0c1tdID0gewotKwkJLyog RGlzdGluY3QgcmFuZ2VzLCB1cCB0byBhbmQgdGhlbiBwYXN0IHRoZSBsaW1pdC4gR29pbmcgcGFz dCBpdAotKwkJICogaXMgcmVqZWN0ZWQgcmF0aGVyIHRoYW4gaWdub3JlZC4KLSsJCSAqLwotKwkJ eyAxMDAsIEZBTFNFLCBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDEwMCB9LAotKwkJeyBN QVhfUkFOR0VTLCBGQUxTRSwgU09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5ULCBNQVhfUkFOR0VT IH0sCi0rCQl7IE1BWF9SQU5HRVMgKyAxLCBGQUxTRSwgU09VUF9TVEFUVVNfUkVRVUVTVEVEX1JB TkdFX05PVF9TQVRJU0ZJQUJMRSwgMCB9LAotKwotKwkJLyogSWRlbnRpY2FsIHJhbmdlcywgd2hp Y2ggYWxsIG1lcmdlIGludG8gb25lLiBUaGlzIGlzIHRoZQotKwkJICogc2hhcGUgd2hpY2ggdXNl ZCB0byBiZSBxdWFkcmF0aWMuCi0rCQkgKi8KLSsJCXsgTUFYX1JBTkdFUywgVFJVRSwgU09VUF9T VEFUVVNfUEFSVElBTF9DT05URU5ULCAxIH0sCi0rCQl7IE1BWF9SQU5HRVMgKyAxLCBUUlVFLCBT T1VQX1NUQVRVU19SRVFVRVNURURfUkFOR0VfTk9UX1NBVElTRklBQkxFLCAwIH0sCi0rCQl7IDI1 NTg1LCBUUlVFLCBTT1VQX1NUQVRVU19SRVFVRVNURURfUkFOR0VfTk9UX1NBVElTRklBQkxFLCAw IH0sCi0rCX07Ci0rCWd1aW50IGk7Ci0rCWludCBqOwotKwotKwlmb3IgKGkgPSAwOyBpIDwgR19O X0VMRU1FTlRTICh0ZXN0cyk7IGkrKykgewotKwkJU291cE1lc3NhZ2VIZWFkZXJzICpoZHJzOwot KwkJU291cFJhbmdlICpyYW5nZXMgPSBOVUxMOwotKwkJaW50IG5fcmFuZ2VzID0gMDsKLSsJCWd1 aW50IHN0YXR1czsKLSsJCUdTdHJpbmcgKnJhbmdlOwotKwotKwkJZGVidWdfcHJpbnRmICgxLCAi JTJ1LiAlZCAlcyByYW5nZXNcbiIsIGkgKyAxLCB0ZXN0c1tpXS5uX3JhbmdlcywKLSsJCQkgICAg ICB0ZXN0c1tpXS5pZGVudGljYWwgPyAiaWRlbnRpY2FsIiA6ICJkaXN0aW5jdCIpOwotKwotKwkJ cmFuZ2UgPSBnX3N0cmluZ19uZXcgKCJieXRlcz0iKTsKLSsJCWZvciAoaiA9IDA7IGogPCB0ZXN0 c1tpXS5uX3JhbmdlczsgaisrKSB7Ci0rCQkJaW50IHN0YXJ0ID0gdGVzdHNbaV0uaWRlbnRpY2Fs ID8gMCA6IGogKiAyOwotKwotKwkJCWlmIChqID4gMCkKLSsJCQkJZ19zdHJpbmdfYXBwZW5kX2Mg KHJhbmdlLCAnLCcpOwotKwkJCWdfc3RyaW5nX2FwcGVuZF9wcmludGYgKHJhbmdlLCAiJWQtJWQi LCBzdGFydCwgc3RhcnQpOwotKwkJfQotKwotKwkJaGRycyA9IHNvdXBfbWVzc2FnZV9oZWFkZXJz X25ldyAoU09VUF9NRVNTQUdFX0hFQURFUlNfUkVRVUVTVCk7Ci0rCQlzb3VwX21lc3NhZ2VfaGVh ZGVyc19yZXBsYWNlIChoZHJzLCAiUmFuZ2UiLCByYW5nZS0+c3RyKTsKLSsJCWdfc3RyaW5nX2Zy ZWUgKHJhbmdlLCBUUlVFKTsKLSsKLSsJCXN0YXR1cyA9IHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dl dF9yYW5nZXNfaW50ZXJuYWwgKGhkcnMsIDEwMDAwMDAsIFRSVUUsCi0rCQkJCQkJCQkgICAmcmFu Z2VzLCAmbl9yYW5nZXMpOwotKwotKwkJZ19hc3NlcnRfY21wdWludCAoc3RhdHVzLCA9PSwgdGVz dHNbaV0uZXhwZWN0ZWRfc3RhdHVzKTsKLSsJCWlmIChzdGF0dXMgPT0gU09VUF9TVEFUVVNfUEFS VElBTF9DT05URU5UKQotKwkJCWdfYXNzZXJ0X2NtcGludCAobl9yYW5nZXMsID09LCB0ZXN0c1tp XS5leHBlY3RlZF9uX3Jhbmdlcyk7Ci0rCi0rCQlzb3VwX21lc3NhZ2VfaGVhZGVyc19mcmVlX3Jh bmdlcyAoaGRycywgcmFuZ2VzKTsKLSsJCXNvdXBfbWVzc2FnZV9oZWFkZXJzX3VucmVmIChoZHJz KTsKLSsJfQotKwotKwkvKiBDYWxsZXJzIHdoaWNoIGRvbid0IGFzayBhYm91dCBzYXRpc2ZpYWJp bGl0eSwgc3VjaCBhcyB0aGUgcHVibGljCi0rCSAqIHNvdXBfbWVzc2FnZV9oZWFkZXJzX2dldF9y YW5nZXMoKSwgY2FuJ3QgYmUgdG9sZCA0MTYsIHNvIGFuCi0rCSAqIG92ZXItbGltaXQgaGVhZGVy IGp1c3QgcmVwb3J0cyBubyByYW5nZXMgdG8gdGhlbS4KLSsJICovCi0rCXsKLSsJCVNvdXBNZXNz YWdlSGVhZGVycyAqaGRyczsKLSsJCVNvdXBSYW5nZSAqcmFuZ2VzID0gTlVMTDsKLSsJCWludCBu X3JhbmdlcyA9IDA7Ci0rCQlHU3RyaW5nICpyYW5nZTsKLSsKLSsJCXJhbmdlID0gZ19zdHJpbmdf bmV3ICgiYnl0ZXM9MC0wIik7Ci0rCQlmb3IgKGogPSAwOyBqIDwgTUFYX1JBTkdFUzsgaisrKQot KwkJCWdfc3RyaW5nX2FwcGVuZCAocmFuZ2UsICIsMC0wIik7Ci0rCi0rCQloZHJzID0gc291cF9t ZXNzYWdlX2hlYWRlcnNfbmV3IChTT1VQX01FU1NBR0VfSEVBREVSU19SRVFVRVNUKTsKLSsJCXNv dXBfbWVzc2FnZV9oZWFkZXJzX3JlcGxhY2UgKGhkcnMsICJSYW5nZSIsIHJhbmdlLT5zdHIpOwot KwkJZ19zdHJpbmdfZnJlZSAocmFuZ2UsIFRSVUUpOwotKwotKwkJZ19hc3NlcnRfY21wdWludCAo c291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X3Jhbmdlc19pbnRlcm5hbCAoaGRycywgMTAwMDAwMCwg RkFMU0UsCi0rCQkJCQkJCQkJICAgICZyYW5nZXMsICZuX3JhbmdlcyksCi0rCQkJCSAgPT0sIFNP VVBfU1RBVFVTX09LKTsKLSsJCWdfYXNzZXJ0X2ZhbHNlIChzb3VwX21lc3NhZ2VfaGVhZGVyc19n ZXRfcmFuZ2VzIChoZHJzLCAxMDAwMDAwLCAmcmFuZ2VzLCAmbl9yYW5nZXMpKTsKLSsKLSsJCXNv dXBfbWVzc2FnZV9oZWFkZXJzX2ZyZWVfcmFuZ2VzIChoZHJzLCByYW5nZXMpOwotKwkJc291cF9t ZXNzYWdlX2hlYWRlcnNfdW5yZWYgKGhkcnMpOwotKwl9Ci0rfQotKwotICNpZmRlZiBIQVZFX0FQ QUNIRQotIHN0YXRpYyB2b2lkCi0gZG9fYXBhY2hlX3JhbmdlX3Rlc3QgKHZvaWQpCi1AQCAtNDcz LDYgKzc3NCw0OSBAQCBzZXJ2ZXJfaGFuZGxlciAoU291cFNlcnZlciAgICAgICAgKnNlcnZlciwK LSAJCQkJCWZ1bGxfcmVzcG9uc2UpOwotIH0KLSAKLStzdGF0aWMgdm9pZAotK2RvX2xpYnNvdXBf b25seV9yYW5nZV90ZXN0IChTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwgY29uc3QgY2hhciAqdXJpKQot K3sKLSsJZ3NpemUgZnVsbF9yZXNwb25zZV9sZW5ndGggPSBnX2J5dGVzX2dldF9zaXplIChmdWxs X3Jlc3BvbnNlKTsKLSsJR1N0cmluZyAqcmFuZ2U7Ci0rCWludCBpOwotKwotKwkvKiBBIHN1ZmZp eCBsZW5ndGggYXQgbGVhc3QgYXMgbG9uZyBhcyB0aGUgYm9keSBzZWxlY3RzIHRoZSB3aG9sZSBi b2R5LiAqLwotKwlkZWJ1Z19wcmludGYgKDEsICJSZXF1ZXN0aW5nIChzdWZmaXggcmFuZ2UgdGhl IGxlbmd0aCBvZiB0aGUgYm9keSkgLSVkXG4iLAotKwkJICAgICAgKGludCkgZnVsbF9yZXNwb25z ZV9sZW5ndGgpOwotKwlyZXF1ZXN0X3NpbmdsZV9yYW5nZSAoc2Vzc2lvbiwgdXJpLAotKwkJCSAg ICAgIC0oKGludCkgZnVsbF9yZXNwb25zZV9sZW5ndGgpLCAtMSwKLSsJCQkgICAgICBTT1VQX1NU QVRVU19QQVJUSUFMX0NPTlRFTlQsIDAsIC0xKTsKLSsKLSsJZGVidWdfcHJpbnRmICgxLCAiUmVx dWVzdGluZyAoc3VmZml4IHJhbmdlIGxvbmdlciB0aGFuIHRoZSBib2R5KSAtOTk5OTk5XG4iKTsK LSsJcmVxdWVzdF9zaW5nbGVfcmFuZ2VfYnlfc3RyaW5nX2Z1bGwgKHNlc3Npb24sIHVyaSwgImJ5 dGVzPS05OTk5OTkiLAotKwkJCQkJICAgICBTT1VQX1NUQVRVU19QQVJUSUFMX0NPTlRFTlQsIDAs IC0xKTsKLSsKLSsJZGVidWdfcHJpbnRmICgxLCAiUmVxdWVzdGluZyAoc3VmZml4IHJhbmdlIG92 ZXJmbG93aW5nIGdpbnQ2NCkgLTk5OTk5OTk5OTk5OTk5OTk5OTk5XG4iKTsKLSsJcmVxdWVzdF9z aW5nbGVfcmFuZ2VfYnlfc3RyaW5nX2Z1bGwgKHNlc3Npb24sIHVyaSwgImJ5dGVzPS05OTk5OTk5 OTk5OTk5OTk5OTk5OSIsCi0rCQkJCQkgICAgIFNPVVBfU1RBVFVTX1BBUlRJQUxfQ09OVEVOVCwg MCwgLTEpOwotKwotKwkvKiBBIHN0YXJ0IHdoaWNoIG92ZXJmbG93cyBnaW50NjQgaXMgdHJlYXRl ZCBsaWtlIGFueSBvdGhlciBzdGFydCBwYXN0Ci0rCSAqIHRoZSBlbmQgb2YgdGhlIGJvZHkuCi0r CSAqIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJzb3VwLy0vaXNzdWVzLzUzNQot KwkgKi8KLSsJZGVidWdfcHJpbnRmICgxLCAiUmVxdWVzdGluZyAoc3RhcnQgb3ZlcmZsb3dpbmcg Z2ludDY0KSA5ODg4ODg4ODg4ODg4MDE5OTAwLVxuIik7Ci0rCXJlcXVlc3Rfc2luZ2xlX3Jhbmdl X2J5X3N0cmluZyAoc2Vzc2lvbiwgdXJpLCAiYnl0ZXM9OTg4ODg4ODg4ODg4ODAxOTkwMC0iLAot KwkJCQkJU09VUF9TVEFUVVNfT0spOwotKwotKwkvKiBNb3JlIHJhbmdlcyB0aGFuIHRoZSBzZXJ2 ZXIgaXMgd2lsbGluZyB0byBjb2FsZXNjZSwgd2hpY2ggaXMKLSsJICogcmVqZWN0ZWQgcmF0aGVy IHRoYW4gYW5zd2VyZWQgd2l0aCB0aGUgd2hvbGUgYm9keS4KLSsJICogaHR0cHM6Ly9naXRsYWIu Z25vbWUub3JnL0dOT01FL2xpYnNvdXAvLS9pc3N1ZXMvNTM4Ci0rCSAqLwotKwlkZWJ1Z19wcmlu dGYgKDEsICJSZXF1ZXN0aW5nIChtb3JlIHJhbmdlcyB0aGFuIHRoZSBsaW1pdClcbiIpOwotKwly YW5nZSA9IGdfc3RyaW5nX25ldyAoImJ5dGVzPSIpOwotKwlmb3IgKGkgPSAwOyBpIDwgTUFYX1JB TkdFUyArIDE7IGkrKykKLSsJCWdfc3RyaW5nX2FwcGVuZCAocmFuZ2UsIGkgPiAwID8gIiwwLTAi IDogIjAtMCIpOwotKwlyZXF1ZXN0X3NpbmdsZV9yYW5nZV9ieV9zdHJpbmcgKHNlc3Npb24sIHVy aSwgcmFuZ2UtPnN0ciwKLSsJCQkJCVNPVVBfU1RBVFVTX1JFUVVFU1RFRF9SQU5HRV9OT1RfU0FU SVNGSUFCTEUpOwotKwlnX3N0cmluZ19mcmVlIChyYW5nZSwgVFJVRSk7Ci0rfQotKwotIHN0YXRp YyB2b2lkCi0gZG9fbGlic291cF9yYW5nZV90ZXN0ICh2b2lkKQotIHsKLUBAIC00ODgsNiArODMy LDcgQEAgZG9fbGlic291cF9yYW5nZV90ZXN0ICh2b2lkKQotIAliYXNlX3VyaSA9IHNvdXBfdGVz dF9zZXJ2ZXJfZ2V0X3VyaSAoc2VydmVyLCAiaHR0cCIsIE5VTEwpOwotIAliYXNlX3VyaV9zdHIg PSBnX3VyaV90b19zdHJpbmcgKGJhc2VfdXJpKTsKLSAJZG9fcmFuZ2VfdGVzdCAoc2Vzc2lvbiwg YmFzZV91cmlfc3RyLCBUUlVFLCBUUlVFKTsKLSsJZG9fbGlic291cF9vbmx5X3JhbmdlX3Rlc3Qg KHNlc3Npb24sIGJhc2VfdXJpX3N0cik7Ci0gCWdfdXJpX3VucmVmIChiYXNlX3VyaSk7Ci0gCWdf ZnJlZSAoYmFzZV91cmlfc3RyKTsKLSAJc291cF90ZXN0X3NlcnZlcl9xdWl0X3VucmVmIChzZXJ2 ZXIpOwotQEAgLTUxMiw2ICs4NTcsOCBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0g CWdfdGVzdF9hZGRfZnVuYyAoIi9yYW5nZXMvYXBhY2hlIiwgZG9fYXBhY2hlX3JhbmdlX3Rlc3Qp OwotICNlbmRpZgotIAlnX3Rlc3RfYWRkX2Z1bmMgKCIvcmFuZ2VzL2xpYnNvdXAiLCBkb19saWJz b3VwX3JhbmdlX3Rlc3QpOwotKwlnX3Rlc3RfYWRkX2Z1bmMgKCIvcmFuZ2VzL3BhcnNpbmciLCBk b19yYW5nZV9wYXJzaW5nX3Rlc3QpOwotKwlnX3Rlc3RfYWRkX2Z1bmMgKCIvcmFuZ2VzL2NvdW50 IiwgZG9fcmFuZ2VfY291bnRfdGVzdCk7Ci0gCi0gCXJldCA9IGdfdGVzdF9ydW4gKCk7Ci0gCi1k aWZmIC0tZ2l0IGEvdGVzdHMvc2VydmVyLW1lbS1saW1pdC10ZXN0LmMgYi90ZXN0cy9zZXJ2ZXIt bWVtLWxpbWl0LXRlc3QuYwotaW5kZXggNjVkYzg3NWUuLmVlMjBiYTliIDEwMDY0NAotLS0tIGEv dGVzdHMvc2VydmVyLW1lbS1saW1pdC10ZXN0LmMKLSsrKyBiL3Rlc3RzL3NlcnZlci1tZW0tbGlt aXQtdGVzdC5jCi1AQCAtNCw2ICs0LDcgQEAKLSAgKi8KLSAKLSAjaW5jbHVkZSAidGVzdC11dGls cy5oIgotKyNpbmNsdWRlICJzb3VwLW1lc3NhZ2UtaGVhZGVycy1wcml2YXRlLmgiCi0gCi0gI2lu Y2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgotIAotQEAgLTgxLDQ2ICs4Miw2NiBAQCBzZXJ2ZXJfZmls ZV9jYWxsYmFjayAoU291cFNlcnZlciAgICAgICAgKnNlcnZlciwKLSB9Ci0gCi0gc3RhdGljIHZv aWQKLS1kb19yYW5nZXNfb3ZlcmxhcHNfdGVzdCAoU2VydmVyRGF0YSAqc2QsIGdjb25zdHBvaW50 ZXIgdGVzdF9kYXRhKQotK3JlcXVlc3RfcmFuZ2VzIChTZXJ2ZXJEYXRhICpzZCwgY29uc3QgY2hh ciAqcmFuZ2UsIFNvdXBTdGF0dXMgZXhwZWN0ZWRfc3RhdHVzKQotIHsKLSAJU291cFNlc3Npb24g KnNlc3Npb247Ci0gCVNvdXBNZXNzYWdlICptc2c7Ci0tCUdTdHJpbmcgKnJhbmdlOwotIAlHVXJp ICp1cmk7Ci0tCWNvbnN0IGNoYXIgKmNodW5rID0gIiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAiOwot LQotLQlnX3Rlc3RfYnVnICgiNDI4Iik7Ci0tCi0tCSNpZmRlZiBHX09TX1dJTjMyCi0tCWdfdGVz dF9za2lwICgiQ2Fubm90IHJ1biB1bmRlciB3aW5kb3dzIik7Ci0tCXJldHVybjsKLS0JI2VuZGlm Ci0tCi0tCXJhbmdlID0gZ19zdHJpbmdfc2l6ZWRfbmV3ICg5OSAqIDEwMjQpOwotLQlnX3N0cmlu Z19hcHBlbmQgKHJhbmdlLCAiYnl0ZXM9MTAyNCIpOwotLQl3aGlsZSAocmFuZ2UtPmxlbiA8IDk5 ICogMTAyNCkKLS0JCWdfc3RyaW5nX2FwcGVuZCAocmFuZ2UsIGNodW5rKTsKLSAKLSAJc2Vzc2lv biA9IHNvdXBfdGVzdF9zZXNzaW9uX25ldyAoTlVMTCk7Ci0tCXNlcnZlcl9hZGRfaGFuZGxlciAo c2QsICIvZmlsZSIsIHNlcnZlcl9maWxlX2NhbGxiYWNrLCBOVUxMLCBOVUxMKTsKLSAKLSAJdXJp ID0gZ191cmlfcGFyc2VfcmVsYXRpdmUgKHNkLT5iYXNlX3VyaSwgIi9maWxlIiwgU09VUF9IVFRQ X1VSSV9GTEFHUywgTlVMTCk7Ci0gCi0gCW1zZyA9IHNvdXBfbWVzc2FnZV9uZXdfZnJvbV91cmkg KCJHRVQiLCB1cmkpOwotLQlzb3VwX21lc3NhZ2VfaGVhZGVyc19hcHBlbmQgKHNvdXBfbWVzc2Fn ZV9nZXRfcmVxdWVzdF9oZWFkZXJzIChtc2cpLCAiUmFuZ2UiLCByYW5nZS0+c3RyKTsKLSsJc291 cF9tZXNzYWdlX2hlYWRlcnNfYXBwZW5kIChzb3VwX21lc3NhZ2VfZ2V0X3JlcXVlc3RfaGVhZGVy cyAobXNnKSwgIlJhbmdlIiwgcmFuZ2UpOwotIAotIAlzb3VwX3Rlc3Rfc2Vzc2lvbl9zZW5kX21l c3NhZ2UgKHNlc3Npb24sIG1zZyk7Ci0gCi0tCXNvdXBfdGVzdF9hc3NlcnRfbWVzc2FnZV9zdGF0 dXMgKG1zZywgU09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5UKTsKLSsJc291cF90ZXN0X2Fzc2Vy dF9tZXNzYWdlX3N0YXR1cyAobXNnLCBleHBlY3RlZF9zdGF0dXMpOwotIAotIAlnX29iamVjdF91 bnJlZiAobXNnKTsKLS0KLS0JZ19zdHJpbmdfZnJlZSAocmFuZ2UsIFRSVUUpOwotIAlnX3VyaV91 bnJlZiAodXJpKTsKLSAKLSAJc291cF90ZXN0X3Nlc3Npb25fYWJvcnRfdW5yZWYgKHNlc3Npb24p OwotIH0KLSAKLStzdGF0aWMgdm9pZAotK2RvX3Jhbmdlc19vdmVybGFwc190ZXN0IChTZXJ2ZXJE YXRhICpzZCwgZ2NvbnN0cG9pbnRlciB0ZXN0X2RhdGEpCi0rewotKwlHU3RyaW5nICpyYW5nZTsK LSsJY29uc3QgY2hhciAqY2h1bmsgPSAiLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCI7Ci0rCWludCBp OwotKwotKwlnX3Rlc3RfYnVnICgiNDI4Iik7Ci0rCi0rCSNpZmRlZiBHX09TX1dJTjMyCi0rCWdf dGVzdF9za2lwICgiQ2Fubm90IHJ1biB1bmRlciB3aW5kb3dzIik7Ci0rCXJldHVybjsKLSsJI2Vu ZGlmCi0rCi0rCXNlcnZlcl9hZGRfaGFuZGxlciAoc2QsICIvZmlsZSIsIHNlcnZlcl9maWxlX2Nh bGxiYWNrLCBOVUxMLCBOVUxMKTsKLSsKLSsJLyogUmVxdWVzdGluZyB0aGUgc2FtZSByYW5nZSBt YW55IHRpbWVzIG92ZXIgdXNlZCB0byBtYWtlIHRoZSBzZXJ2ZXIKLSsJICogYWxsb2NhdGUgYSBy ZXNwb25zZSBwcm9wb3J0aW9uYWwgdG8gdGhlIG51bWJlciBvZiByYW5nZXMgaW5zdGVhZCBvZgot KwkgKiBjb2FsZXNjaW5nIHRoZW0gaW50byBvbmUuIEVhY2ggIjAiIGhlcmUgaXMgYW4gb3BlbiBl bmRlZCByYW5nZQotKwkgKiBjb3ZlcmluZyB0aGUgd2hvbGUgYm9keSwgc28gdGhleSBhbGwgY29s bGFwc2UgaW50byBhIHNpbmdsZSByYW5nZS4KLSsJICovCi0rCXJhbmdlID0gZ19zdHJpbmdfbmV3 ICgiYnl0ZXM9MTAyNCIpOwotKwlmb3IgKGkgPSAxOyBpIDwgTUFYX1JBTkdFUzsgaSsrKQotKwkJ Z19zdHJpbmdfYXBwZW5kIChyYW5nZSwgIiwwIik7Ci0rCXJlcXVlc3RfcmFuZ2VzIChzZCwgcmFu Z2UtPnN0ciwgU09VUF9TVEFUVVNfUEFSVElBTF9DT05URU5UKTsKLSsJZ19zdHJpbmdfZnJlZSAo cmFuZ2UsIFRSVUUpOwotKwotKwkvKiBBIGhlYWRlciBsaXN0aW5nIG1vcmUgcmFuZ2VzIHRoYW4g dGhlIHNlcnZlciBpcyB3aWxsaW5nIHRvIGNvYWxlc2NlCi0rCSAqIGlzIHJlamVjdGVkIG91dHJp Z2h0LiAqLwotKwlyYW5nZSA9IGdfc3RyaW5nX3NpemVkX25ldyAoKGdzaXplKTk5ICogMTAyNCk7 Ci0rCWdfc3RyaW5nX2FwcGVuZCAocmFuZ2UsICJieXRlcz0xMDI0Iik7Ci0rCXdoaWxlIChyYW5n ZS0+bGVuIDwgKGdzc2l6ZSk5OSAqIDEwMjQpCi0rCQlnX3N0cmluZ19hcHBlbmQgKHJhbmdlLCBj aHVuayk7Ci0rCXJlcXVlc3RfcmFuZ2VzIChzZCwgcmFuZ2UtPnN0ciwgU09VUF9TVEFUVVNfUkVR VUVTVEVEX1JBTkdFX05PVF9TQVRJU0ZJQUJMRSk7Ci0rCWdfc3RyaW5nX2ZyZWUgKHJhbmdlLCBU UlVFKTsKLSt9Ci0rCi0gaW50Ci0gbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIHsKLS0t IAotR2l0TGFiCi0KCmRpZmYgLS1naXQgYS9saWJzb3VwMy5zcGVjIGIvbGlic291cDMuc3BlYwpp bmRleCBhZTFiYmViLi5mY2JjMzQxIDEwMDY0NAotLS0gYS9saWJzb3VwMy5zcGVjCisrKyBiL2xp YnNvdXAzLnNwZWMKQEAgLTcsNyArNyw3IEBACiAlZW5kaWYKIAogTmFtZTogICAgbGlic291cDMK LVZlcnNpb246IDMuNy4yCitWZXJzaW9uOiAzLjcuMwogUmVsZWFzZTogJWF1dG9yZWxlYXNlCiBT dW1tYXJ5OiBTb3VwLCBhbiBIVFRQIGxpYnJhcnkgaW1wbGVtZW50YXRpb24KIApAQCAtMjEsMTQg KzIxLDYgQEAgUGF0Y2g6ICAgbm8tbnRsbS1pbi1maXBzLW1vZGUucGF0Y2gKICMgaHR0cHM6Ly9n aXRsYWIuZ25vbWUub3JnL0dOT01FL2xpYnNvdXAvLS93b3JrX2l0ZW1zLzUzMAogUGF0Y2g6ICAg c2tpcC1sb2dnZXItdGVzdC1vbi0zMmJpdC5wYXRjaAogCi1QYXRjaDogICBDVkUtMjAyNi03NzY4 MC5wYXRjaAotUGF0Y2g6ICAgQ1ZFLTIwMjYtMTU3MTEucGF0Y2gKLVBhdGNoOiAgIENWRS0yMDI2 LTE1NzE0LnBhdGNoCi1QYXRjaDogICBDVkUtMjAyNi0xNTcwOS5wYXRjaAotUGF0Y2g6ICAgQ1ZF LTIwMjYtMTU3MTMucGF0Y2gKLVBhdGNoOiAgIENWRS0yMDI2LTE1NzEyLnBhdGNoCi0KLQogQnVp bGRSZXF1aXJlczogZ2NjCiBCdWlsZFJlcXVpcmVzOiBnZXR0ZXh0CiBCdWlsZFJlcXVpcmVzOiBn bGliLW5ldHdvcmtpbmcgPj0gJXtnbGliMl92ZXJzaW9ufQoKZGlmZiAtLWdpdCBhL3NvdXJjZXMg Yi9zb3VyY2VzCmluZGV4IGQ1NmQ5NjcuLjE1MWFjZDEgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysr IGIvc291cmNlcwpAQCAtMSArMSBAQAotU0hBNTEyIChsaWJzb3VwLTMuNy4yLnRhci54eikgPSA4 OTY0MmZlMDUyNTU3NzU0ZTE1MWYwZDcwNWZhNmJjYTEzNWJjMDFiMWY1ZTNkMmIxZjhkYTY3Yjcw OGE5ZmZiYTRiNDBmOTIzYjZhMTAxOWE2ZTJmYTI4ZmVkYjdkYzMwYmVkNjRmOTg2MTNlNGI3MTM5 ZTk4ZGMxOTdmY2E0OQorU0hBNTEyIChsaWJzb3VwLTMuNy4zLnRhci54eikgPSA0NGUxNjY3NDJi YTY0OWU5YjBlNmIwMGQ0YmNiYzgwNjg1YmU4ZjMyOGE0MjVmY2JlMWVmZDk2MDEyMWMzM2M4OWI2 NjhiMTlmZWYyNzIzYzkzYzkyYWY2NzI5ZDk1M2I1MzUzZDEzM2M0N2Q0ZDE4ZDc0ODg2NTM3ZGFh MzZmNgo=