From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Blake Subject: [PATCH 02/36] qdict: Add convenience helpers for wrapped puts Date: Wed, 30 Nov 2016 13:44:20 -0600 Message-ID: <1480535094-23831-3-git-send-email-eblake@redhat.com> References: <1480535094-23831-1-git-send-email-eblake@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1480535094-23831-1-git-send-email-eblake@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: qemu-devel@nongnu.org Cc: Stefan Hajnoczi , Jeff Cody , armbru@redhat.com, Gerd Hoffmann , Stefano Stabellini , Alberto Garcia , "open list:Block layer core" , Alexander Graf , Anthony Perard , Fam Zheng , Michael Roth , Chrysostomos Nanakos , Stefan Weil , Peter Lieven , "Dr. David Alan Gilbert" , "open list:X86" , Ronnie Sahlberg , Richard Henderson , Kevin Wolf , "Richard W.M. Jones" , Max Reitz , pbonzini@redhat.com List-Id: xen-devel@lists.xenproject.org UXVpdGUgYSBmZXcgdXNlcnMgb2YgcWRpY3RfcHV0KCkgd2VyZSBtYW51YWxseSB3cmFwcGluZyBh Cm5vbi1RT2JqZWN0LiBXZSBjYW4gbWFrZSBzdWNoIGNhbGwtc2l0ZXMgc2hvcnRlciwgYnkgcHJv dmlkaW5nCmNvbW1vbiBtYWNyb3MgdG8gZG8gdGhlIHRlZGlvdXMgd29yay4gIEFsc28gc2hvcnRl biBuZWFyYnkKcWRpY3RfcHV0X29iaigsLFFPQkpFQ1QoKSkgc2VxdWVuY2VzLgoKU2lnbmVkLW9m Zi1ieTogRXJpYyBCbGFrZSA8ZWJsYWtlQHJlZGhhdC5jb20+CgotLS0KSSdtIG9rYXkgaWYgeW91 IHdhbnQgbWUgdG8gYnJlYWsgdGhpcyBwYXRjaCBpbnRvIHNtYWxsZXIgcGllY2VzLgotLS0KIGlu Y2x1ZGUvcWFwaS9xbXAvcWRpY3QuaCAgICAgICAgICAgIHwgICA4ICsrKwogYmxvY2suYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgNTkgKysrKysrKy0tLS0tLS0tLQogYmxvY2svYXJj aGlwZWxhZ28uYyAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGJsb2NrL2Jsa2RlYnVnLmMgICAg ICAgICAgICAgICAgICAgIHwgICA2ICstCiBibG9jay9ibGt2ZXJpZnkuYyAgICAgICAgICAgICAg ICAgICB8ICAxMSArKy0KIGJsb2NrL2N1cmwuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiBibG9jay9pc2NzaS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogYmxvY2sv bmJkLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDEgKysrKysrLS0tLS0KIGJsb2NrL25m cy5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQzICsrKysrLS0tLS0tLQogYmxvY2svbnVs bC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGJsb2NrL3Fjb3cyLmMgICAgICAg ICAgICAgICAgICAgICAgIHwgICA0ICstCiBibG9jay9xdW9ydW0uYyAgICAgICAgICAgICAgICAg ICAgICB8ICAxMyArKy0tCiBibG9jay9yYXctcG9zaXguYyAgICAgICAgICAgICAgICAgICB8ICAg OCArLS0KIGJsb2NrL3Jhdy13aW4zMi5jICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBibG9j ay9zc2guYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNiArKy0tLQogYmxvY2svdnZmYXQu YyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0tCiBibG9ja2Rldi5jICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAyOCArKysrLS0tLQogaHcvYmxvY2sveGVuX2Rpc2suYyAgICAgICAg ICAgICAgICAgfCAgIDIgKy0KIGh3L3VzYi94ZW4tdXNiLmMgICAgICAgICAgICAgICAgICAgIHwg IDEyICsrLS0KIG1vbml0b3IuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICsrLS0t CiBxYXBpL3FtcC1ldmVudC5jICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogcWVtdS1pbWcu YyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIHFlbXUtaW8uYyAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAyICstCiBxZW11LW5iZC5jICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogcW9iamVjdC9xZGljdC5jICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIHRhcmdldC1zMzkweC9jcHVfbW9kZWxzLmMgICAgICAgICAgIHwgICA0ICstCiB0ZXN0cy9j aGVjay1xZGljdC5jICAgICAgICAgICAgICAgICB8IDEzMiArKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0KIHRlc3RzL3Rlc3QtcW1wLWNvbW1hbmRzLmMgICAgICAgICAgIHwgIDMw ICsrKystLS0tCiB0ZXN0cy90ZXN0LXFtcC1ldmVudC5jICAgICAgICAgICAgICB8ICAzMCArKysr LS0tLQogdGVzdHMvdGVzdC1xb2JqZWN0LW91dHB1dC12aXNpdG9yLmMgfCAgIDYgKy0KIHV0aWwv cWVtdS1vcHRpb24uYyAgICAgICAgICAgICAgICAgIHwgICA2ICstCiAzMSBmaWxlcyBjaGFuZ2Vk LCAyNDUgaW5zZXJ0aW9ucygrKSwgMjcwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvcWFwaS9xbXAvcWRpY3QuaCBiL2luY2x1ZGUvcWFwaS9xbXAvcWRpY3QuaAppbmRleCBmZTlh NGM1Li45ZDlmOWEzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3FhcGkvcW1wL3FkaWN0LmgKKysrIGIv aW5jbHVkZS9xYXBpL3FtcC9xZGljdC5oCkBAIC01Miw2ICs1MiwxNCBAQCB2b2lkIHFkaWN0X2Rl c3Ryb3lfb2JqKFFPYmplY3QgKm9iaik7CiAjZGVmaW5lIHFkaWN0X3B1dChxZGljdCwga2V5LCBv YmopIFwKICAgICAgICAgcWRpY3RfcHV0X29iaihxZGljdCwga2V5LCBRT0JKRUNUKG9iaikpCgor LyogSGVscGVycyBmb3IgaW50LCBib29sLCBhbmQgY29uc3QgY2hhciouICovCisjZGVmaW5lIHFk aWN0X3B1dF9pbnQocWRpY3QsIGtleSwgdmFsdWUpIFwKKyAgICAgICAgcWRpY3RfcHV0KHFkaWN0 LCBrZXksIHFpbnRfZnJvbV9pbnQodmFsdWUpKQorI2RlZmluZSBxZGljdF9wdXRfYm9vbChxZGlj dCwga2V5LCB2YWx1ZSkgXAorICAgICAgICBxZGljdF9wdXQocWRpY3QsIGtleSwgcWJvb2xfZnJv bV9ib29sKHZhbHVlKSkKKyNkZWZpbmUgcWRpY3RfcHV0X3N0cihxZGljdCwga2V5LCB2YWx1ZSkg XAorICAgICAgICBxZGljdF9wdXQocWRpY3QsIGtleSwgcXN0cmluZ19mcm9tX3N0cih2YWx1ZSkp CisKIC8qIEhpZ2ggbGV2ZWwgaGVscGVycyAqLwogZG91YmxlIHFkaWN0X2dldF9kb3VibGUoY29u c3QgUURpY3QgKnFkaWN0LCBjb25zdCBjaGFyICprZXkpOwogaW50NjRfdCBxZGljdF9nZXRfaW50 KGNvbnN0IFFEaWN0ICpxZGljdCwgY29uc3QgY2hhciAqa2V5KTsKZGlmZiAtLWdpdCBhL2Jsb2Nr LmMgYi9ibG9jay5jCmluZGV4IDM5ZGRlYTMuLmU4MTY2NTcgMTAwNjQ0Ci0tLSBhL2Jsb2NrLmMK KysrIGIvYmxvY2suYwpAQCAtODc2LDE2ICs4NzYsMTYgQEAgc3RhdGljIHZvaWQgdXBkYXRlX2Zs YWdzX2Zyb21fb3B0aW9ucyhpbnQgKmZsYWdzLCBRZW11T3B0cyAqb3B0cykKIHN0YXRpYyB2b2lk IHVwZGF0ZV9vcHRpb25zX2Zyb21fZmxhZ3MoUURpY3QgKm9wdGlvbnMsIGludCBmbGFncykKIHsK ICAgICBpZiAoIXFkaWN0X2hhc2tleShvcHRpb25zLCBCRFJWX09QVF9DQUNIRV9ESVJFQ1QpKSB7 Ci0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCBCRFJWX09QVF9DQUNIRV9ESVJFQ1QsCi0gICAg ICAgICAgICAgICAgICBxYm9vbF9mcm9tX2Jvb2woZmxhZ3MgJiBCRFJWX09fTk9DQUNIRSkpOwor ICAgICAgICBxZGljdF9wdXRfYm9vbChvcHRpb25zLCBCRFJWX09QVF9DQUNIRV9ESVJFQ1QsCisg ICAgICAgICAgICAgICAgICAgICAgIGZsYWdzICYgQkRSVl9PX05PQ0FDSEUpOwogICAgIH0KICAg ICBpZiAoIXFkaWN0X2hhc2tleShvcHRpb25zLCBCRFJWX09QVF9DQUNIRV9OT19GTFVTSCkpIHsK LSAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsIEJEUlZfT1BUX0NBQ0hFX05PX0ZMVVNILAotICAg ICAgICAgICAgICAgICAgcWJvb2xfZnJvbV9ib29sKGZsYWdzICYgQkRSVl9PX05PX0ZMVVNIKSk7 CisgICAgICAgIHFkaWN0X3B1dF9ib29sKG9wdGlvbnMsIEJEUlZfT1BUX0NBQ0hFX05PX0ZMVVNI LAorICAgICAgICAgICAgICAgICAgICAgICBmbGFncyAmIEJEUlZfT19OT19GTFVTSCk7CiAgICAg fQogICAgIGlmICghcWRpY3RfaGFza2V5KG9wdGlvbnMsIEJEUlZfT1BUX1JFQURfT05MWSkpIHsK LSAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsIEJEUlZfT1BUX1JFQURfT05MWSwKLSAgICAgICAg ICAgICAgICAgIHFib29sX2Zyb21fYm9vbCghKGZsYWdzICYgQkRSVl9PX1JEV1IpKSk7CisgICAg ICAgIHFkaWN0X3B1dF9ib29sKG9wdGlvbnMsIEJEUlZfT1BUX1JFQURfT05MWSwKKyAgICAgICAg ICAgICAgICAgICAgICAgIShmbGFncyAmIEJEUlZfT19SRFdSKSk7CiAgICAgfQogfQoKQEAgLTEy NDQsNyArMTI0NCw3IEBAIHN0YXRpYyBpbnQgYmRydl9maWxsX29wdGlvbnMoUURpY3QgKipvcHRp b25zLCBjb25zdCBjaGFyICpmaWxlbmFtZSwKICAgICAvKiBGZXRjaCB0aGUgZmlsZSBuYW1lIGZy b20gdGhlIG9wdGlvbnMgUURpY3QgaWYgbmVjZXNzYXJ5ICovCiAgICAgaWYgKHByb3RvY29sICYm IGZpbGVuYW1lKSB7CiAgICAgICAgIGlmICghcWRpY3RfaGFza2V5KCpvcHRpb25zLCAiZmlsZW5h bWUiKSkgewotICAgICAgICAgICAgcWRpY3RfcHV0KCpvcHRpb25zLCAiZmlsZW5hbWUiLCBxc3Ry aW5nX2Zyb21fc3RyKGZpbGVuYW1lKSk7CisgICAgICAgICAgICBxZGljdF9wdXRfc3RyKCpvcHRp b25zLCAiZmlsZW5hbWUiLCBmaWxlbmFtZSk7CiAgICAgICAgICAgICBwYXJzZV9maWxlbmFtZSA9 IHRydWU7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBlcnJvcl9zZXRnKGVycnAsICJD YW4ndCBzcGVjaWZ5ICdmaWxlJyBhbmQgJ2ZpbGVuYW1lJyBvcHRpb25zIGF0ICIKQEAgLTEyNjQs NyArMTI2NCw3IEBAIHN0YXRpYyBpbnQgYmRydl9maWxsX29wdGlvbnMoUURpY3QgKipvcHRpb25z LCBjb25zdCBjaGFyICpmaWxlbmFtZSwKICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICBkcnZu YW1lID0gZHJ2LT5mb3JtYXRfbmFtZTsKLSAgICAgICAgICAgIHFkaWN0X3B1dCgqb3B0aW9ucywg ImRyaXZlciIsIHFzdHJpbmdfZnJvbV9zdHIoZHJ2bmFtZSkpOworICAgICAgICAgICAgcWRpY3Rf cHV0X3N0cigqb3B0aW9ucywgImRyaXZlciIsIGRydm5hbWUpOwogICAgICAgICB9IGVsc2Ugewog ICAgICAgICAgICAgZXJyb3Jfc2V0ZyhlcnJwLCAiTXVzdCBzcGVjaWZ5IGVpdGhlciBkcml2ZXIg b3IgZmlsZSIpOwogICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CkBAIC0xNTE3LDcgKzE1MTcs NyBAQCBpbnQgYmRydl9vcGVuX2JhY2tpbmdfZmlsZShCbG9ja0RyaXZlclN0YXRlICpicywgUURp Y3QgKnBhcmVudF9vcHRpb25zLAogICAgIH0KCiAgICAgaWYgKGJzLT5iYWNraW5nX2Zvcm1hdFsw XSAhPSAnXDAnICYmICFxZGljdF9oYXNrZXkob3B0aW9ucywgImRyaXZlciIpKSB7Ci0gICAgICAg IHFkaWN0X3B1dChvcHRpb25zLCAiZHJpdmVyIiwgcXN0cmluZ19mcm9tX3N0cihicy0+YmFja2lu Z19mb3JtYXQpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZHJpdmVyIiwgYnMt PmJhY2tpbmdfZm9ybWF0KTsKICAgICB9CgogICAgIGJhY2tpbmdfaGQgPSBiZHJ2X29wZW5faW5o ZXJpdCgqYmFja2luZ19maWxlbmFtZSA/IGJhY2tpbmdfZmlsZW5hbWUgOiBOVUxMLApAQCAtMTYw Nyw3ICsxNjA3LDcgQEAgc3RhdGljIEJsb2NrRHJpdmVyU3RhdGUgKmJkcnZfYXBwZW5kX3RlbXBf c25hcHNob3QoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsCiAgICAgY2hhciAqdG1wX2ZpbGVuYW1lID0g Z19tYWxsb2MwKFBBVEhfTUFYICsgMSk7CiAgICAgaW50NjRfdCB0b3RhbF9zaXplOwogICAgIFFl bXVPcHRzICpvcHRzID0gTlVMTDsKLSAgICBCbG9ja0RyaXZlclN0YXRlICpic19zbmFwc2hvdDsK KyAgICBCbG9ja0RyaXZlclN0YXRlICpic19zbmFwc2hvdCA9IE5VTEw7CiAgICAgaW50IHJldDsK CiAgICAgLyogaWYgc25hcHNob3QsIHdlIGNyZWF0ZSBhIHRlbXBvcmFyeSBiYWNraW5nIGZpbGUg YW5kIG9wZW4gaXQKQEAgLTE2MzksMTIgKzE2MzksOSBAQCBzdGF0aWMgQmxvY2tEcml2ZXJTdGF0 ZSAqYmRydl9hcHBlbmRfdGVtcF9zbmFwc2hvdChCbG9ja0RyaXZlclN0YXRlICpicywKICAgICB9 CgogICAgIC8qIFByZXBhcmUgb3B0aW9ucyBRRGljdCBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlICov Ci0gICAgcWRpY3RfcHV0KHNuYXBzaG90X29wdGlvbnMsICJmaWxlLmRyaXZlciIsCi0gICAgICAg ICAgICAgIHFzdHJpbmdfZnJvbV9zdHIoImZpbGUiKSk7Ci0gICAgcWRpY3RfcHV0KHNuYXBzaG90 X29wdGlvbnMsICJmaWxlLmZpbGVuYW1lIiwKLSAgICAgICAgICAgICAgcXN0cmluZ19mcm9tX3N0 cih0bXBfZmlsZW5hbWUpKTsKLSAgICBxZGljdF9wdXQoc25hcHNob3Rfb3B0aW9ucywgImRyaXZl ciIsCi0gICAgICAgICAgICAgIHFzdHJpbmdfZnJvbV9zdHIoInFjb3cyIikpOworICAgIHFkaWN0 X3B1dF9zdHIoc25hcHNob3Rfb3B0aW9ucywgImZpbGUuZHJpdmVyIiwgImZpbGUiKTsKKyAgICBx ZGljdF9wdXRfc3RyKHNuYXBzaG90X29wdGlvbnMsICJmaWxlLmZpbGVuYW1lIiwgdG1wX2ZpbGVu YW1lKTsKKyAgICBxZGljdF9wdXRfc3RyKHNuYXBzaG90X29wdGlvbnMsICJkcml2ZXIiLCAicWNv dzIiKTsKCiAgICAgYnNfc25hcHNob3QgPSBiZHJ2X29wZW4oTlVMTCwgTlVMTCwgc25hcHNob3Rf b3B0aW9ucywgZmxhZ3MsIGVycnApOwogICAgIHNuYXBzaG90X29wdGlvbnMgPSBOVUxMOwpAQCAt MTY1OSwxMyArMTY1NiwxMCBAQCBzdGF0aWMgQmxvY2tEcml2ZXJTdGF0ZSAqYmRydl9hcHBlbmRf dGVtcF9zbmFwc2hvdChCbG9ja0RyaXZlclN0YXRlICpicywKICAgICBiZHJ2X3JlZihic19zbmFw c2hvdCk7CiAgICAgYmRydl9hcHBlbmQoYnNfc25hcHNob3QsIGJzKTsKCitvdXQ6CisgICAgUURF Q1JFRihzbmFwc2hvdF9vcHRpb25zKTsKICAgICBnX2ZyZWUodG1wX2ZpbGVuYW1lKTsKICAgICBy ZXR1cm4gYnNfc25hcHNob3Q7Ci0KLW91dDoKLSAgICBRREVDUkVGKHNuYXBzaG90X29wdGlvbnMp OwotICAgIGdfZnJlZSh0bXBfZmlsZW5hbWUpOwotICAgIHJldHVybiBOVUxMOwogfQoKIC8qCkBA IC0xODE2LDggKzE4MTAsOCBAQCBzdGF0aWMgQmxvY2tEcml2ZXJTdGF0ZSAqYmRydl9vcGVuX2lu aGVyaXQoY29uc3QgY2hhciAqZmlsZW5hbWUsCiAgICAgICAgICAqIHN1cmUgdG8gdXBkYXRlIGJv dGggYnMtPm9wdGlvbnMgKHdoaWNoIGhhcyB0aGUgZnVsbCBlZmZlY3RpdmUKICAgICAgICAgICog b3B0aW9ucyBmb3IgYnMpIGFuZCBvcHRpb25zICh3aGljaCBoYXMgZmlsZS4qIGFscmVhZHkgcmVt b3ZlZCkuCiAgICAgICAgICAqLwotICAgICAgICBxZGljdF9wdXQoYnMtPm9wdGlvbnMsICJkcml2 ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKGRydi0+Zm9ybWF0X25hbWUpKTsKLSAgICAgICAgcWRpY3Rf cHV0KG9wdGlvbnMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKGRydi0+Zm9ybWF0X25hbWUp KTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihicy0+b3B0aW9ucywgImRyaXZlciIsIGRydi0+Zm9y bWF0X25hbWUpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJkcml2ZXIiLCBkcnYt PmZvcm1hdF9uYW1lKTsKICAgICB9IGVsc2UgaWYgKCFkcnYpIHsKICAgICAgICAgZXJyb3Jfc2V0 ZyhlcnJwLCAiTXVzdCBzcGVjaWZ5IGVpdGhlciBkcml2ZXIgb3IgZmlsZSIpOwogICAgICAgICBn b3RvIGZhaWw7CkBAIC0yMTkxLDEyICsyMTg1LDEyIEBAIGludCBiZHJ2X3Jlb3Blbl9wcmVwYXJl KEJEUlZSZW9wZW5TdGF0ZSAqcmVvcGVuX3N0YXRlLCBCbG9ja1Jlb3BlblF1ZXVlICpxdWV1ZSwK ICAgICAgKiB0aGF0IHRoZXkgYXJlIGNoZWNrZWQgYXQgdGhlIGVuZCBvZiB0aGlzIGZ1bmN0aW9u LiAqLwogICAgIHZhbHVlID0gcWVtdV9vcHRfZ2V0KG9wdHMsICJub2RlLW5hbWUiKTsKICAgICBp ZiAodmFsdWUpIHsKLSAgICAgICAgcWRpY3RfcHV0KHJlb3Blbl9zdGF0ZS0+b3B0aW9ucywgIm5v ZGUtbmFtZSIsIHFzdHJpbmdfZnJvbV9zdHIodmFsdWUpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0 cihyZW9wZW5fc3RhdGUtPm9wdGlvbnMsICJub2RlLW5hbWUiLCB2YWx1ZSk7CiAgICAgfQoKICAg ICB2YWx1ZSA9IHFlbXVfb3B0X2dldChvcHRzLCAiZHJpdmVyIik7CiAgICAgaWYgKHZhbHVlKSB7 Ci0gICAgICAgIHFkaWN0X3B1dChyZW9wZW5fc3RhdGUtPm9wdGlvbnMsICJkcml2ZXIiLCBxc3Ry aW5nX2Zyb21fc3RyKHZhbHVlKSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIocmVvcGVuX3N0YXRl LT5vcHRpb25zLCAiZHJpdmVyIiwgdmFsdWUpOwogICAgIH0KCiAgICAgLyogaWYgd2UgYXJlIHRv IHN0YXkgcmVhZC1vbmx5LCBkbyBub3QgYWxsb3cgcGVybWlzc2lvbiBjaGFuZ2UKQEAgLTM2MDYs OCArMzYwMCw3IEBAIHZvaWQgYmRydl9pbWdfY3JlYXRlKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBj b25zdCBjaGFyICpmbXQsCgogICAgICAgICAgICAgaWYgKGJhY2tpbmdfZm10KSB7CiAgICAgICAg ICAgICAgICAgYmFja2luZ19vcHRpb25zID0gcWRpY3RfbmV3KCk7Ci0gICAgICAgICAgICAgICAg cWRpY3RfcHV0KGJhY2tpbmdfb3B0aW9ucywgImRyaXZlciIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgIHFzdHJpbmdfZnJvbV9zdHIoYmFja2luZ19mbXQpKTsKKyAgICAgICAgICAgICAgICBx ZGljdF9wdXRfc3RyKGJhY2tpbmdfb3B0aW9ucywgImRyaXZlciIsIGJhY2tpbmdfZm10KTsKICAg ICAgICAgICAgIH0KCiAgICAgICAgICAgICBicyA9IGJkcnZfb3BlbihmdWxsX2JhY2tpbmcsIE5V TEwsIGJhY2tpbmdfb3B0aW9ucywgYmFja19mbGFncywKQEAgLTM5OTcsMTEgKzM5OTAsOSBAQCB2 b2lkIGJkcnZfcmVmcmVzaF9maWxlbmFtZShCbG9ja0RyaXZlclN0YXRlICpicykKICAgICAgICAg ICogY29udGFpbiBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBmaWxlbmFtZSwgdGhlcmVmb3JlIHRo ZSBmb2xsb3dpbmcKICAgICAgICAgICogc3VmZmljZXMgd2l0aG91dCBxdWVyeWluZyB0aGUgKGV4 YWN0XylmaWxlbmFtZSBvZiB0aGlzIEJEUy4gKi8KICAgICAgICAgaWYgKGJzLT5maWxlLT5icy0+ ZnVsbF9vcGVuX29wdGlvbnMpIHsKLSAgICAgICAgICAgIHFkaWN0X3B1dF9vYmoob3B0cywgImRy aXZlciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFFPQkpFQ1QocXN0cmluZ19mcm9tX3N0 cihkcnYtPmZvcm1hdF9uYW1lKSkpOworICAgICAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRzLCAi ZHJpdmVyIiwgZHJ2LT5mb3JtYXRfbmFtZSk7CiAgICAgICAgICAgICBRSU5DUkVGKGJzLT5maWxl LT5icy0+ZnVsbF9vcGVuX29wdGlvbnMpOwotICAgICAgICAgICAgcWRpY3RfcHV0X29iaihvcHRz LCAiZmlsZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFFPQkpFQ1QoYnMtPmZpbGUtPmJz LT5mdWxsX29wZW5fb3B0aW9ucykpOworICAgICAgICAgICAgcWRpY3RfcHV0KG9wdHMsICJmaWxl IiwgYnMtPmZpbGUtPmJzLT5mdWxsX29wZW5fb3B0aW9ucyk7CgogICAgICAgICAgICAgYnMtPmZ1 bGxfb3Blbl9vcHRpb25zID0gb3B0czsKICAgICAgICAgfSBlbHNlIHsKQEAgLTQwMTcsOCArNDAw OCw3IEBAIHZvaWQgYmRydl9yZWZyZXNoX2ZpbGVuYW1lKEJsb2NrRHJpdmVyU3RhdGUgKmJzKQoK ICAgICAgICAgb3B0cyA9IHFkaWN0X25ldygpOwogICAgICAgICBhcHBlbmRfb3Blbl9vcHRpb25z KG9wdHMsIGJzKTsKLSAgICAgICAgcWRpY3RfcHV0X29iaihvcHRzLCAiZHJpdmVyIiwKLSAgICAg ICAgICAgICAgICAgICAgICBRT0JKRUNUKHFzdHJpbmdfZnJvbV9zdHIoZHJ2LT5mb3JtYXRfbmFt ZSkpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRzLCAiZHJpdmVyIiwgZHJ2LT5mb3JtYXRf bmFtZSk7CgogICAgICAgICBpZiAoYnMtPmV4YWN0X2ZpbGVuYW1lWzBdKSB7CiAgICAgICAgICAg ICAvKiBUaGlzIG1heSBub3Qgd29yayBmb3IgYWxsIGJsb2NrIHByb3RvY29sIGRyaXZlcnMgKHNv bWUgbWF5CkBAIC00MDI4LDggKzQwMTgsNyBAQCB2b2lkIGJkcnZfcmVmcmVzaF9maWxlbmFtZShC bG9ja0RyaXZlclN0YXRlICpicykKICAgICAgICAgICAgICAqIG5lZWRzIHNvbWUgc3BlY2lhbCBm b3JtYXQgb2YgdGhlIG9wdGlvbnMgUURpY3QsIGl0IG5lZWRzIHRvCiAgICAgICAgICAgICAgKiBp bXBsZW1lbnQgdGhlIGRyaXZlci1zcGVjaWZpYyBiZHJ2X3JlZnJlc2hfZmlsZW5hbWUoKSBmdW5j dGlvbi4KICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgcWRpY3RfcHV0X29iaihvcHRzLCAi ZmlsZW5hbWUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICBRT0JKRUNUKHFzdHJpbmdfZnJv bV9zdHIoYnMtPmV4YWN0X2ZpbGVuYW1lKSkpOworICAgICAgICAgICAgcWRpY3RfcHV0X3N0cihv cHRzLCAiZmlsZW5hbWUiLCBicy0+ZXhhY3RfZmlsZW5hbWUpOwogICAgICAgICB9CgogICAgICAg ICBicy0+ZnVsbF9vcGVuX29wdGlvbnMgPSBvcHRzOwpkaWZmIC0tZ2l0IGEvYmxvY2svYXJjaGlw ZWxhZ28uYyBiL2Jsb2NrL2FyY2hpcGVsYWdvLmMKaW5kZXggMjQ0OWNmYy4uYmYyMGM2MSAxMDA2 NDQKLS0tIGEvYmxvY2svYXJjaGlwZWxhZ28uYworKysgYi9ibG9jay9hcmNoaXBlbGFnby5jCkBA IC00MzIsMTAgKzQzMiwxMCBAQCBzdGF0aWMgdm9pZCBhcmNoaXBlbGFnb19wYXJzZV9maWxlbmFt ZShjb25zdCBjaGFyICpmaWxlbmFtZSwgUURpY3QgKm9wdGlvbnMsCiAgICAgICAgIGdfZnJlZShz ZWdtZW50X25hbWUpOwogICAgIH0KICAgICBpZiAobXBvcnQgIT0gTm9Qb3J0KSB7Ci0gICAgICAg IHFkaWN0X3B1dChvcHRpb25zLCBBUkNISVBFTEFHT19PUFRfTVBPUlQsIHFpbnRfZnJvbV9pbnQo bXBvcnQpKTsKKyAgICAgICAgcWRpY3RfcHV0X2ludChvcHRpb25zLCBBUkNISVBFTEFHT19PUFRf TVBPUlQsIG1wb3J0KTsKICAgICB9CiAgICAgaWYgKHZwb3J0ICE9IE5vUG9ydCkgewotICAgICAg ICBxZGljdF9wdXQob3B0aW9ucywgQVJDSElQRUxBR09fT1BUX1ZQT1JULCBxaW50X2Zyb21faW50 KHZwb3J0KSk7CisgICAgICAgIHFkaWN0X3B1dF9pbnQob3B0aW9ucywgQVJDSElQRUxBR09fT1BU X1ZQT1JULCB2cG9ydCk7CiAgICAgfQogfQoKZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsa2RlYnVnLmMg Yi9ibG9jay9ibGtkZWJ1Zy5jCmluZGV4IDQxMjc1NzEuLmYxZmUwM2MgMTAwNjQ0Ci0tLSBhL2Js b2NrL2Jsa2RlYnVnLmMKKysrIGIvYmxvY2svYmxrZGVidWcuYwpAQCAtMzAyLDcgKzMwMiw3IEBA IHN0YXRpYyB2b2lkIGJsa2RlYnVnX3BhcnNlX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1l LCBRRGljdCAqb3B0aW9ucywKICAgICBpZiAoIXN0cnN0YXJ0KGZpbGVuYW1lLCAiYmxrZGVidWc6 IiwgJmZpbGVuYW1lKSkgewogICAgICAgICAvKiBUaGVyZSB3YXMgbm8gcHJlZml4OyB0aGVyZWZv cmUsIGFsbCBvcHRpb25zIGhhdmUgdG8gYmUgYWxyZWFkeQogICAgICAgICAgICBwcmVzZW50IGlu IHRoZSBRRGljdCAoZXhjZXB0IGZvciB0aGUgZmlsZW5hbWUpICovCi0gICAgICAgIHFkaWN0X3B1 dChvcHRpb25zLCAieC1pbWFnZSIsIHFzdHJpbmdfZnJvbV9zdHIoZmlsZW5hbWUpKTsKKyAgICAg ICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAieC1pbWFnZSIsIGZpbGVuYW1lKTsKICAgICAgICAg cmV0dXJuOwogICAgIH0KCkBAIC0zMjEsNyArMzIxLDcgQEAgc3RhdGljIHZvaWQgYmxrZGVidWdf cGFyc2VfZmlsZW5hbWUoY29uc3QgY2hhciAqZmlsZW5hbWUsIFFEaWN0ICpvcHRpb25zLAoKICAg ICAvKiBUT0RPIEFsbG93IG11bHRpLWxldmVsIG5lc3RpbmcgYW5kIHNldCBmaWxlLmZpbGVuYW1l IGhlcmUgKi8KICAgICBmaWxlbmFtZSA9IGMgKyAxOwotICAgIHFkaWN0X3B1dChvcHRpb25zLCAi eC1pbWFnZSIsIHFzdHJpbmdfZnJvbV9zdHIoZmlsZW5hbWUpKTsKKyAgICBxZGljdF9wdXRfc3Ry KG9wdGlvbnMsICJ4LWltYWdlIiwgZmlsZW5hbWUpOwogfQoKIHN0YXRpYyBRZW11T3B0c0xpc3Qg cnVudGltZV9vcHRzID0gewpAQCAtNzA4LDcgKzcwOCw3IEBAIHN0YXRpYyB2b2lkIGJsa2RlYnVn X3JlZnJlc2hfZmlsZW5hbWUoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIFFEaWN0ICpvcHRpb25zKQog ICAgIH0KCiAgICAgb3B0cyA9IHFkaWN0X25ldygpOwotICAgIHFkaWN0X3B1dF9vYmoob3B0cywg ImRyaXZlciIsIFFPQkpFQ1QocXN0cmluZ19mcm9tX3N0cigiYmxrZGVidWciKSkpOworICAgIHFk aWN0X3B1dF9zdHIob3B0cywgImRyaXZlciIsICJibGtkZWJ1ZyIpOwoKICAgICBRSU5DUkVGKGJz LT5maWxlLT5icy0+ZnVsbF9vcGVuX29wdGlvbnMpOwogICAgIHFkaWN0X3B1dF9vYmoob3B0cywg ImltYWdlIiwgUU9CSkVDVChicy0+ZmlsZS0+YnMtPmZ1bGxfb3Blbl9vcHRpb25zKSk7CmRpZmYg LS1naXQgYS9ibG9jay9ibGt2ZXJpZnkuYyBiL2Jsb2NrL2Jsa3ZlcmlmeS5jCmluZGV4IDI4Zjlh ZjYuLmU4N2Q1ZWEgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsa3ZlcmlmeS5jCisrKyBiL2Jsb2NrL2Js a3ZlcmlmeS5jCkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyB2b2lkIGJsa3ZlcmlmeV9wYXJzZV9m aWxlbmFtZShjb25zdCBjaGFyICpmaWxlbmFtZSwgUURpY3QgKm9wdGlvbnMsCiAgICAgaWYgKCFz dHJzdGFydChmaWxlbmFtZSwgImJsa3ZlcmlmeToiLCAmZmlsZW5hbWUpKSB7CiAgICAgICAgIC8q IFRoZXJlIHdhcyBubyBwcmVmaXg7IHRoZXJlZm9yZSwgYWxsIG9wdGlvbnMgaGF2ZSB0byBiZSBh bHJlYWR5CiAgICAgICAgICAgIHByZXNlbnQgaW4gdGhlIFFEaWN0IChleGNlcHQgZm9yIHRoZSBm aWxlbmFtZSkgKi8KLSAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJ4LWltYWdlIiwgcXN0cmlu Z19mcm9tX3N0cihmaWxlbmFtZSkpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJ4 LWltYWdlIiwgZmlsZW5hbWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQoKQEAgLTg2LDcgKzg2 LDcgQEAgc3RhdGljIHZvaWQgYmxrdmVyaWZ5X3BhcnNlX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZp bGVuYW1lLCBRRGljdCAqb3B0aW9ucywKCiAgICAgLyogVE9ETyBBbGxvdyBtdWx0aS1sZXZlbCBu ZXN0aW5nIGFuZCBzZXQgZmlsZS5maWxlbmFtZSBoZXJlICovCiAgICAgZmlsZW5hbWUgPSBjICsg MTsKLSAgICBxZGljdF9wdXQob3B0aW9ucywgIngtaW1hZ2UiLCBxc3RyaW5nX2Zyb21fc3RyKGZp bGVuYW1lKSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAieC1pbWFnZSIsIGZpbGVuYW1l KTsKIH0KCiBzdGF0aWMgUWVtdU9wdHNMaXN0IHJ1bnRpbWVfb3B0cyA9IHsKQEAgLTMwMCwxMyAr MzAwLDEyIEBAIHN0YXRpYyB2b2lkIGJsa3ZlcmlmeV9yZWZyZXNoX2ZpbGVuYW1lKEJsb2NrRHJp dmVyU3RhdGUgKmJzLCBRRGljdCAqb3B0aW9ucykKICAgICAgICAgJiYgcy0+dGVzdF9maWxlLT5i cy0+ZnVsbF9vcGVuX29wdGlvbnMpCiAgICAgewogICAgICAgICBRRGljdCAqb3B0cyA9IHFkaWN0 X25ldygpOwotICAgICAgICBxZGljdF9wdXRfb2JqKG9wdHMsICJkcml2ZXIiLCBRT0JKRUNUKHFz dHJpbmdfZnJvbV9zdHIoImJsa3ZlcmlmeSIpKSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0 cywgImRyaXZlciIsICJibGt2ZXJpZnkiKTsKCiAgICAgICAgIFFJTkNSRUYoYnMtPmZpbGUtPmJz LT5mdWxsX29wZW5fb3B0aW9ucyk7Ci0gICAgICAgIHFkaWN0X3B1dF9vYmoob3B0cywgInJhdyIs IFFPQkpFQ1QoYnMtPmZpbGUtPmJzLT5mdWxsX29wZW5fb3B0aW9ucykpOworICAgICAgICBxZGlj dF9wdXQob3B0cywgInJhdyIsIGJzLT5maWxlLT5icy0+ZnVsbF9vcGVuX29wdGlvbnMpOwogICAg ICAgICBRSU5DUkVGKHMtPnRlc3RfZmlsZS0+YnMtPmZ1bGxfb3Blbl9vcHRpb25zKTsKLSAgICAg ICAgcWRpY3RfcHV0X29iaihvcHRzLCAidGVzdCIsCi0gICAgICAgICAgICAgICAgICAgICAgUU9C SkVDVChzLT50ZXN0X2ZpbGUtPmJzLT5mdWxsX29wZW5fb3B0aW9ucykpOworICAgICAgICBxZGlj dF9wdXQob3B0cywgInRlc3QiLCBzLT50ZXN0X2ZpbGUtPmJzLT5mdWxsX29wZW5fb3B0aW9ucyk7 CgogICAgICAgICBicy0+ZnVsbF9vcGVuX29wdGlvbnMgPSBvcHRzOwogICAgIH0KZGlmZiAtLWdp dCBhL2Jsb2NrL2N1cmwuYyBiL2Jsb2NrL2N1cmwuYwppbmRleCAwNDA0YzFiLi42OTU5ZDNjIDEw MDY0NAotLS0gYS9ibG9jay9jdXJsLmMKKysrIGIvYmxvY2svY3VybC5jCkBAIC01MzEsNyArNTMx LDcgQEAgc3RhdGljIHZvaWQgY3VybF9jbGVhbl9zdGF0ZShDVVJMU3RhdGUgKnMpCiBzdGF0aWMg dm9pZCBjdXJsX3BhcnNlX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0 aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXJyb3IgKiplcnJwKQogewot ICAgIHFkaWN0X3B1dChvcHRpb25zLCBDVVJMX0JMT0NLX09QVF9VUkwsIHFzdHJpbmdfZnJvbV9z dHIoZmlsZW5hbWUpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsIENVUkxfQkxPQ0tfT1BU X1VSTCwgZmlsZW5hbWUpOwogfQoKIHN0YXRpYyB2b2lkIGN1cmxfZGV0YWNoX2Fpb19jb250ZXh0 KEJsb2NrRHJpdmVyU3RhdGUgKmJzKQpkaWZmIC0tZ2l0IGEvYmxvY2svaXNjc2kuYyBiL2Jsb2Nr L2lzY3NpLmMKaW5kZXggMDk2MDkyOS4uMTI2OTE4OCAxMDA2NDQKLS0tIGEvYmxvY2svaXNjc2ku YworKysgYi9ibG9jay9pc2NzaS5jCkBAIC0xOTY1LDcgKzE5NjUsNyBAQCBzdGF0aWMgaW50IGlz Y3NpX2NyZWF0ZShjb25zdCBjaGFyICpmaWxlbmFtZSwgUWVtdU9wdHMgKm9wdHMsIEVycm9yICoq ZXJycCkKICAgICBpc2NzaWx1biA9IGJzLT5vcGFxdWU7CgogICAgIGJzX29wdGlvbnMgPSBxZGlj dF9uZXcoKTsKLSAgICBxZGljdF9wdXQoYnNfb3B0aW9ucywgImZpbGVuYW1lIiwgcXN0cmluZ19m cm9tX3N0cihmaWxlbmFtZSkpOworICAgIHFkaWN0X3B1dF9zdHIoYnNfb3B0aW9ucywgImZpbGVu YW1lIiwgZmlsZW5hbWUpOwogICAgIHJldCA9IGlzY3NpX29wZW4oYnMsIGJzX29wdGlvbnMsIDAs IE5VTEwpOwogICAgIFFERUNSRUYoYnNfb3B0aW9ucyk7CgpkaWZmIC0tZ2l0IGEvYmxvY2svbmJk LmMgYi9ibG9jay9uYmQuYwppbmRleCAzNWYyNGJlLi4zMzQ3NDhkIDEwMDY0NAotLS0gYS9ibG9j ay9uYmQuYworKysgYi9ibG9jay9uYmQuYwpAQCAtNzksNyArNzksNyBAQCBzdGF0aWMgaW50IG5i ZF9wYXJzZV91cmkoY29uc3QgY2hhciAqZmlsZW5hbWUsIFFEaWN0ICpvcHRpb25zKQogICAgIHAg PSB1cmktPnBhdGggPyB1cmktPnBhdGggOiAiLyI7CiAgICAgcCArPSBzdHJzcG4ocCwgIi8iKTsK ICAgICBpZiAocFswXSkgewotICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgImV4cG9ydCIsIHFz dHJpbmdfZnJvbV9zdHIocCkpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJleHBv cnQiLCBwKTsKICAgICB9CgogICAgIHFwID0gcXVlcnlfcGFyYW1zX3BhcnNlKHVyaS0+cXVlcnkp OwpAQCAtOTQsOSArOTQsOCBAQCBzdGF0aWMgaW50IG5iZF9wYXJzZV91cmkoY29uc3QgY2hhciAq ZmlsZW5hbWUsIFFEaWN0ICpvcHRpb25zKQogICAgICAgICAgICAgcmV0ID0gLUVJTlZBTDsKICAg ICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9Ci0gICAgICAgIHFkaWN0X3B1dChvcHRpb25z LCAic2VydmVyLnR5cGUiLCBxc3RyaW5nX2Zyb21fc3RyKCJ1bml4IikpOwotICAgICAgICBxZGlj dF9wdXQob3B0aW9ucywgInNlcnZlci5kYXRhLnBhdGgiLAotICAgICAgICAgICAgICAgICAgcXN0 cmluZ19mcm9tX3N0cihxcC0+cFswXS52YWx1ZSkpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9w dGlvbnMsICJzZXJ2ZXIudHlwZSIsICJ1bml4Iik7CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0 aW9ucywgInNlcnZlci5kYXRhLnBhdGgiLCBxcC0+cFswXS52YWx1ZSk7CiAgICAgfSBlbHNlIHsK ICAgICAgICAgUVN0cmluZyAqaG9zdDsKICAgICAgICAgY2hhciAqcG9ydF9zdHI7CkBAIC0xMTUs MTEgKzExNCwxMSBAQCBzdGF0aWMgaW50IG5iZF9wYXJzZV91cmkoY29uc3QgY2hhciAqZmlsZW5h bWUsIFFEaWN0ICpvcHRpb25zKQogICAgICAgICAgICAgaG9zdCA9IHFzdHJpbmdfZnJvbV9zdHIo dXJpLT5zZXJ2ZXIpOwogICAgICAgICB9CgotICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgInNl cnZlci50eXBlIiwgcXN0cmluZ19mcm9tX3N0cigiaW5ldCIpKTsKKyAgICAgICAgcWRpY3RfcHV0 X3N0cihvcHRpb25zLCAic2VydmVyLnR5cGUiLCAiaW5ldCIpOwogICAgICAgICBxZGljdF9wdXQo b3B0aW9ucywgInNlcnZlci5kYXRhLmhvc3QiLCBob3N0KTsKCiAgICAgICAgIHBvcnRfc3RyID0g Z19zdHJkdXBfcHJpbnRmKCIlZCIsIHVyaS0+cG9ydCA/OiBOQkRfREVGQVVMVF9QT1JUKTsKLSAg ICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJzZXJ2ZXIuZGF0YS5wb3J0IiwgcXN0cmluZ19mcm9t X3N0cihwb3J0X3N0cikpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJzZXJ2ZXIu ZGF0YS5wb3J0IiwgcG9ydF9zdHIpOwogICAgICAgICBnX2ZyZWUocG9ydF9zdHIpOwogICAgIH0K CkBAIC0xODEsNyArMTgwLDcgQEAgc3RhdGljIHZvaWQgbmJkX3BhcnNlX2ZpbGVuYW1lKGNvbnN0 IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0aW9ucywKICAgICAgICAgZXhwb3J0X25hbWVbMF0g PSAwOyAvKiB0cnVuY2F0ZSAnZmlsZScgKi8KICAgICAgICAgZXhwb3J0X25hbWUgKz0gc3RybGVu KEVOX09QVFNUUik7CgotICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgImV4cG9ydCIsIHFzdHJp bmdfZnJvbV9zdHIoZXhwb3J0X25hbWUpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25z LCAiZXhwb3J0IiwgZXhwb3J0X25hbWUpOwogICAgIH0KCiAgICAgLyogZXh0cmFjdCB0aGUgaG9z dF9zcGVjIC0gZmFpbCBpZiBpdCdzIG5vdCBuYmQ6Li4uICovCkBAIC0xOTYsOCArMTk1LDggQEAg c3RhdGljIHZvaWQgbmJkX3BhcnNlX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGlj dCAqb3B0aW9ucywKCiAgICAgLyogYXJlIHdlIGEgVU5JWCBvciBUQ1Agc29ja2V0PyAqLwogICAg IGlmIChzdHJzdGFydChob3N0X3NwZWMsICJ1bml4OiIsICZ1bml4cGF0aCkpIHsKLSAgICAgICAg cWRpY3RfcHV0KG9wdGlvbnMsICJzZXJ2ZXIudHlwZSIsIHFzdHJpbmdfZnJvbV9zdHIoInVuaXgi KSk7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAic2VydmVyLmRhdGEucGF0aCIsIHFzdHJp bmdfZnJvbV9zdHIodW5peHBhdGgpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAi c2VydmVyLnR5cGUiLCAidW5peCIpOworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJz ZXJ2ZXIuZGF0YS5wYXRoIiwgdW5peHBhdGgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEluZXRT b2NrZXRBZGRyZXNzICphZGRyID0gTlVMTDsKCkBAIC0yMDYsOSArMjA1LDkgQEAgc3RhdGljIHZv aWQgbmJkX3BhcnNlX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0aW9u cywKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9CgotICAgICAgICBxZGljdF9wdXQo b3B0aW9ucywgInNlcnZlci50eXBlIiwgcXN0cmluZ19mcm9tX3N0cigiaW5ldCIpKTsKLSAgICAg ICAgcWRpY3RfcHV0KG9wdGlvbnMsICJzZXJ2ZXIuZGF0YS5ob3N0IiwgcXN0cmluZ19mcm9tX3N0 cihhZGRyLT5ob3N0KSk7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAic2VydmVyLmRhdGEu cG9ydCIsIHFzdHJpbmdfZnJvbV9zdHIoYWRkci0+cG9ydCkpOworICAgICAgICBxZGljdF9wdXRf c3RyKG9wdGlvbnMsICJzZXJ2ZXIudHlwZSIsICJpbmV0Iik7CisgICAgICAgIHFkaWN0X3B1dF9z dHIob3B0aW9ucywgInNlcnZlci5kYXRhLmhvc3QiLCBhZGRyLT5ob3N0KTsKKyAgICAgICAgcWRp Y3RfcHV0X3N0cihvcHRpb25zLCAic2VydmVyLmRhdGEucG9ydCIsIGFkZHItPnBvcnQpOwogICAg ICAgICBxYXBpX2ZyZWVfSW5ldFNvY2tldEFkZHJlc3MoYWRkcik7CiAgICAgfQoKQEAgLTI0Nywx MyArMjQ2LDEzIEBAIHN0YXRpYyBib29sIG5iZF9wcm9jZXNzX2xlZ2FjeV9zb2NrZXRfb3B0aW9u cyhRRGljdCAqb3V0cHV0X29wdGlvbnMsCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg ICAgIH0KCi0gICAgICAgIHFkaWN0X3B1dChvdXRwdXRfb3B0aW9ucywgInNlcnZlci50eXBlIiwg cXN0cmluZ19mcm9tX3N0cigidW5peCIpKTsKLSAgICAgICAgcWRpY3RfcHV0KG91dHB1dF9vcHRp b25zLCAic2VydmVyLmRhdGEucGF0aCIsIHFzdHJpbmdfZnJvbV9zdHIocGF0aCkpOworICAgICAg ICBxZGljdF9wdXRfc3RyKG91dHB1dF9vcHRpb25zLCAic2VydmVyLnR5cGUiLCAidW5peCIpOwor ICAgICAgICBxZGljdF9wdXRfc3RyKG91dHB1dF9vcHRpb25zLCAic2VydmVyLmRhdGEucGF0aCIs IHBhdGgpOwogICAgIH0gZWxzZSBpZiAoaG9zdCkgewotICAgICAgICBxZGljdF9wdXQob3V0cHV0 X29wdGlvbnMsICJzZXJ2ZXIudHlwZSIsIHFzdHJpbmdfZnJvbV9zdHIoImluZXQiKSk7Ci0gICAg ICAgIHFkaWN0X3B1dChvdXRwdXRfb3B0aW9ucywgInNlcnZlci5kYXRhLmhvc3QiLCBxc3RyaW5n X2Zyb21fc3RyKGhvc3QpKTsKLSAgICAgICAgcWRpY3RfcHV0KG91dHB1dF9vcHRpb25zLCAic2Vy dmVyLmRhdGEucG9ydCIsCi0gICAgICAgICAgICAgICAgICBxc3RyaW5nX2Zyb21fc3RyKHBvcnQg Pzogc3RyaW5naWZ5KE5CRF9ERUZBVUxUX1BPUlQpKSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIo b3V0cHV0X29wdGlvbnMsICJzZXJ2ZXIudHlwZSIsICJpbmV0Iik7CisgICAgICAgIHFkaWN0X3B1 dF9zdHIob3V0cHV0X29wdGlvbnMsICJzZXJ2ZXIuZGF0YS5ob3N0IiwgaG9zdCk7CisgICAgICAg IHFkaWN0X3B1dF9zdHIob3V0cHV0X29wdGlvbnMsICJzZXJ2ZXIuZGF0YS5wb3J0IiwKKyAgICAg ICAgICAgICAgICAgICAgICBwb3J0ID86IHN0cmluZ2lmeShOQkRfREVGQVVMVF9QT1JUKSk7CiAg ICAgfQoKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTUxNyw3ICs1MTYsNyBAQCBzdGF0aWMgdm9pZCBu YmRfcmVmcmVzaF9maWxlbmFtZShCbG9ja0RyaXZlclN0YXRlICpicywgUURpY3QgKm9wdGlvbnMp CiAgICAgICAgIHBhdGggPSBzLT5zYWRkci0+dS5xX3VuaXguZGF0YS0+cGF0aDsKICAgICB9Cgot ICAgIHFkaWN0X3B1dChvcHRzLCAiZHJpdmVyIiwgcXN0cmluZ19mcm9tX3N0cigibmJkIikpOwor ICAgIHFkaWN0X3B1dF9zdHIob3B0cywgImRyaXZlciIsICJuYmQiKTsKCiAgICAgaWYgKHBhdGgg JiYgcy0+ZXhwb3J0KSB7CiAgICAgICAgIHNucHJpbnRmKGJzLT5leGFjdF9maWxlbmFtZSwgc2l6 ZW9mKGJzLT5leGFjdF9maWxlbmFtZSksCkBAIC01NDIsMTAgKzU0MSwxMCBAQCBzdGF0aWMgdm9p ZCBuYmRfcmVmcmVzaF9maWxlbmFtZShCbG9ja0RyaXZlclN0YXRlICpicywgUURpY3QgKm9wdGlv bnMpCiAgICAgcWRpY3RfcHV0X29iaihvcHRzLCAic2VydmVyIiwgc2FkZHJfcWRpY3QpOwoKICAg ICBpZiAocy0+ZXhwb3J0KSB7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRzLCAiZXhwb3J0IiwgcXN0 cmluZ19mcm9tX3N0cihzLT5leHBvcnQpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRzLCAi ZXhwb3J0Iiwgcy0+ZXhwb3J0KTsKICAgICB9CiAgICAgaWYgKHMtPnRsc2NyZWRzaWQpIHsKLSAg ICAgICAgcWRpY3RfcHV0KG9wdHMsICJ0bHMtY3JlZHMiLCBxc3RyaW5nX2Zyb21fc3RyKHMtPnRs c2NyZWRzaWQpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRzLCAidGxzLWNyZWRzIiwgcy0+ dGxzY3JlZHNpZCk7CiAgICAgfQoKICAgICBxZGljdF9mbGF0dGVuKG9wdHMpOwpkaWZmIC0tZ2l0 IGEvYmxvY2svbmZzLmMgYi9ibG9jay9uZnMuYwppbmRleCBkMDgyNzgzLi5mOGJhNWNjIDEwMDY0 NAotLS0gYS9ibG9jay9uZnMuYworKysgYi9ibG9jay9uZnMuYwpAQCAtMTAzLDkgKzEwMyw5IEBA IHN0YXRpYyBpbnQgbmZzX3BhcnNlX3VyaShjb25zdCBjaGFyICpmaWxlbmFtZSwgUURpY3QgKm9w dGlvbnMsIEVycm9yICoqZXJycCkKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQoKLSAgICBxZGlj dF9wdXQob3B0aW9ucywgInNlcnZlci5ob3N0IiwgcXN0cmluZ19mcm9tX3N0cih1cmktPnNlcnZl cikpOwotICAgIHFkaWN0X3B1dChvcHRpb25zLCAic2VydmVyLnR5cGUiLCBxc3RyaW5nX2Zyb21f c3RyKCJpbmV0IikpOwotICAgIHFkaWN0X3B1dChvcHRpb25zLCAicGF0aCIsIHFzdHJpbmdfZnJv bV9zdHIodXJpLT5wYXRoKSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAic2VydmVyLmhv c3QiLCB1cmktPnNlcnZlcik7CisgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAic2VydmVyLnR5 cGUiLCAiaW5ldCIpOworICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgInBhdGgiLCB1cmktPnBh dGgpOwoKICAgICBmb3IgKGkgPSAwOyBpIDwgcXAtPm47IGkrKykgewogICAgICAgICBpZiAoIXFw LT5wW2ldLnZhbHVlKSB7CkBAIC0xMTksMjMgKzExOSwxNyBAQCBzdGF0aWMgaW50IG5mc19wYXJz ZV91cmkoY29uc3QgY2hhciAqZmlsZW5hbWUsIFFEaWN0ICpvcHRpb25zLCBFcnJvciAqKmVycnAp CiAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAgfQogICAgICAgICBpZiAoIXN0cmNtcChx cC0+cFtpXS5uYW1lLCAidWlkIikpIHsKLSAgICAgICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAi dXNlciIsCi0gICAgICAgICAgICAgICAgICAgICAgcXN0cmluZ19mcm9tX3N0cihxcC0+cFtpXS52 YWx1ZSkpOworICAgICAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAidXNlciIsIHFwLT5w W2ldLnZhbHVlKTsKICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKHFwLT5wW2ldLm5hbWUsICJn aWQiKSkgewotICAgICAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJncm91cCIsCi0gICAgICAg ICAgICAgICAgICAgICAgcXN0cmluZ19mcm9tX3N0cihxcC0+cFtpXS52YWx1ZSkpOworICAgICAg ICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZ3JvdXAiLCBxcC0+cFtpXS52YWx1ZSk7CiAg ICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChxcC0+cFtpXS5uYW1lLCAidGNwLXN5bmNudCIpKSB7 Ci0gICAgICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgInRjcC1zeW4tY291bnQiLAotICAgICAg ICAgICAgICAgICAgICAgIHFzdHJpbmdfZnJvbV9zdHIocXAtPnBbaV0udmFsdWUpKTsKKyAgICAg ICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgInRjcC1zeW4tY291bnQiLCBxcC0+cFtpXS52 YWx1ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChxcC0+cFtpXS5uYW1lLCAicmVhZGFo ZWFkIikpIHsKLSAgICAgICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAicmVhZGFoZWFkLXNpemUi LAotICAgICAgICAgICAgICAgICAgICAgIHFzdHJpbmdfZnJvbV9zdHIocXAtPnBbaV0udmFsdWUp KTsKKyAgICAgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgInJlYWRhaGVhZC1zaXplIiwg cXAtPnBbaV0udmFsdWUpOwogICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAocXAtPnBbaV0ubmFt ZSwgInBhZ2VjYWNoZSIpKSB7Ci0gICAgICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgInBhZ2Ut Y2FjaGUtc2l6ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgcXN0cmluZ19mcm9tX3N0cihxcC0+ cFtpXS52YWx1ZSkpOworICAgICAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAicGFnZS1j YWNoZS1zaXplIiwgcXAtPnBbaV0udmFsdWUpOwogICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAo cXAtPnBbaV0ubmFtZSwgImRlYnVnIikpIHsKLSAgICAgICAgICAgIHFkaWN0X3B1dChvcHRpb25z LCAiZGVidWctbGV2ZWwiLAotICAgICAgICAgICAgICAgICAgICAgIHFzdHJpbmdfZnJvbV9zdHIo cXAtPnBbaV0udmFsdWUpKTsKKyAgICAgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgImRl YnVnLWxldmVsIiwgcXAtPnBbaV0udmFsdWUpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg ICAgZXJyb3Jfc2V0ZyhlcnJwLCAiVW5rbm93biBORlMgcGFyYW1ldGVyIG5hbWU6ICVzIiwKICAg ICAgICAgICAgICAgICAgICAgICAgcXAtPnBbaV0ubmFtZSk7CkBAIC03NzQsNyArNzY4LDcgQEAg c3RhdGljIHZvaWQgbmZzX3JlZnJlc2hfZmlsZW5hbWUoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIFFE aWN0ICpvcHRpb25zKQogICAgIFFPYmplY3QgKnNlcnZlcl9xZGljdDsKICAgICBWaXNpdG9yICpv djsKCi0gICAgcWRpY3RfcHV0KG9wdHMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKCJuZnMi KSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRzLCAiZHJpdmVyIiwgIm5mcyIpOwoKICAgICBpZiAo Y2xpZW50LT51aWQgJiYgIWNsaWVudC0+Z2lkKSB7CiAgICAgICAgIHNucHJpbnRmKGJzLT5leGFj dF9maWxlbmFtZSwgc2l6ZW9mKGJzLT5leGFjdF9maWxlbmFtZSksCkBAIC03OTksMjggKzc5Mywy NSBAQCBzdGF0aWMgdm9pZCBuZnNfcmVmcmVzaF9maWxlbmFtZShCbG9ja0RyaXZlclN0YXRlICpi cywgUURpY3QgKm9wdGlvbnMpCiAgICAgYXNzZXJ0KHFvYmplY3RfdHlwZShzZXJ2ZXJfcWRpY3Qp ID09IFFUWVBFX1FESUNUKTsKCiAgICAgcWRpY3RfcHV0X29iaihvcHRzLCAic2VydmVyIiwgc2Vy dmVyX3FkaWN0KTsKLSAgICBxZGljdF9wdXQob3B0cywgInBhdGgiLCBxc3RyaW5nX2Zyb21fc3Ry KGNsaWVudC0+cGF0aCkpOworICAgIHFkaWN0X3B1dF9zdHIob3B0cywgInBhdGgiLCBjbGllbnQt PnBhdGgpOwoKICAgICBpZiAoY2xpZW50LT51aWQpIHsKLSAgICAgICAgcWRpY3RfcHV0KG9wdHMs ICJ1aWQiLCBxaW50X2Zyb21faW50KGNsaWVudC0+dWlkKSk7CisgICAgICAgIHFkaWN0X3B1dF9p bnQob3B0cywgInVpZCIsIGNsaWVudC0+dWlkKTsKICAgICB9CiAgICAgaWYgKGNsaWVudC0+Z2lk KSB7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRzLCAiZ2lkIiwgcWludF9mcm9tX2ludChjbGllbnQt PmdpZCkpOworICAgICAgICBxZGljdF9wdXRfaW50KG9wdHMsICJnaWQiLCBjbGllbnQtPmdpZCk7 CiAgICAgfQogICAgIGlmIChjbGllbnQtPnRjcF9zeW5jbnQpIHsKLSAgICAgICAgcWRpY3RfcHV0 KG9wdHMsICJ0Y3Atc3luY250IiwKLSAgICAgICAgICAgICAgICAgICAgICBxaW50X2Zyb21faW50 KGNsaWVudC0+dGNwX3N5bmNudCkpOworICAgICAgICBxZGljdF9wdXRfaW50KG9wdHMsICJ0Y3At c3luY250IiwgY2xpZW50LT50Y3Bfc3luY250KTsKICAgICB9CiAgICAgaWYgKGNsaWVudC0+cmVh ZGFoZWFkKSB7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRzLCAicmVhZGFoZWFkIiwKLSAgICAgICAg ICAgICAgICAgICAgICBxaW50X2Zyb21faW50KGNsaWVudC0+cmVhZGFoZWFkKSk7CisgICAgICAg IHFkaWN0X3B1dF9pbnQob3B0cywgInJlYWRhaGVhZCIsIGNsaWVudC0+cmVhZGFoZWFkKTsKICAg ICB9CiAgICAgaWYgKGNsaWVudC0+cGFnZWNhY2hlKSB7Ci0gICAgICAgIHFkaWN0X3B1dChvcHRz LCAicGFnZWNhY2hlIiwKLSAgICAgICAgICAgICAgICAgICAgICBxaW50X2Zyb21faW50KGNsaWVu dC0+cGFnZWNhY2hlKSk7CisgICAgICAgIHFkaWN0X3B1dF9pbnQob3B0cywgInBhZ2VjYWNoZSIs IGNsaWVudC0+cGFnZWNhY2hlKTsKICAgICB9CiAgICAgaWYgKGNsaWVudC0+ZGVidWcpIHsKLSAg ICAgICAgcWRpY3RfcHV0KG9wdHMsICJkZWJ1ZyIsIHFpbnRfZnJvbV9pbnQoY2xpZW50LT5kZWJ1 ZykpOworICAgICAgICBxZGljdF9wdXRfaW50KG9wdHMsICJkZWJ1ZyIsIGNsaWVudC0+ZGVidWcp OwogICAgIH0KCiAgICAgdmlzaXRfZnJlZShvdik7CmRpZmYgLS1naXQgYS9ibG9jay9udWxsLmMg Yi9ibG9jay9udWxsLmMKaW5kZXggYjMwMDM5MC4uODc2ZjkwOSAxMDA2NDQKLS0tIGEvYmxvY2sv bnVsbC5jCisrKyBiL2Jsb2NrL251bGwuYwpAQCAtMjMyLDcgKzIzMiw3IEBAIHN0YXRpYyB2b2lk IG51bGxfcmVmcmVzaF9maWxlbmFtZShCbG9ja0RyaXZlclN0YXRlICpicywgUURpY3QgKm9wdHMp CiAgICAgICAgICAgICAgICAgIGJzLT5kcnYtPmZvcm1hdF9uYW1lKTsKICAgICB9CgotICAgIHFk aWN0X3B1dChvcHRzLCAiZHJpdmVyIiwgcXN0cmluZ19mcm9tX3N0cihicy0+ZHJ2LT5mb3JtYXRf bmFtZSkpOworICAgIHFkaWN0X3B1dF9zdHIob3B0cywgImRyaXZlciIsIGJzLT5kcnYtPmZvcm1h dF9uYW1lKTsKICAgICBicy0+ZnVsbF9vcGVuX29wdGlvbnMgPSBvcHRzOwogfQoKZGlmZiAtLWdp dCBhL2Jsb2NrL3Fjb3cyLmMgYi9ibG9jay9xY293Mi5jCmluZGV4IGVkOWUwZjMuLmY5MDg1Nzcg MTAwNjQ0Ci0tLSBhL2Jsb2NrL3Fjb3cyLmMKKysrIGIvYmxvY2svcWNvdzIuYwpAQCAtMjI1Miw3 ICsyMjUyLDcgQEAgc3RhdGljIGludCBxY293Ml9jcmVhdGUyKGNvbnN0IGNoYXIgKmZpbGVuYW1l LCBpbnQ2NF90IHRvdGFsX3NpemUsCiAgICAgICogdGFibGUpCiAgICAgICovCiAgICAgb3B0aW9u cyA9IHFkaWN0X25ldygpOwotICAgIHFkaWN0X3B1dChvcHRpb25zLCAiZHJpdmVyIiwgcXN0cmlu Z19mcm9tX3N0cigicWNvdzIiKSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZHJpdmVy IiwgInFjb3cyIik7CiAgICAgYmxrID0gYmxrX25ld19vcGVuKGZpbGVuYW1lLCBOVUxMLCBvcHRp b25zLAogICAgICAgICAgICAgICAgICAgICAgICBCRFJWX09fUkRXUiB8IEJEUlZfT19OT19GTFVT SCwgJmxvY2FsX2Vycik7CiAgICAgaWYgKGJsayA9PSBOVUxMKSB7CkBAIC0yMzEzLDcgKzIzMTMs NyBAQCBzdGF0aWMgaW50IHFjb3cyX2NyZWF0ZTIoY29uc3QgY2hhciAqZmlsZW5hbWUsIGludDY0 X3QgdG90YWxfc2l6ZSwKCiAgICAgLyogUmVvcGVuIHRoZSBpbWFnZSB3aXRob3V0IEJEUlZfT19O T19GTFVTSCB0byBmbHVzaCBpdCBiZWZvcmUgcmV0dXJuaW5nICovCiAgICAgb3B0aW9ucyA9IHFk aWN0X25ldygpOwotICAgIHFkaWN0X3B1dChvcHRpb25zLCAiZHJpdmVyIiwgcXN0cmluZ19mcm9t X3N0cigicWNvdzIiKSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZHJpdmVyIiwgInFj b3cyIik7CiAgICAgYmxrID0gYmxrX25ld19vcGVuKGZpbGVuYW1lLCBOVUxMLCBvcHRpb25zLAog ICAgICAgICAgICAgICAgICAgICAgICBCRFJWX09fUkRXUiB8IEJEUlZfT19OT19CQUNLSU5HLCAm bG9jYWxfZXJyKTsKICAgICBpZiAoYmxrID09IE5VTEwpIHsKZGlmZiAtLWdpdCBhL2Jsb2NrL3F1 b3J1bS5jIGIvYmxvY2svcXVvcnVtLmMKaW5kZXggZDEyMjI5OS4uMGFhMTZkZCAxMDA2NDQKLS0t IGEvYmxvY2svcXVvcnVtLmMKKysrIGIvYmxvY2svcXVvcnVtLmMKQEAgLTEwNzIsMTQgKzEwNzIs MTEgQEAgc3RhdGljIHZvaWQgcXVvcnVtX3JlZnJlc2hfZmlsZW5hbWUoQmxvY2tEcml2ZXJTdGF0 ZSAqYnMsIFFEaWN0ICpvcHRpb25zKQogICAgIH0KCiAgICAgb3B0cyA9IHFkaWN0X25ldygpOwot ICAgIHFkaWN0X3B1dF9vYmoob3B0cywgImRyaXZlciIsIFFPQkpFQ1QocXN0cmluZ19mcm9tX3N0 cigicXVvcnVtIikpKTsKLSAgICBxZGljdF9wdXRfb2JqKG9wdHMsIFFVT1JVTV9PUFRfVk9URV9U SFJFU0hPTEQsCi0gICAgICAgICAgICAgICAgICBRT0JKRUNUKHFpbnRfZnJvbV9pbnQocy0+dGhy ZXNob2xkKSkpOwotICAgIHFkaWN0X3B1dF9vYmoob3B0cywgUVVPUlVNX09QVF9CTEtWRVJJRlks Ci0gICAgICAgICAgICAgICAgICBRT0JKRUNUKHFib29sX2Zyb21fYm9vbChzLT5pc19ibGt2ZXJp ZnkpKSk7Ci0gICAgcWRpY3RfcHV0X29iaihvcHRzLCBRVU9SVU1fT1BUX1JFV1JJVEUsCi0gICAg ICAgICAgICAgICAgICBRT0JKRUNUKHFib29sX2Zyb21fYm9vbChzLT5yZXdyaXRlX2NvcnJ1cHRl ZCkpKTsKLSAgICBxZGljdF9wdXRfb2JqKG9wdHMsICJjaGlsZHJlbiIsIFFPQkpFQ1QoY2hpbGRy ZW4pKTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdHMsICJkcml2ZXIiLCAicXVvcnVtIik7CisgICAg cWRpY3RfcHV0X2ludChvcHRzLCBRVU9SVU1fT1BUX1ZPVEVfVEhSRVNIT0xELCBzLT50aHJlc2hv bGQpOworICAgIHFkaWN0X3B1dF9ib29sKG9wdHMsIFFVT1JVTV9PUFRfQkxLVkVSSUZZLCBzLT5p c19ibGt2ZXJpZnkpOworICAgIHFkaWN0X3B1dF9ib29sKG9wdHMsIFFVT1JVTV9PUFRfUkVXUklU RSwgcy0+cmV3cml0ZV9jb3JydXB0ZWQpOworICAgIHFkaWN0X3B1dChvcHRzLCAiY2hpbGRyZW4i LCBjaGlsZHJlbik7CgogICAgIGJzLT5mdWxsX29wZW5fb3B0aW9ucyA9IG9wdHM7CiB9CmRpZmYg LS1naXQgYS9ibG9jay9yYXctcG9zaXguYyBiL2Jsb2NrL3Jhdy1wb3NpeC5jCmluZGV4IDI4YjQ3 ZDkuLjM4YTAwOWIgMTAwNjQ0Ci0tLSBhL2Jsb2NrL3Jhdy1wb3NpeC5jCisrKyBiL2Jsb2NrL3Jh dy1wb3NpeC5jCkBAIC0zNzYsNyArMzc2LDcgQEAgc3RhdGljIHZvaWQgcmF3X3BhcnNlX2ZpbGVu YW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0aW9ucywKICAgICAgKiBmdW5jdGlv biBjYWxsIGNhbiBiZSBpZ25vcmVkLiAqLwogICAgIHN0cnN0YXJ0KGZpbGVuYW1lLCAiZmlsZToi LCAmZmlsZW5hbWUpOwoKLSAgICBxZGljdF9wdXRfb2JqKG9wdGlvbnMsICJmaWxlbmFtZSIsIFFP QkpFQ1QocXN0cmluZ19mcm9tX3N0cihmaWxlbmFtZSkpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9w dGlvbnMsICJmaWxlbmFtZSIsIGZpbGVuYW1lKTsKIH0KCiBzdGF0aWMgUWVtdU9wdHNMaXN0IHJh d19ydW50aW1lX29wdHMgPSB7CkBAIC0yMDYxLDcgKzIwNjEsNyBAQCBzdGF0aWMgdm9pZCBoZGV2 X3BhcnNlX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBRRGljdCAqb3B0aW9ucywKICAg ICAvKiBUaGUgcHJlZml4IGlzIG9wdGlvbmFsLCBqdXN0IGFzIGZvciAiZmlsZSIuICovCiAgICAg c3Ryc3RhcnQoZmlsZW5hbWUsICJob3N0X2RldmljZToiLCAmZmlsZW5hbWUpOwoKLSAgICBxZGlj dF9wdXRfb2JqKG9wdGlvbnMsICJmaWxlbmFtZSIsIFFPQkpFQ1QocXN0cmluZ19mcm9tX3N0cihm aWxlbmFtZSkpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJmaWxlbmFtZSIsIGZpbGVu YW1lKTsKIH0KCiBzdGF0aWMgYm9vbCBoZGV2X2lzX3NnKEJsb2NrRHJpdmVyU3RhdGUgKmJzKQpA QCAtMjE0NCw3ICsyMTQ0LDcgQEAgc3RhdGljIGludCBoZGV2X29wZW4oQmxvY2tEcml2ZXJTdGF0 ZSAqYnMsIFFEaWN0ICpvcHRpb25zLCBpbnQgZmxhZ3MsCiAgICAgICAgICAgICBnb3RvIGhkZXZf b3Blbl9NYWNfZXJyb3I7CiAgICAgICAgIH0KCi0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAi ZmlsZW5hbWUiLCBxc3RyaW5nX2Zyb21fc3RyKGJzZF9wYXRoKSk7CisgICAgICAgIHFkaWN0X3B1 dF9zdHIob3B0aW9ucywgImZpbGVuYW1lIiwgYnNkX3BhdGgpOwoKIGhkZXZfb3Blbl9NYWNfZXJy b3I6CiAgICAgICAgIGdfZnJlZShtZWRpYVR5cGUpOwpAQCAtMjM1NCw3ICsyMzU0LDcgQEAgc3Rh dGljIHZvaWQgY2Ryb21fcGFyc2VfZmlsZW5hbWUoY29uc3QgY2hhciAqZmlsZW5hbWUsIFFEaWN0 ICpvcHRpb25zLAogICAgIC8qIFRoZSBwcmVmaXggaXMgb3B0aW9uYWwsIGp1c3QgYXMgZm9yICJm aWxlIi4gKi8KICAgICBzdHJzdGFydChmaWxlbmFtZSwgImhvc3RfY2Ryb206IiwgJmZpbGVuYW1l KTsKCi0gICAgcWRpY3RfcHV0X29iaihvcHRpb25zLCAiZmlsZW5hbWUiLCBRT0JKRUNUKHFzdHJp bmdfZnJvbV9zdHIoZmlsZW5hbWUpKSk7CisgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZmls ZW5hbWUiLCBmaWxlbmFtZSk7CiB9CiAjZW5kaWYKCmRpZmYgLS1naXQgYS9ibG9jay9yYXctd2lu MzIuYyBiL2Jsb2NrL3Jhdy13aW4zMi5jCmluZGV4IDgwMGZhYmQuLjBkNDU1ZDEgMTAwNjQ0Ci0t LSBhL2Jsb2NrL3Jhdy13aW4zMi5jCisrKyBiL2Jsb2NrL3Jhdy13aW4zMi5jCkBAIC0yODIsNyAr MjgyLDcgQEAgc3RhdGljIHZvaWQgcmF3X3BhcnNlX2ZpbGVuYW1lKGNvbnN0IGNoYXIgKmZpbGVu YW1lLCBRRGljdCAqb3B0aW9ucywKICAgICAgKiBmdW5jdGlvbiBjYWxsIGNhbiBiZSBpZ25vcmVk LiAqLwogICAgIHN0cnN0YXJ0KGZpbGVuYW1lLCAiZmlsZToiLCAmZmlsZW5hbWUpOwoKLSAgICBx ZGljdF9wdXRfb2JqKG9wdGlvbnMsICJmaWxlbmFtZSIsIFFPQkpFQ1QocXN0cmluZ19mcm9tX3N0 cihmaWxlbmFtZSkpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJmaWxlbmFtZSIsIGZp bGVuYW1lKTsKIH0KCiBzdGF0aWMgUWVtdU9wdHNMaXN0IHJhd19ydW50aW1lX29wdHMgPSB7CkBA IC02NjksNyArNjY5LDcgQEAgc3RhdGljIHZvaWQgaGRldl9wYXJzZV9maWxlbmFtZShjb25zdCBj aGFyICpmaWxlbmFtZSwgUURpY3QgKm9wdGlvbnMsCiAgICAgLyogVGhlIHByZWZpeCBpcyBvcHRp b25hbCwganVzdCBhcyBmb3IgImZpbGUiLiAqLwogICAgIHN0cnN0YXJ0KGZpbGVuYW1lLCAiaG9z dF9kZXZpY2U6IiwgJmZpbGVuYW1lKTsKCi0gICAgcWRpY3RfcHV0X29iaihvcHRpb25zLCAiZmls ZW5hbWUiLCBRT0JKRUNUKHFzdHJpbmdfZnJvbV9zdHIoZmlsZW5hbWUpKSk7CisgICAgcWRpY3Rf cHV0X3N0cihvcHRpb25zLCAiZmlsZW5hbWUiLCBmaWxlbmFtZSk7CiB9Cgogc3RhdGljIGludCBo ZGV2X29wZW4oQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIFFEaWN0ICpvcHRpb25zLCBpbnQgZmxhZ3Ms CmRpZmYgLS1naXQgYS9ibG9jay9zc2guYyBiL2Jsb2NrL3NzaC5jCmluZGV4IDE1ZWQyODEuLjY1 NjE1M2UgMTAwNjQ0Ci0tLSBhL2Jsb2NrL3NzaC5jCisrKyBiL2Jsb2NrL3NzaC5jCkBAIC0yMjcs MjQgKzIyNywyMyBAQCBzdGF0aWMgaW50IHBhcnNlX3VyaShjb25zdCBjaGFyICpmaWxlbmFtZSwg UURpY3QgKm9wdGlvbnMsIEVycm9yICoqZXJycCkKICAgICB9CgogICAgIGlmKHVyaS0+dXNlciAm JiBzdHJjbXAodXJpLT51c2VyLCAiIikgIT0gMCkgewotICAgICAgICBxZGljdF9wdXQob3B0aW9u cywgInVzZXIiLCBxc3RyaW5nX2Zyb21fc3RyKHVyaS0+dXNlcikpOworICAgICAgICBxZGljdF9w dXRfc3RyKG9wdGlvbnMsICJ1c2VyIiwgdXJpLT51c2VyKTsKICAgICB9CgotICAgIHFkaWN0X3B1 dChvcHRpb25zLCAic2VydmVyLmhvc3QiLCBxc3RyaW5nX2Zyb21fc3RyKHVyaS0+c2VydmVyKSk7 CisgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAic2VydmVyLmhvc3QiLCB1cmktPnNlcnZlcik7 CgogICAgIHBvcnRfc3RyID0gZ19zdHJkdXBfcHJpbnRmKCIlZCIsIHVyaS0+cG9ydCA/OiAyMik7 Ci0gICAgcWRpY3RfcHV0KG9wdGlvbnMsICJzZXJ2ZXIucG9ydCIsIHFzdHJpbmdfZnJvbV9zdHIo cG9ydF9zdHIpKTsKKyAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJzZXJ2ZXIucG9ydCIsIHBv cnRfc3RyKTsKICAgICBnX2ZyZWUocG9ydF9zdHIpOwoKLSAgICBxZGljdF9wdXQob3B0aW9ucywg InBhdGgiLCBxc3RyaW5nX2Zyb21fc3RyKHVyaS0+cGF0aCkpOworICAgIHFkaWN0X3B1dF9zdHIo b3B0aW9ucywgInBhdGgiLCB1cmktPnBhdGgpOwoKICAgICAvKiBQaWNrIG91dCBhbnkgcXVlcnkg cGFyYW1ldGVycyB0aGF0IHdlIHVuZGVyc3RhbmQsIGFuZCBpZ25vcmUKICAgICAgKiB0aGUgcmVz dC4KICAgICAgKi8KICAgICBmb3IgKGkgPSAwOyBpIDwgcXAtPm47ICsraSkgewogICAgICAgICBp ZiAoc3RyY21wKHFwLT5wW2ldLm5hbWUsICJob3N0X2tleV9jaGVjayIpID09IDApIHsKLSAgICAg ICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAiaG9zdF9rZXlfY2hlY2siLAotICAgICAgICAgICAg ICAgICAgICAgIHFzdHJpbmdfZnJvbV9zdHIocXAtPnBbaV0udmFsdWUpKTsKKyAgICAgICAgICAg IHFkaWN0X3B1dF9zdHIob3B0aW9ucywgImhvc3Rfa2V5X2NoZWNrIiwgcXAtPnBbaV0udmFsdWUp OwogICAgICAgICB9CiAgICAgfQoKQEAgLTU3NCw5ICs1NzMsOCBAQCBzdGF0aWMgYm9vbCBzc2hf cHJvY2Vzc19sZWdhY3lfc29ja2V0X29wdGlvbnMoUURpY3QgKm91dHB1dF9vcHRzLAogICAgIH0K CiAgICAgaWYgKGhvc3QpIHsKLSAgICAgICAgcWRpY3RfcHV0KG91dHB1dF9vcHRzLCAic2VydmVy Lmhvc3QiLCBxc3RyaW5nX2Zyb21fc3RyKGhvc3QpKTsKLSAgICAgICAgcWRpY3RfcHV0KG91dHB1 dF9vcHRzLCAic2VydmVyLnBvcnQiLAotICAgICAgICAgICAgICAgICAgcXN0cmluZ19mcm9tX3N0 cihwb3J0ID86IHN0cmluZ2lmeSgyMikpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvdXRwdXRf b3B0cywgInNlcnZlci5ob3N0IiwgaG9zdCk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3V0cHV0 X29wdHMsICJzZXJ2ZXIucG9ydCIsIHBvcnQgPzogc3RyaW5naWZ5KDIyKSk7CiAgICAgfQoKICAg ICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL2Jsb2NrL3Z2ZmF0LmMgYi9ibG9jay92dmZhdC5j CmluZGV4IGRlZDIxMDkuLmNmMmUxMDkgMTAwNjQ0Ci0tLSBhL2Jsb2NrL3Z2ZmF0LmMKKysrIGIv YmxvY2svdnZmYXQuYwpAQCAtMTA1NywxMCArMTA1NywxMCBAQCBzdGF0aWMgdm9pZCB2dmZhdF9w YXJzZV9maWxlbmFtZShjb25zdCBjaGFyICpmaWxlbmFtZSwgUURpY3QgKm9wdGlvbnMsCiAgICAg fQoKICAgICAvKiBGaWxsIGluIHRoZSBvcHRpb25zIFFEaWN0ICovCi0gICAgcWRpY3RfcHV0KG9w dGlvbnMsICJkaXIiLCBxc3RyaW5nX2Zyb21fc3RyKGZpbGVuYW1lKSk7Ci0gICAgcWRpY3RfcHV0 KG9wdGlvbnMsICJmYXQtdHlwZSIsIHFpbnRfZnJvbV9pbnQoZmF0X3R5cGUpKTsKLSAgICBxZGlj dF9wdXQob3B0aW9ucywgImZsb3BweSIsIHFib29sX2Zyb21fYm9vbChmbG9wcHkpKTsKLSAgICBx ZGljdF9wdXQob3B0aW9ucywgInJ3IiwgcWJvb2xfZnJvbV9ib29sKHJ3KSk7CisgICAgcWRpY3Rf cHV0X3N0cihvcHRpb25zLCAiZGlyIiwgZmlsZW5hbWUpOworICAgIHFkaWN0X3B1dF9pbnQob3B0 aW9ucywgImZhdC10eXBlIiwgZmF0X3R5cGUpOworICAgIHFkaWN0X3B1dF9ib29sKG9wdGlvbnMs ICJmbG9wcHkiLCBmbG9wcHkpOworICAgIHFkaWN0X3B1dF9ib29sKG9wdGlvbnMsICJydyIsIHJ3 KTsKIH0KCiBzdGF0aWMgaW50IHZ2ZmF0X29wZW4oQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIFFEaWN0 ICpvcHRpb25zLCBpbnQgZmxhZ3MsCkBAIC0zMDE5LDcgKzMwMTksNyBAQCBzdGF0aWMgaW50IGVu YWJsZV93cml0ZV90YXJnZXQoQmxvY2tEcml2ZXJTdGF0ZSAqYnMsIEVycm9yICoqZXJycCkKICAg ICB9CgogICAgIG9wdGlvbnMgPSBxZGljdF9uZXcoKTsKLSAgICBxZGljdF9wdXQob3B0aW9ucywg IndyaXRlLXRhcmdldC5kcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKCJxY293IikpOworICAgIHFk aWN0X3B1dF9zdHIob3B0aW9ucywgIndyaXRlLXRhcmdldC5kcml2ZXIiLCAicWNvdyIpOwogICAg IHMtPnFjb3cgPSBiZHJ2X29wZW5fY2hpbGQocy0+cWNvd19maWxlbmFtZSwgb3B0aW9ucywgIndy aXRlLXRhcmdldCIsIGJzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNoaWxkX3Z2 ZmF0X3Fjb3csIGZhbHNlLCBlcnJwKTsKICAgICBRREVDUkVGKG9wdGlvbnMpOwpkaWZmIC0tZ2l0 IGEvYmxvY2tkZXYuYyBiL2Jsb2NrZGV2LmMKaW5kZXggMjQ1ZTFlMS4uMjgwMmNlYSAxMDA2NDQK LS0tIGEvYmxvY2tkZXYuYworKysgYi9ibG9ja2Rldi5jCkBAIC01MjMsNyArNTIzLDcgQEAgc3Rh dGljIEJsb2NrQmFja2VuZCAqYmxvY2tkZXZfaW5pdChjb25zdCBjaGFyICpmaWxlLCBRRGljdCAq YnNfb3B0cywKICAgICAgICAgICAgIGVycm9yX3NldGcoZXJycCwgIkNhbm5vdCBzcGVjaWZ5IGJv dGggJ2RyaXZlcicgYW5kICdmb3JtYXQnIik7CiAgICAgICAgICAgICBnb3RvIGVhcmx5X2VycjsK ICAgICAgICAgfQotICAgICAgICBxZGljdF9wdXQoYnNfb3B0cywgImRyaXZlciIsIHFzdHJpbmdf ZnJvbV9zdHIoYnVmKSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIoYnNfb3B0cywgImRyaXZlciIs IGJ1Zik7CiAgICAgfQoKICAgICBvbl93cml0ZV9lcnJvciA9IEJMT0NLREVWX09OX0VSUk9SX0VO T1NQQzsKQEAgLTg5OSwxMCArODk5LDggQEAgRHJpdmVJbmZvICpkcml2ZV9uZXcoUWVtdU9wdHMg KmFsbF9vcHRzLCBCbG9ja0ludGVyZmFjZVR5cGUgYmxvY2tfZGVmYXVsdF90eXBlKQogICAgICAg ICBjb3B5X29uX3JlYWQgPSBmYWxzZTsKICAgICB9CgotICAgIHFkaWN0X3B1dChic19vcHRzLCBC RFJWX09QVF9SRUFEX09OTFksCi0gICAgICAgICAgICAgIHFzdHJpbmdfZnJvbV9zdHIocmVhZF9v bmx5ID8gIm9uIiA6ICJvZmYiKSk7Ci0gICAgcWRpY3RfcHV0KGJzX29wdHMsICJjb3B5LW9uLXJl YWQiLAotICAgICAgICAgICAgICBxc3RyaW5nX2Zyb21fc3RyKGNvcHlfb25fcmVhZCA/ICJvbiIg OiJvZmYiKSk7CisgICAgcWRpY3RfcHV0X3N0cihic19vcHRzLCBCRFJWX09QVF9SRUFEX09OTFks IHJlYWRfb25seSA/ICJvbiIgOiAib2ZmIik7CisgICAgcWRpY3RfcHV0X3N0cihic19vcHRzLCAi Y29weS1vbi1yZWFkIiwgY29weV9vbl9yZWFkID8gIm9uIiA6ICJvZmYiKTsKCiAgICAgLyogQ29u dHJvbGxlciB0eXBlICovCiAgICAgdmFsdWUgPSBxZW11X29wdF9nZXQobGVnYWN5X29wdHMsICJp ZiIpOwpAQCAtMTA2Myw3ICsxMDYxLDcgQEAgRHJpdmVJbmZvICpkcml2ZV9uZXcoUWVtdU9wdHMg KmFsbF9vcHRzLCBCbG9ja0ludGVyZmFjZVR5cGUgYmxvY2tfZGVmYXVsdF90eXBlKQogICAgICAg ICAgICAgZXJyb3JfcmVwb3J0KCJ3ZXJyb3IgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1cyB0 eXBlIik7CiAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgIH0KLSAgICAgICAgcWRpY3Rf cHV0KGJzX29wdHMsICJ3ZXJyb3IiLCBxc3RyaW5nX2Zyb21fc3RyKHdlcnJvcikpOworICAgICAg ICBxZGljdF9wdXRfc3RyKGJzX29wdHMsICJ3ZXJyb3IiLCB3ZXJyb3IpOwogICAgIH0KCiAgICAg cmVycm9yID0gcWVtdV9vcHRfZ2V0KGxlZ2FjeV9vcHRzLCAicmVycm9yIik7CkBAIC0xMDczLDcg KzEwNzEsNyBAQCBEcml2ZUluZm8gKmRyaXZlX25ldyhRZW11T3B0cyAqYWxsX29wdHMsIEJsb2Nr SW50ZXJmYWNlVHlwZSBibG9ja19kZWZhdWx0X3R5cGUpCiAgICAgICAgICAgICBlcnJvcl9yZXBv cnQoInJlcnJvciBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVzIHR5cGUiKTsKICAgICAgICAg ICAgIGdvdG8gZmFpbDsKICAgICAgICAgfQotICAgICAgICBxZGljdF9wdXQoYnNfb3B0cywgInJl cnJvciIsIHFzdHJpbmdfZnJvbV9zdHIocmVycm9yKSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIo YnNfb3B0cywgInJlcnJvciIsIHJlcnJvcik7CiAgICAgfQoKICAgICAvKiBBY3R1YWwgYmxvY2sg ZGV2aWNlIGluaXQ6IEZ1bmN0aW9uYWxpdHkgc2hhcmVkIHdpdGggYmxvY2tkZXYtYWRkICovCkBA IC0xNzMyLDEwICsxNzMwLDkgQEAgc3RhdGljIHZvaWQgZXh0ZXJuYWxfc25hcHNob3RfcHJlcGFy ZShCbGtBY3Rpb25TdGF0ZSAqY29tbW9uLAoKICAgICAgICAgb3B0aW9ucyA9IHFkaWN0X25ldygp OwogICAgICAgICBpZiAocy0+aGFzX3NuYXBzaG90X25vZGVfbmFtZSkgewotICAgICAgICAgICAg cWRpY3RfcHV0KG9wdGlvbnMsICJub2RlLW5hbWUiLAotICAgICAgICAgICAgICAgICAgICAgIHFz dHJpbmdfZnJvbV9zdHIoc25hcHNob3Rfbm9kZV9uYW1lKSk7CisgICAgICAgICAgICBxZGljdF9w dXRfc3RyKG9wdGlvbnMsICJub2RlLW5hbWUiLCBzbmFwc2hvdF9ub2RlX25hbWUpOwogICAgICAg ICB9Ci0gICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAiZHJpdmVyIiwgcXN0cmluZ19mcm9tX3N0 cihmb3JtYXQpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZHJpdmVyIiwgZm9y bWF0KTsKCiAgICAgICAgIGZsYWdzIHw9IEJEUlZfT19OT19CQUNLSU5HOwogICAgIH0KQEAgLTI1 NDQsMTEgKzI1NDEsMTAgQEAgdm9pZCBxbXBfYmxvY2tkZXZfY2hhbmdlX21lZGl1bShib29sIGhh c19kZXZpY2UsIGNvbnN0IGNoYXIgKmRldmljZSwKCiAgICAgb3B0aW9ucyA9IHFkaWN0X25ldygp OwogICAgIGRldGVjdF96ZXJvZXMgPSBibGtfZ2V0X2RldGVjdF96ZXJvZXNfZnJvbV9yb290X3N0 YXRlKGJsayk7Ci0gICAgcWRpY3RfcHV0KG9wdGlvbnMsICJkZXRlY3QtemVyb2VzIiwKLSAgICAg ICAgICAgICAgcXN0cmluZ19mcm9tX3N0cihkZXRlY3RfemVyb2VzID8gIm9uIiA6ICJvZmYiKSk7 CisgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZGV0ZWN0LXplcm9lcyIsIGRldGVjdF96ZXJv ZXMgPyAib24iIDogIm9mZiIpOwoKICAgICBpZiAoaGFzX2Zvcm1hdCkgewotICAgICAgICBxZGlj dF9wdXQob3B0aW9ucywgImRyaXZlciIsIHFzdHJpbmdfZnJvbV9zdHIoZm9ybWF0KSk7CisgICAg ICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgImRyaXZlciIsIGZvcm1hdCk7CiAgICAgfQoKICAg ICBtZWRpdW1fYnMgPSBiZHJ2X29wZW4oZmlsZW5hbWUsIE5VTEwsIG9wdGlvbnMsIGJkcnZfZmxh Z3MsIGVycnApOwpAQCAtMzIwNCw3ICszMjAwLDcgQEAgc3RhdGljIEJsb2NrSm9iICpkb19kcml2 ZV9iYWNrdXAoRHJpdmVCYWNrdXAgKmJhY2t1cCwgQmxvY2tKb2JUeG4gKnR4biwKCiAgICAgaWYg KGJhY2t1cC0+Zm9ybWF0KSB7CiAgICAgICAgIG9wdGlvbnMgPSBxZGljdF9uZXcoKTsKLSAgICAg ICAgcWRpY3RfcHV0KG9wdGlvbnMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKGJhY2t1cC0+ Zm9ybWF0KSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgImRyaXZlciIsIGJhY2t1 cC0+Zm9ybWF0KTsKICAgICB9CgogICAgIHRhcmdldF9icyA9IGJkcnZfb3BlbihiYWNrdXAtPnRh cmdldCwgTlVMTCwgb3B0aW9ucywgZmxhZ3MsIGVycnApOwpAQCAtMzUwMiwxMCArMzQ5OCwxMCBA QCB2b2lkIHFtcF9kcml2ZV9taXJyb3IoRHJpdmVNaXJyb3IgKmFyZywgRXJyb3IgKiplcnJwKQoK ICAgICBvcHRpb25zID0gcWRpY3RfbmV3KCk7CiAgICAgaWYgKGFyZy0+aGFzX25vZGVfbmFtZSkg ewotICAgICAgICBxZGljdF9wdXQob3B0aW9ucywgIm5vZGUtbmFtZSIsIHFzdHJpbmdfZnJvbV9z dHIoYXJnLT5ub2RlX25hbWUpKTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAibm9k ZS1uYW1lIiwgYXJnLT5ub2RlX25hbWUpOwogICAgIH0KICAgICBpZiAoZm9ybWF0KSB7Ci0gICAg ICAgIHFkaWN0X3B1dChvcHRpb25zLCAiZHJpdmVyIiwgcXN0cmluZ19mcm9tX3N0cihmb3JtYXQp KTsKKyAgICAgICAgcWRpY3RfcHV0X3N0cihvcHRpb25zLCAiZHJpdmVyIiwgZm9ybWF0KTsKICAg ICB9CgogICAgIC8qIE1pcnJvcmluZyB0YWtlcyBjYXJlIG9mIGNvcHktb24td3JpdGUgdXNpbmcg dGhlIHNvdXJjZSdzIGJhY2tpbmcKZGlmZiAtLWdpdCBhL2h3L2Jsb2NrL3hlbl9kaXNrLmMgYi9o dy9ibG9jay94ZW5fZGlzay5jCmluZGV4IDQ1NmEyZDUuLjQ3YjJjYTEgMTAwNjQ0Ci0tLSBhL2h3 L2Jsb2NrL3hlbl9kaXNrLmMKKysrIGIvaHcvYmxvY2sveGVuX2Rpc2suYwpAQCAtMTA4Miw3ICsx MDgyLDcgQEAgc3RhdGljIGludCBibGtfY29ubmVjdChzdHJ1Y3QgWGVuRGV2aWNlICp4ZW5kZXYp CgogICAgICAgICBpZiAoc3RyY21wKGJsa2Rldi0+ZmlsZXByb3RvLCAiPHVuc2V0PiIpKSB7CiAg ICAgICAgICAgICBvcHRpb25zID0gcWRpY3RfbmV3KCk7Ci0gICAgICAgICAgICBxZGljdF9wdXQo b3B0aW9ucywgImRyaXZlciIsIHFzdHJpbmdfZnJvbV9zdHIoYmxrZGV2LT5maWxlcHJvdG8pKTsK KyAgICAgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9ucywgImRyaXZlciIsIGJsa2Rldi0+Zmls ZXByb3RvKTsKICAgICAgICAgfQoKICAgICAgICAgLyogc2V0dXAgdmlhIHhlbmJ1cyAtPiBjcmVh dGUgbmV3IGJsb2NrIGRyaXZlciBpbnN0YW5jZSAqLwpkaWZmIC0tZ2l0IGEvaHcvdXNiL3hlbi11 c2IuYyBiL2h3L3VzYi94ZW4tdXNiLmMKaW5kZXggOGU2NzZlNi4uNjY1OTQxNSAxMDA2NDQKLS0t IGEvaHcvdXNiL3hlbi11c2IuYworKysgYi9ody91c2IveGVuLXVzYi5jCkBAIC03NDYsMTYgKzc0 NiwxNiBAQCBzdGF0aWMgdm9pZCB1c2JiYWNrX3BvcnRpZF9hZGQoc3RydWN0IHVzYmJhY2tfaW5m byAqdXNiaWYsIHVuc2lnbmVkIHBvcnQsCiAgICAgcG9ydG5hbWUrKzsKCiAgICAgcWRpY3QgPSBx ZGljdF9uZXcoKTsKLSAgICBxZGljdF9wdXQocWRpY3QsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21f c3RyKCJ1c2ItaG9zdCIpKTsKKyAgICBxZGljdF9wdXRfc3RyKHFkaWN0LCAiZHJpdmVyIiwgInVz Yi1ob3N0Iik7CiAgICAgdG1wID0gZ19zdHJkdXBfcHJpbnRmKCIlcy4wIiwgdXNiaWYtPnhlbmRl di5xZGV2LmlkKTsKLSAgICBxZGljdF9wdXQocWRpY3QsICJidXMiLCBxc3RyaW5nX2Zyb21fc3Ry KHRtcCkpOworICAgIHFkaWN0X3B1dF9zdHIocWRpY3QsICJidXMiLCB0bXApOwogICAgIGdfZnJl ZSh0bXApOwogICAgIHRtcCA9IGdfc3RyZHVwX3ByaW50ZigiJXMtJXUiLCB1c2JpZi0+eGVuZGV2 LnFkZXYuaWQsIHBvcnQpOwotICAgIHFkaWN0X3B1dChxZGljdCwgImlkIiwgcXN0cmluZ19mcm9t X3N0cih0bXApKTsKKyAgICBxZGljdF9wdXRfc3RyKHFkaWN0LCAiaWQiLCB0bXApOwogICAgIGdf ZnJlZSh0bXApOwotICAgIHFkaWN0X3B1dChxZGljdCwgInBvcnQiLCBxaW50X2Zyb21faW50KHBv cnQpKTsKLSAgICBxZGljdF9wdXQocWRpY3QsICJob3N0YnVzIiwgcWludF9mcm9tX2ludChhdG9p KGJ1c2lkKSkpOwotICAgIHFkaWN0X3B1dChxZGljdCwgImhvc3Rwb3J0IiwgcXN0cmluZ19mcm9t X3N0cihwb3J0bmFtZSkpOworICAgIHFkaWN0X3B1dF9pbnQocWRpY3QsICJwb3J0IiwgcG9ydCk7 CisgICAgcWRpY3RfcHV0X2ludChxZGljdCwgImhvc3RidXMiLCBhdG9pKGJ1c2lkKSk7CisgICAg cWRpY3RfcHV0X3N0cihxZGljdCwgImhvc3Rwb3J0IiwgcG9ydG5hbWUpOwogICAgIG9wdHMgPSBx ZW11X29wdHNfZnJvbV9xZGljdChxZW11X2ZpbmRfb3B0cygiZGV2aWNlIiksIHFkaWN0LCAmbG9j YWxfZXJyKTsKICAgICBpZiAobG9jYWxfZXJyKSB7CiAgICAgICAgIGdvdG8gZXJyOwpkaWZmIC0t Z2l0IGEvbW9uaXRvci5jIGIvbW9uaXRvci5jCmluZGV4IDA4NDFkNDMuLjJhODc3ZWYgMTAwNjQ0 Ci0tLSBhL21vbml0b3IuYworKysgYi9tb25pdG9yLmMKQEAgLTI2MTgsNyArMjYxOCw3IEBAIHN0 YXRpYyBRRGljdCAqbW9uaXRvcl9wYXJzZV9hcmd1bWVudHMoTW9uaXRvciAqbW9uLAogICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcWRpY3RfcHV0KHFkaWN0LCBrZXksIHFzdHJpbmdf ZnJvbV9zdHIoYnVmKSk7CisgICAgICAgICAgICAgICAgcWRpY3RfcHV0X3N0cihxZGljdCwga2V5 LCBidWYpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug J08nOgpAQCAtMjcyMCw5ICsyNzIwLDkgQEAgc3RhdGljIFFEaWN0ICptb25pdG9yX3BhcnNlX2Fy Z3VtZW50cyhNb25pdG9yICptb24sCiAgICAgICAgICAgICAgICAgICAgICAgICBzaXplID0gLTE7 CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg ICAgcWRpY3RfcHV0KHFkaWN0LCAiY291bnQiLCBxaW50X2Zyb21faW50KGNvdW50KSk7Ci0gICAg ICAgICAgICAgICAgcWRpY3RfcHV0KHFkaWN0LCAiZm9ybWF0IiwgcWludF9mcm9tX2ludChmb3Jt YXQpKTsKLSAgICAgICAgICAgICAgICBxZGljdF9wdXQocWRpY3QsICJzaXplIiwgcWludF9mcm9t X2ludChzaXplKSk7CisgICAgICAgICAgICAgICAgcWRpY3RfcHV0X2ludChxZGljdCwgImNvdW50 IiwgY291bnQpOworICAgICAgICAgICAgICAgIHFkaWN0X3B1dF9pbnQocWRpY3QsICJmb3JtYXQi LCBmb3JtYXQpOworICAgICAgICAgICAgICAgIHFkaWN0X3B1dF9pbnQocWRpY3QsICJzaXplIiwg c2l6ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAn aSc6CkBAIC0yNzY1LDcgKzI3NjUsNyBAQCBzdGF0aWMgUURpY3QgKm1vbml0b3JfcGFyc2VfYXJn dW1lbnRzKE1vbml0b3IgKm1vbiwKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg ICAgICAgICB2YWwgPDw9IDIwOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBx ZGljdF9wdXQocWRpY3QsIGtleSwgcWludF9mcm9tX2ludCh2YWwpKTsKKyAgICAgICAgICAgICAg ICBxZGljdF9wdXRfaW50KHFkaWN0LCBrZXksIHZhbCk7CiAgICAgICAgICAgICB9CiAgICAgICAg ICAgICBicmVhazsKICAgICAgICAgY2FzZSAnbyc6CkBAIC0yNzg3LDcgKzI3ODcsNyBAQCBzdGF0 aWMgUURpY3QgKm1vbml0b3JfcGFyc2VfYXJndW1lbnRzKE1vbml0b3IgKm1vbiwKICAgICAgICAg ICAgICAgICAgICAgbW9uaXRvcl9wcmludGYobW9uLCAiaW52YWxpZCBzaXplXG4iKTsKICAgICAg ICAgICAgICAgICAgICAgZ290byBmYWlsOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICAgICBxZGljdF9wdXQocWRpY3QsIGtleSwgcWludF9mcm9tX2ludCh2YWwpKTsKKyAgICAgICAg ICAgICAgICBxZGljdF9wdXRfaW50KHFkaWN0LCBrZXksIHZhbCk7CiAgICAgICAgICAgICAgICAg cCA9IGVuZDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjg0Myw3ICsy ODQzLDcgQEAgc3RhdGljIFFEaWN0ICptb25pdG9yX3BhcnNlX2FyZ3VtZW50cyhNb25pdG9yICpt b24sCiAgICAgICAgICAgICAgICAgICAgIG1vbml0b3JfcHJpbnRmKG1vbiwgIkV4cGVjdGVkICdv bicgb3IgJ29mZidcbiIpOwogICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAg ICAgICAgICAgfQotICAgICAgICAgICAgICAgIHFkaWN0X3B1dChxZGljdCwga2V5LCBxYm9vbF9m cm9tX2Jvb2wodmFsKSk7CisgICAgICAgICAgICAgICAgcWRpY3RfcHV0X2Jvb2wocWRpY3QsIGtl eSwgdmFsKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl ICctJzoKQEAgLTI4NzQsNyArMjg3NCw3IEBAIHN0YXRpYyBRRGljdCAqbW9uaXRvcl9wYXJzZV9h cmd1bWVudHMoTW9uaXRvciAqbW9uLAogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAg ICAgICAgICAgICAgICAgICAgICAgLyogaGFzIG9wdGlvbiAqLwogICAgICAgICAgICAgICAgICAg ICAgICAgcCsrOwotICAgICAgICAgICAgICAgICAgICAgICAgcWRpY3RfcHV0KHFkaWN0LCBrZXks IHFib29sX2Zyb21fYm9vbCh0cnVlKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBxZGljdF9w dXRfYm9vbChxZGljdCwga2V5LCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTI5MDAsNyArMjkwMCw3IEBAIHN0YXRpYyBR RGljdCAqbW9uaXRvcl9wYXJzZV9hcmd1bWVudHMoTW9uaXRvciAqbW9uLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbWQtPm5hbWUpOwogICAgICAgICAgICAgICAgICAgICBn b3RvIGZhaWw7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHFkaWN0X3B1dChx ZGljdCwga2V5LCBxc3RyaW5nX2Zyb21fc3RyKHApKTsKKyAgICAgICAgICAgICAgICBxZGljdF9w dXRfc3RyKHFkaWN0LCBrZXksIHApOwogICAgICAgICAgICAgICAgIHAgKz0gbGVuOwogICAgICAg ICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9xYXBpL3FtcC1ldmVudC5j IGIvcWFwaS9xbXAtZXZlbnQuYwppbmRleCA4MDJlZGU0Li5iYTMwMjljIDEwMDY0NAotLS0gYS9x YXBpL3FtcC1ldmVudC5jCisrKyBiL3FhcGkvcW1wLWV2ZW50LmMKQEAgLTUxLDcgKzUxLDcgQEAg c3RhdGljIHZvaWQgdGltZXN0YW1wX3B1dChRRGljdCAqcWRpY3QpCiBRRGljdCAqcW1wX2V2ZW50 X2J1aWxkX2RpY3QoY29uc3QgY2hhciAqZXZlbnRfbmFtZSkKIHsKICAgICBRRGljdCAqZGljdCA9 IHFkaWN0X25ldygpOwotICAgIHFkaWN0X3B1dChkaWN0LCAiZXZlbnQiLCBxc3RyaW5nX2Zyb21f c3RyKGV2ZW50X25hbWUpKTsKKyAgICBxZGljdF9wdXRfc3RyKGRpY3QsICJldmVudCIsIGV2ZW50 X25hbWUpOwogICAgIHRpbWVzdGFtcF9wdXQoZGljdCk7CiAgICAgcmV0dXJuIGRpY3Q7CiB9CmRp ZmYgLS1naXQgYS9xZW11LWltZy5jIGIvcWVtdS1pbWcuYwppbmRleCA2OTQ5YjczLi5iNThjZGZh IDEwMDY0NAotLS0gYS9xZW11LWltZy5jCisrKyBiL3FlbXUtaW1nLmMKQEAgLTI5OCw3ICsyOTgs NyBAQCBzdGF0aWMgQmxvY2tCYWNrZW5kICppbWdfb3Blbl9maWxlKGNvbnN0IGNoYXIgKmZpbGVu YW1lLAoKICAgICBpZiAoZm10KSB7CiAgICAgICAgIG9wdGlvbnMgPSBxZGljdF9uZXcoKTsKLSAg ICAgICAgcWRpY3RfcHV0KG9wdGlvbnMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKGZtdCkp OworICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJkcml2ZXIiLCBmbXQpOwogICAgIH0K CiAgICAgYmxrID0gYmxrX25ld19vcGVuKGZpbGVuYW1lLCBOVUxMLCBvcHRpb25zLCBmbGFncywg JmxvY2FsX2Vycik7CkBAIC0yOTUzLDcgKzI5NTMsNyBAQCBzdGF0aWMgaW50IGltZ19yZWJhc2Uo aW50IGFyZ2MsIGNoYXIgKiphcmd2KQoKICAgICAgICAgaWYgKGJzLT5iYWNraW5nX2Zvcm1hdFsw XSAhPSAnXDAnKSB7CiAgICAgICAgICAgICBvcHRpb25zID0gcWRpY3RfbmV3KCk7Ci0gICAgICAg ICAgICBxZGljdF9wdXQob3B0aW9ucywgImRyaXZlciIsIHFzdHJpbmdfZnJvbV9zdHIoYnMtPmJh Y2tpbmdfZm9ybWF0KSk7CisgICAgICAgICAgICBxZGljdF9wdXRfc3RyKG9wdGlvbnMsICJkcml2 ZXIiLCBicy0+YmFja2luZ19mb3JtYXQpOwogICAgICAgICB9CgogICAgICAgICBiZHJ2X2dldF9i YWNraW5nX2ZpbGVuYW1lKGJzLCBiYWNraW5nX25hbWUsIHNpemVvZihiYWNraW5nX25hbWUpKTsK QEAgLTI5NzAsNyArMjk3MCw3IEBAIHN0YXRpYyBpbnQgaW1nX3JlYmFzZShpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCiAgICAgICAgIGlmIChvdXRfYmFzZWltZ1swXSkgewogICAgICAgICAgICAgaWYg KG91dF9iYXNlZm10KSB7CiAgICAgICAgICAgICAgICAgb3B0aW9ucyA9IHFkaWN0X25ldygpOwot ICAgICAgICAgICAgICAgIHFkaWN0X3B1dChvcHRpb25zLCAiZHJpdmVyIiwgcXN0cmluZ19mcm9t X3N0cihvdXRfYmFzZWZtdCkpOworICAgICAgICAgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0aW9u cywgImRyaXZlciIsIG91dF9iYXNlZm10KTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg ICAgICAgICAgb3B0aW9ucyA9IE5VTEw7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9xZW11 LWlvLmMgYi9xZW11LWlvLmMKaW5kZXggMjNhMjI5Zi4uOTdmZTk5ZCAxMDA2NDQKLS0tIGEvcWVt dS1pby5jCisrKyBiL3FlbXUtaW8uYwpAQCAtNTk5LDcgKzU5OSw3IEBAIGludCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChmb3Jt YXQpIHsKICAgICAgICAgICAgICAgICBvcHRzID0gcWRpY3RfbmV3KCk7Ci0gICAgICAgICAgICAg ICAgcWRpY3RfcHV0KG9wdHMsICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKGZvcm1hdCkpOwor ICAgICAgICAgICAgICAgIHFkaWN0X3B1dF9zdHIob3B0cywgImRyaXZlciIsIGZvcm1hdCk7CiAg ICAgICAgICAgICB9CiAgICAgICAgICAgICBvcGVuZmlsZShhcmd2W29wdGluZF0sIGZsYWdzLCB3 cml0ZXRocm91Z2gsIG9wdHMpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9xZW11LW5iZC5jIGIv cWVtdS1uYmQuYwppbmRleCBjNzM0ZjYyLi44ZjVhYzhkIDEwMDY0NAotLS0gYS9xZW11LW5iZC5j CisrKyBiL3FlbXUtbmJkLmMKQEAgLTg4Miw3ICs4ODIsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKGZtdCkgewogICAgICAgICAg ICAgb3B0aW9ucyA9IHFkaWN0X25ldygpOwotICAgICAgICAgICAgcWRpY3RfcHV0KG9wdGlvbnMs ICJkcml2ZXIiLCBxc3RyaW5nX2Zyb21fc3RyKGZtdCkpOworICAgICAgICAgICAgcWRpY3RfcHV0 X3N0cihvcHRpb25zLCAiZHJpdmVyIiwgZm10KTsKICAgICAgICAgfQogICAgICAgICBibGsgPSBi bGtfbmV3X29wZW4oc3JjcGF0aCwgTlVMTCwgb3B0aW9ucywgZmxhZ3MsICZsb2NhbF9lcnIpOwog ICAgIH0KZGlmZiAtLWdpdCBhL3FvYmplY3QvcWRpY3QuYyBiL3FvYmplY3QvcWRpY3QuYwppbmRl eCAxOTdiMGZiLi41MWYwZWY2IDEwMDY0NAotLS0gYS9xb2JqZWN0L3FkaWN0LmMKKysrIGIvcW9i amVjdC9xZGljdC5jCkBAIC00ODcsNyArNDg3LDcgQEAgdm9pZCBxZGljdF9zZXRfZGVmYXVsdF9z dHIoUURpY3QgKmRzdCwgY29uc3QgY2hhciAqa2V5LCBjb25zdCBjaGFyICp2YWwpCiAgICAgICAg IHJldHVybjsKICAgICB9CgotICAgIHFkaWN0X3B1dChkc3QsIGtleSwgcXN0cmluZ19mcm9tX3N0 cih2YWwpKTsKKyAgICBxZGljdF9wdXRfc3RyKGRzdCwga2V5LCB2YWwpOwogfQoKIHN0YXRpYyB2 b2lkIHFkaWN0X2ZsYXR0ZW5fcWRpY3QoUURpY3QgKnFkaWN0LCBRRGljdCAqdGFyZ2V0LApkaWZm IC0tZ2l0IGEvdGFyZ2V0LXMzOTB4L2NwdV9tb2RlbHMuYyBiL3RhcmdldC1zMzkweC9jcHVfbW9k ZWxzLmMKaW5kZXggYzFlNzI5ZC4uY2Y2MzFiMiAxMDA2NDQKLS0tIGEvdGFyZ2V0LXMzOTB4L2Nw dV9tb2RlbHMuYworKysgYi90YXJnZXQtczM5MHgvY3B1X21vZGVscy5jCkBAIC0zNzUsMTIgKzM3 NSwxMiBAQCBzdGF0aWMgdm9pZCBjcHVfbW9kZWxfZnJvbV9pbmZvKFMzOTBDUFVNb2RlbCAqbW9k ZWwsIGNvbnN0IENwdU1vZGVsSW5mbyAqaW5mbywKCiBzdGF0aWMgdm9pZCBxZGljdF9hZGRfZGlz YWJsZWRfZmVhdChjb25zdCBjaGFyICpuYW1lLCB2b2lkICpvcGFxdWUpCiB7Ci0gICAgcWRpY3Rf cHV0KChRRGljdCAqKSBvcGFxdWUsIG5hbWUsIHFib29sX2Zyb21fYm9vbChmYWxzZSkpOworICAg IHFkaWN0X3B1dF9ib29sKChRRGljdCAqKSBvcGFxdWUsIG5hbWUsIGZhbHNlKTsKIH0KCiBzdGF0 aWMgdm9pZCBxZGljdF9hZGRfZW5hYmxlZF9mZWF0KGNvbnN0IGNoYXIgKm5hbWUsIHZvaWQgKm9w YXF1ZSkKIHsKLSAgICBxZGljdF9wdXQoKFFEaWN0ICopIG9wYXF1ZSwgbmFtZSwgcWJvb2xfZnJv bV9ib29sKHRydWUpKTsKKyAgICBxZGljdF9wdXRfYm9vbCgoUURpY3QgKikgb3BhcXVlLCBuYW1l LCB0cnVlKTsKIH0KCiAvKiBjb252ZXJ0IFMzOTBDUFVEZWYgaW50byBhIHN0YXRpYyBDcHVNb2Rl bEluZm8gKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrLXFkaWN0LmMgYi90ZXN0cy9jaGVjay1x ZGljdC5jCmluZGV4IDA3YjFjNzkuLmQwMGI0MTEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrLXFk aWN0LmMKKysrIGIvdGVzdHMvY2hlY2stcWRpY3QuYwpAQCAtNDcsNyArNDcsNyBAQCBzdGF0aWMg dm9pZCBxZGljdF9wdXRfb2JqX3Rlc3Qodm9pZCkKICAgICBxZGljdCA9IHFkaWN0X25ldygpOwoK ICAgICAvLyBrZXkgIiIgd2lsbCBoYXZlIHRkYiBoYXNoIDEyMzQ1Ci0gICAgcWRpY3RfcHV0X29i aihxZGljdCwgIiIsIFFPQkpFQ1QocWludF9mcm9tX2ludChudW0pKSk7CisgICAgcWRpY3RfcHV0 X2ludChxZGljdCwgIiIsIG51bSk7CgogICAgIGdfYXNzZXJ0KHFkaWN0X3NpemUocWRpY3QpID09 IDEpOwogICAgIGVudCA9IFFMSVNUX0ZJUlNUKCZxZGljdC0+dGFibGVbMTIzNDUgJSBRRElDVF9C VUNLRVRfTUFYXSk7CkBAIC02Niw4ICs2Niw4IEBAIHN0YXRpYyB2b2lkIHFkaWN0X2Rlc3Ryb3lf c2ltcGxlX3Rlc3Qodm9pZCkKICAgICBRRGljdCAqcWRpY3Q7CgogICAgIHFkaWN0ID0gcWRpY3Rf bmV3KCk7Ci0gICAgcWRpY3RfcHV0X29iaihxZGljdCwgIm51bSIsIFFPQkpFQ1QocWludF9mcm9t X2ludCgwKSkpOwotICAgIHFkaWN0X3B1dF9vYmoocWRpY3QsICJzdHIiLCBRT0JKRUNUKHFzdHJp bmdfZnJvbV9zdHIoImZvbyIpKSk7CisgICAgcWRpY3RfcHV0X2ludChxZGljdCwgIm51bSIsIDAp OworICAgIHFkaWN0X3B1dF9zdHIocWRpY3QsICJzdHIiLCAiZm9vIik7CgogICAgIFFERUNSRUYo cWRpY3QpOwogfQpAQCAtODAsNyArODAsNyBAQCBzdGF0aWMgdm9pZCBxZGljdF9nZXRfdGVzdCh2 b2lkKQogICAgIGNvbnN0IGNoYXIgKmtleSA9ICJ0ZXN0IjsKICAgICBRRGljdCAqdGVzdHNfZGlj dCA9IHFkaWN0X25ldygpOwoKLSAgICBxZGljdF9wdXQodGVzdHNfZGljdCwga2V5LCBxaW50X2Zy b21faW50KHZhbHVlKSk7CisgICAgcWRpY3RfcHV0X2ludCh0ZXN0c19kaWN0LCBrZXksIHZhbHVl KTsKCiAgICAgb2JqID0gcWRpY3RfZ2V0KHRlc3RzX2RpY3QsIGtleSk7CiAgICAgZ19hc3NlcnQo b2JqICE9IE5VTEwpOwpAQCAtOTgsNyArOTgsNyBAQCBzdGF0aWMgdm9pZCBxZGljdF9nZXRfaW50 X3Rlc3Qodm9pZCkKICAgICBjb25zdCBjaGFyICprZXkgPSAiaW50IjsKICAgICBRRGljdCAqdGVz dHNfZGljdCA9IHFkaWN0X25ldygpOwoKLSAgICBxZGljdF9wdXQodGVzdHNfZGljdCwga2V5LCBx aW50X2Zyb21faW50KHZhbHVlKSk7CisgICAgcWRpY3RfcHV0X2ludCh0ZXN0c19kaWN0LCBrZXks IHZhbHVlKTsKCiAgICAgcmV0ID0gcWRpY3RfZ2V0X2ludCh0ZXN0c19kaWN0LCBrZXkpOwogICAg IGdfYXNzZXJ0KHJldCA9PSB2YWx1ZSk7CkBAIC0xMTMsNyArMTEzLDcgQEAgc3RhdGljIHZvaWQg cWRpY3RfZ2V0X3RyeV9pbnRfdGVzdCh2b2lkKQogICAgIGNvbnN0IGNoYXIgKmtleSA9ICJpbnQi OwogICAgIFFEaWN0ICp0ZXN0c19kaWN0ID0gcWRpY3RfbmV3KCk7CgotICAgIHFkaWN0X3B1dCh0 ZXN0c19kaWN0LCBrZXksIHFpbnRfZnJvbV9pbnQodmFsdWUpKTsKKyAgICBxZGljdF9wdXRfaW50 KHRlc3RzX2RpY3QsIGtleSwgdmFsdWUpOwoKICAgICByZXQgPSBxZGljdF9nZXRfdHJ5X2ludCh0 ZXN0c19kaWN0LCBrZXksIDApOwogICAgIGdfYXNzZXJ0KHJldCA9PSB2YWx1ZSk7CkBAIC0xMjgs NyArMTI4LDcgQEAgc3RhdGljIHZvaWQgcWRpY3RfZ2V0X3N0cl90ZXN0KHZvaWQpCiAgICAgY29u c3QgY2hhciAqc3RyID0gInN0cmluZyI7CiAgICAgUURpY3QgKnRlc3RzX2RpY3QgPSBxZGljdF9u ZXcoKTsKCi0gICAgcWRpY3RfcHV0KHRlc3RzX2RpY3QsIGtleSwgcXN0cmluZ19mcm9tX3N0cihz dHIpKTsKKyAgICBxZGljdF9wdXRfc3RyKHRlc3RzX2RpY3QsIGtleSwgc3RyKTsKCiAgICAgcCA9 IHFkaWN0X2dldF9zdHIodGVzdHNfZGljdCwga2V5KTsKICAgICBnX2Fzc2VydChwICE9IE5VTEwp OwpAQCAtMTQ0LDcgKzE0NCw3IEBAIHN0YXRpYyB2b2lkIHFkaWN0X2dldF90cnlfc3RyX3Rlc3Qo dm9pZCkKICAgICBjb25zdCBjaGFyICpzdHIgPSAic3RyaW5nIjsKICAgICBRRGljdCAqdGVzdHNf ZGljdCA9IHFkaWN0X25ldygpOwoKLSAgICBxZGljdF9wdXQodGVzdHNfZGljdCwga2V5LCBxc3Ry aW5nX2Zyb21fc3RyKHN0cikpOworICAgIHFkaWN0X3B1dF9zdHIodGVzdHNfZGljdCwga2V5LCBz dHIpOwoKICAgICBwID0gcWRpY3RfZ2V0X3RyeV9zdHIodGVzdHNfZGljdCwga2V5KTsKICAgICBn X2Fzc2VydChwICE9IE5VTEwpOwpAQCAtMTg4LDcgKzE4OCw3IEBAIHN0YXRpYyB2b2lkIHFkaWN0 X2hhc2tleV90ZXN0KHZvaWQpCiAgICAgY29uc3QgY2hhciAqa2V5ID0gInRlc3QiOwogICAgIFFE aWN0ICp0ZXN0c19kaWN0ID0gcWRpY3RfbmV3KCk7CgotICAgIHFkaWN0X3B1dCh0ZXN0c19kaWN0 LCBrZXksIHFpbnRfZnJvbV9pbnQoMCkpOworICAgIHFkaWN0X3B1dF9pbnQodGVzdHNfZGljdCwg a2V5LCAwKTsKICAgICBnX2Fzc2VydChxZGljdF9oYXNrZXkodGVzdHNfZGljdCwga2V5KSA9PSAx KTsKCiAgICAgUURFQ1JFRih0ZXN0c19kaWN0KTsKQEAgLTE5OSw3ICsxOTksNyBAQCBzdGF0aWMg dm9pZCBxZGljdF9kZWxfdGVzdCh2b2lkKQogICAgIGNvbnN0IGNoYXIgKmtleSA9ICJrZXkgdGVz dCI7CiAgICAgUURpY3QgKnRlc3RzX2RpY3QgPSBxZGljdF9uZXcoKTsKCi0gICAgcWRpY3RfcHV0 KHRlc3RzX2RpY3QsIGtleSwgcXN0cmluZ19mcm9tX3N0cigiZm9vIikpOworICAgIHFkaWN0X3B1 dF9zdHIodGVzdHNfZGljdCwga2V5LCAiZm9vIik7CiAgICAgZ19hc3NlcnQocWRpY3Rfc2l6ZSh0 ZXN0c19kaWN0KSA9PSAxKTsKCiAgICAgcWRpY3RfZGVsKHRlc3RzX2RpY3QsIGtleSk7CkBAIC0y MjYsOSArMjI2LDkgQEAgc3RhdGljIHZvaWQgcWRpY3RfaXRlcmFwaV90ZXN0KHZvaWQpCgogICAg IGdfYXNzZXJ0KHFkaWN0X2ZpcnN0KHRlc3RzX2RpY3QpID09IE5VTEwpOwoKLSAgICBxZGljdF9w dXQodGVzdHNfZGljdCwgImtleTEiLCBxaW50X2Zyb21faW50KDEpKTsKLSAgICBxZGljdF9wdXQo dGVzdHNfZGljdCwgImtleTIiLCBxaW50X2Zyb21faW50KDIpKTsKLSAgICBxZGljdF9wdXQodGVz dHNfZGljdCwgImtleTMiLCBxaW50X2Zyb21faW50KDMpKTsKKyAgICBxZGljdF9wdXRfaW50KHRl c3RzX2RpY3QsICJrZXkxIiwgMSk7CisgICAgcWRpY3RfcHV0X2ludCh0ZXN0c19kaWN0LCAia2V5 MiIsIDIpOworICAgIHFkaWN0X3B1dF9pbnQodGVzdHNfZGljdCwgImtleTMiLCAzKTsKCiAgICAg Y291bnQgPSAwOwogICAgIGZvciAoZW50ID0gcWRpY3RfZmlyc3QodGVzdHNfZGljdCk7IGVudDsg ZW50ID0gcWRpY3RfbmV4dCh0ZXN0c19kaWN0LCBlbnQpKXsKQEAgLTI5NCw4ICsyOTQsOCBAQCBz dGF0aWMgdm9pZCBxZGljdF9mbGF0dGVuX3Rlc3Qodm9pZCkKICAgICAgKiB9CiAgICAgICovCgot ICAgIHFkaWN0X3B1dChkaWN0MSwgImEiLCBxaW50X2Zyb21faW50KDApKTsKLSAgICBxZGljdF9w dXQoZGljdDEsICJiIiwgcWludF9mcm9tX2ludCgxKSk7CisgICAgcWRpY3RfcHV0X2ludChkaWN0 MSwgImEiLCAwKTsKKyAgICBxZGljdF9wdXRfaW50KGRpY3QxLCAiYiIsIDEpOwoKICAgICBxbGlz dF9hcHBlbmRfb2JqKGxpc3QxLCBRT0JKRUNUKHFpbnRfZnJvbV9pbnQoMjMpKSk7CiAgICAgcWxp c3RfYXBwZW5kX29iaihsaXN0MSwgUU9CSkVDVChxaW50X2Zyb21faW50KDY2KSkpOwpAQCAtMzAz LDExICszMDMsMTEgQEAgc3RhdGljIHZvaWQgcWRpY3RfZmxhdHRlbl90ZXN0KHZvaWQpCiAgICAg cWxpc3RfYXBwZW5kX29iaihsaXN0MiwgUU9CSkVDVChxaW50X2Zyb21faW50KDQyKSkpOwogICAg IHFsaXN0X2FwcGVuZF9vYmoobGlzdDIsIFFPQkpFQ1QobGlzdDEpKTsKCi0gICAgcWRpY3RfcHV0 KGRpY3QyLCAiYyIsIHFpbnRfZnJvbV9pbnQoMikpOwotICAgIHFkaWN0X3B1dChkaWN0MiwgImQi LCBxaW50X2Zyb21faW50KDMpKTsKLSAgICBxZGljdF9wdXRfb2JqKGRpY3QzLCAiZSIsIFFPQkpF Q1QobGlzdDIpKTsKLSAgICBxZGljdF9wdXRfb2JqKGRpY3QzLCAiZiIsIFFPQkpFQ1QoZGljdDIp KTsKLSAgICBxZGljdF9wdXQoZGljdDMsICJnIiwgcWludF9mcm9tX2ludCg0KSk7CisgICAgcWRp Y3RfcHV0X2ludChkaWN0MiwgImMiLCAyKTsKKyAgICBxZGljdF9wdXRfaW50KGRpY3QyLCAiZCIs IDMpOworICAgIHFkaWN0X3B1dChkaWN0MywgImUiLCBsaXN0Mik7CisgICAgcWRpY3RfcHV0KGRp Y3QzLCAiZiIsIGRpY3QyKTsKKyAgICBxZGljdF9wdXRfaW50KGRpY3QzLCAiZyIsIDQpOwoKICAg ICBxZGljdF9mbGF0dGVuKGRpY3QzKTsKCkBAIC0zNjksMTIgKzM2OSwxMiBAQCBzdGF0aWMgdm9p ZCBxZGljdF9hcnJheV9zcGxpdF90ZXN0KHZvaWQpCiAgICAgICogVGhpcyBleGFtcGxlIGlzIGdp dmVuIGluIHRoZSBjb21tZW50IG9mIHFkaWN0X2FycmF5X3NwbGl0KCkuCiAgICAgICovCgotICAg IHFkaWN0X3B1dCh0ZXN0X2RpY3QsICIxLngiLCBxaW50X2Zyb21faW50KDApKTsKLSAgICBxZGlj dF9wdXQodGVzdF9kaWN0LCAiNC55IiwgcWludF9mcm9tX2ludCgxKSk7Ci0gICAgcWRpY3RfcHV0 KHRlc3RfZGljdCwgIjAuYSIsIHFpbnRfZnJvbV9pbnQoNDIpKTsKLSAgICBxZGljdF9wdXQodGVz dF9kaWN0LCAiby5vIiwgcWludF9mcm9tX2ludCg3KSk7Ci0gICAgcWRpY3RfcHV0KHRlc3RfZGlj dCwgIjAuYiIsIHFpbnRfZnJvbV9pbnQoMjMpKTsKLSAgICBxZGljdF9wdXQodGVzdF9kaWN0LCAi MiIsIHFpbnRfZnJvbV9pbnQoNjYpKTsKKyAgICBxZGljdF9wdXRfaW50KHRlc3RfZGljdCwgIjEu eCIsIDApOworICAgIHFkaWN0X3B1dF9pbnQodGVzdF9kaWN0LCAiNC55IiwgMSk7CisgICAgcWRp Y3RfcHV0X2ludCh0ZXN0X2RpY3QsICIwLmEiLCA0Mik7CisgICAgcWRpY3RfcHV0X2ludCh0ZXN0 X2RpY3QsICJvLm8iLCA3KTsKKyAgICBxZGljdF9wdXRfaW50KHRlc3RfZGljdCwgIjAuYiIsIDIz KTsKKyAgICBxZGljdF9wdXRfaW50KHRlc3RfZGljdCwgIjIiLCA2Nik7CgogICAgIHFkaWN0X2Fy cmF5X3NwbGl0KHRlc3RfZGljdCwgJnRlc3RfbGlzdCk7CgpAQCAtNDQxLDkgKzQ0MSw5IEBAIHN0 YXRpYyB2b2lkIHFkaWN0X2FycmF5X3NwbGl0X3Rlc3Qodm9pZCkKCiAgICAgdGVzdF9kaWN0ID0g cWRpY3RfbmV3KCk7CgotICAgIHFkaWN0X3B1dCh0ZXN0X2RpY3QsICIwIiwgcWludF9mcm9tX2lu dCg0MikpOwotICAgIHFkaWN0X3B1dCh0ZXN0X2RpY3QsICIxIiwgcWludF9mcm9tX2ludCgyMykp OwotICAgIHFkaWN0X3B1dCh0ZXN0X2RpY3QsICIxLngiLCBxaW50X2Zyb21faW50KDg0KSk7Cisg ICAgcWRpY3RfcHV0X2ludCh0ZXN0X2RpY3QsICIwIiwgNDIpOworICAgIHFkaWN0X3B1dF9pbnQo dGVzdF9kaWN0LCAiMSIsIDIzKTsKKyAgICBxZGljdF9wdXRfaW50KHRlc3RfZGljdCwgIjEueCIs IDg0KTsKCiAgICAgcWRpY3RfYXJyYXlfc3BsaXQodGVzdF9kaWN0LCAmdGVzdF9saXN0KTsKCkBA IC00NzIsMzggKzQ3MiwzOCBAQCBzdGF0aWMgdm9pZCBxZGljdF9hcnJheV9lbnRyaWVzX3Rlc3Qo dm9pZCkKCiAgICAgZ19hc3NlcnRfY21waW50KHFkaWN0X2FycmF5X2VudHJpZXMoZGljdCwgImZv by4iKSwgPT0sIDApOwoKLSAgICBxZGljdF9wdXQoZGljdCwgImJhciIsIHFpbnRfZnJvbV9pbnQo MCkpOwotICAgIHFkaWN0X3B1dChkaWN0LCAiYmF6LjAiLCBxaW50X2Zyb21faW50KDApKTsKKyAg ICBxZGljdF9wdXRfaW50KGRpY3QsICJiYXIiLCAwKTsKKyAgICBxZGljdF9wdXRfaW50KGRpY3Qs ICJiYXouMCIsIDApOwogICAgIGdfYXNzZXJ0X2NtcGludChxZGljdF9hcnJheV9lbnRyaWVzKGRp Y3QsICJmb28uIiksID09LCAwKTsKCi0gICAgcWRpY3RfcHV0KGRpY3QsICJmb28uMSIsIHFpbnRf ZnJvbV9pbnQoMCkpOworICAgIHFkaWN0X3B1dF9pbnQoZGljdCwgImZvby4xIiwgMCk7CiAgICAg Z19hc3NlcnRfY21waW50KHFkaWN0X2FycmF5X2VudHJpZXMoZGljdCwgImZvby4iKSwgPT0sIC1F SU5WQUwpOwotICAgIHFkaWN0X3B1dChkaWN0LCAiZm9vLjAiLCBxaW50X2Zyb21faW50KDApKTsK KyAgICBxZGljdF9wdXRfaW50KGRpY3QsICJmb28uMCIsIDApOwogICAgIGdfYXNzZXJ0X2NtcGlu dChxZGljdF9hcnJheV9lbnRyaWVzKGRpY3QsICJmb28uIiksID09LCAyKTsKLSAgICBxZGljdF9w dXQoZGljdCwgImZvby5iYXIiLCBxaW50X2Zyb21faW50KDApKTsKKyAgICBxZGljdF9wdXRfaW50 KGRpY3QsICJmb28uYmFyIiwgMCk7CiAgICAgZ19hc3NlcnRfY21waW50KHFkaWN0X2FycmF5X2Vu dHJpZXMoZGljdCwgImZvby4iKSwgPT0sIC1FSU5WQUwpOwogICAgIHFkaWN0X2RlbChkaWN0LCAi Zm9vLmJhciIpOwoKLSAgICBxZGljdF9wdXQoZGljdCwgImZvby4yLmEiLCBxaW50X2Zyb21faW50 KDApKTsKLSAgICBxZGljdF9wdXQoZGljdCwgImZvby4yLmIiLCBxaW50X2Zyb21faW50KDApKTsK LSAgICBxZGljdF9wdXQoZGljdCwgImZvby4yLmMiLCBxaW50X2Zyb21faW50KDApKTsKKyAgICBx ZGljdF9wdXRfaW50KGRpY3QsICJmb28uMi5hIiwgMCk7CisgICAgcWRpY3RfcHV0X2ludChkaWN0 LCAiZm9vLjIuYiIsIDApOworICAgIHFkaWN0X3B1dF9pbnQoZGljdCwgImZvby4yLmMiLCAwKTsK ICAgICBnX2Fzc2VydF9jbXBpbnQocWRpY3RfYXJyYXlfZW50cmllcyhkaWN0LCAiZm9vLiIpLCA9 PSwgMyk7CiAgICAgZ19hc3NlcnRfY21waW50KHFkaWN0X2FycmF5X2VudHJpZXMoZGljdCwgIiIp LCA9PSwgLUVJTlZBTCk7CgogICAgIFFERUNSRUYoZGljdCk7CgogICAgIGRpY3QgPSBxZGljdF9u ZXcoKTsKLSAgICBxZGljdF9wdXQoZGljdCwgIjEiLCBxaW50X2Zyb21faW50KDApKTsKKyAgICBx ZGljdF9wdXRfaW50KGRpY3QsICIxIiwgMCk7CiAgICAgZ19hc3NlcnRfY21waW50KHFkaWN0X2Fy cmF5X2VudHJpZXMoZGljdCwgIiIpLCA9PSwgLUVJTlZBTCk7Ci0gICAgcWRpY3RfcHV0KGRpY3Qs ICIwIiwgcWludF9mcm9tX2ludCgwKSk7CisgICAgcWRpY3RfcHV0X2ludChkaWN0LCAiMCIsIDAp OwogICAgIGdfYXNzZXJ0X2NtcGludChxZGljdF9hcnJheV9lbnRyaWVzKGRpY3QsICIiKSwgPT0s IDIpOwotICAgIHFkaWN0X3B1dChkaWN0LCAiYmFyIiwgcWludF9mcm9tX2ludCgwKSk7CisgICAg cWRpY3RfcHV0X2ludChkaWN0LCAiYmFyIiwgMCk7CiAgICAgZ19hc3NlcnRfY21waW50KHFkaWN0 X2FycmF5X2VudHJpZXMoZGljdCwgIiIpLCA9PSwgLUVJTlZBTCk7CiAgICAgcWRpY3RfZGVsKGRp Y3QsICJiYXIiKTsKCi0gICAgcWRpY3RfcHV0KGRpY3QsICIyLmEiLCBxaW50X2Zyb21faW50KDAp KTsKLSAgICBxZGljdF9wdXQoZGljdCwgIjIuYiIsIHFpbnRfZnJvbV9pbnQoMCkpOwotICAgIHFk aWN0X3B1dChkaWN0LCAiMi5jIiwgcWludF9mcm9tX2ludCgwKSk7CisgICAgcWRpY3RfcHV0X2lu dChkaWN0LCAiMi5hIiwgMCk7CisgICAgcWRpY3RfcHV0X2ludChkaWN0LCAiMi5iIiwgMCk7Cisg ICAgcWRpY3RfcHV0X2ludChkaWN0LCAiMi5jIiwgMCk7CiAgICAgZ19hc3NlcnRfY21waW50KHFk aWN0X2FycmF5X2VudHJpZXMoZGljdCwgIiIpLCA9PSwgMyk7CgogICAgIFFERUNSRUYoZGljdCk7 CkBAIC01MjksNyArNTI5LDcgQEAgc3RhdGljIHZvaWQgcWRpY3Rfam9pbl90ZXN0KHZvaWQpCgog ICAgICAgICAvKiBGaXJzdCBpdGVyYXRpb246IFRlc3QgbW92ZW1lbnQgKi8KICAgICAgICAgLyog U2Vjb25kIGl0ZXJhdGlvbjogVGVzdCBlbXB0eSBzb3VyY2UgYW5kIG5vbi1lbXB0eSBkZXN0aW5h dGlvbiAqLwotICAgICAgICBxZGljdF9wdXQoZGljdDIsICJmb28iLCBxaW50X2Zyb21faW50KDQy KSk7CisgICAgICAgIHFkaWN0X3B1dF9pbnQoZGljdDIsICJmb28iLCA0Mik7CgogICAgICAgICBm b3IgKGkgPSAwOyBpIDwgMjsgaSsrKSB7CiAgICAgICAgICAgICBxZGljdF9qb2luKGRpY3QxLCBk aWN0Miwgb3ZlcndyaXRlKTsKQEAgLTU0MSw3ICs1NDEsNyBAQCBzdGF0aWMgdm9pZCBxZGljdF9q b2luX3Rlc3Qodm9pZCkKICAgICAgICAgfQoKICAgICAgICAgLyogVGVzdCBub24tZW1wdHkgc291 cmNlIGFuZCBkZXN0aW5hdGlvbiB3aXRob3V0IGNvbmZsaWN0ICovCi0gICAgICAgIHFkaWN0X3B1 dChkaWN0MiwgImJhciIsIHFpbnRfZnJvbV9pbnQoMjMpKTsKKyAgICAgICAgcWRpY3RfcHV0X2lu dChkaWN0MiwgImJhciIsIDIzKTsKCiAgICAgICAgIHFkaWN0X2pvaW4oZGljdDEsIGRpY3QyLCBv dmVyd3JpdGUpOwoKQEAgLTU1Miw3ICs1NTIsNyBAQCBzdGF0aWMgdm9pZCBxZGljdF9qb2luX3Rl c3Qodm9pZCkKICAgICAgICAgZ19hc3NlcnQocWRpY3RfZ2V0X2ludChkaWN0MSwgImJhciIpID09 IDIzKTsKCiAgICAgICAgIC8qIFRlc3QgY29uZmxpY3QgKi8KLSAgICAgICAgcWRpY3RfcHV0KGRp Y3QyLCAiZm9vIiwgcWludF9mcm9tX2ludCg4NCkpOworICAgICAgICBxZGljdF9wdXRfaW50KGRp Y3QyLCAiZm9vIiwgODQpOwoKICAgICAgICAgcWRpY3Rfam9pbihkaWN0MSwgZGljdDIsIG92ZXJ3 cml0ZSk7CgpAQCAtNTk1LDE1ICs1OTUsMTUgQEAgc3RhdGljIHZvaWQgcWRpY3RfY3J1bXBsZV90 ZXN0X3JlY3Vyc2l2ZSh2b2lkKQogICAgIFFMaXN0ICpydWxlczsKCiAgICAgc3JjID0gcWRpY3Rf bmV3KCk7Ci0gICAgcWRpY3RfcHV0KHNyYywgInZuYy5saXN0ZW4uYWRkciIsIHFzdHJpbmdfZnJv bV9zdHIoIjEyNy4wLjAuMSIpKTsKLSAgICBxZGljdF9wdXQoc3JjLCAidm5jLmxpc3Rlbi5wb3J0 IiwgcXN0cmluZ19mcm9tX3N0cigiNTkwMSIpKTsKLSAgICBxZGljdF9wdXQoc3JjLCAidm5jLmFj bC5ydWxlcy4wLm1hdGNoIiwgcXN0cmluZ19mcm9tX3N0cigiZnJlZCIpKTsKLSAgICBxZGljdF9w dXQoc3JjLCAidm5jLmFjbC5ydWxlcy4wLnBvbGljeSIsIHFzdHJpbmdfZnJvbV9zdHIoImFsbG93 IikpOwotICAgIHFkaWN0X3B1dChzcmMsICJ2bmMuYWNsLnJ1bGVzLjEubWF0Y2giLCBxc3RyaW5n X2Zyb21fc3RyKCJib2IiKSk7Ci0gICAgcWRpY3RfcHV0KHNyYywgInZuYy5hY2wucnVsZXMuMS5w b2xpY3kiLCBxc3RyaW5nX2Zyb21fc3RyKCJkZW55IikpOwotICAgIHFkaWN0X3B1dChzcmMsICJ2 bmMuYWNsLmRlZmF1bHQiLCBxc3RyaW5nX2Zyb21fc3RyKCJkZW55IikpOwotICAgIHFkaWN0X3B1 dChzcmMsICJ2bmMuYWNsLi5uYW1lIiwgcXN0cmluZ19mcm9tX3N0cigiYWNsMCIpKTsKLSAgICBx ZGljdF9wdXQoc3JjLCAidm5jLmFjbC5ydWxlLi5uYW1lIiwgcXN0cmluZ19mcm9tX3N0cigiYWNs MCIpKTsKKyAgICBxZGljdF9wdXRfc3RyKHNyYywgInZuYy5saXN0ZW4uYWRkciIsICIxMjcuMC4w LjEiKTsKKyAgICBxZGljdF9wdXRfc3RyKHNyYywgInZuYy5saXN0ZW4ucG9ydCIsICI1OTAxIik7 CisgICAgcWRpY3RfcHV0X3N0cihzcmMsICJ2bmMuYWNsLnJ1bGVzLjAubWF0Y2giLCAiZnJlZCIp OworICAgIHFkaWN0X3B1dF9zdHIoc3JjLCAidm5jLmFjbC5ydWxlcy4wLnBvbGljeSIsICJhbGxv dyIpOworICAgIHFkaWN0X3B1dF9zdHIoc3JjLCAidm5jLmFjbC5ydWxlcy4xLm1hdGNoIiwgImJv YiIpOworICAgIHFkaWN0X3B1dF9zdHIoc3JjLCAidm5jLmFjbC5ydWxlcy4xLnBvbGljeSIsICJk ZW55Iik7CisgICAgcWRpY3RfcHV0X3N0cihzcmMsICJ2bmMuYWNsLmRlZmF1bHQiLCAiZGVueSIp OworICAgIHFkaWN0X3B1dF9zdHIoc3JjLCAidm5jLmFjbC4ubmFtZSIsICJhY2wwIik7CisgICAg cWRpY3RfcHV0X3N0cihzcmMsICJ2bmMuYWNsLnJ1bGUuLm5hbWUiLCAiYWNsMCIpOwoKICAgICBy ZXMgPSBxZGljdF9jcnVtcGxlKHNyYywgJmVycm9yX2Fib3J0KTsKCkBAIC02NzYsOCArNjc2LDgg QEAgc3RhdGljIHZvaWQgcWRpY3RfY3J1bXBsZV90ZXN0X2JhZF9pbnB1dHModm9pZCkKCiAgICAg c3JjID0gcWRpY3RfbmV3KCk7CiAgICAgLyogcnVsZS4wIGNhbid0IGJlIGJvdGggYSBzdHJpbmcg YW5kIGEgZGljdCAqLwotICAgIHFkaWN0X3B1dChzcmMsICJydWxlLjAiLCBxc3RyaW5nX2Zyb21f c3RyKCJmcmVkIikpOwotICAgIHFkaWN0X3B1dChzcmMsICJydWxlLjAucG9saWN5IiwgcXN0cmlu Z19mcm9tX3N0cigiYWxsb3ciKSk7CisgICAgcWRpY3RfcHV0X3N0cihzcmMsICJydWxlLjAiLCAi ZnJlZCIpOworICAgIHFkaWN0X3B1dF9zdHIoc3JjLCAicnVsZS4wLnBvbGljeSIsICJhbGxvdyIp OwoKICAgICBnX2Fzc2VydChxZGljdF9jcnVtcGxlKHNyYywgJmVycm9yKSA9PSBOVUxMKTsKICAg ICBnX2Fzc2VydChlcnJvciAhPSBOVUxMKTsKQEAgLTY4Nyw4ICs2ODcsOCBAQCBzdGF0aWMgdm9p ZCBxZGljdF9jcnVtcGxlX3Rlc3RfYmFkX2lucHV0cyh2b2lkKQoKICAgICBzcmMgPSBxZGljdF9u ZXcoKTsKICAgICAvKiBydWxlIGNhbid0IGJlIGJvdGggYSBsaXN0IGFuZCBhIGRpY3QgKi8KLSAg ICBxZGljdF9wdXQoc3JjLCAicnVsZS4wIiwgcXN0cmluZ19mcm9tX3N0cigiZnJlZCIpKTsKLSAg ICBxZGljdF9wdXQoc3JjLCAicnVsZS5hIiwgcXN0cmluZ19mcm9tX3N0cigiYWxsb3ciKSk7Cisg ICAgcWRpY3RfcHV0X3N0cihzcmMsICJydWxlLjAiLCAiZnJlZCIpOworICAgIHFkaWN0X3B1dF9z dHIoc3JjLCAicnVsZS5hIiwgImFsbG93Iik7CgogICAgIGdfYXNzZXJ0KHFkaWN0X2NydW1wbGUo c3JjLCAmZXJyb3IpID09IE5VTEwpOwogICAgIGdfYXNzZXJ0KGVycm9yICE9IE5VTEwpOwpAQCAt Njk5LDcgKzY5OSw3IEBAIHN0YXRpYyB2b2lkIHFkaWN0X2NydW1wbGVfdGVzdF9iYWRfaW5wdXRz KHZvaWQpCiAgICAgc3JjID0gcWRpY3RfbmV3KCk7CiAgICAgLyogVGhlIGlucHV0IHNob3VsZCBi ZSBmbGF0LCBpZSBubyBkaWN0cyBvciBsaXN0cyAqLwogICAgIHFkaWN0X3B1dChzcmMsICJydWxl LmEiLCBxZGljdF9uZXcoKSk7Ci0gICAgcWRpY3RfcHV0KHNyYywgInJ1bGUuYiIsIHFzdHJpbmdf ZnJvbV9zdHIoImFsbG93IikpOworICAgIHFkaWN0X3B1dF9zdHIoc3JjLCAicnVsZS5iIiwgImFs bG93Iik7CgogICAgIGdfYXNzZXJ0KHFkaWN0X2NydW1wbGUoc3JjLCAmZXJyb3IpID09IE5VTEwp OwogICAgIGdfYXNzZXJ0KGVycm9yICE9IE5VTEwpOwpAQCAtNzA5LDggKzcwOSw4IEBAIHN0YXRp YyB2b2lkIHFkaWN0X2NydW1wbGVfdGVzdF9iYWRfaW5wdXRzKHZvaWQpCgogICAgIHNyYyA9IHFk aWN0X25ldygpOwogICAgIC8qIExpc3QgaW5kZXhlcyBtdXN0IG5vdCBoYXZlIGdhcHMgKi8KLSAg ICBxZGljdF9wdXQoc3JjLCAicnVsZS4wIiwgcXN0cmluZ19mcm9tX3N0cigiZGVueSIpKTsKLSAg ICBxZGljdF9wdXQoc3JjLCAicnVsZS4zIiwgcXN0cmluZ19mcm9tX3N0cigiYWxsb3ciKSk7Cisg ICAgcWRpY3RfcHV0X3N0cihzcmMsICJydWxlLjAiLCAiZGVueSIpOworICAgIHFkaWN0X3B1dF9z dHIoc3JjLCAicnVsZS4zIiwgImFsbG93Iik7CgogICAgIGdfYXNzZXJ0KHFkaWN0X2NydW1wbGUo c3JjLCAmZXJyb3IpID09IE5VTEwpOwogICAgIGdfYXNzZXJ0KGVycm9yICE9IE5VTEwpOwpAQCAt NzIwLDggKzcyMCw4IEBAIHN0YXRpYyB2b2lkIHFkaWN0X2NydW1wbGVfdGVzdF9iYWRfaW5wdXRz KHZvaWQpCgogICAgIHNyYyA9IHFkaWN0X25ldygpOwogICAgIC8qIExpc3QgaW5kZXhlcyBtdXN0 IGJlIGluICV6dSBmb3JtYXQgKi8KLSAgICBxZGljdF9wdXQoc3JjLCAicnVsZS4wIiwgcXN0cmlu Z19mcm9tX3N0cigiZGVueSIpKTsKLSAgICBxZGljdF9wdXQoc3JjLCAicnVsZS4rMSIsIHFzdHJp bmdfZnJvbV9zdHIoImFsbG93IikpOworICAgIHFkaWN0X3B1dF9zdHIoc3JjLCAicnVsZS4wIiwg ImRlbnkiKTsKKyAgICBxZGljdF9wdXRfc3RyKHNyYywgInJ1bGUuKzEiLCAiYWxsb3ciKTsKCiAg ICAgZ19hc3NlcnQocWRpY3RfY3J1bXBsZShzcmMsICZlcnJvcikgPT0gTlVMTCk7CiAgICAgZ19h c3NlcnQoZXJyb3IgIT0gTlVMTCk7CkBAIC03NDAsOCArNzQwLDggQEAgc3RhdGljIHZvaWQgcWRp Y3RfcHV0X2V4aXN0c190ZXN0KHZvaWQpCiAgICAgY29uc3QgY2hhciAqa2V5ID0gImV4aXN0cyI7 CiAgICAgUURpY3QgKnRlc3RzX2RpY3QgPSBxZGljdF9uZXcoKTsKCi0gICAgcWRpY3RfcHV0KHRl c3RzX2RpY3QsIGtleSwgcWludF9mcm9tX2ludCgxKSk7Ci0gICAgcWRpY3RfcHV0KHRlc3RzX2Rp Y3QsIGtleSwgcWludF9mcm9tX2ludCgyKSk7CisgICAgcWRpY3RfcHV0X2ludCh0ZXN0c19kaWN0 LCBrZXksIDEpOworICAgIHFkaWN0X3B1dF9pbnQodGVzdHNfZGljdCwga2V5LCAyKTsKCiAgICAg dmFsdWUgPSBxZGljdF9nZXRfaW50KHRlc3RzX2RpY3QsIGtleSk7CiAgICAgZ19hc3NlcnQodmFs dWUgPT0gMik7CmRpZmYgLS1naXQgYS90ZXN0cy90ZXN0LXFtcC1jb21tYW5kcy5jIGIvdGVzdHMv dGVzdC1xbXAtY29tbWFuZHMuYwppbmRleCBmZjk0NDgxLi42NjBhOWU4IDEwMDY0NAotLS0gYS90 ZXN0cy90ZXN0LXFtcC1jb21tYW5kcy5jCisrKyBiL3Rlc3RzL3Rlc3QtcW1wLWNvbW1hbmRzLmMK QEAgLTkyLDcgKzkyLDcgQEAgc3RhdGljIHZvaWQgdGVzdF9kaXNwYXRjaF9jbWQodm9pZCkKICAg ICBRRGljdCAqcmVxID0gcWRpY3RfbmV3KCk7CiAgICAgUU9iamVjdCAqcmVzcDsKCi0gICAgcWRp Y3RfcHV0X29iaihyZXEsICJleGVjdXRlIiwgUU9CSkVDVChxc3RyaW5nX2Zyb21fc3RyKCJ1c2Vy X2RlZl9jbWQiKSkpOworICAgIHFkaWN0X3B1dF9zdHIocmVxLCAiZXhlY3V0ZSIsICJ1c2VyX2Rl Zl9jbWQiKTsKCiAgICAgcmVzcCA9IHFtcF9kaXNwYXRjaChRT0JKRUNUKHJlcSkpOwogICAgIGFz c2VydChyZXNwICE9IE5VTEwpOwpAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRpYyB2b2lkIHRlc3Rf ZGlzcGF0Y2hfY21kX2ZhaWx1cmUodm9pZCkKICAgICBRRGljdCAqYXJncyA9IHFkaWN0X25ldygp OwogICAgIFFPYmplY3QgKnJlc3A7CgotICAgIHFkaWN0X3B1dF9vYmoocmVxLCAiZXhlY3V0ZSIs IFFPQkpFQ1QocXN0cmluZ19mcm9tX3N0cigidXNlcl9kZWZfY21kMiIpKSk7CisgICAgcWRpY3Rf cHV0X3N0cihyZXEsICJleGVjdXRlIiwgInVzZXJfZGVmX2NtZDIiKTsKCiAgICAgcmVzcCA9IHFt cF9kaXNwYXRjaChRT0JKRUNUKHJlcSkpOwogICAgIGFzc2VydChyZXNwICE9IE5VTEwpOwpAQCAt MTIwLDEwICsxMjAsMTAgQEAgc3RhdGljIHZvaWQgdGVzdF9kaXNwYXRjaF9jbWRfZmFpbHVyZSh2 b2lkKQoKICAgICAvKiBjaGVjayB0aGF0IHdpdGggZXh0cmEgYXJndW1lbnRzIGl0IHRocm93cyBh biBlcnJvciAqLwogICAgIHJlcSA9IHFkaWN0X25ldygpOwotICAgIHFkaWN0X3B1dChhcmdzLCAi YSIsIHFpbnRfZnJvbV9pbnQoNjYpKTsKKyAgICBxZGljdF9wdXRfaW50KGFyZ3MsICJhIiwgNjYp OwogICAgIHFkaWN0X3B1dChyZXEsICJhcmd1bWVudHMiLCBhcmdzKTsKCi0gICAgcWRpY3RfcHV0 X29iaihyZXEsICJleGVjdXRlIiwgUU9CSkVDVChxc3RyaW5nX2Zyb21fc3RyKCJ1c2VyX2RlZl9j bWQiKSkpOworICAgIHFkaWN0X3B1dF9zdHIocmVxLCAiZXhlY3V0ZSIsICJ1c2VyX2RlZl9jbWQi KTsKCiAgICAgcmVzcCA9IHFtcF9kaXNwYXRjaChRT0JKRUNUKHJlcSkpOwogICAgIGFzc2VydChy ZXNwICE9IE5VTEwpOwpAQCAtMTYyLDE0ICsxNjIsMTQgQEAgc3RhdGljIHZvaWQgdGVzdF9kaXNw YXRjaF9jbWRfaW8odm9pZCkKICAgICBRRGljdCAqcmV0X2RpY3RfZGljdDIsICpyZXRfZGljdF9k aWN0Ml91c2VyZGVmOwogICAgIFFJbnQgKnJldDM7CgotICAgIHFkaWN0X3B1dF9vYmoodWQxYSwg ImludGVnZXIiLCBRT0JKRUNUKHFpbnRfZnJvbV9pbnQoNDIpKSk7Ci0gICAgcWRpY3RfcHV0X29i aih1ZDFhLCAic3RyaW5nIiwgUU9CSkVDVChxc3RyaW5nX2Zyb21fc3RyKCJoZWxsbyIpKSk7Ci0g ICAgcWRpY3RfcHV0X29iaih1ZDFiLCAiaW50ZWdlciIsIFFPQkpFQ1QocWludF9mcm9tX2ludCg0 MjIpKSk7Ci0gICAgcWRpY3RfcHV0X29iaih1ZDFiLCAic3RyaW5nIiwgUU9CSkVDVChxc3RyaW5n X2Zyb21fc3RyKCJoZWxsbzIiKSkpOwotICAgIHFkaWN0X3B1dF9vYmooYXJncywgInVkMWEiLCBR T0JKRUNUKHVkMWEpKTsKLSAgICBxZGljdF9wdXRfb2JqKGFyZ3MsICJ1ZDFiIiwgUU9CSkVDVCh1 ZDFiKSk7Ci0gICAgcWRpY3RfcHV0X29iaihyZXEsICJhcmd1bWVudHMiLCBRT0JKRUNUKGFyZ3Mp KTsKLSAgICBxZGljdF9wdXRfb2JqKHJlcSwgImV4ZWN1dGUiLCBRT0JKRUNUKHFzdHJpbmdfZnJv bV9zdHIoInVzZXJfZGVmX2NtZDIiKSkpOworICAgIHFkaWN0X3B1dF9pbnQodWQxYSwgImludGVn ZXIiLCA0Mik7CisgICAgcWRpY3RfcHV0X3N0cih1ZDFhLCAic3RyaW5nIiwgImhlbGxvIik7Cisg ICAgcWRpY3RfcHV0X2ludCh1ZDFiLCAiaW50ZWdlciIsIDQyMik7CisgICAgcWRpY3RfcHV0X3N0 cih1ZDFiLCAic3RyaW5nIiwgImhlbGxvMiIpOworICAgIHFkaWN0X3B1dChhcmdzLCAidWQxYSIs IHVkMWEpOworICAgIHFkaWN0X3B1dChhcmdzLCAidWQxYiIsIHVkMWIpOworICAgIHFkaWN0X3B1 dChyZXEsICJhcmd1bWVudHMiLCBhcmdzKTsKKyAgICBxZGljdF9wdXRfc3RyKHJlcSwgImV4ZWN1 dGUiLCAidXNlcl9kZWZfY21kMiIpOwoKICAgICByZXQgPSBxb2JqZWN0X3RvX3FkaWN0KHRlc3Rf cW1wX2Rpc3BhdGNoKHJlcSkpOwoKQEAgLTE4OCw5ICsxODgsOSBAQCBzdGF0aWMgdm9pZCB0ZXN0 X2Rpc3BhdGNoX2NtZF9pbyh2b2lkKQogICAgIGFzc2VydCghc3RyY21wKHFkaWN0X2dldF9zdHIo cmV0X2RpY3RfZGljdDIsICJzdHJpbmciKSwgImJsYWg0IikpOwogICAgIFFERUNSRUYocmV0KTsK Ci0gICAgcWRpY3RfcHV0KGFyZ3MzLCAiYSIsIHFpbnRfZnJvbV9pbnQoNjYpKTsKKyAgICBxZGlj dF9wdXRfaW50KGFyZ3MzLCAiYSIsIDY2KTsKICAgICBxZGljdF9wdXQocmVxLCAiYXJndW1lbnRz IiwgYXJnczMpOwotICAgIHFkaWN0X3B1dChyZXEsICJleGVjdXRlIiwgcXN0cmluZ19mcm9tX3N0 cigiZ3Vlc3QtZ2V0LXRpbWUiKSk7CisgICAgcWRpY3RfcHV0X3N0cihyZXEsICJleGVjdXRlIiwg Imd1ZXN0LWdldC10aW1lIik7CgogICAgIHJldDMgPSBxb2JqZWN0X3RvX3FpbnQodGVzdF9xbXBf ZGlzcGF0Y2gocmVxKSk7CiAgICAgYXNzZXJ0KHFpbnRfZ2V0X2ludChyZXQzKSA9PSA2Nik7CkBA IC0yNDIsNyArMjQyLDcgQEAgc3RhdGljIHZvaWQgdGVzdF9kZWFsbG9jX3BhcnRpYWwodm9pZCkK ICAgICAgICAgVmlzaXRvciAqdjsKCiAgICAgICAgIHVkMl9kaWN0ID0gcWRpY3RfbmV3KCk7Ci0g ICAgICAgIHFkaWN0X3B1dF9vYmoodWQyX2RpY3QsICJzdHJpbmcwIiwgUU9CSkVDVChxc3RyaW5n X2Zyb21fc3RyKHRleHQpKSk7CisgICAgICAgIHFkaWN0X3B1dF9zdHIodWQyX2RpY3QsICJzdHJp bmcwIiwgdGV4dCk7CgogICAgICAgICB2ID0gcW9iamVjdF9pbnB1dF92aXNpdG9yX25ldyhRT0JK RUNUKHVkMl9kaWN0KSwgdHJ1ZSk7CiAgICAgICAgIHZpc2l0X3R5cGVfVXNlckRlZlR3byh2LCBO VUxMLCAmdWQyLCAmZXJyKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3QtcW1wLWV2ZW50LmMgYi90 ZXN0cy90ZXN0LXFtcC1ldmVudC5jCmluZGV4IDYzM2RjODcuLmNmNTgxMDQgMTAwNjQ0Ci0tLSBh L3Rlc3RzL3Rlc3QtcW1wLWV2ZW50LmMKKysrIGIvdGVzdHMvdGVzdC1xbXAtZXZlbnQuYwpAQCAt MTU5LDcgKzE1OSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfZXZlbnRfYShUZXN0RXZlbnREYXRhICpk YXRhLAogewogICAgIFFEaWN0ICpkOwogICAgIGQgPSBkYXRhLT5leHBlY3Q7Ci0gICAgcWRpY3Rf cHV0KGQsICJldmVudCIsIHFzdHJpbmdfZnJvbV9zdHIoIkVWRU5UX0EiKSk7CisgICAgcWRpY3Rf cHV0X3N0cihkLCAiZXZlbnQiLCAiRVZFTlRfQSIpOwogICAgIHFhcGlfZXZlbnRfc2VuZF9ldmVu dF9hKCZlcnJvcl9hYm9ydCk7CiB9CgpAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRpYyB2b2lkIHRl c3RfZXZlbnRfYihUZXN0RXZlbnREYXRhICpkYXRhLAogewogICAgIFFEaWN0ICpkOwogICAgIGQg PSBkYXRhLT5leHBlY3Q7Ci0gICAgcWRpY3RfcHV0KGQsICJldmVudCIsIHFzdHJpbmdfZnJvbV9z dHIoIkVWRU5UX0IiKSk7CisgICAgcWRpY3RfcHV0X3N0cihkLCAiZXZlbnQiLCAiRVZFTlRfQiIp OwogICAgIHFhcGlfZXZlbnRfc2VuZF9ldmVudF9iKCZlcnJvcl9hYm9ydCk7CiB9CgpAQCAtMTgz LDE2ICsxODMsMTYgQEAgc3RhdGljIHZvaWQgdGVzdF9ldmVudF9jKFRlc3RFdmVudERhdGEgKmRh dGEsCiAgICAgYi5oYXNfZW51bTEgPSBmYWxzZTsKCiAgICAgZF9iID0gcWRpY3RfbmV3KCk7Ci0g ICAgcWRpY3RfcHV0KGRfYiwgImludGVnZXIiLCBxaW50X2Zyb21faW50KDIpKTsKLSAgICBxZGlj dF9wdXQoZF9iLCAic3RyaW5nIiwgcXN0cmluZ19mcm9tX3N0cigidGVzdDEiKSk7CisgICAgcWRp Y3RfcHV0X2ludChkX2IsICJpbnRlZ2VyIiwgMik7CisgICAgcWRpY3RfcHV0X3N0cihkX2IsICJz dHJpbmciLCAidGVzdDEiKTsKCiAgICAgZF9kYXRhID0gcWRpY3RfbmV3KCk7Ci0gICAgcWRpY3Rf cHV0KGRfZGF0YSwgImEiLCBxaW50X2Zyb21faW50KDEpKTsKKyAgICBxZGljdF9wdXRfaW50KGRf ZGF0YSwgImEiLCAxKTsKICAgICBxZGljdF9wdXQoZF9kYXRhLCAiYiIsIGRfYik7Ci0gICAgcWRp Y3RfcHV0KGRfZGF0YSwgImMiLCBxc3RyaW5nX2Zyb21fc3RyKCJ0ZXN0MiIpKTsKKyAgICBxZGlj dF9wdXRfc3RyKGRfZGF0YSwgImMiLCAidGVzdDIiKTsKCiAgICAgZCA9IGRhdGEtPmV4cGVjdDsK LSAgICBxZGljdF9wdXQoZCwgImV2ZW50IiwgcXN0cmluZ19mcm9tX3N0cigiRVZFTlRfQyIpKTsK KyAgICBxZGljdF9wdXRfc3RyKGQsICJldmVudCIsICJFVkVOVF9DIik7CiAgICAgcWRpY3RfcHV0 KGQsICJkYXRhIiwgZF9kYXRhKTsKCiAgICAgcWFwaV9ldmVudF9zZW5kX2V2ZW50X2ModHJ1ZSwg MSwgdHJ1ZSwgJmIsICJ0ZXN0MiIsICZlcnJvcl9hYm9ydCk7CkBAIC0yMTksMjIgKzIxOSwyMiBA QCBzdGF0aWMgdm9pZCB0ZXN0X2V2ZW50X2QoVGVzdEV2ZW50RGF0YSAqZGF0YSwKICAgICBhLmVu dW0yID0gRU5VTV9PTkVfVkFMVUUyOwoKICAgICBkX3N0cnVjdDEgPSBxZGljdF9uZXcoKTsKLSAg ICBxZGljdF9wdXQoZF9zdHJ1Y3QxLCAiaW50ZWdlciIsIHFpbnRfZnJvbV9pbnQoMikpOwotICAg IHFkaWN0X3B1dChkX3N0cnVjdDEsICJzdHJpbmciLCBxc3RyaW5nX2Zyb21fc3RyKCJ0ZXN0MSIp KTsKLSAgICBxZGljdF9wdXQoZF9zdHJ1Y3QxLCAiZW51bTEiLCBxc3RyaW5nX2Zyb21fc3RyKCJ2 YWx1ZTEiKSk7CisgICAgcWRpY3RfcHV0X2ludChkX3N0cnVjdDEsICJpbnRlZ2VyIiwgMik7Cisg ICAgcWRpY3RfcHV0X3N0cihkX3N0cnVjdDEsICJzdHJpbmciLCAidGVzdDEiKTsKKyAgICBxZGlj dF9wdXRfc3RyKGRfc3RydWN0MSwgImVudW0xIiwgInZhbHVlMSIpOwoKICAgICBkX2EgPSBxZGlj dF9uZXcoKTsKICAgICBxZGljdF9wdXQoZF9hLCAic3RydWN0MSIsIGRfc3RydWN0MSk7Ci0gICAg cWRpY3RfcHV0KGRfYSwgInN0cmluZyIsIHFzdHJpbmdfZnJvbV9zdHIoInRlc3QyIikpOwotICAg IHFkaWN0X3B1dChkX2EsICJlbnVtMiIsIHFzdHJpbmdfZnJvbV9zdHIoInZhbHVlMiIpKTsKKyAg ICBxZGljdF9wdXRfc3RyKGRfYSwgInN0cmluZyIsICJ0ZXN0MiIpOworICAgIHFkaWN0X3B1dF9z dHIoZF9hLCAiZW51bTIiLCAidmFsdWUyIik7CgogICAgIGRfZGF0YSA9IHFkaWN0X25ldygpOwog ICAgIHFkaWN0X3B1dChkX2RhdGEsICJhIiwgZF9hKTsKLSAgICBxZGljdF9wdXQoZF9kYXRhLCAi YiIsIHFzdHJpbmdfZnJvbV9zdHIoInRlc3QzIikpOwotICAgIHFkaWN0X3B1dChkX2RhdGEsICJl bnVtMyIsIHFzdHJpbmdfZnJvbV9zdHIoInZhbHVlMyIpKTsKKyAgICBxZGljdF9wdXRfc3RyKGRf ZGF0YSwgImIiLCAidGVzdDMiKTsKKyAgICBxZGljdF9wdXRfc3RyKGRfZGF0YSwgImVudW0zIiwg InZhbHVlMyIpOwoKICAgICBkID0gZGF0YS0+ZXhwZWN0OwotICAgIHFkaWN0X3B1dChkLCAiZXZl bnQiLCBxc3RyaW5nX2Zyb21fc3RyKCJFVkVOVF9EIikpOworICAgIHFkaWN0X3B1dF9zdHIoZCwg ImV2ZW50IiwgIkVWRU5UX0QiKTsKICAgICBxZGljdF9wdXQoZCwgImRhdGEiLCBkX2RhdGEpOwoK ICAgICBxYXBpX2V2ZW50X3NlbmRfZXZlbnRfZCgmYSwgInRlc3QzIiwgZmFsc2UsIE5VTEwsIHRy dWUsIEVOVU1fT05FX1ZBTFVFMywKZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3QtcW9iamVjdC1vdXRw dXQtdmlzaXRvci5jIGIvdGVzdHMvdGVzdC1xb2JqZWN0LW91dHB1dC12aXNpdG9yLmMKaW5kZXgg NGUyZDc5Yy4uMjJkMTQ4YSAxMDA2NDQKLS0tIGEvdGVzdHMvdGVzdC1xb2JqZWN0LW91dHB1dC12 aXNpdG9yLmMKKysrIGIvdGVzdHMvdGVzdC1xb2JqZWN0LW91dHB1dC12aXNpdG9yLmMKQEAgLTM1 Niw5ICszNTYsOSBAQCBzdGF0aWMgdm9pZCB0ZXN0X3Zpc2l0b3Jfb3V0X2FueShUZXN0T3V0cHV0 VmlzaXRvckRhdGEgKmRhdGEsCgogICAgIHZpc2l0b3JfcmVzZXQoZGF0YSk7CiAgICAgcWRpY3Qg PSBxZGljdF9uZXcoKTsKLSAgICBxZGljdF9wdXQocWRpY3QsICJpbnRlZ2VyIiwgcWludF9mcm9t X2ludCgtNDIpKTsKLSAgICBxZGljdF9wdXQocWRpY3QsICJib29sZWFuIiwgcWJvb2xfZnJvbV9i b29sKHRydWUpKTsKLSAgICBxZGljdF9wdXQocWRpY3QsICJzdHJpbmciLCBxc3RyaW5nX2Zyb21f c3RyKCJmb28iKSk7CisgICAgcWRpY3RfcHV0X2ludChxZGljdCwgImludGVnZXIiLCAtNDIpOwor ICAgIHFkaWN0X3B1dF9ib29sKHFkaWN0LCAiYm9vbGVhbiIsIHRydWUpOworICAgIHFkaWN0X3B1 dF9zdHIocWRpY3QsICJzdHJpbmciLCAiZm9vIik7CiAgICAgcW9iaiA9IFFPQkpFQ1QocWRpY3Qp OwogICAgIHZpc2l0X3R5cGVfYW55KGRhdGEtPm92LCBOVUxMLCAmcW9iaiwgJmVycm9yX2Fib3J0 KTsKICAgICBxb2JqZWN0X2RlY3JlZihxb2JqKTsKZGlmZiAtLWdpdCBhL3V0aWwvcWVtdS1vcHRp b24uYyBiL3V0aWwvcWVtdS1vcHRpb24uYwppbmRleCAzNDY3ZGMyLi5iMDYxZmIwIDEwMDY0NAot LS0gYS91dGlsL3FlbXUtb3B0aW9uLmMKKysrIGIvdXRpbC9xZW11LW9wdGlvbi5jCkBAIC0xMDU2 LDE3ICsxMDU2LDE1IEBAIHZvaWQgcWVtdV9vcHRzX2Fic29yYl9xZGljdChRZW11T3B0cyAqb3B0 cywgUURpY3QgKnFkaWN0LCBFcnJvciAqKmVycnApCiBRRGljdCAqcWVtdV9vcHRzX3RvX3FkaWN0 KFFlbXVPcHRzICpvcHRzLCBRRGljdCAqcWRpY3QpCiB7CiAgICAgUWVtdU9wdCAqb3B0OwotICAg IFFPYmplY3QgKnZhbDsKCiAgICAgaWYgKCFxZGljdCkgewogICAgICAgICBxZGljdCA9IHFkaWN0 X25ldygpOwogICAgIH0KICAgICBpZiAob3B0cy0+aWQpIHsKLSAgICAgICAgcWRpY3RfcHV0KHFk aWN0LCAiaWQiLCBxc3RyaW5nX2Zyb21fc3RyKG9wdHMtPmlkKSk7CisgICAgICAgIHFkaWN0X3B1 dF9zdHIocWRpY3QsICJpZCIsIG9wdHMtPmlkKTsKICAgICB9CiAgICAgUVRBSUxRX0ZPUkVBQ0go b3B0LCAmb3B0cy0+aGVhZCwgbmV4dCkgewotICAgICAgICB2YWwgPSBRT0JKRUNUKHFzdHJpbmdf ZnJvbV9zdHIob3B0LT5zdHIpKTsKLSAgICAgICAgcWRpY3RfcHV0X29iaihxZGljdCwgb3B0LT5u YW1lLCB2YWwpOworICAgICAgICBxZGljdF9wdXRfc3RyKHFkaWN0LCBvcHQtPm5hbWUsIG9wdC0+ c3RyKTsKICAgICB9CiAgICAgcmV0dXJuIHFkaWN0OwogfQotLSAKMi43LjQKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2 ZWwK