From mboxrd@z Thu Jan 1 00:00:00 1970 From: Owen Smith Subject: [PATCH 1/2 v3] xenfb: Use Input Handlers directly Date: Wed, 26 Jul 2017 15:10:30 +0000 Message-ID: <1501081831-9587-2-git-send-email-owen.smith@citrix.com> References: <1501081831-9587-1-git-send-email-owen.smith@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1daNyS-0000bI-PR for xen-devel@lists.xenproject.org; Wed, 26 Jul 2017 15:11:44 +0000 In-Reply-To: <1501081831-9587-1-git-send-email-owen.smith@citrix.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: anthony.perard@citrix.com, xen-devel@lists.xenproject.org, sstabellini@kernel.org, Owen Smith List-Id: xen-devel@lists.xenproject.org QXZvaWQgdGhlIHVubmVjY2Vzc2FyeSBjYWxscyB0aHJvdWdoIHRoZSBpbnB1dC1sZWdhY3kuYyBm aWxlIGJ5CnVzaW5nIHRoZSBxZW11X2lucHV0X2hhbmRsZXJfKigpIGNhbGxzIGRpcmVjdGx5LiBU aGlzIGRpZCByZXF1aXJlCnJld29ya2luZyB0aGUgZXZlbnQgYW5kIHN5bmMgaGFuZGxlcnMgYW5k IGEgZGlyZWN0IG1hcHBpbmcgZnJvbQpRRU1VJ3MgcWNvZGVzIHRvIGxpbnV4IEtFWV8qIGlkZW50 aWZpZXJzIHJlcXVpcmVkIGJ5IHRoZSByaW5nCnByb3RvY29sLiBSZW1vdmVzIHRoZSBzY2FuY29k ZTJsaW51eCBtYXBwaW5nLCBhbmQgc3VwcG9ydGluZwpkb2N1bWVudGlvbi4KClNpZ25lZC1vZmYt Ynk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0tCiBody9kaXNwbGF5L3hl bmZiLmMgfCA0MDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyNDcgaW5zZXJ0aW9ucygrKSwgMTU0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2h3L2Rpc3BsYXkveGVuZmIuYyBiL2h3L2Rpc3BsYXkveGVuZmIu YwppbmRleCBkZjhiNzhmLi5lNDEyNzUzIDEwMDY0NAotLS0gYS9ody9kaXNwbGF5L3hlbmZiLmMK KysrIGIvaHcvZGlzcGxheS94ZW5mYi5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAicWVt dS9vc2RlcC5oIgogCiAjaW5jbHVkZSAiaHcvaHcuaCIKKyNpbmNsdWRlICJ1aS9pbnB1dC5oIgog I2luY2x1ZGUgInVpL2NvbnNvbGUuaCIKICNpbmNsdWRlICJody94ZW4veGVuX2JhY2tlbmQuaCIK IApAQCAtMzcsOSArMzgsNyBAQAogCiAjaW5jbHVkZSAidHJhY2UuaCIKIAotI2lmbmRlZiBCVE5f TEVGVAotI2RlZmluZSBCVE5fTEVGVCAweDExMCAvKiBmcm9tIDxsaW51eC9pbnB1dC5oPiAqLwot I2VuZGlmCisjaW5jbHVkZSAic3RhbmRhcmQtaGVhZGVycy9saW51eC9pbnB1dC5oIgogCiAvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSAqLwogCkBAIC01MSw5ICs1MCwxMCBAQCBzdHJ1Y3QgY29tbW9uIHsKIHN0cnVj dCBYZW5JbnB1dCB7CiAgICAgc3RydWN0IGNvbW1vbiBjOwogICAgIGludCBhYnNfcG9pbnRlcl93 YW50ZWQ7IC8qIFdoZXRoZXIgZ3Vlc3Qgc3VwcG9ydHMgYWJzb2x1dGUgcG9pbnRlciAqLwotICAg IGludCBidXR0b25fc3RhdGU7ICAgICAgIC8qIExhc3Qgc2VlbiBwb2ludGVyIGJ1dHRvbiBzdGF0 ZSAqLwotICAgIGludCBleHRlbmRlZDsKLSAgICBRRU1VUHV0TW91c2VFbnRyeSAqcW1vdXNlOwor ICAgIFFlbXVJbnB1dEhhbmRsZXJTdGF0ZSAqcWtiZDsKKyAgICBRZW11SW5wdXRIYW5kbGVyU3Rh dGUgKnFtb3U7CisgICAgaW50IG1vdXNlX2F4ZXNbSU5QVVRfQVhJU19fTUFYXTsKKyAgICBpbnQg bW91c2Vfd2hlZWw7CiB9OwogCiAjZGVmaW5lIFVQX1FVRVVFIDgKQEAgLTEyMCw3NyArMTIwLDEy NSBAQCBzdGF0aWMgdm9pZCBjb21tb25fdW5iaW5kKHN0cnVjdCBjb21tb24gKmMpCiAKIC8qIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tICovCiAKLSNpZiAwCi0vKgotICogVGhlc2UgdHdvIHRhYmxlcyBhcmUgbm90IG5l ZWRlZCBhbnkgbW9yZSwgYnV0IGxlZnQgaW4gaGVyZQotICogaW50ZW50aW9uYWxseSBhcyBkb2N1 bWVudGF0aW9uLCB0byBzaG93IGhvdyBzY2FuY29kZTJsaW51eFtdCi0gKiB3YXMgZ2VuZXJhdGVk LgotICoKLSAqIFRhYmxlcyB0byBtYXAgZnJvbSBzY2FuY29kZSB0byBMaW51eCBpbnB1dCBsYXll ciBrZXljb2RlLgotICogU2NhbmNvZGVzIGFyZSBoYXJkd2FyZS1zcGVjaWZpYy4gIFRoZXNlIG1h cHMgYXNzdW1lcyBhCi0gKiBzdGFuZGFyZCBBVCBvciBQUy8yIGtleWJvYXJkIHdoaWNoIGlzIHdo YXQgUUVNVSBmZWVkcyB1cy4KLSAqLwotY29uc3QgdW5zaWduZWQgY2hhciBhdGtiZF9zZXQyX2tl eWNvZGVbNTEyXSA9IHsKLQotICAgICAwLCA2NywgNjUsIDYzLCA2MSwgNTksIDYwLCA4OCwgIDAs IDY4LCA2NiwgNjQsIDYyLCAxNSwgNDEsMTE3LAotICAgICAwLCA1NiwgNDIsIDkzLCAyOSwgMTYs ICAyLCAgMCwgIDAsICAwLCA0NCwgMzEsIDMwLCAxNywgIDMsICAwLAotICAgICAwLCA0NiwgNDUs IDMyLCAxOCwgIDUsICA0LCA5NSwgIDAsIDU3LCA0NywgMzMsIDIwLCAxOSwgIDYsMTgzLAotICAg ICAwLCA0OSwgNDgsIDM1LCAzNCwgMjEsICA3LDE4NCwgIDAsICAwLCA1MCwgMzYsIDIyLCAgOCwg IDksMTg1LAotICAgICAwLCA1MSwgMzcsIDIzLCAyNCwgMTEsIDEwLCAgMCwgIDAsIDUyLCA1Mywg MzgsIDM5LCAyNSwgMTIsICAwLAotICAgICAwLCA4OSwgNDAsICAwLCAyNiwgMTMsICAwLCAgMCwg NTgsIDU0LCAyOCwgMjcsICAwLCA0MywgIDAsIDg1LAotICAgICAwLCA4NiwgOTEsIDkwLCA5Miwg IDAsIDE0LCA5NCwgIDAsIDc5LDEyNCwgNzUsIDcxLDEyMSwgIDAsICAwLAotICAgIDgyLCA4Mywg ODAsIDc2LCA3NywgNzIsICAxLCA2OSwgODcsIDc4LCA4MSwgNzQsIDU1LCA3MywgNzAsIDk5LAot Ci0gICAgICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAw LCAgMCwgIDAsICAwLAotICAgIDIxNywxMDAsMjU1LCAgMCwgOTcsMTY1LCAgMCwgIDAsMTU2LCAg MCwgIDAsICAwLCAgMCwgIDAsICAwLDEyNSwKLSAgICAxNzMsMTE0LCAgMCwxMTMsICAwLCAgMCwg IDAsMTI2LDEyOCwgIDAsICAwLDE0MCwgIDAsICAwLCAgMCwxMjcsCi0gICAgMTU5LCAgMCwxMTUs ICAwLDE2NCwgIDAsICAwLDExNiwxNTgsICAwLDE1MCwxNjYsICAwLCAgMCwgIDAsMTQyLAotICAg IDE1NywgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsMTU1LCAgMCwgOTgsICAwLCAgMCwxNjMs ICAwLCAgMCwKLSAgICAyMjYsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwyNTUsIDk2 LCAgMCwgIDAsICAwLDE0MywgIDAsCi0gICAgICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAg MCwgIDAsMTA3LCAgMCwxMDUsMTAyLCAgMCwgIDAsMTEyLAotICAgIDExMCwxMTEsMTA4LDExMiwx MDYsMTAzLCAgMCwxMTksICAwLDExOCwxMDksICAwLCA5OSwxMDQsMTE5LCAgMCwKLQotfTsKLQot Y29uc3QgdW5zaWduZWQgY2hhciBhdGtiZF91bnhsYXRlX3RhYmxlWzEyOF0gPSB7Ci0KLSAgICAg IDAsMTE4LCAyMiwgMzAsIDM4LCAzNywgNDYsIDU0LCA2MSwgNjIsIDcwLCA2OSwgNzgsIDg1LDEw MiwgMTMsCi0gICAgIDIxLCAyOSwgMzYsIDQ1LCA0NCwgNTMsIDYwLCA2NywgNjgsIDc3LCA4NCwg OTEsIDkwLCAyMCwgMjgsIDI3LAotICAgICAzNSwgNDMsIDUyLCA1MSwgNTksIDY2LCA3NSwgNzYs IDgyLCAxNCwgMTgsIDkzLCAyNiwgMzQsIDMzLCA0MiwKLSAgICAgNTAsIDQ5LCA1OCwgNjUsIDcz LCA3NCwgODksMTI0LCAxNywgNDEsIDg4LCAgNSwgIDYsICA0LCAxMiwgIDMsCi0gICAgIDExLCAg MiwgMTAsICAxLCAgOSwxMTksMTI2LDEwOCwxMTcsMTI1LDEyMywxMDcsMTE1LDExNiwxMjEsMTA1 LAotICAgIDExNCwxMjIsMTEyLDExMywxMjcsIDk2LCA5NywxMjAsICA3LCAxNSwgMjMsIDMxLCAz OSwgNDcsIDU1LCA2MywKLSAgICAgNzEsIDc5LCA4NiwgOTQsICA4LCAxNiwgMjQsIDMyLCA0MCwg NDgsIDU2LCA2NCwgNzIsIDgwLCA4NywxMTEsCi0gICAgIDE5LCAyNSwgNTcsIDgxLCA4MywgOTIs IDk1LCA5OCwgOTksMTAwLDEwMSwxMDMsMTA0LDEwNiwxMDksMTEwCi0KK3N0YXRpYyBjb25zdCB1 bnNpZ25lZCBpbnQga2V5bWFwX3Fjb2RlW1FfS0VZX0NPREVfX01BWF0gPSB7CisgICAgW1FfS0VZ X0NPREVfRVNDXSAgICAgICAgICAgICAgICAgPSBLRVlfRVNDLAorICAgIFtRX0tFWV9DT0RFXzFd ICAgICAgICAgICAgICAgICAgID0gS0VZXzEsCisgICAgW1FfS0VZX0NPREVfMl0gICAgICAgICAg ICAgICAgICAgPSBLRVlfMiwKKyAgICBbUV9LRVlfQ09ERV8zXSAgICAgICAgICAgICAgICAgICA9 IEtFWV8zLAorICAgIFtRX0tFWV9DT0RFXzRdICAgICAgICAgICAgICAgICAgID0gS0VZXzQsCisg ICAgW1FfS0VZX0NPREVfNV0gICAgICAgICAgICAgICAgICAgPSBLRVlfNSwKKyAgICBbUV9LRVlf Q09ERV82XSAgICAgICAgICAgICAgICAgICA9IEtFWV82LAorICAgIFtRX0tFWV9DT0RFXzddICAg ICAgICAgICAgICAgICAgID0gS0VZXzcsCisgICAgW1FfS0VZX0NPREVfOF0gICAgICAgICAgICAg ICAgICAgPSBLRVlfOCwKKyAgICBbUV9LRVlfQ09ERV85XSAgICAgICAgICAgICAgICAgICA9IEtF WV85LAorICAgIFtRX0tFWV9DT0RFXzBdICAgICAgICAgICAgICAgICAgID0gS0VZXzAsCisgICAg W1FfS0VZX0NPREVfTUlOVVNdICAgICAgICAgICAgICAgPSBLRVlfTUlOVVMsCisgICAgW1FfS0VZ X0NPREVfRVFVQUxdICAgICAgICAgICAgICAgPSBLRVlfRVFVQUwsCisgICAgW1FfS0VZX0NPREVf QkFDS1NQQUNFXSAgICAgICAgICAgPSBLRVlfQkFDS1NQQUNFLAorCisgICAgW1FfS0VZX0NPREVf VEFCXSAgICAgICAgICAgICAgICAgPSBLRVlfVEFCLAorICAgIFtRX0tFWV9DT0RFX1FdICAgICAg ICAgICAgICAgICAgID0gS0VZX1EsCisgICAgW1FfS0VZX0NPREVfV10gICAgICAgICAgICAgICAg ICAgPSBLRVlfVywKKyAgICBbUV9LRVlfQ09ERV9FXSAgICAgICAgICAgICAgICAgICA9IEtFWV9F LAorICAgIFtRX0tFWV9DT0RFX1JdICAgICAgICAgICAgICAgICAgID0gS0VZX1IsCisgICAgW1Ff S0VZX0NPREVfVF0gICAgICAgICAgICAgICAgICAgPSBLRVlfVCwKKyAgICBbUV9LRVlfQ09ERV9Z XSAgICAgICAgICAgICAgICAgICA9IEtFWV9ZLAorICAgIFtRX0tFWV9DT0RFX1VdICAgICAgICAg ICAgICAgICAgID0gS0VZX1UsCisgICAgW1FfS0VZX0NPREVfSV0gICAgICAgICAgICAgICAgICAg PSBLRVlfSSwKKyAgICBbUV9LRVlfQ09ERV9PXSAgICAgICAgICAgICAgICAgICA9IEtFWV9PLAor ICAgIFtRX0tFWV9DT0RFX1BdICAgICAgICAgICAgICAgICAgID0gS0VZX1AsCisgICAgW1FfS0VZ X0NPREVfQlJBQ0tFVF9MRUZUXSAgICAgICAgPSBLRVlfTEVGVEJSQUNFLAorICAgIFtRX0tFWV9D T0RFX0JSQUNLRVRfUklHSFRdICAgICAgID0gS0VZX1JJR0hUQlJBQ0UsCisgICAgW1FfS0VZX0NP REVfUkVUXSAgICAgICAgICAgICAgICAgPSBLRVlfRU5URVIsCisKKyAgICBbUV9LRVlfQ09ERV9D VFJMXSAgICAgICAgICAgICAgICA9IEtFWV9MRUZUQ1RSTCwKKyAgICBbUV9LRVlfQ09ERV9BXSAg ICAgICAgICAgICAgICAgICA9IEtFWV9BLAorICAgIFtRX0tFWV9DT0RFX1NdICAgICAgICAgICAg ICAgICAgID0gS0VZX1MsCisgICAgW1FfS0VZX0NPREVfRF0gICAgICAgICAgICAgICAgICAgPSBL RVlfRCwKKyAgICBbUV9LRVlfQ09ERV9GXSAgICAgICAgICAgICAgICAgICA9IEtFWV9GLAorICAg IFtRX0tFWV9DT0RFX0ddICAgICAgICAgICAgICAgICAgID0gS0VZX0csCisgICAgW1FfS0VZX0NP REVfSF0gICAgICAgICAgICAgICAgICAgPSBLRVlfSCwKKyAgICBbUV9LRVlfQ09ERV9KXSAgICAg ICAgICAgICAgICAgICA9IEtFWV9KLAorICAgIFtRX0tFWV9DT0RFX0tdICAgICAgICAgICAgICAg ICAgID0gS0VZX0ssCisgICAgW1FfS0VZX0NPREVfTF0gICAgICAgICAgICAgICAgICAgPSBLRVlf TCwKKyAgICBbUV9LRVlfQ09ERV9TRU1JQ09MT05dICAgICAgICAgICA9IEtFWV9TRU1JQ09MT04s CisgICAgW1FfS0VZX0NPREVfQVBPU1RST1BIRV0gICAgICAgICAgPSBLRVlfQVBPU1RST1BIRSwK KyAgICBbUV9LRVlfQ09ERV9HUkFWRV9BQ0NFTlRdICAgICAgICA9IEtFWV9HUkFWRSwKKworICAg IFtRX0tFWV9DT0RFX1NISUZUXSAgICAgICAgICAgICAgID0gS0VZX0xFRlRTSElGVCwKKyAgICBb UV9LRVlfQ09ERV9CQUNLU0xBU0hdICAgICAgICAgICA9IEtFWV9CQUNLU0xBU0gsCisgICAgW1Ff S0VZX0NPREVfTEVTU10gICAgICAgICAgICAgICAgPSBLRVlfMTAyTkQsCisgICAgW1FfS0VZX0NP REVfWl0gICAgICAgICAgICAgICAgICAgPSBLRVlfWiwKKyAgICBbUV9LRVlfQ09ERV9YXSAgICAg ICAgICAgICAgICAgICA9IEtFWV9YLAorICAgIFtRX0tFWV9DT0RFX0NdICAgICAgICAgICAgICAg ICAgID0gS0VZX0MsCisgICAgW1FfS0VZX0NPREVfVl0gICAgICAgICAgICAgICAgICAgPSBLRVlf ViwKKyAgICBbUV9LRVlfQ09ERV9CXSAgICAgICAgICAgICAgICAgICA9IEtFWV9CLAorICAgIFtR X0tFWV9DT0RFX05dICAgICAgICAgICAgICAgICAgID0gS0VZX04sCisgICAgW1FfS0VZX0NPREVf TV0gICAgICAgICAgICAgICAgICAgPSBLRVlfTSwKKyAgICBbUV9LRVlfQ09ERV9DT01NQV0gICAg ICAgICAgICAgICA9IEtFWV9DT01NQSwKKyAgICBbUV9LRVlfQ09ERV9ET1RdICAgICAgICAgICAg ICAgICA9IEtFWV9ET1QsCisgICAgW1FfS0VZX0NPREVfU0xBU0hdICAgICAgICAgICAgICAgPSBL RVlfU0xBU0gsCisgICAgW1FfS0VZX0NPREVfU0hJRlRfUl0gICAgICAgICAgICAgPSBLRVlfUklH SFRTSElGVCwKKworICAgIFtRX0tFWV9DT0RFX0FMVF0gICAgICAgICAgICAgICAgID0gS0VZX0xF RlRBTFQsCisgICAgW1FfS0VZX0NPREVfU1BDXSAgICAgICAgICAgICAgICAgPSBLRVlfU1BBQ0Us CisgICAgW1FfS0VZX0NPREVfQ0FQU19MT0NLXSAgICAgICAgICAgPSBLRVlfQ0FQU0xPQ0ssCisK KyAgICBbUV9LRVlfQ09ERV9GMV0gICAgICAgICAgICAgICAgICA9IEtFWV9GMSwKKyAgICBbUV9L RVlfQ09ERV9GMl0gICAgICAgICAgICAgICAgICA9IEtFWV9GMiwKKyAgICBbUV9LRVlfQ09ERV9G M10gICAgICAgICAgICAgICAgICA9IEtFWV9GMywKKyAgICBbUV9LRVlfQ09ERV9GNF0gICAgICAg ICAgICAgICAgICA9IEtFWV9GNCwKKyAgICBbUV9LRVlfQ09ERV9GNV0gICAgICAgICAgICAgICAg ICA9IEtFWV9GNSwKKyAgICBbUV9LRVlfQ09ERV9GNl0gICAgICAgICAgICAgICAgICA9IEtFWV9G NiwKKyAgICBbUV9LRVlfQ09ERV9GN10gICAgICAgICAgICAgICAgICA9IEtFWV9GNywKKyAgICBb UV9LRVlfQ09ERV9GOF0gICAgICAgICAgICAgICAgICA9IEtFWV9GOCwKKyAgICBbUV9LRVlfQ09E RV9GOV0gICAgICAgICAgICAgICAgICA9IEtFWV9GOSwKKyAgICBbUV9LRVlfQ09ERV9GMTBdICAg ICAgICAgICAgICAgICA9IEtFWV9GMTAsCisgICAgW1FfS0VZX0NPREVfTlVNX0xPQ0tdICAgICAg ICAgICAgPSBLRVlfTlVNTE9DSywKKyAgICBbUV9LRVlfQ09ERV9TQ1JPTExfTE9DS10gICAgICAg ICA9IEtFWV9TQ1JPTExMT0NLLAorCisgICAgW1FfS0VZX0NPREVfS1BfMF0gICAgICAgICAgICAg ICAgPSBLRVlfS1AwLAorICAgIFtRX0tFWV9DT0RFX0tQXzFdICAgICAgICAgICAgICAgID0gS0VZ X0tQMSwKKyAgICBbUV9LRVlfQ09ERV9LUF8yXSAgICAgICAgICAgICAgICA9IEtFWV9LUDIsCisg ICAgW1FfS0VZX0NPREVfS1BfM10gICAgICAgICAgICAgICAgPSBLRVlfS1AzLAorICAgIFtRX0tF WV9DT0RFX0tQXzRdICAgICAgICAgICAgICAgID0gS0VZX0tQNCwKKyAgICBbUV9LRVlfQ09ERV9L UF81XSAgICAgICAgICAgICAgICA9IEtFWV9LUDUsCisgICAgW1FfS0VZX0NPREVfS1BfNl0gICAg ICAgICAgICAgICAgPSBLRVlfS1A2LAorICAgIFtRX0tFWV9DT0RFX0tQXzddICAgICAgICAgICAg ICAgID0gS0VZX0tQNywKKyAgICBbUV9LRVlfQ09ERV9LUF84XSAgICAgICAgICAgICAgICA9IEtF WV9LUDgsCisgICAgW1FfS0VZX0NPREVfS1BfOV0gICAgICAgICAgICAgICAgPSBLRVlfS1A5LAor ICAgIFtRX0tFWV9DT0RFX0tQX1NVQlRSQUNUXSAgICAgICAgID0gS0VZX0tQTUlOVVMsCisgICAg W1FfS0VZX0NPREVfS1BfQUREXSAgICAgICAgICAgICAgPSBLRVlfS1BQTFVTLAorICAgIFtRX0tF WV9DT0RFX0tQX0RFQ0lNQUxdICAgICAgICAgID0gS0VZX0tQRE9ULAorICAgIFtRX0tFWV9DT0RF X0tQX0VOVEVSXSAgICAgICAgICAgID0gS0VZX0tQRU5URVIsCisgICAgW1FfS0VZX0NPREVfS1Bf RElWSURFXSAgICAgICAgICAgPSBLRVlfS1BTTEFTSCwKKyAgICBbUV9LRVlfQ09ERV9LUF9NVUxU SVBMWV0gICAgICAgICA9IEtFWV9LUEFTVEVSSVNLLAorCisgICAgW1FfS0VZX0NPREVfRjExXSAg ICAgICAgICAgICAgICAgPSBLRVlfRjExLAorICAgIFtRX0tFWV9DT0RFX0YxMl0gICAgICAgICAg ICAgICAgID0gS0VZX0YxMiwKKworICAgIFtRX0tFWV9DT0RFX0NUUkxfUl0gICAgICAgICAgICAg ID0gS0VZX1JJR0hUQ1RSTCwKKyAgICBbUV9LRVlfQ09ERV9TWVNSUV0gICAgICAgICAgICAgICA9 IEtFWV9TWVNSUSwKKyAgICBbUV9LRVlfQ09ERV9QUklOVF0gICAgICAgICAgICAgICA9IEtFWV9T WVNSUSwKKyAgICBbUV9LRVlfQ09ERV9QQVVTRV0gICAgICAgICAgICAgICA9IEtFWV9QQVVTRSwK KyAgICBbUV9LRVlfQ09ERV9BTFRfUl0gICAgICAgICAgICAgICA9IEtFWV9SSUdIVEFMVCwKKwor ICAgIFtRX0tFWV9DT0RFX0hPTUVdICAgICAgICAgICAgICAgID0gS0VZX0hPTUUsCisgICAgW1Ff S0VZX0NPREVfVVBdICAgICAgICAgICAgICAgICAgPSBLRVlfVVAsCisgICAgW1FfS0VZX0NPREVf UEdVUF0gICAgICAgICAgICAgICAgPSBLRVlfUEFHRVVQLAorICAgIFtRX0tFWV9DT0RFX0xFRlRd ICAgICAgICAgICAgICAgID0gS0VZX0xFRlQsCisgICAgW1FfS0VZX0NPREVfUklHSFRdICAgICAg ICAgICAgICAgPSBLRVlfUklHSFQsCisgICAgW1FfS0VZX0NPREVfRU5EXSAgICAgICAgICAgICAg ICAgPSBLRVlfRU5ELAorICAgIFtRX0tFWV9DT0RFX0RPV05dICAgICAgICAgICAgICAgID0gS0VZ X0RPV04sCisgICAgW1FfS0VZX0NPREVfUEdETl0gICAgICAgICAgICAgICAgPSBLRVlfUEFHRURP V04sCisgICAgW1FfS0VZX0NPREVfSU5TRVJUXSAgICAgICAgICAgICAgPSBLRVlfSU5TRVJULAor ICAgIFtRX0tFWV9DT0RFX0RFTEVURV0gICAgICAgICAgICAgID0gS0VZX0RFTEVURSwKKworICAg IFtRX0tFWV9DT0RFX01FVEFfTF0gICAgICAgICAgICAgID0gS0VZX0xFRlRNRVRBLAorICAgIFtR X0tFWV9DT0RFX01FVEFfUl0gICAgICAgICAgICAgID0gS0VZX1JJR0hUTUVUQSwKKyAgICBbUV9L RVlfQ09ERV9NRU5VXSAgICAgICAgICAgICAgICA9IEtFWV9NRU5VLAogfTsKLSNlbmRpZgogCi0v KgotICogZm9yIChpID0gMDsgaSA8IDEyODsgaSsrKSB7Ci0gKiAgICAgc2NhbmNvZGUybGludXhb aV0gPSBhdGtiZF9zZXQyX2tleWNvZGVbYXRrYmRfdW54bGF0ZV90YWJsZVtpXV07Ci0gKiAgICAg c2NhbmNvZGUybGludXhbaSB8IDB4ODBdID0gYXRrYmRfc2V0Ml9rZXljb2RlW2F0a2JkX3VueGxh dGVfdGFibGVbaV0gfCAweDgwXTsKLSAqIH0KLSAqLwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNo YXIgc2NhbmNvZGUybGludXhbNTEyXSA9IHsKLSAgICAgIDAsICAxLCAgMiwgIDMsICA0LCAgNSwg IDYsICA3LCAgOCwgIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCi0gICAgIDE2LCAxNywgMTgs IDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLAotICAg ICAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgNDUs IDQ2LCA0NywKLSAgICAgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4 LCA1OSwgNjAsIDYxLCA2MiwgNjMsCi0gICAgIDY0LCA2NSwgNjYsIDY3LCA2OCwgNjksIDcwLCA3 MSwgNzIsIDczLCA3NCwgNzUsIDc2LCA3NywgNzgsIDc5LAotICAgICA4MCwgODEsIDgyLCA4Mywg OTksICAwLCA4NiwgODcsIDg4LDExNywgIDAsICAwLCA5NSwxODMsMTg0LDE4NSwKLSAgICAgIDAs ICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwg IDAsCi0gICAgIDkzLCAgMCwgIDAsIDg5LCAgMCwgIDAsIDg1LCA5MSwgOTAsIDkyLCAgMCwgOTQs ICAwLDEyNCwxMjEsICAwLAotCi0gICAgICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwg IDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLAotICAgIDE2NSwgIDAsICAwLCAgMCwgIDAs ICAwLCAgMCwgIDAsICAwLDE2MywgIDAsICAwLCA5NiwgOTcsICAwLCAgMCwKLSAgICAxMTMsMTQw LDE2NCwgIDAsMTY2LCAgMCwgIDAsICAwLCAgMCwgIDAsMjU1LCAgMCwgIDAsICAwLDExNCwgIDAs Ci0gICAgMTE1LCAgMCwxNTAsICAwLCAgMCwgOTgsMjU1LCA5OSwxMDAsICAwLCAgMCwgIDAsICAw LCAgMCwgIDAsICAwLAotICAgICAgMCwgIDAsICAwLCAgMCwgIDAsMTE5LDExOSwxMDIsMTAzLDEw NCwgIDAsMTA1LDExMiwxMDYsMTE4LDEwNywKLSAgICAxMDgsMTA5LDExMCwxMTEsICAwLCAgMCwg IDAsICAwLCAgMCwgIDAsICAwLDEyNSwxMjYsMTI3LDExNiwxNDIsCi0gICAgICAwLCAgMCwgIDAs MTQzLCAgMCwyMTcsMTU2LDE3MywxMjgsMTU5LDE1OCwxNTcsMTU1LDIyNiwgIDAsMTEyLAotICAg ICAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAs ICAwLCAgMCwKLX07CiAKIC8qIFNlbmQgYW4gZXZlbnQgdG8gdGhlIGtleWJvYXJkIGZyb250ZW5k IGRyaXZlciAqLwogc3RhdGljIGludCB4ZW5mYl9rYmRfZXZlbnQoc3RydWN0IFhlbklucHV0ICp4 ZW5mYiwKQEAgLTI2MCw4NyArMzA4LDEyMyBAQCBzdGF0aWMgaW50IHhlbmZiX3NlbmRfcG9zaXRp b24oc3RydWN0IFhlbklucHV0ICp4ZW5mYiwKICAgICByZXR1cm4geGVuZmJfa2JkX2V2ZW50KHhl bmZiLCAmZXZlbnQpOwogfQogCi0vKgotICogU2VuZCBhIGtleSBldmVudCBmcm9tIHRoZSBjbGll bnQgdG8gdGhlIGd1ZXN0IE9TCi0gKiBRRU1VIGdpdmVzIHVzIGEgcmF3IHNjYW5jb2RlIGZyb20g YW4gQVQgLyBQUy8yIHN0eWxlIGtleWJvYXJkLgotICogV2UgaGF2ZSB0byB0dXJuIHRoaXMgaW50 byBhIExpbnV4IElucHV0IGxheWVyIGtleWNvZGUuCi0gKgotICogRXh0cmEgY29tcGxleGl0eSBm cm9tIHRoZSBmYWN0IHRoYXQgd2l0aCBleHRlbmRlZCBzY2FuY29kZXMKLSAqIChsaWtlIHRob3Nl IHByb2R1Y2VkIGJ5IGFycm93IGtleXMpIHRoaXMgbWV0aG9kIGdldHMgY2FsbGVkCi0gKiB0d2lj ZSwgYnV0IHdlIG9ubHkgd2FudCB0byBzZW5kIGEgc2luZ2xlIGV2ZW50LiBTbyB3ZSBoYXZlIHRv Ci0gKiB0cmFjayB0aGUgJzB4ZTAnIHNjYW5jb2RlIHN0YXRlICYgY29sbGFwc2UgdGhlIGV4dGVu ZGVkIGtleXMKLSAqIGFzIG5lZWRlZC4KLSAqCi0gKiBXaXNoIHdlIGNvdWxkIGp1c3Qgc2VuZCBz Y2FuY29kZXMgc3RyYWlnaHQgdG8gdGhlIGd1ZXN0IHdoaWNoCi0gKiBhbHJlYWR5IGhhcyBjb2Rl IGZvciBkZWFsaW5nIHdpdGggdGhpcy4uLgotICovCi1zdGF0aWMgdm9pZCB4ZW5mYl9rZXlfZXZl bnQodm9pZCAqb3BhcXVlLCBpbnQgc2NhbmNvZGUpCitzdGF0aWMgdm9pZCB4ZW5mYl9rZXlfZXZl bnQoRGV2aWNlU3RhdGUgKmRldiwgUWVtdUNvbnNvbGUgKnNyYywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJbnB1dEV2ZW50ICpldnQpCiB7Ci0gICAgc3RydWN0IFhlbklucHV0ICp4ZW5m YiA9IG9wYXF1ZTsKLSAgICBpbnQgZG93biA9IDE7CisgICAgc3RydWN0IFhlbklucHV0ICppbiA9 IChzdHJ1Y3QgWGVuSW5wdXQgKilkZXY7CisgICAgSW5wdXRLZXlFdmVudCAqa2V5ID0gZXZ0LT51 LmtleS5kYXRhOworICAgIGludCBxY29kZSA9IHFlbXVfaW5wdXRfa2V5X3ZhbHVlX3RvX3Fjb2Rl KGtleS0+a2V5KTsKIAotICAgIGlmIChzY2FuY29kZSA9PSAweGUwKSB7Ci0JeGVuZmItPmV4dGVu ZGVkID0gMTsKLQlyZXR1cm47Ci0gICAgfSBlbHNlIGlmIChzY2FuY29kZSAmIDB4ODApIHsKLQlz Y2FuY29kZSAmPSAweDdmOwotCWRvd24gPSAwOworICAgIGlmIChxY29kZSAmJiBrZXltYXBfcWNv ZGVbcWNvZGVdKSB7CisgICAgICAgIHhlbmZiX3NlbmRfa2V5KGluLCBrZXktPmRvd24sIGtleW1h cF9xY29kZVtxY29kZV0pOwogICAgIH0KLSAgICBpZiAoeGVuZmItPmV4dGVuZGVkKSB7Ci0Jc2Nh bmNvZGUgfD0gMHg4MDsKLQl4ZW5mYi0+ZXh0ZW5kZWQgPSAwOworfQorCitzdGF0aWMgdm9pZCB4 ZW5mYl9tb3VzZV9ldmVudChEZXZpY2VTdGF0ZSAqZGV2LCBRZW11Q29uc29sZSAqc3JjLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXRFdmVudCAqZXZ0KQoreworICAgIHN0cnVj dCBYZW5JbnB1dCAqaW4gPSAoc3RydWN0IFhlbklucHV0ICopZGV2OworICAgIElucHV0QnRuRXZl bnQgKmJ0bjsKKyAgICBJbnB1dE1vdmVFdmVudCAqbW92ZTsKKworICAgIHN3aXRjaCAoZXZ0LT50 eXBlKSB7CisgICAgY2FzZSBJTlBVVF9FVkVOVF9LSU5EX0JUTjoKKyAgICAgICAgYnRuID0gZXZ0 LT51LmJ0bi5kYXRhOworICAgICAgICBzd2l0Y2ggKGJ0bi0+YnV0dG9uKSB7CisgICAgICAgIGNh c2UgSU5QVVRfQlVUVE9OX0xFRlQ6CisgICAgICAgICAgICB4ZW5mYl9zZW5kX2tleShpbiwgYnRu LT5kb3duLCBCVE5fTEVGVCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBJTlBV VF9CVVRUT05fUklHSFQ6CisgICAgICAgICAgICB4ZW5mYl9zZW5kX2tleShpbiwgYnRuLT5kb3du LCBCVE5fUklHSFQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSU5QVVRfQlVU VE9OX01JRERMRToKKyAgICAgICAgICAgIHhlbmZiX3NlbmRfa2V5KGluLCBidG4tPmRvd24sIEJU Tl9NSURETEUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSU5QVVRfQlVUVE9O X1dIRUVMX1VQOgorICAgICAgICAgICAgaWYgKGJ0bi0+ZG93bikgeworICAgICAgICAgICAgICAg IGluLT5tb3VzZV93aGVlbC0tOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgIGNhc2UgSU5QVVRfQlVUVE9OX1dIRUVMX0RPV046CisgICAgICAgICAgICBpZiAoYnRu LT5kb3duKSB7CisgICAgICAgICAgICAgICAgaW4tPm1vdXNlX3doZWVsKys7CisgICAgICAgICAg ICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJy ZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSU5QVVRfRVZFTlRfS0lO RF9BQlM6CisgICAgICAgIG1vdmUgPSBldnQtPnUuYWJzLmRhdGE7CisgICAgICAgIGluLT5tb3Vz ZV9heGVzW21vdmUtPmF4aXNdID0gbW92ZS0+dmFsdWU7CisgICAgICAgIGJyZWFrOworICAgIGNh c2UgSU5QVVRfRVZFTlRfS0lORF9SRUw6CisgICAgICAgIG1vdmUgPSBldnQtPnUucmVsLmRhdGE7 CisgICAgICAgIGluLT5tb3VzZV9heGVzW21vdmUtPmF4aXNdICs9IG1vdmUtPnZhbHVlOworICAg ICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKICAgICB9Ci0gICAgeGVu ZmJfc2VuZF9rZXkoeGVuZmIsIGRvd24sIHNjYW5jb2RlMmxpbnV4W3NjYW5jb2RlXSk7CiB9CiAK LS8qCi0gKiBTZW5kIGEgbW91c2UgZXZlbnQgZnJvbSB0aGUgY2xpZW50IHRvIHRoZSBndWVzdCBP UwotICoKLSAqIFRoZSBRRU1VIG1vdXNlIGNhbiBiZSBpbiBlaXRoZXIgcmVsYXRpdmUsIG9yIGFi c29sdXRlIG1vZGUuCi0gKiBNb3ZlbWVudCBpcyBzZW50IHNlcGFyYXRlbHkgZnJvbSBidXR0b24g c3RhdGUsIHdoaWNoIGhhcyB0bwotICogYmUgZW5jb2RlZCBhcyB2aXJ0dWFsIGtleSBldmVudHMu IFdlIGFsc28gZG9uJ3QgYWN0dWFsbHkgZ2V0Ci0gKiBnaXZlbiBhbnkgYnV0dG9uIHVwL2Rvd24g ZXZlbnRzLCBzbyBoYXZlIHRvIHRyYWNrIGNoYW5nZXMgaW4KLSAqIHRoZSBidXR0b24gc3RhdGUu Ci0gKi8KLXN0YXRpYyB2b2lkIHhlbmZiX21vdXNlX2V2ZW50KHZvaWQgKm9wYXF1ZSwKLQkJCSAg ICAgIGludCBkeCwgaW50IGR5LCBpbnQgZHosIGludCBidXR0b25fc3RhdGUpCitzdGF0aWMgdm9p ZCB4ZW5mYl9tb3VzZV9zeW5jKERldmljZVN0YXRlICpkZXYpCiB7Ci0gICAgc3RydWN0IFhlbklu cHV0ICp4ZW5mYiA9IG9wYXF1ZTsKLSAgICBRZW11Q29uc29sZSAqY29uID0gcWVtdV9jb25zb2xl X2xvb2t1cF9ieV9pbmRleCgwKTsKLSAgICBEaXNwbGF5U3VyZmFjZSAqc3VyZmFjZTsKLSAgICBp bnQgZHcsIGRoLCBpOworICAgIHN0cnVjdCBYZW5JbnB1dCAqaW4gPSAoc3RydWN0IFhlbklucHV0 ICopZGV2OworICAgIGludCBkeCwgZHksIGR6OwogCi0gICAgaWYgKCFjb24pIHsKLSAgICAgICAg eGVuX3B2X3ByaW50ZigmeGVuZmItPmMueGVuZGV2LCAwLCAiTm8gUUVNVSBjb25zb2xlIGF2YWls YWJsZSIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGR4ID0gaW4tPm1vdXNlX2F4ZXNb SU5QVVRfQVhJU19YXTsKKyAgICBkeSA9IGluLT5tb3VzZV9heGVzW0lOUFVUX0FYSVNfWV07Cisg ICAgZHogPSBpbi0+bW91c2Vfd2hlZWw7CisKKyAgICB0cmFjZV94ZW5mYl9tb3VzZV9ldmVudChp biwgZHgsIGR5LCBkeiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbi0+YWJzX3Bv aW50ZXJfd2FudGVkKTsKKworICAgIGlmIChpbi0+YWJzX3BvaW50ZXJfd2FudGVkKSB7CisgICAg ICAgIFFlbXVDb25zb2xlICpjb24gPSBxZW11X2NvbnNvbGVfbG9va3VwX2J5X2luZGV4KDApOwor ICAgICAgICBEaXNwbGF5U3VyZmFjZSAqc3VyZmFjZTsKKyAgICAgICAgaW50IGR3LCBkaDsKKwor ICAgICAgICBpZiAoIWNvbikgeworICAgICAgICAgICAgeGVuX3B2X3ByaW50ZigmaW4tPmMueGVu ZGV2LCAwLCAiTm8gUUVNVSBjb25zb2xlIGF2YWlsYWJsZSIpOworICAgICAgICAgICAgcmV0dXJu OworICAgICAgICB9CiAKLSAgICBzdXJmYWNlID0gcWVtdV9jb25zb2xlX3N1cmZhY2UoY29uKTsK LSAgICBkdyA9IHN1cmZhY2Vfd2lkdGgoc3VyZmFjZSk7Ci0gICAgZGggPSBzdXJmYWNlX2hlaWdo dChzdXJmYWNlKTsKLQotICAgIHRyYWNlX3hlbmZiX21vdXNlX2V2ZW50KG9wYXF1ZSwgZHgsIGR5 LCBkeiwgYnV0dG9uX3N0YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbmZiLT5h YnNfcG9pbnRlcl93YW50ZWQpOwotICAgIGlmICh4ZW5mYi0+YWJzX3BvaW50ZXJfd2FudGVkKQot CXhlbmZiX3NlbmRfcG9zaXRpb24oeGVuZmIsCi0JCQkgICAgZHggKiAoZHcgLSAxKSAvIDB4N2Zm ZiwKLQkJCSAgICBkeSAqIChkaCAtIDEpIC8gMHg3ZmZmLAotCQkJICAgIGR6KTsKLSAgICBlbHNl Ci0JeGVuZmJfc2VuZF9tb3Rpb24oeGVuZmIsIGR4LCBkeSwgZHopOwotCi0gICAgZm9yIChpID0g MCA7IGkgPCA4IDsgaSsrKSB7Ci0JaW50IGxhc3REb3duID0geGVuZmItPmJ1dHRvbl9zdGF0ZSAm ICgxIDw8IGkpOwotCWludCBkb3duID0gYnV0dG9uX3N0YXRlICYgKDEgPDwgaSk7Ci0JaWYgKGRv d24gPT0gbGFzdERvd24pCi0JICAgIGNvbnRpbnVlOwotCi0JaWYgKHhlbmZiX3NlbmRfa2V5KHhl bmZiLCBkb3duLCBCVE5fTEVGVCtpKSA8IDApCi0JICAgIHJldHVybjsKKyAgICAgICAgc3VyZmFj ZSA9IHFlbXVfY29uc29sZV9zdXJmYWNlKGNvbik7CisgICAgICAgIGR3ID0gc3VyZmFjZV93aWR0 aChzdXJmYWNlKTsKKyAgICAgICAgZGggPSBzdXJmYWNlX2hlaWdodChzdXJmYWNlKTsKKworICAg ICAgICBkeCA9IGR4ICogKGR3IC0gMSkgLyAweDdmZmY7CisgICAgICAgIGR5ID0gZHkgKiAoZGgg LSAxKSAvIDB4N2ZmZjsKKworICAgICAgICB4ZW5mYl9zZW5kX3Bvc2l0aW9uKGluLCBkeCwgZHks IGR6KTsKKyAgICB9IGVsc2UgeworICAgICAgICB4ZW5mYl9zZW5kX21vdGlvbihpbiwgZHgsIGR5 LCBkeik7CisKKyAgICAgICAgaW4tPm1vdXNlX2F4ZXNbSU5QVVRfQVhJU19YXSA9IDA7CisgICAg ICAgIGluLT5tb3VzZV9heGVzW0lOUFVUX0FYSVNfWV0gPSAwOwogICAgIH0KLSAgICB4ZW5mYi0+ YnV0dG9uX3N0YXRlID0gYnV0dG9uX3N0YXRlOworCisgICAgaW4tPm1vdXNlX3doZWVsID0gMDsK IH0KIAorc3RhdGljIFFlbXVJbnB1dEhhbmRsZXIgeGVuZmJfa2V5Ym9hcmQgPSB7CisgICAgLm5h bWUgID0gIlhlbiBQVkZCIEtleWJvYXJkIiwKKyAgICAubWFzayAgPSBJTlBVVF9FVkVOVF9NQVNL X0tFWSwKKyAgICAuZXZlbnQgPSB4ZW5mYl9rZXlfZXZlbnQsCit9Oworc3RhdGljIFFlbXVJbnB1 dEhhbmRsZXIgeGVuZmJfYWJzX21vdXNlID0geworICAgIC5uYW1lICA9ICJYZW4gUFZGQiBBYnNv bHV0ZSBNb3VzZSIsCisgICAgLm1hc2sgID0gSU5QVVRfRVZFTlRfTUFTS19CVE4gfCBJTlBVVF9F VkVOVF9NQVNLX0FCUywKKyAgICAuZXZlbnQgPSB4ZW5mYl9tb3VzZV9ldmVudCwKKyAgICAuc3lu YyAgPSB4ZW5mYl9tb3VzZV9zeW5jCit9Oworc3RhdGljIFFlbXVJbnB1dEhhbmRsZXIgeGVuZmJf cmVsX21vdXNlID0geworICAgIC5uYW1lICA9ICJYZW4gUFZGQiBNb3VzZSIsCisgICAgLm1hc2sg ID0gSU5QVVRfRVZFTlRfTUFTS19CVE4gfCBJTlBVVF9FVkVOVF9NQVNLX1JFTCwKKyAgICAuZXZl bnQgPSB4ZW5mYl9tb3VzZV9ldmVudCwKKyAgICAuc3luYyAgPSB4ZW5mYl9tb3VzZV9zeW5jLAor fTsKKwogc3RhdGljIGludCBpbnB1dF9pbml0KHN0cnVjdCBYZW5EZXZpY2UgKnhlbmRldikKIHsK ICAgICB4ZW5zdG9yZV93cml0ZV9iZV9pbnQoeGVuZGV2LCAiZmVhdHVyZS1hYnMtcG9pbnRlciIs IDEpOwpAQCAtMzU2LDcgKzQ0MCw2IEBAIHN0YXRpYyBpbnQgaW5wdXRfaW5pdGlhbGlzZShzdHJ1 Y3QgWGVuRGV2aWNlICp4ZW5kZXYpCiAgICAgaWYgKHJjICE9IDApCiAJcmV0dXJuIHJjOwogCi0g ICAgcWVtdV9hZGRfa2JkX2V2ZW50X2hhbmRsZXIoeGVuZmJfa2V5X2V2ZW50LCBpbik7CiAgICAg cmV0dXJuIDA7CiB9CiAKQEAgLTM2OSwyNCArNDUyLDM0IEBAIHN0YXRpYyB2b2lkIGlucHV0X2Nv bm5lY3RlZChzdHJ1Y3QgWGVuRGV2aWNlICp4ZW5kZXYpCiAgICAgICAgIGluLT5hYnNfcG9pbnRl cl93YW50ZWQgPSAwOwogICAgIH0KIAotICAgIGlmIChpbi0+cW1vdXNlKSB7Ci0gICAgICAgIHFl bXVfcmVtb3ZlX21vdXNlX2V2ZW50X2hhbmRsZXIoaW4tPnFtb3VzZSk7CisgICAgaWYgKGluLT5x a2JkKSB7CisgICAgICAgIHFlbXVfaW5wdXRfaGFuZGxlcl91bnJlZ2lzdGVyKGluLT5xa2JkKTsK KyAgICB9CisgICAgaWYgKGluLT5xbW91KSB7CisgICAgICAgIHFlbXVfaW5wdXRfaGFuZGxlcl91 bnJlZ2lzdGVyKGluLT5xbW91KTsKICAgICB9CiAgICAgdHJhY2VfeGVuZmJfaW5wdXRfY29ubmVj dGVkKHhlbmRldiwgaW4tPmFic19wb2ludGVyX3dhbnRlZCk7Ci0gICAgaW4tPnFtb3VzZSA9IHFl bXVfYWRkX21vdXNlX2V2ZW50X2hhbmRsZXIoeGVuZmJfbW91c2VfZXZlbnQsIGluLAotCQkJCQkg ICAgICBpbi0+YWJzX3BvaW50ZXJfd2FudGVkLAotCQkJCQkgICAgICAiWGVuIFBWRkIgTW91c2Ui KTsKKworICAgIGluLT5xa2JkID0gcWVtdV9pbnB1dF9oYW5kbGVyX3JlZ2lzdGVyKChEZXZpY2VT dGF0ZSAqKWluLCAmeGVuZmJfa2V5Ym9hcmQpOworICAgIGluLT5xbW91ID0gcWVtdV9pbnB1dF9o YW5kbGVyX3JlZ2lzdGVyKChEZXZpY2VTdGF0ZSAqKWluLAorICAgICAgICAoaW4tPmFic19wb2lu dGVyX3dhbnRlZCA/ICZ4ZW5mYl9hYnNfbW91c2UgOiAmeGVuZmJfcmVsX21vdXNlKSk7CisKKyAg ICBxZW11X2lucHV0X2hhbmRsZXJfYWN0aXZhdGUoaW4tPnFrYmQpOworICAgIHFlbXVfaW5wdXRf aGFuZGxlcl9hY3RpdmF0ZShpbi0+cW1vdSk7CiB9CiAKIHN0YXRpYyB2b2lkIGlucHV0X2Rpc2Nv bm5lY3Qoc3RydWN0IFhlbkRldmljZSAqeGVuZGV2KQogewogICAgIHN0cnVjdCBYZW5JbnB1dCAq aW4gPSBjb250YWluZXJfb2YoeGVuZGV2LCBzdHJ1Y3QgWGVuSW5wdXQsIGMueGVuZGV2KTsKIAot ICAgIGlmIChpbi0+cW1vdXNlKSB7Ci0JcWVtdV9yZW1vdmVfbW91c2VfZXZlbnRfaGFuZGxlcihp bi0+cW1vdXNlKTsKLQlpbi0+cW1vdXNlID0gTlVMTDsKKyAgICBpZiAoaW4tPnFrYmQpIHsKKyAg ICAgICAgcWVtdV9pbnB1dF9oYW5kbGVyX3VucmVnaXN0ZXIoaW4tPnFrYmQpOworICAgICAgICBp bi0+cWtiZCA9IE5VTEw7CisgICAgfQorICAgIGlmIChpbi0+cW1vdSkgeworICAgICAgICBxZW11 X2lucHV0X2hhbmRsZXJfdW5yZWdpc3Rlcihpbi0+cW1vdSk7CisgICAgICAgIGluLT5xbW91ID0g TlVMTDsKICAgICB9Ci0gICAgcWVtdV9hZGRfa2JkX2V2ZW50X2hhbmRsZXIoTlVMTCwgTlVMTCk7 CiAgICAgY29tbW9uX3VuYmluZCgmaW4tPmMpOwogfQogCi0tIAoyLjEuNAoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZl bAo=