From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH for-next v3 19/22] x86: clean up pv/traps.c Date: Thu, 18 May 2017 18:10:01 +0100 Message-ID: <20170518171004.27204-20-wei.liu2@citrix.com> References: <20170518171004.27204-1-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dBP2S-0004Iy-Mh for xen-devel@lists.xenproject.org; Thu, 18 May 2017 17:16:36 +0000 In-Reply-To: <20170518171004.27204-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org Rml4IGNvZGluZyBzdHlsZSBpc3N1ZXMuIE5vIGZ1bmN0aW9uYWwgY2hhbmdlLgoKU2lnbmVkLW9m Zi1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvcHYv dHJhcHMuYyB8IDYyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni9wdi90 cmFwcy5jCmluZGV4IGRiOTJmNmQ1MjAuLmVhNWI1NDMyNDcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9wdi90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi90cmFwcy5jCkBAIC0xNDgsNiAr MTQ4LDcgQEAgdm9pZCBwdl9pbmplY3RfZXZlbnQoY29uc3Qgc3RydWN0IHg4Nl9ldmVudCAqZXZl bnQpCiAgICAgYm9vbCB1c2VfZXJyb3JfY29kZTsKIAogICAgIEFTU0VSVCh2ZWN0b3IgPT0gZXZl bnQtPnZlY3Rvcik7IC8qIENvbmZpcm0gbm8gdHJ1bmNhdGlvbi4gKi8KKwogICAgIGlmICggZXZl bnQtPnR5cGUgPT0gWDg2X0VWRU5UVFlQRV9IV19FWENFUFRJT04gKQogICAgIHsKICAgICAgICAg QVNTRVJUKHZlY3RvciA8IDMyKTsKQEAgLTE1OCw2ICsxNTksNyBAQCB2b2lkIHB2X2luamVjdF9l dmVudChjb25zdCBzdHJ1Y3QgeDg2X2V2ZW50ICpldmVudCkKICAgICAgICAgQVNTRVJUKGV2ZW50 LT50eXBlID09IFg4Nl9FVkVOVFRZUEVfU1dfSU5URVJSVVBUKTsKICAgICAgICAgdXNlX2Vycm9y X2NvZGUgPSBmYWxzZTsKICAgICB9CisKICAgICBpZiAoIHVzZV9lcnJvcl9jb2RlICkKICAgICAg ICAgQVNTRVJUKGVycm9yX2NvZGUgIT0gWDg2X0VWRU5UX05PX0VDKTsKICAgICBlbHNlCkBAIC0y MTcsNiArMjE5LDcgQEAgaW50IHNldF9ndWVzdF9tYWNoaW5lY2hlY2tfdHJhcGJvdW5jZSh2b2lk KQogCiAgICAgcHZfaW5qZWN0X2h3X2V4Y2VwdGlvbihUUkFQX21hY2hpbmVfY2hlY2ssIFg4Nl9F VkVOVF9OT19FQyk7CiAgICAgdGItPmZsYWdzICY9IH5UQkZfRVhDRVBUSU9OOyAvKiBub3QgbmVl ZGVkIGZvciBNQ0UgZGVsaXZlcnkgcGF0aCAqLworCiAgICAgcmV0dXJuICFudWxsX3RyYXBfYm91 bmNlKHYsIHRiKTsKIH0KIApAQCAtMjI4LDggKzIzMSwxMCBAQCBpbnQgc2V0X2d1ZXN0X25taV90 cmFwYm91bmNlKHZvaWQpCiB7CiAgICAgc3RydWN0IHZjcHUgKnYgPSBjdXJyZW50OwogICAgIHN0 cnVjdCB0cmFwX2JvdW5jZSAqdGIgPSAmdi0+YXJjaC5wdl92Y3B1LnRyYXBfYm91bmNlOworCiAg ICAgcHZfaW5qZWN0X2h3X2V4Y2VwdGlvbihUUkFQX25taSwgWDg2X0VWRU5UX05PX0VDKTsKICAg ICB0Yi0+ZmxhZ3MgJj0gflRCRl9FWENFUFRJT047IC8qIG5vdCBuZWVkZWQgZm9yIE5NSSBkZWxp dmVyeSBwYXRoICovCisKICAgICByZXR1cm4gIW51bGxfdHJhcF9ib3VuY2UodiwgdGIpOwogfQog CkBAIC0zMDEsMTUgKzMwNiwxNyBAQCBpbnQgc2VuZF9ndWVzdF90cmFwKHN0cnVjdCBkb21haW4g KmQsIHVpbnQxNl90IHZjcHVpZCwgdW5zaWduZWQgaW50IHRyYXBfbnIpCiAgICAgY2FzZSBUUkFQ X25taToKICAgICAgICAgaWYgKCBjbXB4Y2hncHRyKCZzdC0+dmNwdSwgTlVMTCwgdikgKQogICAg ICAgICAgICAgcmV0dXJuIC1FQlVTWTsKKwogICAgICAgICBpZiAoICF0ZXN0X2FuZF9zZXRfYm9v bCh2LT5ubWlfcGVuZGluZykgKQogICAgICAgICB7Ci0gICAgICAgICAgICAgICBzdC0+ZG9tYWlu ID0gZDsKLSAgICAgICAgICAgICAgIHN0LT5wcm9jZXNzb3IgPSB2LT5wcm9jZXNzb3I7CisgICAg ICAgICAgICBzdC0+ZG9tYWluID0gZDsKKyAgICAgICAgICAgIHN0LT5wcm9jZXNzb3IgPSB2LT5w cm9jZXNzb3I7CiAKLSAgICAgICAgICAgICAgIC8qIG5vdCBzYWZlIHRvIHdha2UgdXAgYSB2Y3B1 IGhlcmUgKi8KLSAgICAgICAgICAgICAgIHJhaXNlX3NvZnRpcnEoTk1JX01DRV9TT0ZUSVJRKTsK LSAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgLyogbm90IHNhZmUgdG8gd2Fr ZSB1cCBhIHZjcHUgaGVyZSAqLworICAgICAgICAgICAgcmFpc2Vfc29mdGlycShOTUlfTUNFX1NP RlRJUlEpOworICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KKwogICAgICAgICBzdC0+ dmNwdSA9IE5VTEw7CiAgICAgICAgIGJyZWFrOwogCkBAIC0zMTgsMTcgKzMyNSwxOSBAQCBpbnQg c2VuZF9ndWVzdF90cmFwKHN0cnVjdCBkb21haW4gKmQsIHVpbnQxNl90IHZjcHVpZCwgdW5zaWdu ZWQgaW50IHRyYXBfbnIpCiAgICAgICAgICAgICByZXR1cm4gLUVCVVNZOwogCiAgICAgICAgIC8q IFdlIGFyZSBjYWxsZWQgYnkgdGhlIG1hY2hpbmUgY2hlY2sgKGV4Y2VwdGlvbiBvciBwb2xsaW5n KSBoYW5kbGVycwotICAgICAgICAgKiBvbiB0aGUgcGh5c2ljYWwgQ1BVIHRoYXQgcmVwb3J0ZWQg YSBtYWNoaW5lIGNoZWNrIGVycm9yLiAqLworICAgICAgICAgKiBvbiB0aGUgcGh5c2ljYWwgQ1BV IHRoYXQgcmVwb3J0ZWQgYSBtYWNoaW5lIGNoZWNrIGVycm9yLgorICAgICAgICAgKi8KIAogICAg ICAgICBpZiAoICF0ZXN0X2FuZF9zZXRfYm9vbCh2LT5tY2VfcGVuZGluZykgKQogICAgICAgICB7 Ci0gICAgICAgICAgICAgICAgc3QtPmRvbWFpbiA9IGQ7Ci0gICAgICAgICAgICAgICAgc3QtPnBy b2Nlc3NvciA9IHYtPnByb2Nlc3NvcjsKKyAgICAgICAgICAgIHN0LT5kb21haW4gPSBkOworICAg ICAgICAgICAgc3QtPnByb2Nlc3NvciA9IHYtPnByb2Nlc3NvcjsKIAotICAgICAgICAgICAgICAg IC8qIG5vdCBzYWZlIHRvIHdha2UgdXAgYSB2Y3B1IGhlcmUgKi8KLSAgICAgICAgICAgICAgICBy YWlzZV9zb2Z0aXJxKE5NSV9NQ0VfU09GVElSUSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDA7 CisgICAgICAgICAgICAvKiBub3Qgc2FmZSB0byB3YWtlIHVwIGEgdmNwdSBoZXJlICovCisgICAg ICAgICAgICByYWlzZV9zb2Z0aXJxKE5NSV9NQ0VfU09GVElSUSk7CisgICAgICAgICAgICByZXR1 cm4gMDsKICAgICAgICAgfQorCiAgICAgICAgIHN0LT52Y3B1ID0gTlVMTDsKICAgICAgICAgYnJl YWs7CiAgICAgfQpAQCAtMzQxLDYgKzM1MCw3IEBAIHZvaWQgdG9nZ2xlX2d1ZXN0X21vZGUoc3Ry dWN0IHZjcHUgKnYpCiB7CiAgICAgaWYgKCBpc19wdl8zMmJpdF92Y3B1KHYpICkKICAgICAgICAg cmV0dXJuOworCiAgICAgaWYgKCBjcHVfaGFzX2ZzZ3NiYXNlICkKICAgICB7CiAgICAgICAgIGlm ICggdi0+YXJjaC5mbGFncyAmIFRGX2tlcm5lbF9tb2RlICkKQEAgLTM0OCw2ICszNTgsNyBAQCB2 b2lkIHRvZ2dsZV9ndWVzdF9tb2RlKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICBlbHNlCiAgICAg ICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuZ3NfYmFzZV91c2VyID0gX19yZGdzYmFzZSgpOwogICAg IH0KKwogICAgIHYtPmFyY2guZmxhZ3MgXj0gVEZfa2VybmVsX21vZGU7CiAgICAgYXNtIHZvbGF0 aWxlICggInN3YXBncyIgKTsKICAgICB1cGRhdGVfY3IzKHYpOwpAQCAtMzYyLDggKzM3Myw3IEBA IHZvaWQgdG9nZ2xlX2d1ZXN0X21vZGUoc3RydWN0IHZjcHUgKnYpCiAgICAgICAgIHYtPmFyY2gu cHZfdmNwdS5uZWVkX3VwZGF0ZV9ydW5zdGF0ZV9hcmVhID0gMDsKIAogICAgIGlmICggdi0+YXJj aC5wdl92Y3B1LnBlbmRpbmdfc3lzdGVtX3RpbWUudmVyc2lvbiAmJgotICAgICAgICAgdXBkYXRl X3NlY29uZGFyeV9zeXN0ZW1fdGltZSh2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmdi0+YXJjaC5wdl92Y3B1LnBlbmRpbmdfc3lzdGVtX3RpbWUpICkKKyAgICAgICAg IHVwZGF0ZV9zZWNvbmRhcnlfc3lzdGVtX3RpbWUodiwgJnYtPmFyY2gucHZfdmNwdS5wZW5kaW5n X3N5c3RlbV90aW1lKSApCiAgICAgICAgIHYtPmFyY2gucHZfdmNwdS5wZW5kaW5nX3N5c3RlbV90 aW1lLnZlcnNpb24gPSAwOwogfQogCkBAIC00MjgsOCArNDM4LDggQEAgdm9pZCBpbml0X2ludDgw X2RpcmVjdF90cmFwKHN0cnVjdCB2Y3B1ICp2KQogICAgIHN0cnVjdCB0cmFwX2luZm8gKnRpID0g JnYtPmFyY2gucHZfdmNwdS50cmFwX2N0eHRbMHg4MF07CiAgICAgc3RydWN0IHRyYXBfYm91bmNl ICp0YiA9ICZ2LT5hcmNoLnB2X3ZjcHUuaW50ODBfYm91bmNlOwogCi0gICAgdGItPmNzICAgID0g dGktPmNzOwotICAgIHRiLT5laXAgICA9IHRpLT5hZGRyZXNzOworICAgIHRiLT5jcyAgPSB0aS0+ Y3M7CisgICAgdGItPmVpcCA9IHRpLT5hZGRyZXNzOwogCiAgICAgaWYgKCBudWxsX3RyYXBfYm91 bmNlKHYsIHRiKSApCiAgICAgICAgIHRiLT5mbGFncyA9IDA7CkBAIC00NDgsMjcgKzQ1OCwzMSBA QCBzdGF0aWMgbG9uZyByZWdpc3Rlcl9ndWVzdF9jYWxsYmFjayhzdHJ1Y3QgY2FsbGJhY2tfcmVn aXN0ZXIgKnJlZykKICAgICBzd2l0Y2ggKCByZWctPnR5cGUgKQogICAgIHsKICAgICBjYXNlIENB TExCQUNLVFlQRV9ldmVudDoKLSAgICAgICAgdi0+YXJjaC5wdl92Y3B1LmV2ZW50X2NhbGxiYWNr X2VpcCAgICA9IHJlZy0+YWRkcmVzczsKKyAgICAgICAgdi0+YXJjaC5wdl92Y3B1LmV2ZW50X2Nh bGxiYWNrX2VpcCA9IHJlZy0+YWRkcmVzczsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENB TExCQUNLVFlQRV9mYWlsc2FmZToKICAgICAgICAgdi0+YXJjaC5wdl92Y3B1LmZhaWxzYWZlX2Nh bGxiYWNrX2VpcCA9IHJlZy0+YWRkcmVzczsKKwogICAgICAgICBpZiAoIHJlZy0+ZmxhZ3MgJiBD QUxMQkFDS0ZfbWFza19ldmVudHMgKQogICAgICAgICAgICAgc2V0X2JpdChfVkdDRl9mYWlsc2Fm ZV9kaXNhYmxlc19ldmVudHMsCiAgICAgICAgICAgICAgICAgICAgICZ2LT5hcmNoLnZnY19mbGFn cyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNsZWFyX2JpdChfVkdDRl9mYWlsc2FmZV9k aXNhYmxlc19ldmVudHMsCiAgICAgICAgICAgICAgICAgICAgICAgJnYtPmFyY2gudmdjX2ZsYWdz KTsKKwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ0FMTEJBQ0tUWVBFX3N5c2NhbGw6CiAg ICAgICAgIHYtPmFyY2gucHZfdmNwdS5zeXNjYWxsX2NhbGxiYWNrX2VpcCAgPSByZWctPmFkZHJl c3M7CisKICAgICAgICAgaWYgKCByZWctPmZsYWdzICYgQ0FMTEJBQ0tGX21hc2tfZXZlbnRzICkK ICAgICAgICAgICAgIHNldF9iaXQoX1ZHQ0Zfc3lzY2FsbF9kaXNhYmxlc19ldmVudHMsCiAgICAg ICAgICAgICAgICAgICAgICZ2LT5hcmNoLnZnY19mbGFncyk7CiAgICAgICAgIGVsc2UKICAgICAg ICAgICAgIGNsZWFyX2JpdChfVkdDRl9zeXNjYWxsX2Rpc2FibGVzX2V2ZW50cywKICAgICAgICAg ICAgICAgICAgICAgICAmdi0+YXJjaC52Z2NfZmxhZ3MpOworCiAgICAgICAgIGJyZWFrOwogCiAg ICAgY2FzZSBDQUxMQkFDS1RZUEVfc3lzY2FsbDMyOgpAQCAtNjc0LDEzICs2ODgsMTYgQEAgdm9p ZCBjb21wYXRfc2hvd19ndWVzdF9zdGFjayhzdHJ1Y3QgdmNwdSAqdiwgY29uc3Qgc3RydWN0IGNw dV91c2VyX3JlZ3MgKnJlZ3MsCiAgICAgICAgIHByaW50aygiICUwOHgiLCBhZGRyKTsKICAgICAg ICAgc3RhY2srKzsKICAgICB9CisKICAgICBpZiAoIG1hc2sgPT0gUEFHRV9TSVpFICkKICAgICB7 CiAgICAgICAgIEJVSUxEX0JVR19PTihQQUdFX1NJWkUgPT0gU1RBQ0tfU0laRSk7CiAgICAgICAg IHVubWFwX2RvbWFpbl9wYWdlKHN0YWNrKTsKICAgICB9CisKICAgICBpZiAoIGkgPT0gMCApCiAg ICAgICAgIHByaW50aygiU3RhY2sgZW1wdHkuIik7CisKICAgICBwcmludGsoIlxuIik7CiB9CiAK QEAgLTcwMiw3ICs3MTksNyBAQCB1bnNpZ25lZCBpbnQgY29tcGF0X2lyZXQodm9pZCkKIAogICAg IC8qIFJlc3RvcmUgQ1MgYW5kIEVJUC4gKi8KICAgICBpZiAoIHVubGlrZWx5KF9fZ2V0X3VzZXIo cmVncy0+ZWlwLCAodTMyICopcmVncy0+cnNwICsgMSkpIHx8Ci0gICAgICAgIHVubGlrZWx5KF9f Z2V0X3VzZXIocmVncy0+Y3MsICh1MzIgKilyZWdzLT5yc3AgKyAyKSkgKQorICAgICAgICAgdW5s aWtlbHkoX19nZXRfdXNlcihyZWdzLT5jcywgKHUzMiAqKXJlZ3MtPnJzcCArIDIpKSApCiAgICAg ewogICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluKTsKICAgICAgICAgcmV0dXJuIDA7CkBA IC03NDAsNiArNzU3LDcgQEAgdW5zaWduZWQgaW50IGNvbXBhdF9pcmV0KHZvaWQpCiAKICAgICAg ICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgIlZNODYgbW9kZSB1bmF2YWlsYWJsZSAoa3NwOiUwOFgt PiUwOFgpXG4iLAogICAgICAgICAgICAgICAgICByZWdzLT5lc3AsIGtzcCk7CisKICAgICAgICAg aWYgKCBrc3AgPCByZWdzLT5lc3AgKQogICAgICAgICB7CiAgICAgICAgICAgICBmb3IgKGkgPSAx OyBpIDwgMTA7ICsraSkKQEAgLTc1NiwyNCArNzc0LDI5IEBAIHVuc2lnbmVkIGludCBjb21wYXRf aXJldCh2b2lkKQogICAgICAgICAgICAgICAgIHJjIHw9IF9fcHV0X3VzZXIoeCwgKHUzMiAqKSh1 bnNpZ25lZCBsb25nKWtzcCArIGkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CisKICAgICAg ICAgaWYgKCByYyApCiAgICAgICAgIHsKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaCh2LT5kb21h aW4pOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KKwogICAgICAgICByZWdzLT5l c3AgPSBrc3A7CiAgICAgICAgIHJlZ3MtPnNzID0gdi0+YXJjaC5wdl92Y3B1Lmtlcm5lbF9zczsK IAogICAgICAgICB0aSA9ICZ2LT5hcmNoLnB2X3ZjcHUudHJhcF9jdHh0W1RSQVBfZ3BfZmF1bHRd OwogICAgICAgICBpZiAoIFRJX0dFVF9JRih0aSkgKQogICAgICAgICAgICAgZWZsYWdzICY9IH5Y ODZfRUZMQUdTX0lGOworCiAgICAgICAgIHJlZ3MtPmVmbGFncyAmPSB+KFg4Nl9FRkxBR1NfVk18 WDg2X0VGTEFHU19SRnwKICAgICAgICAgICAgICAgICAgICAgICAgICAgWDg2X0VGTEFHU19OVHxY ODZfRUZMQUdTX1RGKTsKKwogICAgICAgICBpZiAoIHVubGlrZWx5KF9fcHV0X3VzZXIoMCwgKHUz MiAqKXJlZ3MtPnJzcCkpICkKICAgICAgICAgewogICAgICAgICAgICAgZG9tYWluX2NyYXNoKHYt PmRvbWFpbik7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQorCiAgICAgICAgIHJl Z3MtPmVpcCA9IHRpLT5hZGRyZXNzOwogICAgICAgICByZWdzLT5jcyA9IHRpLT5jczsKICAgICB9 CkBAIC04MDQsOCArODI3LDcgQEAgdW5zaWduZWQgaW50IGNvbXBhdF9pcmV0KHZvaWQpCiAgICAg cmV0dXJuIHJlZ3MtPmVheDsKIH0KIAotc3RhdGljIGxvbmcgY29tcGF0X3JlZ2lzdGVyX2d1ZXN0 X2NhbGxiYWNrKAotICAgIHN0cnVjdCBjb21wYXRfY2FsbGJhY2tfcmVnaXN0ZXIgKnJlZykKK3N0 YXRpYyBsb25nIGNvbXBhdF9yZWdpc3Rlcl9ndWVzdF9jYWxsYmFjayhzdHJ1Y3QgY29tcGF0X2Nh bGxiYWNrX3JlZ2lzdGVyICpyZWcpCiB7CiAgICAgbG9uZyByZXQgPSAwOwogICAgIHN0cnVjdCB2 Y3B1ICp2ID0gY3VycmVudDsKQEAgLTgyMiwxMiArODQ0LDE0IEBAIHN0YXRpYyBsb25nIGNvbXBh dF9yZWdpc3Rlcl9ndWVzdF9jYWxsYmFjaygKICAgICBjYXNlIENBTExCQUNLVFlQRV9mYWlsc2Fm ZToKICAgICAgICAgdi0+YXJjaC5wdl92Y3B1LmZhaWxzYWZlX2NhbGxiYWNrX2NzICA9IHJlZy0+ YWRkcmVzcy5jczsKICAgICAgICAgdi0+YXJjaC5wdl92Y3B1LmZhaWxzYWZlX2NhbGxiYWNrX2Vp cCA9IHJlZy0+YWRkcmVzcy5laXA7CisKICAgICAgICAgaWYgKCByZWctPmZsYWdzICYgQ0FMTEJB Q0tGX21hc2tfZXZlbnRzICkKICAgICAgICAgICAgIHNldF9iaXQoX1ZHQ0ZfZmFpbHNhZmVfZGlz YWJsZXNfZXZlbnRzLAogICAgICAgICAgICAgICAgICAgICAmdi0+YXJjaC52Z2NfZmxhZ3MpOwog ICAgICAgICBlbHNlCiAgICAgICAgICAgICBjbGVhcl9iaXQoX1ZHQ0ZfZmFpbHNhZmVfZGlzYWJs ZXNfZXZlbnRzLAogICAgICAgICAgICAgICAgICAgICAgICZ2LT5hcmNoLnZnY19mbGFncyk7CisK ICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENBTExCQUNLVFlQRV9zeXNjYWxsMzI6Ci0tIAoy LjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK