From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 447 invoked from network); 25 Sep 2023 22:05:56 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 25 Sep 2023 22:05:56 -0000 Content-Type: multipart/mixed; boundary="===============2316156414211289913==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_wpa=5Fsupplicant=3A_import_upstream_patches_for_wpa3_from_external_file?= To: ml@inbox.vuxu.org From: dkwo Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 26 Sep 2023 00:05:56 +0200 List-Id: Message-ID: <20230925220556.4NJDM_66QmrxdGUfwdQnd2YWNWtPkjuIqKngFDr5ZKE@z> GitHub notification mails are now in MIME to allow UTF8. --===============2316156414211289913== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgZGt3byBhZ2FpbnN0IG1hc3RlciBv biB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vZGt3by92 b2lkLXBhY2thZ2VzIHdwYQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL3B1bGwvNDYyNTAKCndwYV9zdXBwbGljYW50OiBpbXBvcnQgdXBzdHJlYW0gcGF0Y2hlcyBm b3Igd3BhMyBmcm9tIGV4dGVybmFsIGZpbGUKLSBJIHRlc3RlZCB0aGUgY2hhbmdlcyBpbiB0aGlz IFBSOiB5ZXMNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRl Y3R1cmUsICh4ODZfNjQpDQoNClRoZXNlIHBhdGNoZXMgaGF2ZSBiZWVuIG1lcmdlZCB1cHN0cmVh bSBhbmQgYXBwbHkgY2xlYW5seS4KCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNv bS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC80NjI1MC5wYXRjaCBpcyBhdHRhY2hlZA== --===============2316156414211289913== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-wpa-46250.patch" RnJvbSA5NzM2N2YwZTIzOTEwZGZmYTM4YTYxMjIyZGU3NWQxYzg5Mzc5MzA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBka3dvIDxuaWNvbG9waWF6emFsdW5nYUBnbWFpbC5jb20+CkRh dGU6IFN1biwgMjQgU2VwIDIwMjMgMTg6MzY6MjQgLTA0MDAKU3ViamVjdDogW1BBVENIXSB3cGFf c3VwcGxpY2FudDogYWRkIHVwc3RyZWFtIHBhdGNoZXMKCi0tLQogLi4uL3dwYV9zdXBwbGljYW50 L3BhdGNoZXMvNHdheS1oYW5kLnBhdGNoICAgIHwgMjQ3ICsrKysrKysrKysrKysrKysrKwogLi4u L3BhdGNoZXMvU0FFX2V4dGVybmFsX2RhdGFiYXNlLnBhdGNoICAgICAgIHwgMTgyICsrKysrKysr KysrKysKIHNyY3BrZ3Mvd3BhX3N1cHBsaWNhbnQvdGVtcGxhdGUgICAgICAgICAgICAgICB8ICAg MiArLQogMyBmaWxlcyBjaGFuZ2VkLCA0MzAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvd3BhX3N1cHBsaWNhbnQvcGF0Y2hlcy80d2F5LWhh bmQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3dwYV9zdXBwbGljYW50L3BhdGNo ZXMvU0FFX2V4dGVybmFsX2RhdGFiYXNlLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy93cGFf c3VwcGxpY2FudC9wYXRjaGVzLzR3YXktaGFuZC5wYXRjaCBiL3NyY3BrZ3Mvd3BhX3N1cHBsaWNh bnQvcGF0Y2hlcy80d2F5LWhhbmQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwMC4uZDJiYWE4YTgzOWFhYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvd3Bh X3N1cHBsaWNhbnQvcGF0Y2hlcy80d2F5LWhhbmQucGF0Y2gKQEAgLTAsMCArMSwyNDcgQEAKK0Zy b20gMDIzYzE3NjU5Nzg2ZmUzODEzMTJmMTU0Y2YwNjY2M2YxY2IzNjA3YyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IEJlbiBXb2xzaWVmZmVyIDxiZW53b2xzaWVmZmVyQGdtYWlsLmNv bT4KK0RhdGU6IFR1ZSwgMjMgQXVnIDIwMjIgMjE6MzQ6NTUgLTA0MDAKK1N1YmplY3Q6IFtQQVRD SF0gRml4IGV4dGVybmFsIHBhc3N3b3JkcyB3aXRoIDQtd2F5IGhhbmRzaGFrZSBvZmZsb2FkaW5n CisKK1Bhc3NwaHJhc2VzL1BTS3MgZnJvbSBleHRlcm5hbCBwYXNzd29yZCBkYXRhYmFzZXMgd2Vy ZSBpZ25vcmVkIGlmIDQtd2F5CitoYW5kc2hha2Ugb2ZmbG9hZGluZyB3YXMgc3VwcG9ydGVkIGJ5 IHRoZSBkcml2ZXIuIFRoaXMgcGF0Y2ggc3BsaXRzIHRoZSBQU0sKK2xvYWRpbmcgZnVuY3Rpb25h bGl0eSBpbnRvIGEgc2VwYXJhdGUgZnVuY3Rpb24gYW5kIGNhbGxzIGlmIHRvIGdldCB0aGUgUFNL IGZvcgoraGFuZHNoYWtlIG9mZmxvYWRpbmcuCisKK0kgdGVzdGVkIGNvbm5lY3RpbmcgdG8gYSBX UEEyLVBTSyBuZXR3b3JrIHdpdGggYm90aCBpbmxpbmUgYW5kIGV4dGVybmFsCitwYXNzcGhyYXNl cywgdXNpbmcgdGhlIGl3bHdpZmkgYW5kIGJyY21mbWFjIGRyaXZlcnMuCisKK1NpZ25lZC1vZmYt Ynk6IEJlbiBXb2xzaWVmZmVyIDxiZW53b2xzaWVmZmVyQGdtYWlsLmNvbT4KKy0tLQorIHdwYV9z dXBwbGljYW50L3dwYV9zdXBwbGljYW50LmMgfCAxODQgKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgODkgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgYS93cGFfc3VwcGxpY2FudC93cGFfc3VwcGxpY2FudC5jIGIvd3Bh X3N1cHBsaWNhbnQvd3BhX3N1cHBsaWNhbnQuYworaW5kZXggZDM3YTk5NGY5Li5iYjA2MzM4MGYg MTAwNjQ0CistLS0gYS93cGFfc3VwcGxpY2FudC93cGFfc3VwcGxpY2FudC5jCisrKysgYi93cGFf c3VwcGxpY2FudC93cGFfc3VwcGxpY2FudC5jCitAQCAtMTMzNyw2ICsxMzM3LDg4IEBAIHZvaWQg d3Bhc19zZXRfbWdtdF9ncm91cF9jaXBoZXIoc3RydWN0IHdwYV9zdXBwbGljYW50ICp3cGFfcywK KyAJCQkgd3Bhc19nZXRfc3NpZF9wbWYod3BhX3MsIHNzaWQpKTsKKyB9CisgCisrc3RhdGljIGlu dCB3cGFfc3VwcGxpY2FudF9nZXRfcHNrKHN0cnVjdCB3cGFfc3VwcGxpY2FudCAqd3BhX3MsCisr CQkJCSAgc3RydWN0IHdwYV9ic3MgKmJzcywgc3RydWN0IHdwYV9zc2lkICpzc2lkLAorKwkJCQkg IHU4ICpwc2spCisreworKyAgICAgICAgaWYgKHNzaWQtPnBza19zZXQpIHsKKysJCXdwYV9oZXhk dW1wX2tleShNU0dfTVNHRFVNUCwgIlBTSyAoc2V0IGluIGNvbmZpZykiLCBzc2lkLT5wc2ssCisr CQkJCVBNS19MRU4pOworKwkJb3NfbWVtY3B5KHBzaywgc3NpZC0+cHNrLCBQTUtfTEVOKTsKKysJ CXJldHVybiAwOworKwl9CisrCisrI2lmbmRlZiBDT05GSUdfTk9fUEJLREYyCisrCWlmIChic3Mg JiYgc3NpZC0+YnNzaWRfc2V0ICYmIHNzaWQtPnNzaWRfbGVuID09IDAgJiYgc3NpZC0+cGFzc3Bo cmFzZSkgeworKwkgICAgICAgIHBia2RmMl9zaGExKHNzaWQtPnBhc3NwaHJhc2UsIGJzcy0+c3Np ZCwgYnNzLT5zc2lkX2xlbiwgNDA5NiwKKysJCQkgICAgcHNrLCBQTUtfTEVOKTsKKysJICAgICAg ICB3cGFfaGV4ZHVtcF9rZXkoTVNHX01TR0RVTVAsICJQU0sgKGZyb20gcGFzc3BocmFzZSkiLCBw c2ssCisrCQkJCVBNS19MRU4pOworKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKysJfQorKyNl bmRpZiAvKiBDT05GSUdfTk9fUEJLREYyICovCisrCisrI2lmZGVmIENPTkZJR19FWFRfUEFTU1dP UkQKKysJaWYgKHNzaWQtPmV4dF9wc2spIHsKKysJCXN0cnVjdCB3cGFidWYgKnB3ID0gZXh0X3Bh c3N3b3JkX2dldCh3cGFfcy0+ZXh0X3B3LAorKwkJCQkJCSAgICAgc3NpZC0+ZXh0X3Bzayk7Cisr CQljaGFyIHB3X3N0cls2NCArIDFdOworKworKwkJaWYgKHB3ID09IE5VTEwpIHsKKysJCQl3cGFf bXNnKHdwYV9zLCBNU0dfSU5GTywgIkVYVCBQVzogTm8gUFNLIGZvdW5kIGZyb20gIgorKwkJCQki ZXh0ZXJuYWwgc3RvcmFnZSIpOworKwkJCXJldHVybiAtMTsKKysJCX0KKysKKysJCWlmICh3cGFi dWZfbGVuKHB3KSA8IDggfHwgd3BhYnVmX2xlbihwdykgPiA2NCkgeworKwkJCXdwYV9tc2cod3Bh X3MsIE1TR19JTkZPLCAiRVhUIFBXOiBVbmV4cGVjdGVkIFBTSyAiCisrCQkJCSJsZW5ndGggJWQg aW4gZXh0ZXJuYWwgc3RvcmFnZSIsCisrCQkJCShpbnQpIHdwYWJ1Zl9sZW4ocHcpKTsKKysJCQll eHRfcGFzc3dvcmRfZnJlZShwdyk7CisrCQkJcmV0dXJuIC0xOworKwkJfQorKworKwkJb3NfbWVt Y3B5KHB3X3N0ciwgd3BhYnVmX2hlYWQocHcpLCB3cGFidWZfbGVuKHB3KSk7CisrCQlwd19zdHJb d3BhYnVmX2xlbihwdyldID0gJ1wwJzsKKysKKysjaWZuZGVmIENPTkZJR19OT19QQktERjIKKysJ CWlmICh3cGFidWZfbGVuKHB3KSA+PSA4ICYmIHdwYWJ1Zl9sZW4ocHcpIDwgNjQgJiYgYnNzKQor KwkJeworKwkJCXBia2RmMl9zaGExKHB3X3N0ciwgYnNzLT5zc2lkLCBic3MtPnNzaWRfbGVuLCA0 MDk2LCBwc2ssCisrCQkJCSAgICBQTUtfTEVOKTsKKysJCQlvc19tZW1zZXQocHdfc3RyLCAwLCBz aXplb2YocHdfc3RyKSk7CisrCQkJd3BhX2hleGR1bXBfa2V5KE1TR19NU0dEVU1QLCAiUFNLIChm cm9tIGV4dGVybmFsICIKKysJCQkJCSJwYXNzcGhyYXNlKSIsCisrCQkJCQlwc2ssIFBNS19MRU4p OworKwkJfSBlbHNlCisrI2VuZGlmIC8qIENPTkZJR19OT19QQktERjIgKi8KKysJCWlmICh3cGFi dWZfbGVuKHB3KSA9PSAyICogUE1LX0xFTikgeworKwkJCWlmIChoZXhzdHIyYmluKHB3X3N0ciwg cHNrLCBQTUtfTEVOKSA8IDApIHsKKysJCQkJd3BhX21zZyh3cGFfcywgTVNHX0lORk8sICJFWFQg UFc6IEludmFsaWQgUFNLICIKKysJCQkJCSJoZXggc3RyaW5nIik7CisrCQkJCW9zX21lbXNldChw d19zdHIsIDAsIHNpemVvZihwd19zdHIpKTsKKysJCQkJZXh0X3Bhc3N3b3JkX2ZyZWUocHcpOwor KwkJCQlyZXR1cm4gLTE7CisrCQkJfQorKwkJCXdwYV9oZXhkdW1wX2tleShNU0dfTVNHRFVNUCwg IlBTSyAoZnJvbSBleHRlcm5hbCBQU0spIiwKKysJCQkJCXBzaywgUE1LX0xFTik7CisrCQl9IGVs c2UgeworKwkJCXdwYV9tc2cod3BhX3MsIE1TR19JTkZPLCAiRVhUIFBXOiBObyBzdWl0YWJsZSBQ U0sgIgorKwkJCQkiYXZhaWxhYmxlIik7CisrCQkJb3NfbWVtc2V0KHB3X3N0ciwgMCwgc2l6ZW9m KHB3X3N0cikpOworKwkJCWV4dF9wYXNzd29yZF9mcmVlKHB3KTsKKysJCQlyZXR1cm4gLTE7Cisr CQl9CisrCisrCQlvc19tZW1zZXQocHdfc3RyLCAwLCBzaXplb2YocHdfc3RyKSk7CisrCQlleHRf cGFzc3dvcmRfZnJlZShwdyk7CisrCisrCQlyZXR1cm4gMDsKKysJfQorKyNlbmRpZiAvKiBDT05G SUdfRVhUX1BBU1NXT1JEICovCisrCisrCXJldHVybiAtMTsKKyt9CisgCisgLyoqCisgICogd3Bh X3N1cHBsaWNhbnRfc2V0X3N1aXRlcyAtIFNldCBhdXRoZW50aWNhdGlvbiBhbmQgZW5jcnlwdGlv biBwYXJhbWV0ZXJzCitAQCAtMTc1Niw5NyArMTgzOCwyMCBAQCBpbnQgd3BhX3N1cHBsaWNhbnRf c2V0X3N1aXRlcyhzdHJ1Y3Qgd3BhX3N1cHBsaWNhbnQgKndwYV9zLAorIAkJCQkJICAgICAgV1BB X0tFWV9NR01UX0ZUX1BTSyB8CisgCQkJCQkgICAgICBXUEFfS0VZX01HTVRfUFNLX1NIQTI1Nikp ID09IDA7CisgCistCQlpZiAoc3NpZC0+cHNrX3NldCAmJiAhc2FlX29ubHkpIHsKKy0JCQl3cGFf aGV4ZHVtcF9rZXkoTVNHX01TR0RVTVAsICJQU0sgKHNldCBpbiBjb25maWcpIiwKKy0JCQkJCXNz aWQtPnBzaywgUE1LX0xFTik7CistCQkJd3BhX3NtX3NldF9wbWsod3BhX3MtPndwYSwgc3NpZC0+ cHNrLCBQTUtfTEVOLCBOVUxMLAorLQkJCQkgICAgICAgTlVMTCk7CistCQkJcHNrX3NldCA9IDE7 CistCQl9CistCistCQlpZiAod3BhX2tleV9tZ210X3NhZShzc2lkLT5rZXlfbWdtdCkgJiYKKy0J CSAgICAoc3NpZC0+c2FlX3Bhc3N3b3JkIHx8IHNzaWQtPnBhc3NwaHJhc2UpKQorLQkJCXBza19z ZXQgPSAxOworLQorLSNpZm5kZWYgQ09ORklHX05PX1BCS0RGMgorLQkJaWYgKGJzcyAmJiBzc2lk LT5ic3NpZF9zZXQgJiYgc3NpZC0+c3NpZF9sZW4gPT0gMCAmJgorLQkJICAgIHNzaWQtPnBhc3Nw aHJhc2UgJiYgIXNhZV9vbmx5KSB7CisrCQlpZiAoIXNhZV9vbmx5KSB7CisgCQkJdTggcHNrW1BN S19MRU5dOworLQkJICAgICAgICBwYmtkZjJfc2hhMShzc2lkLT5wYXNzcGhyYXNlLCBic3MtPnNz aWQsIGJzcy0+c3NpZF9sZW4sCistCQkJCSAgICA0MDk2LCBwc2ssIFBNS19MRU4pOworLQkJICAg ICAgICB3cGFfaGV4ZHVtcF9rZXkoTVNHX01TR0RVTVAsICJQU0sgKGZyb20gcGFzc3BocmFzZSki LAorLQkJCQkJcHNrLCBQTUtfTEVOKTsKKy0JCQl3cGFfc21fc2V0X3Btayh3cGFfcy0+d3BhLCBw c2ssIFBNS19MRU4sIE5VTEwsIE5VTEwpOworLQkJCXBza19zZXQgPSAxOworLQkJCW9zX21lbXNl dChwc2ssIDAsIHNpemVvZihwc2spKTsKKy0JCX0KKy0jZW5kaWYgLyogQ09ORklHX05PX1BCS0RG MiAqLworLSNpZmRlZiBDT05GSUdfRVhUX1BBU1NXT1JECistCQlpZiAoc3NpZC0+ZXh0X3BzayAm JiAhc2FlX29ubHkpIHsKKy0JCQlzdHJ1Y3Qgd3BhYnVmICpwdyA9IGV4dF9wYXNzd29yZF9nZXQo d3BhX3MtPmV4dF9wdywKKy0JCQkJCQkJICAgICBzc2lkLT5leHRfcHNrKTsKKy0JCQljaGFyIHB3 X3N0cls2NCArIDFdOworLQkJCXU4IHBza1tQTUtfTEVOXTsKKy0KKy0JCQlpZiAocHcgPT0gTlVM TCkgeworLQkJCQl3cGFfbXNnKHdwYV9zLCBNU0dfSU5GTywgIkVYVCBQVzogTm8gUFNLICIKKy0J CQkJCSJmb3VuZCBmcm9tIGV4dGVybmFsIHN0b3JhZ2UiKTsKKy0JCQkJcmV0dXJuIC0xOworLQkJ CX0KKy0KKy0JCQlpZiAod3BhYnVmX2xlbihwdykgPCA4IHx8IHdwYWJ1Zl9sZW4ocHcpID4gNjQp IHsKKy0JCQkJd3BhX21zZyh3cGFfcywgTVNHX0lORk8sICJFWFQgUFc6IFVuZXhwZWN0ZWQgIgor LQkJCQkJIlBTSyBsZW5ndGggJWQgaW4gZXh0ZXJuYWwgc3RvcmFnZSIsCistCQkJCQkoaW50KSB3 cGFidWZfbGVuKHB3KSk7CistCQkJCWV4dF9wYXNzd29yZF9mcmVlKHB3KTsKKy0JCQkJcmV0dXJu IC0xOworLQkJCX0KKy0KKy0JCQlvc19tZW1jcHkocHdfc3RyLCB3cGFidWZfaGVhZChwdyksIHdw YWJ1Zl9sZW4ocHcpKTsKKy0JCQlwd19zdHJbd3BhYnVmX2xlbihwdyldID0gJ1wwJzsKKy0KKy0j aWZuZGVmIENPTkZJR19OT19QQktERjIKKy0JCQlpZiAod3BhYnVmX2xlbihwdykgPj0gOCAmJiB3 cGFidWZfbGVuKHB3KSA8IDY0ICYmIGJzcykKKy0JCQl7CistCQkJCXBia2RmMl9zaGExKHB3X3N0 ciwgYnNzLT5zc2lkLCBic3MtPnNzaWRfbGVuLAorLQkJCQkJICAgIDQwOTYsIHBzaywgUE1LX0xF Tik7CistCQkJCW9zX21lbXNldChwd19zdHIsIDAsIHNpemVvZihwd19zdHIpKTsKKy0JCQkJd3Bh X2hleGR1bXBfa2V5KE1TR19NU0dEVU1QLCAiUFNLIChmcm9tICIKKy0JCQkJCQkiZXh0ZXJuYWwg cGFzc3BocmFzZSkiLAorLQkJCQkJCXBzaywgUE1LX0xFTik7CistCQkJCXdwYV9zbV9zZXRfcG1r KHdwYV9zLT53cGEsIHBzaywgUE1LX0xFTiwgTlVMTCwKKy0JCQkJCSAgICAgICBOVUxMKTsKKy0J CQkJcHNrX3NldCA9IDE7CistCQkJCW9zX21lbXNldChwc2ssIDAsIHNpemVvZihwc2spKTsKKy0J CQl9IGVsc2UKKy0jZW5kaWYgLyogQ09ORklHX05PX1BCS0RGMiAqLworLQkJCWlmICh3cGFidWZf bGVuKHB3KSA9PSAyICogUE1LX0xFTikgeworLQkJCQlpZiAoaGV4c3RyMmJpbihwd19zdHIsIHBz aywgUE1LX0xFTikgPCAwKSB7CistCQkJCQl3cGFfbXNnKHdwYV9zLCBNU0dfSU5GTywgIkVYVCBQ VzogIgorLQkJCQkJCSJJbnZhbGlkIFBTSyBoZXggc3RyaW5nIik7CistCQkJCQlvc19tZW1zZXQo cHdfc3RyLCAwLCBzaXplb2YocHdfc3RyKSk7CistCQkJCQlleHRfcGFzc3dvcmRfZnJlZShwdyk7 CistCQkJCQlyZXR1cm4gLTE7CistCQkJCX0KKy0JCQkJd3BhX2hleGR1bXBfa2V5KE1TR19NU0dE VU1QLAorLQkJCQkJCSJQU0sgKGZyb20gZXh0ZXJuYWwgUFNLKSIsCistCQkJCQkJcHNrLCBQTUtf TEVOKTsKKysJCQlpZiAod3BhX3N1cHBsaWNhbnRfZ2V0X3Bzayh3cGFfcywgYnNzLCBzc2lkLAor KwkJCQkJCSAgIHBzaykgPj0gMCkgeworIAkJCQl3cGFfc21fc2V0X3Btayh3cGFfcy0+d3BhLCBw c2ssIFBNS19MRU4sIE5VTEwsCisgCQkJCQkgICAgICAgTlVMTCk7CisgCQkJCXBza19zZXQgPSAx OworLQkJCQlvc19tZW1zZXQocHNrLCAwLCBzaXplb2YocHNrKSk7CistCQkJfSBlbHNlIHsKKy0J CQkJd3BhX21zZyh3cGFfcywgTVNHX0lORk8sICJFWFQgUFc6IE5vIHN1aXRhYmxlICIKKy0JCQkJ CSJQU0sgYXZhaWxhYmxlIik7CistCQkJCW9zX21lbXNldChwd19zdHIsIDAsIHNpemVvZihwd19z dHIpKTsKKy0JCQkJZXh0X3Bhc3N3b3JkX2ZyZWUocHcpOworLQkJCQlyZXR1cm4gLTE7CisgCQkJ fQorLQorLQkJCW9zX21lbXNldChwd19zdHIsIDAsIHNpemVvZihwd19zdHIpKTsKKy0JCQlleHRf cGFzc3dvcmRfZnJlZShwdyk7CisrCQkJb3NfbWVtc2V0KHBzaywgMCwgc2l6ZW9mKHBzaykpOwor IAkJfQorLSNlbmRpZiAvKiBDT05GSUdfRVhUX1BBU1NXT1JEICovCisrCisrCQlpZiAod3BhX2tl eV9tZ210X3NhZShzc2lkLT5rZXlfbWdtdCkgJiYKKysJCSAgICAoc3NpZC0+c2FlX3Bhc3N3b3Jk IHx8IHNzaWQtPnBhc3NwaHJhc2UpKQorKwkJCXBza19zZXQgPSAxOworIAorIAkJaWYgKCFwc2tf c2V0KSB7CisgCQkJd3BhX21zZyh3cGFfcywgTVNHX0lORk8sCitAQCAtMzYwNiw2ICszNjExLDcg QEAgc3RhdGljIHZvaWQgd3Bhc19zdGFydF9hc3NvY19jYihzdHJ1Y3Qgd3BhX3JhZGlvX3dvcmsg KndvcmssIGludCBkZWluaXQpCisgCWludCB1c2VfY3J5cHQsIHJldCwgYnNzaWRfY2hhbmdlZDsK KyAJdW5zaWduZWQgaW50IGNpcGhlcl9wYWlyd2lzZSwgY2lwaGVyX2dyb3VwLCBjaXBoZXJfZ3Jv dXBfbWdtdDsKKyAJc3RydWN0IHdwYV9kcml2ZXJfYXNzb2NpYXRlX3BhcmFtcyBwYXJhbXM7Cisr CXU4IHBza1tQTUtfTEVOXTsKKyAjaWYgZGVmaW5lZChDT05GSUdfV0VQKSB8fCBkZWZpbmVkKElF RUU4MDIxWF9FQVBPTCkKKyAJaW50IHdlcF9rZXlzX3NldCA9IDA7CisgI2VuZGlmIC8qIENPTkZJ R19XRVAgfHwgSUVFRTgwMjFYX0VBUE9MICovCitAQCAtMzg5MCw4ICszODk2LDggQEAgc3RhdGlj IHZvaWQgd3Bhc19zdGFydF9hc3NvY19jYihzdHJ1Y3Qgd3BhX3JhZGlvX3dvcmsgKndvcmssIGlu dCBkZWluaXQpCisgCSAgICAocGFyYW1zLmtleV9tZ210X3N1aXRlID09IFdQQV9LRVlfTUdNVF9Q U0sgfHwKKyAJICAgICBwYXJhbXMua2V5X21nbXRfc3VpdGUgPT0gV1BBX0tFWV9NR01UX0ZUX1BT SykpIHsKKyAJCXBhcmFtcy5wYXNzcGhyYXNlID0gc3NpZC0+cGFzc3BocmFzZTsKKy0JCWlmIChz c2lkLT5wc2tfc2V0KQorLQkJCXBhcmFtcy5wc2sgPSBzc2lkLT5wc2s7CisrCQlpZiAod3BhX3N1 cHBsaWNhbnRfZ2V0X3Bzayh3cGFfcywgYnNzLCBzc2lkLCBwc2spID49IDApCisrCQkJcGFyYW1z LnBzayA9IHBzazsKKyAJfQorIAorIAlpZiAoKHdwYV9zLT5kcnZfZmxhZ3MgJiBXUEFfRFJJVkVS X0ZMQUdTXzRXQVlfSEFORFNIQUtFXzgwMjFYKSAmJgorQEAgLTM5MTUsOCArMzkyMSw4IEBAIHN0 YXRpYyB2b2lkIHdwYXNfc3RhcnRfYXNzb2NfY2Ioc3RydWN0IHdwYV9yYWRpb193b3JrICp3b3Jr LCBpbnQgZGVpbml0KQorIAkJaWYgKChwYXJhbXMua2V5X21nbXRfc3VpdGUgPT0gV1BBX0tFWV9N R01UX1BTSyB8fAorIAkJICAgICBwYXJhbXMua2V5X21nbXRfc3VpdGUgPT0gV1BBX0tFWV9NR01U X1BTS19TSEEyNTYgfHwKKyAJCSAgICAgcGFyYW1zLmtleV9tZ210X3N1aXRlID09IFdQQV9LRVlf TUdNVF9GVF9QU0spICYmCistCQkgICAgc3NpZC0+cHNrX3NldCkKKy0JCQlwYXJhbXMucHNrID0g c3NpZC0+cHNrOworKwkJICAgIHdwYV9zdXBwbGljYW50X2dldF9wc2sod3BhX3MsIGJzcywgc3Np ZCwgcHNrKSA+PSAwKQorKwkJCXBhcmFtcy5wc2sgPSBwc2s7CisgCX0KKyAKKyAJcGFyYW1zLmRy b3BfdW5lbmNyeXB0ZWQgPSB1c2VfY3J5cHQ7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3dwYV9zdXBw bGljYW50L3BhdGNoZXMvU0FFX2V4dGVybmFsX2RhdGFiYXNlLnBhdGNoIGIvc3JjcGtncy93cGFf c3VwcGxpY2FudC9wYXRjaGVzL1NBRV9leHRlcm5hbF9kYXRhYmFzZS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwLi5iM2VkMzFmNThlYjFhCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy93cGFfc3VwcGxpY2FudC9wYXRjaGVzL1NBRV9leHRlcm5hbF9kYXRh YmFzZS5wYXRjaApAQCAtMCwwICsxLDE4MiBAQAorRnJvbSBiZGMzNWFjZDVhYmFlNDViZDUzZTMx MTdiZmM2NzNmYzBlMWFiMGI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQmVuIFdv bHNpZWZmZXIgPGJlbndvbHNpZWZmZXJAZ21haWwuY29tPgorRGF0ZTogU2F0LCAxNyBTZXAgMjAy MiAwMDoyMTowMiAtMDQwMAorU3ViamVjdDogU0FFOiBBbGxvdyBsb2FkaW5nIG9mIHRoZSBwYXNz d29yZCBmcm9tIGFuIGV4dGVybmFsIGRhdGFiYXNlCisKK1RoZXJlIHdhcyBubyBzdXBwb3J0IGZv ciBsb2FkaW5nIFNBRSBwYXNzd29yZHMgZnJvbSBhbiBleHRlcm5hbCBwYXNzd29yZAorZGF0YWJh c2UuCisKK1NpZ25lZC1vZmYtYnk6IEJlbiBXb2xzaWVmZmVyIDxiZW53b2xzaWVmZmVyQGdtYWls LmNvbT4KKy0tLQorIHdwYV9zdXBwbGljYW50L3NtZS5jICAgICAgICAgICAgfCA2NSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQorIHdwYV9zdXBwbGljYW50L3dwYV9z dXBwbGljYW50LmMgfCAgMiArLQorIDIgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwg MTQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS93cGFfc3VwcGxpY2FudC9zbWUuYyBiL3dw YV9zdXBwbGljYW50L3NtZS5jCitpbmRleCA1Mjg2MWM4MDUuLjI4YWMwM2YyMyAxMDA2NDQKKy0t LSBhL3dwYV9zdXBwbGljYW50L3NtZS5jCisrKysgYi93cGFfc3VwcGxpY2FudC9zbWUuYworQEAg LTEwLDYgKzEwLDcgQEAKKyAKKyAjaW5jbHVkZSAiY29tbW9uLmgiCisgI2luY2x1ZGUgInV0aWxz L2Vsb29wLmgiCisrI2luY2x1ZGUgInV0aWxzL2V4dF9wYXNzd29yZC5oIgorICNpbmNsdWRlICJj b21tb24vaWVlZTgwMl8xMV9kZWZzLmgiCisgI2luY2x1ZGUgImNvbW1vbi9pZWVlODAyXzExX2Nv bW1vbi5oIgorICNpbmNsdWRlICJjb21tb24vb2N2LmgiCitAQCAtOTAsNyArOTEsNyBAQCBzdGF0 aWMgc3RydWN0IHdwYWJ1ZiAqIHNtZV9hdXRoX2J1aWxkX3NhZV9jb21taXQoc3RydWN0IHdwYV9z dXBwbGljYW50ICp3cGFfcywKKyB7CisgCXN0cnVjdCB3cGFidWYgKmJ1ZjsKKyAJc2l6ZV90IGxl bjsKKy0JY29uc3QgY2hhciAqcGFzc3dvcmQ7CisrCWNoYXIgKnBhc3N3b3JkID0gTlVMTDsKKyAJ c3RydWN0IHdwYV9ic3MgKmJzczsKKyAJaW50IHVzZV9wdCA9IDA7CisgCWJvb2wgdXNlX3BrID0g ZmFsc2U7CitAQCAtMTA2LDcgKzEwNyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgd3BhYnVmICogc21lX2F1 dGhfYnVpbGRfc2FlX2NvbW1pdChzdHJ1Y3Qgd3BhX3N1cHBsaWNhbnQgKndwYV9zLAorIAkJd3Bh X3ByaW50ZihNU0dfREVCVUcsICJTQUU6IFRFU1RJTkcgLSBjb21taXQgb3ZlcnJpZGUiKTsKKyAJ CWJ1ZiA9IHdwYWJ1Zl9hbGxvYyg0ICsgd3BhYnVmX2xlbih3cGFfcy0+c2FlX2NvbW1pdF9vdmVy cmlkZSkpOworIAkJaWYgKCFidWYpCistCQkJcmV0dXJuIE5VTEw7CisrCQkJZ290byBmYWlsOwor IAkJaWYgKCFleHRlcm5hbCkgeworIAkJCXdwYWJ1Zl9wdXRfbGUxNihidWYsIDEpOyAvKiBUcmFu c2FjdGlvbiBzZXEjICovCisgCQkJd3BhYnVmX3B1dF9sZTE2KGJ1ZiwgV0xBTl9TVEFUVVNfU1VD Q0VTUyk7CitAQCAtMTE2LDEyICsxMTcsNDUgQEAgc3RhdGljIHN0cnVjdCB3cGFidWYgKiBzbWVf YXV0aF9idWlsZF9zYWVfY29tbWl0KHN0cnVjdCB3cGFfc3VwcGxpY2FudCAqd3BhX3MsCisgCX0K KyAjZW5kaWYgLyogQ09ORklHX1RFU1RJTkdfT1BUSU9OUyAqLworIAorLQlwYXNzd29yZCA9IHNz aWQtPnNhZV9wYXNzd29yZDsKKy0JaWYgKCFwYXNzd29yZCkKKy0JCXBhc3N3b3JkID0gc3NpZC0+ cGFzc3BocmFzZTsKKysJaWYgKHNzaWQtPnNhZV9wYXNzd29yZCkgeworKwkJcGFzc3dvcmQgPSBv c19zdHJkdXAoc3NpZC0+c2FlX3Bhc3N3b3JkKTsKKysJCWlmICghcGFzc3dvcmQpIHsKKysJCQl3 cGFfZGJnKHdwYV9zLCBNU0dfSU5GTywKKysJCQkJIlNBRTogRmFpbGVkIHRvIGFsbG9jYXRlIHBh c3N3b3JkIik7CisrCQkJZ290byBmYWlsOworKwkJfQorKwl9CisrCWlmICghcGFzc3dvcmQgJiYg c3NpZC0+cGFzc3BocmFzZSkgeworKwkJcGFzc3dvcmQgPSBvc19zdHJkdXAoc3NpZC0+cGFzc3Bo cmFzZSk7CisrCQlpZiAoIXBhc3N3b3JkKSB7CisrCQkJd3BhX2RiZyh3cGFfcywgTVNHX0lORk8s CisrCQkJCSJTQUU6IEZhaWxlZCB0byBhbGxvY2F0ZSBwYXNzd29yZCIpOworKwkJCWdvdG8gZmFp bDsKKysJCX0KKysJfQorKwlpZiAoIXBhc3N3b3JkICYmIHNzaWQtPmV4dF9wc2spIHsKKysJCXN0 cnVjdCB3cGFidWYgKnB3ID0gZXh0X3Bhc3N3b3JkX2dldCh3cGFfcy0+ZXh0X3B3LAorKwkJCQkJ CSAgICAgc3NpZC0+ZXh0X3Bzayk7CisrCisrCQlpZiAoIXB3KSB7CisrCQkJd3BhX21zZyh3cGFf cywgTVNHX0lORk8sCisrCQkJCSJTQUU6IE5vIHBhc3N3b3JkIGZvdW5kIGZyb20gZXh0ZXJuYWwg c3RvcmFnZSIpOworKwkJCWdvdG8gZmFpbDsKKysJCX0KKysKKysJCXBhc3N3b3JkID0gb3NfbWFs bG9jKHdwYWJ1Zl9sZW4ocHcpICsgMSk7CisrCQlpZiAoIXBhc3N3b3JkKSB7CisrCQkJd3BhX2Ri Zyh3cGFfcywgTVNHX0lORk8sCisrCQkJCSJTQUU6IEZhaWxlZCB0byBhbGxvY2F0ZSBwYXNzd29y ZCIpOworKwkJCWdvdG8gZmFpbDsKKysJCX0KKysJCW9zX21lbWNweShwYXNzd29yZCwgd3BhYnVm X2hlYWQocHcpLCB3cGFidWZfbGVuKHB3KSk7CisrCQlwYXNzd29yZFt3cGFidWZfbGVuKHB3KV0g PSAnXDAnOworKwkJZXh0X3Bhc3N3b3JkX2ZyZWUocHcpOworKwl9CisgCWlmICghcGFzc3dvcmQp IHsKKyAJCXdwYV9wcmludGYoTVNHX0RFQlVHLCAiU0FFOiBObyBwYXNzd29yZCBhdmFpbGFibGUi KTsKKy0JCXJldHVybiBOVUxMOworKwkJZ290byBmYWlsOworIAl9CisgCisgCWlmIChyZXVzZSAm JiB3cGFfcy0+c21lLnNhZS50bXAgJiYKK0BAIC0xMzQsNyArMTY4LDcgQEAgc3RhdGljIHN0cnVj dCB3cGFidWYgKiBzbWVfYXV0aF9idWlsZF9zYWVfY29tbWl0KHN0cnVjdCB3cGFfc3VwcGxpY2Fu dCAqd3BhX3MsCisgCX0KKyAJaWYgKHNtZV9zZXRfc2FlX2dyb3VwKHdwYV9zKSA8IDApIHsKKyAJ CXdwYV9wcmludGYoTVNHX0RFQlVHLCAiU0FFOiBGYWlsZWQgdG8gc2VsZWN0IGdyb3VwIik7Cist CQlyZXR1cm4gTlVMTDsKKysJCWdvdG8gZmFpbDsKKyAJfQorIAorIAlic3MgPSB3cGFfYnNzX2dl dF9ic3NpZF9sYXRlc3Qod3BhX3MsIGJzc2lkKTsKK0BAIC0xNzEsNyArMjA1LDcgQEAgc3RhdGlj IHN0cnVjdCB3cGFidWYgKiBzbWVfYXV0aF9idWlsZF9zYWVfY29tbWl0KHN0cnVjdCB3cGFfc3Vw cGxpY2FudCAqd3BhX3MsCisgCWlmIChzc2lkLT5zYWVfcGsgPT0gU0FFX1BLX01PREVfT05MWSAm JiAhdXNlX3BrKSB7CisgCQl3cGFfcHJpbnRmKE1TR19ERUJVRywKKyAJCQkgICAiU0FFOiBDYW5u b3QgdXNlIFBLIHdpdGggdGhlIHNlbGVjdGVkIEFQIik7CistCQlyZXR1cm4gTlVMTDsKKysJCWdv dG8gZmFpbDsKKyAJfQorICNlbmRpZiAvKiBDT05GSUdfU0FFX1BLICovCisgCitAQCAtMTg0LDcg KzIxOCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgd3BhYnVmICogc21lX2F1dGhfYnVpbGRfc2FlX2NvbW1p dChzdHJ1Y3Qgd3BhX3N1cHBsaWNhbnQgKndwYV9zLAorIAkJICAgICF1c2VfcHQpIHsKKyAJCQl3 cGFfcHJpbnRmKE1TR19ERUJVRywKKyAJCQkJICAgIlNBRTogQ2Fubm90IHVzZSBIMkUgd2l0aCB0 aGUgc2VsZWN0ZWQgQVAiKTsKKy0JCQlyZXR1cm4gTlVMTDsKKysJCQlnb3RvIGZhaWw7CisgCQl9 CisgCX0KKyAKK0BAIC0xOTIsMTMgKzIyNiwxMyBAQCBzdGF0aWMgc3RydWN0IHdwYWJ1ZiAqIHNt ZV9hdXRoX2J1aWxkX3NhZV9jb21taXQoc3RydWN0IHdwYV9zdXBwbGljYW50ICp3cGFfcywKKyAJ ICAgIHNhZV9wcmVwYXJlX2NvbW1pdF9wdCgmd3BhX3MtPnNtZS5zYWUsIHNzaWQtPnB0LAorIAkJ CQkgIHdwYV9zLT5vd25fYWRkciwgYnNzaWQsCisgCQkJCSAgd3BhX3MtPnNtZS5zYWVfcmVqZWN0 ZWRfZ3JvdXBzLCBOVUxMKSA8IDApCistCQlyZXR1cm4gTlVMTDsKKysJCWdvdG8gZmFpbDsKKyAJ aWYgKCF1c2VfcHQgJiYKKyAJICAgIHNhZV9wcmVwYXJlX2NvbW1pdCh3cGFfcy0+b3duX2FkZHIs IGJzc2lkLAorIAkJCSAgICAgICAodTggKikgcGFzc3dvcmQsIG9zX3N0cmxlbihwYXNzd29yZCks CisgCQkJICAgICAgICZ3cGFfcy0+c21lLnNhZSkgPCAwKSB7CisgCQl3cGFfcHJpbnRmKE1TR19E RUJVRywgIlNBRTogQ291bGQgbm90IHBpY2sgUFdFIik7CistCQlyZXR1cm4gTlVMTDsKKysJCWdv dG8gZmFpbDsKKyAJfQorIAlpZiAod3BhX3MtPnNtZS5zYWUudG1wKSB7CisgCQlvc19tZW1jcHko d3BhX3MtPnNtZS5zYWUudG1wLT5ic3NpZCwgYnNzaWQsIEVUSF9BTEVOKTsKK0BAIC0yMTgsNyAr MjUyLDcgQEAgcmV1c2VfZGF0YToKKyAJCWxlbiArPSA0ICsgb3Nfc3RybGVuKHNzaWQtPnNhZV9w YXNzd29yZF9pZCk7CisgCWJ1ZiA9IHdwYWJ1Zl9hbGxvYyg0ICsgU0FFX0NPTU1JVF9NQVhfTEVO ICsgbGVuKTsKKyAJaWYgKGJ1ZiA9PSBOVUxMKQorLQkJcmV0dXJuIE5VTEw7CisrCQlnb3RvIGZh aWw7CisgCWlmICghZXh0ZXJuYWwpIHsKKyAJCXdwYWJ1Zl9wdXRfbGUxNihidWYsIDEpOyAvKiBU cmFuc2FjdGlvbiBzZXEjICovCisgCQlpZiAodXNlX3BrKQorQEAgLTIzMSwxNCArMjY1LDE5IEBA IHJldXNlX2RhdGE6CisgCWlmIChzYWVfd3JpdGVfY29tbWl0KCZ3cGFfcy0+c21lLnNhZSwgYnVm LCB3cGFfcy0+c21lLnNhZV90b2tlbiwKKyAJCQkgICAgIHNzaWQtPnNhZV9wYXNzd29yZF9pZCkg PCAwKSB7CisgCQl3cGFidWZfZnJlZShidWYpOworLQkJcmV0dXJuIE5VTEw7CisrCQlnb3RvIGZh aWw7CisgCX0KKyAJaWYgKHJldF91c2VfcHQpCisgCQkqcmV0X3VzZV9wdCA9IHVzZV9wdDsKKyAJ aWYgKHJldF91c2VfcGspCisgCQkqcmV0X3VzZV9wayA9IHVzZV9wazsKKyAKKysJc3RyX2NsZWFy X2ZyZWUocGFzc3dvcmQpOworIAlyZXR1cm4gYnVmOworKworK2ZhaWw6CisrCXN0cl9jbGVhcl9m cmVlKHBhc3N3b3JkKTsKKysJcmV0dXJuIE5VTEw7CisgfQorIAorIAorZGlmZiAtLWdpdCBhL3dw YV9zdXBwbGljYW50L3dwYV9zdXBwbGljYW50LmMgYi93cGFfc3VwcGxpY2FudC93cGFfc3VwcGxp Y2FudC5jCitpbmRleCA1NGMzYzg1OWUuLmVmNWQwY2Q3MSAxMDA2NDQKKy0tLSBhL3dwYV9zdXBw bGljYW50L3dwYV9zdXBwbGljYW50LmMKKysrKyBiL3dwYV9zdXBwbGljYW50L3dwYV9zdXBwbGlj YW50LmMKK0BAIC0xOTk4LDcgKzE5OTgsNyBAQCBpbnQgd3BhX3N1cHBsaWNhbnRfc2V0X3N1aXRl cyhzdHJ1Y3Qgd3BhX3N1cHBsaWNhbnQgKndwYV9zLAorIAkJfQorIAorIAkJaWYgKHdwYV9rZXlf bWdtdF9zYWUoc3NpZC0+a2V5X21nbXQpICYmCistCQkgICAgKHNzaWQtPnNhZV9wYXNzd29yZCB8 fCBzc2lkLT5wYXNzcGhyYXNlKSkKKysJCSAgICAoc3NpZC0+c2FlX3Bhc3N3b3JkIHx8IHNzaWQt PnBhc3NwaHJhc2UgfHwgc3NpZC0+ZXh0X3BzaykpCisgCQkJcHNrX3NldCA9IDE7CisgCisgCQlp ZiAoIXBza19zZXQpIHsKKy0tIAorY2dpdCB2MS4yLjMtMTgtZzUyNTgKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3Mvd3BhX3N1cHBsaWNhbnQvdGVtcGxhdGUgYi9zcmNwa2dzL3dwYV9zdXBwbGljYW50L3Rl bXBsYXRlCmluZGV4IDg3MjAzMDk3YjAwOWUuLjE3MDZkYmNmYTdiNzEgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3Mvd3BhX3N1cHBsaWNhbnQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy93cGFfc3VwcGxpY2Fu dC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3dwYV9zdXBw bGljYW50JwogcGtnbmFtZT13cGFfc3VwcGxpY2FudAogdmVyc2lvbj0yLjEwCi1yZXZpc2lvbj0z CityZXZpc2lvbj00CiBidWlsZF93cmtzcmM9IiRwa2duYW1lIgogc2hvcnRfZGVzYz0iV1BBL1dQ QTIvSUVFRSA4MDIuMVggU3VwcGxpY2FudCIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCg== --===============2316156414211289913==--