From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v5 01/28] HYPERCALL_version_op. New hypercall mirroring XENVER_ but sane. Date: Thu, 24 Mar 2016 16:00:13 -0400 Message-ID: <1458849640-22588-2-git-send-email-konrad.wilk@oracle.com> References: <1458849640-22588-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ajBRa-0007Qi-HA for xen-devel@lists.xenproject.org; Thu, 24 Mar 2016 20:01:22 +0000 In-Reply-To: <1458849640-22588-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, ross.lagerwall@citrix.com, konrad@kernel.org, andrew.cooper3@citrix.com, mpohlack@amazon.de, sasha.levin@oracle.com Cc: Wei Liu , Stefano Stabellini , Konrad Rzeszutek Wilk , Ian Jackson , Julien Grall , Stefano Stabellini , Jan Beulich , Keir Fraser , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org VGhpcyBoeXBlcmNhbGwgbWlycm9ycyB0aGUgWEVOVkVSXyBpbiB0aGF0IGl0IGhhcyBzaW1pbGFy IGZ1bmN0aW9uYWxpdHkuCkhvd2V2ZXIgaXQgaXMgZGVzaWduZWQgZGlmZmVyZW50bHk6CiAtIE5v IGNvbXBhdCBsYXllci4gVGhlIGRhdGEgc3RydWN0dXJlcyBhcmUgdGhlIHNhbWUgc2l6ZSBvbiAz MgogICBhcyBvbiA2NC1iaXQuCiAtIFRoZSBoeXBlcmNhbGwgYWNjZXB0cyB0aHJlZSBhcmd1bWVu dHMgLSB0aGUgY29tbWFuZCwgcG9pbnRlciB0bwogICBhbiBidWZmZXIsIGFuZCB0aGUgbGVuZ3Ro IG9mIHRoZSBidWZmZXIuCiAtIEVhY2ggc3ViLW9wcyBjYW4gYmUgInByb2JlZCIgZm9yIHNpemUg YnkgcmV0dXJuaW5nIHRoZSBzaXplIG9mCiAgIGJ1ZmZlciB0aGF0IHdpbGwgYmUgbmVlZGVkIC0g aWYgdGhlIGJ1ZmZlciBpcyBOVUxMLgogLSBTdWJvcHMgY2FuIGNvbXBsZXRlIGV2ZW4gaWYgdGhl IGJ1ZmZlciBpcyB0b28gc21hbGwgLSB0cnVuY2F0ZWQKICAgZGF0YSB3aWxsIGJlIGZpbGxlZCBh bmQgaHlwZXJjYWxsIHdpbGwgcmV0dXJuIC1FTk9CVUZTLgogLSBWRVJTSU9OX2NvbW1hbmRsaW5l LCBWRVJTSU9OX2NoYW5nZXNldCBhcmUgcHJpdmlsZWdlZC4KIC0gVGhlcmUgaXMgbm8gWEVOVkVS X2NvbXBpbGVfaW5mbyBlcXVpdmFsZW50LgogLSBUaGUgaHlwZXJjYWxsIGNhbiByZXR1cm4gLUVQ RVJNIGFuZCB0b29sc3RhY2svT1NlcyBhcmUgZXhwZWN0ZWQKICAgdG8gZGVhbCB3aXRoLiBIb3dl dmVyIHRoZXJlIGFyZSB0aHJlZSBzdWJvcHM6IFhFTl9WRVJTSU9OX3ZlcnNpb24sCiAgIFhFTl9W RVJTSU9OX3BsYXRmb3JtX3BhcmFtZXRlcnMgYW5kIFhFTl9WRVJTSU9OX2dldF9mZWF0dXJlcwog ICB0aGF0IHdpbGwgYWx3YXlzIHJldHVybiBhbiB2YWx1ZSBhcyBndWVzdHMgY2Fubm90IHN1cnZp dmUgd2l0aG91dCB0aGVtLgoKV2hpbGUgd2UgY29tYmluZSBzb21lIG9mIHRoZSBjb21tb24gY29k ZSBiZXR3ZWVuIFhFTlZFUl8gYW5kIFZFUlNJT05fCnRha2UgdGhlIGxpYmVydHkgb2YgbW92aW5n IHBhZV9leHRlbmRlZF9jcjMgaW4geDg2IGFyZWEuCgpTdWdnZXN0ZWQtYnk6IEFuZHJldyBDb29w ZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVz enV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQWNrZWQtYnk6IERhbmllbCBEZSBH cmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PiBbWFNNIGJpdHNdCgotLS0KQ2M6IERhbmllbCBE ZSBHcmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNr c29uQGV1LmNpdHJpeC5jb20+CkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm8uc3RhYmVs bGluaUBldS5jaXRyaXguY29tPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6 IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFuby5zdGFiZWxsaW5pQGNpdHJpeC5jb20+CkNjOiBK dWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYzogS2VpciBGcmFzZXIgPGtlaXJA eGVuLm9yZz4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Cgp2MS12MzogV2FzIG5vdCBwYXJ0IG9m IHRoZSBzZXJpZXMuCnY0OiBOZXcgcG9zdGluZy4KdjU6IFJlbW92ZSBtZW1zZXQgYW5kIHVzZSB7 fS4gVHdlYWsgY29weV90b19ndWVzdCBhbmQgY2FwYWJpbGl0aWVzX2luZm8sCiAgICBhZGQgQVNT RVJUKHN6KSBwZXIgQW5kcmV3J3MgcmV2aWV3LiBBZGQgY2FjaGVkPTEgYmFjayBpbi4KICAgIFBl ciBKYW4sIHMvVkVSU0lPTl9PUC9WRVJTSU9OLywgc3F1YXNoIHNpemUgY2hlY2sgd2l0aCBkb192 ZXJzaW9uX29wLAogICAgdXBkYXRlIHRoZSBjb21tZW50cy4gRHJvcHBlZCBBbmRyZXcncyBSZXZp ZXctYnkuIEF0ZSBuZXdsaW5lcy4KICAgIEFkZGVkIGluaXRjYWxsIHRvIGd1YXJkIGFnYWluc3Qg Z2FyYmFnZSBiZWluZyBzZXQgaW4gY2FjaGVkIGRhdGEuCiAgICBGb2xkZWQgY29kZSBwb3B1bGF0 aW5nIGNhY2hlIGluIF9faW5pdC4gcy9jaGFyL2NoYXJbXS8gaW4gcHVibGljLmgKLS0tCi0tLQog dG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9tb2R1bGVzL3hlbi94ZW4udGUgfCAgIDcgKy0KIHhl bi9hcmNoL2FybS90cmFwcy5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHhlbi9h cmNoL3g4Ni9odm0vaHZtLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHhlbi9hcmNo L3g4Ni94ODZfNjQvY29tcGF0L2VudHJ5LlMgICAgICAgICAgIHwgICAyICsKIHhlbi9hcmNoL3g4 Ni94ODZfNjQvZW50cnkuUyAgICAgICAgICAgICAgICAgIHwgICAyICsKIHhlbi9jb21tb24vY29t cGF0L2tlcm5lbC5jICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHhlbi9jb21tb24va2VybmVs LmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjEzICsrKysrKysrKysrKysrKysrKysrKyst LS0tLQogeGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmggICAgICAgICAgICAgICAgfCAgIDIg KwogeGVuL2luY2x1ZGUvcHVibGljL3ZlcnNpb24uaCAgICAgICAgICAgICAgICAgfCAgNzAgKysr KysrKystCiB4ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmggICAgICAgICAgICAgICAgICAgICB8ICAg MSArCiB4ZW4vaW5jbHVkZS94ZW4vaHlwZXJjYWxsLmggICAgICAgICAgICAgICAgICB8ICAgNCAr CiB4ZW4vaW5jbHVkZS94c20vZHVtbXkuaCAgICAgICAgICAgICAgICAgICAgICB8ICAyMSArKysK IHhlbi9pbmNsdWRlL3hzbS94c20uaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHhl bi94c20vZHVtbXkuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHhlbi94 c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDM1ICsrKysrCiB4ZW4v eHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyAgICAgICAgICB8ICAyMSArKy0KIDE2IGZp bGVzIGNoYW5nZWQsIDM0NiBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS90b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMveGVuL3hlbi50ZSBiL3Rvb2xz L2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRlCmluZGV4IGUxNzRlNDguLjdl NjljZTkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4v eGVuLnRlCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRl CkBAIC03NCwxMSArNzQsMTIgQEAgYWxsb3cgZG9tMF90IHhlbl90OnhlbjIgewogICAgIGdldF9z eW1ib2wKIH07CiAKLSMgQWxsb3cgZG9tMCB0byB1c2UgYWxsIFhFTlZFUl8gc3Vib3BzIHRoYXQg aGF2ZSBjaGVja3MuCisjIEFsbG93IGRvbTAgdG8gdXNlIGFsbCBYRU5WRVJfIHN1Ym9wcyBhbmQg VkVSU0lPTiBzdWJvcHMgdGhhdCBoYXZlIGNoZWNrcy4KICMgTm90ZSB0aGF0IGRvbTAgaXMgcGFy dCBvZiBkb21haW5fdHlwZSBzbyB0aGlzIGhhcyBkdXBsaWNhdGVzLgogYWxsb3cgZG9tMF90IHhl bl90OnZlcnNpb24gewogICAgIHhlbl9leHRyYXZlcnNpb24geGVuX2NvbXBpbGVfaW5mbyB4ZW5f Y2FwYWJpbGl0aWVzCiAgICAgeGVuX2NoYW5nZXNldCB4ZW5fcGFnZXNpemUgeGVuX2d1ZXN0X2hh bmRsZSB4ZW5fY29tbWFuZGxpbmUKKyAgICBleHRyYXZlcnNpb24gY2FwYWJpbGl0aWVzIGNoYW5n ZXNldCBwYWdlc2l6ZSBndWVzdF9oYW5kbGUgY29tbWFuZGxpbmUKIH07CiAKIGFsbG93IGRvbTBf dCB4ZW5fdDptbXUgbWVtb3J5bWFwOwpAQCAtMTQ1LDEwICsxNDYsMTIgQEAgaWYgKGd1ZXN0X3dy aXRlY29uc29sZSkgewogIyBwbXVfY3RybCBpcyBmb3IpCiBhbGxvdyBkb21haW5fdHlwZSB4ZW5f dDp4ZW4yIHBtdV91c2U7CiAKLSMgRm9yIG5vcm1hbCBndWVzdHMgYWxsIHBvc3NpYmxlIGV4Y2Vw dCBYRU5WRVJfY29tbWFuZGxpbmUuCisjIEZvciBub3JtYWwgZ3Vlc3RzIGFsbCBwb3NzaWJsZSBl eGNlcHQgWEVOVkVSX2NvbW1hbmRsaW5lLCBWRVJTSU9OX2NoYW5nZXNldCwKKyMgYW5kIFZFUlNJ T05fY29tbWFuZGxpbmUKIGFsbG93IGRvbWFpbl90eXBlIHhlbl90OnZlcnNpb24gewogICAgIHhl bl9leHRyYXZlcnNpb24geGVuX2NvbXBpbGVfaW5mbyB4ZW5fY2FwYWJpbGl0aWVzCiAgICAgeGVu X2NoYW5nZXNldCB4ZW5fcGFnZXNpemUgeGVuX2d1ZXN0X2hhbmRsZQorICAgIGV4dHJhdmVyc2lv biBjYXBhYmlsaXRpZXMgcGFnZXNpemUgZ3Vlc3RfaGFuZGxlCiB9OwogCiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdHJhcHMuYyBiL3hlbi9hcmNoL2Fy bS90cmFwcy5jCmluZGV4IDgzNzQ0ZTguLjMxZDIxMTUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2Fy bS90cmFwcy5jCisrKyBiL3hlbi9hcmNoL2FybS90cmFwcy5jCkBAIC0xMjM1LDYgKzEyMzUsNyBA QCBzdGF0aWMgYXJtX2h5cGVyY2FsbF90IGFybV9oeXBlcmNhbGxfdGFibGVbXSA9IHsKICAgICBI WVBFUkNBTEwobXVsdGljYWxsLCAyKSwKICAgICBIWVBFUkNBTEwocGxhdGZvcm1fb3AsIDEpLAog ICAgIEhZUEVSQ0FMTF9BUk0odmNwdV9vcCwgMyksCisgICAgSFlQRVJDQUxMKHZlcnNpb25fb3As IDMpLAogfTsKIAogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0v aHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDgwZDU5ZmYuLmYxNmI1OTAgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9o dm0uYwpAQCAtNTMyMiw2ICs1MzIyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAgQ09N UEFUX0NBTEwocGxhdGZvcm1fb3ApLAogICAgIENPTVBBVF9DQUxMKG1tdWV4dF9vcCksCiAgICAg SFlQRVJDQUxMKHhlbnBtdV9vcCksCisgICAgSFlQRVJDQUxMKHZlcnNpb25fb3ApLAogICAgIEhZ UEVSQ0FMTChhcmNoXzEpCiB9OwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L2Nv bXBhdC9lbnRyeS5TIGIveGVuL2FyY2gveDg2L3g4Nl82NC9jb21wYXQvZW50cnkuUwppbmRleCAz M2UyYzEyLi5mZDI1ZTg0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC9l bnRyeS5TCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L2VudHJ5LlMKQEAgLTM5NCw2 ICszOTQsNyBAQCBFTlRSWShjb21wYXRfaHlwZXJjYWxsX3RhYmxlKQogICAgICAgICAucXVhZCBk b190bWVtX29wCiAgICAgICAgIC5xdWFkIGRvX25pX2h5cGVyY2FsbCAgICAgICAgICAgLyogcmVz ZXJ2ZWQgZm9yIFhlbkNsaWVudCAqLwogICAgICAgICAucXVhZCBkb194ZW5wbXVfb3AgICAgICAg ICAgICAgIC8qIDQwICovCisgICAgICAgIC5xdWFkIGRvX3ZlcnNpb25fb3AKICAgICAgICAgLnJl cHQgX19IWVBFUlZJU09SX2FyY2hfMC0oKC4tY29tcGF0X2h5cGVyY2FsbF90YWJsZSkvOCkKICAg ICAgICAgLnF1YWQgY29tcGF0X25pX2h5cGVyY2FsbAogICAgICAgICAuZW5kcgpAQCAtNDQ1LDYg KzQ0Niw3IEBAIEVOVFJZKGNvbXBhdF9oeXBlcmNhbGxfYXJnc190YWJsZSkKICAgICAgICAgLmJ5 dGUgMSAvKiBkb190bWVtX29wICAgICAgICAgICAgICAgKi8KICAgICAgICAgLmJ5dGUgMCAvKiBy ZXNlcnZlZCBmb3IgWGVuQ2xpZW50ICAgKi8KICAgICAgICAgLmJ5dGUgMiAvKiBkb194ZW5wbXVf b3AgICAgICAgICAgICAgKi8gIC8qIDQwICovCisgICAgICAgIC5ieXRlIDMgLyogZG9fdmVyc2lv bl9vcCAgICAgICAgICAgICovCiAgICAgICAgIC5yZXB0IF9fSFlQRVJWSVNPUl9hcmNoXzAtKC4t Y29tcGF0X2h5cGVyY2FsbF9hcmdzX3RhYmxlKQogICAgICAgICAuYnl0ZSAwIC8qIGNvbXBhdF9u aV9oeXBlcmNhbGwgICAgICAqLwogICAgICAgICAuZW5kcgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L3g4Nl82NC9lbnRyeS5TIGIveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TCmluZGV4IDA3 ZWYwOTYuLmIwZTcyNTcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUwor KysgYi94ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMKQEAgLTczMCw2ICs3MzAsNyBAQCBFTlRS WShoeXBlcmNhbGxfdGFibGUpCiAgICAgICAgIC5xdWFkIGRvX3RtZW1fb3AKICAgICAgICAgLnF1 YWQgZG9fbmlfaHlwZXJjYWxsICAgICAgIC8qIHJlc2VydmVkIGZvciBYZW5DbGllbnQgKi8KICAg ICAgICAgLnF1YWQgZG9feGVucG11X29wICAgICAgICAgIC8qIDQwICovCisgICAgICAgIC5xdWFk IGRvX3ZlcnNpb25fb3AKICAgICAgICAgLnJlcHQgX19IWVBFUlZJU09SX2FyY2hfMC0oKC4taHlw ZXJjYWxsX3RhYmxlKS84KQogICAgICAgICAucXVhZCBkb19uaV9oeXBlcmNhbGwKICAgICAgICAg LmVuZHIKQEAgLTc4MSw2ICs3ODIsNyBAQCBFTlRSWShoeXBlcmNhbGxfYXJnc190YWJsZSkKICAg ICAgICAgLmJ5dGUgMSAvKiBkb190bWVtX29wICAgICAgICAgICAqLwogICAgICAgICAuYnl0ZSAw IC8qIHJlc2VydmVkIGZvciBYZW5DbGllbnQgKi8KICAgICAgICAgLmJ5dGUgMiAvKiBkb194ZW5w bXVfb3AgICAgICAgICAqLyAgLyogNDAgKi8KKyAgICAgICAgLmJ5dGUgMyAvKiBkb192ZXJzaW9u X29wICAgICAgICAqLwogICAgICAgICAucmVwdCBfX0hZUEVSVklTT1JfYXJjaF8wLSguLWh5cGVy Y2FsbF9hcmdzX3RhYmxlKQogICAgICAgICAuYnl0ZSAwIC8qIGRvX25pX2h5cGVyY2FsbCAgICAg ICovCiAgICAgICAgIC5lbmRyCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2NvbXBhdC9rZXJuZWwu YyBiL3hlbi9jb21tb24vY29tcGF0L2tlcm5lbC5jCmluZGV4IGRmOTNmZGQuLjdhN2NhNTMgMTAw NjQ0Ci0tLSBhL3hlbi9jb21tb24vY29tcGF0L2tlcm5lbC5jCisrKyBiL3hlbi9jb21tb24vY29t cGF0L2tlcm5lbC5jCkBAIC0zOSw2ICszOSw4IEBAIENIRUNLX1RZUEUoY2FwYWJpbGl0aWVzX2lu Zm8pOwogCiBDSEVDS19UWVBFKGRvbWFpbl9oYW5kbGUpOwogCitDSEVDS19UWVBFKHZlcnNpb25f b3BfdmFsKTsKKwogI2RlZmluZSB4ZW5ubWlfY2FsbGJhY2sgY29tcGF0X25taV9jYWxsYmFjawog I2RlZmluZSB4ZW5ubWlfY2FsbGJhY2tfdCBjb21wYXRfbm1pX2NhbGxiYWNrX3QKIApkaWZmIC0t Z2l0IGEveGVuL2NvbW1vbi9rZXJuZWwuYyBiL3hlbi9jb21tb24va2VybmVsLmMKaW5kZXggYTRh M2MzNi4uNTYxNmMwNiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9rZXJuZWwuYworKysgYi94ZW4v Y29tbW9uL2tlcm5lbC5jCkBAIC0yMjEsNiArMjIxLDQ3IEBAIHZvaWQgX19pbml0IGRvX2luaXRj YWxscyh2b2lkKQogCiAjZW5kaWYKIAorc3RhdGljIGludCBnZXRfZmVhdHVyZXMoc3RydWN0IGRv bWFpbiAqZCwgeGVuX2ZlYXR1cmVfaW5mb190ICpmaSkKK3sKKyAgICBzd2l0Y2ggKCBmaS0+c3Vi bWFwX2lkeCApCisgICAgeworICAgIGNhc2UgMDoKKyAgICAgICAgZmktPnN1Ym1hcCA9ICgxVSA8 PCBYRU5GRUFUX21lbW9yeV9vcF92bm9kZV9zdXBwb3J0ZWQpOworICAgICAgICBpZiAoIHBhZ2lu Z19tb2RlX3RyYW5zbGF0ZShkKSApCisgICAgICAgICAgICBmaS0+c3VibWFwIHw9CisgICAgICAg ICAgICAgICAgKDFVIDw8IFhFTkZFQVRfd3JpdGFibGVfcGFnZV90YWJsZXMpIHwKKyAgICAgICAg ICAgICAgICAoMVUgPDwgWEVORkVBVF9hdXRvX3RyYW5zbGF0ZWRfcGh5c21hcCk7CisgICAgICAg IGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKKyAgICAgICAgICAgIGZpLT5zdWJtYXAgfD0g MVUgPDwgWEVORkVBVF9kb20wOworI2lmZGVmIENPTkZJR19YODYKKyAgICAgICAgaWYgKCBWTV9B U1NJU1QoZCwgcGFlX2V4dGVuZGVkX2NyMykgKQorICAgICAgICAgICAgZmktPnN1Ym1hcCB8PSAo MVUgPDwgWEVORkVBVF9wYWVfcGdkaXJfYWJvdmVfNGdiKTsKKyAgICAgICAgc3dpdGNoICggZC0+ Z3Vlc3RfdHlwZSApCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBndWVzdF90eXBlX3B2OgorICAg ICAgICAgICAgZmktPnN1Ym1hcCB8PSAoMVUgPDwgWEVORkVBVF9tbXVfcHRfdXBkYXRlX3ByZXNl cnZlX2FkKSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX2hpZ2ht ZW1fYXNzaXN0KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX2du dHRhYl9tYXBfYXZhaWxfYml0cyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBn dWVzdF90eXBlX3B2aDoKKyAgICAgICAgICAgIGZpLT5zdWJtYXAgfD0gKDFVIDw8IFhFTkZFQVRf aHZtX3NhZmVfcHZjbG9jaykgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVO RkVBVF9zdXBlcnZpc29yX21vZGVfa2VybmVsKSB8CisgICAgICAgICAgICAgICAgICAgICAgICAg ICgxVSA8PCBYRU5GRUFUX2h2bV9jYWxsYmFja192ZWN0b3IpOworICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgIGNhc2UgZ3Vlc3RfdHlwZV9odm06CisgICAgICAgICAgICBmaS0+c3VibWFwIHw9 ICgxVSA8PCBYRU5GRUFUX2h2bV9zYWZlX3B2Y2xvY2spIHwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgKDFVIDw8IFhFTkZFQVRfaHZtX2NhbGxiYWNrX3ZlY3RvcikgfAorICAgICAgICAgICAg ICAgICAgICAgICAgICAoMVUgPDwgWEVORkVBVF9odm1fcGlycXMpOworICAgICAgICAgICBicmVh azsKKyAgICAgICAgfQorI2VuZGlmCisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAg ICAgIHJldHVybiAtRUlOVkFMOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKwogLyoKICAqIFNp bXBsZSBoeXBlcmNhbGxzLgogICovCkBAIC0yOTgsNDcgKzMzOSwxNCBAQCBETyh4ZW5fdmVyc2lv bikoaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgY2FzZSBY RU5WRVJfZ2V0X2ZlYXR1cmVzOgogICAgIHsKICAgICAgICAgeGVuX2ZlYXR1cmVfaW5mb190IGZp OwotICAgICAgICBzdHJ1Y3QgZG9tYWluICpkID0gY3VycmVudC0+ZG9tYWluOworICAgICAgICBp bnQgcmM7CiAKICAgICAgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmZpLCBhcmcsIDEpICkKICAg ICAgICAgICAgIHJldHVybiAtRUZBVUxUOwogCi0gICAgICAgIHN3aXRjaCAoIGZpLnN1Ym1hcF9p ZHggKQotICAgICAgICB7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgIGZpLnN1Ym1hcCA9 ICgxVSA8PCBYRU5GRUFUX21lbW9yeV9vcF92bm9kZV9zdXBwb3J0ZWQpOwotICAgICAgICAgICAg aWYgKCBWTV9BU1NJU1QoZCwgcGFlX2V4dGVuZGVkX2NyMykgKQotICAgICAgICAgICAgICAgIGZp LnN1Ym1hcCB8PSAoMVUgPDwgWEVORkVBVF9wYWVfcGdkaXJfYWJvdmVfNGdiKTsKLSAgICAgICAg ICAgIGlmICggcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpICkKLSAgICAgICAgICAgICAgICBmaS5z dWJtYXAgfD0gCi0gICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX3dyaXRhYmxlX3Bh Z2VfdGFibGVzKSB8Ci0gICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX2F1dG9fdHJh bnNsYXRlZF9waHlzbWFwKTsKLSAgICAgICAgICAgIGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQp ICkKLSAgICAgICAgICAgICAgICBmaS5zdWJtYXAgfD0gMVUgPDwgWEVORkVBVF9kb20wOwotI2lm ZGVmIENPTkZJR19YODYKLSAgICAgICAgICAgIHN3aXRjaCAoIGQtPmd1ZXN0X3R5cGUgKQotICAg ICAgICAgICAgewotICAgICAgICAgICAgY2FzZSBndWVzdF90eXBlX3B2OgotICAgICAgICAgICAg ICAgIGZpLnN1Ym1hcCB8PSAoMVUgPDwgWEVORkVBVF9tbXVfcHRfdXBkYXRlX3ByZXNlcnZlX2Fk KSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX2hpZ2htZW1f YXNzaXN0KSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX2du dHRhYl9tYXBfYXZhaWxfYml0cyk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg ICBjYXNlIGd1ZXN0X3R5cGVfcHZoOgotICAgICAgICAgICAgICAgIGZpLnN1Ym1hcCB8PSAoMVUg PDwgWEVORkVBVF9odm1fc2FmZV9wdmNsb2NrKSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgxVSA8PCBYRU5GRUFUX3N1cGVydmlzb3JfbW9kZV9rZXJuZWwpIHwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfaHZtX2NhbGxiYWNrX3ZlY3Rvcik7Ci0g ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIGd1ZXN0X3R5cGVfaHZtOgot ICAgICAgICAgICAgICAgIGZpLnN1Ym1hcCB8PSAoMVUgPDwgWEVORkVBVF9odm1fc2FmZV9wdmNs b2NrKSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX2h2bV9j YWxsYmFja192ZWN0b3IpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhF TkZFQVRfaHZtX3BpcnFzKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0K LSNlbmRpZgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg ICByZXR1cm4gLUVJTlZBTDsKLSAgICAgICAgfQorICAgICAgICByYyA9IGdldF9mZWF0dXJlcyhj dXJyZW50LT5kb21haW4sICZmaSk7CisgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgcmV0 dXJuIHJjOwogCiAgICAgICAgIGlmICggX19jb3B5X3RvX2d1ZXN0KGFyZywgJmZpLCAxKSApCiAg ICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKQEAgLTM4MSw2ICszODksMTIzIEBAIERPKHhlbl92 ZXJzaW9uKShpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICBy ZXR1cm4gLUVOT1NZUzsKIH0KIAorLyogQ29tcHV0ZWQgYnkga2VybmVsX2NhY2hlX2luaXQuICov CitzdGF0aWMgeGVuX2NhcGFiaWxpdGllc19pbmZvX3QgX19yZWFkX21vc3RseSBjYWNoZWRfY2Fw Oworc3RhdGljIHVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IGNhY2hlZF9jYXBfbGVuOworCisv KgorICogU2ltaWxhciB0byBIWVBFUlZJU09SX3hlbl92ZXJzaW9uIGJ1dCB3aXRoIGEgc2FuZSBp bnRlcmZhY2UKKyAqIChoYXMgYSBsZW5ndGgsIG9uZSBjYW4gcHJvYmUgZm9yIHRoZSBsZW5ndGgp IGFuZCB3aXRoIG9uZSBsZXNzIHN1Yi1vcHM6CisgKiBtaXNzaW5nIFhFTlZFUl9jb21waWxlX2lu Zm8uCisgKi8KK0RPKHZlcnNpb25fb3ApKHVuc2lnbmVkIGludCBjbWQsIFhFTl9HVUVTVF9IQU5E TEVfUEFSQU0odm9pZCkgYXJnLAorICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGxlbikKK3sK KyAgICB1bmlvbiB7CisgICAgICAgIHhlbl92ZXJzaW9uX29wX3ZhbF90IHZhbDsKKyAgICAgICAg eGVuX2ZlYXR1cmVfaW5mb190IGZpOworICAgIH0gdSA9IHt9OworICAgIHVuc2lnbmVkIGludCBz eiA9IDA7CisgICAgY29uc3Qgdm9pZCAqcHRyID0gTlVMTDsKKyAgICBpbnQgcmMgPSB4c21fdmVy c2lvbl9vcChYU01fT1RIRVIsIGNtZCk7CisKKyAgICAvKiBXZSBjYW4gc2FmZWx5IHJldHVybiAt RVBFUk0hICovCisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiByYzsKKworICAgIC8qCisg ICAgICogVGhlIEhZUEVSVklTT1JfeGVuX3ZlcnNpb24gZGlmZmVycyBpbiB0aGF0IHNvbWUgcmV0 dXJuIHRoZSB2YWx1ZSwKKyAgICAgKiBhbmQgc29tZSBjb3B5IGl0IG9uIGJhY2sgb24gYXJndW1l bnQuIFdlIGZvbGxvdyB0aGUgc2FtZSBydWxlIGZvciBhbGwKKyAgICAgKiBzdWItb3BzOiByZXR1 cm4gMCBvbiBzdWNjZXNzLCBwb3NpdGl2ZSB2YWx1ZSBvZiBieXRlcyByZXR1cm5lZCwgYW5kCisg ICAgICogYWx3YXlzIGNvcHkgdGhlIHJlc3VsdCBpbiBhcmcuIFllZXkgc2FuaXR5IQorICAgICAq LworICAgIHN3aXRjaCAoIGNtZCApCisgICAgeworICAgIGNhc2UgWEVOX1ZFUlNJT05fdmVyc2lv bjoKKyAgICAgICAgc3ogPSBzaXplb2YoeGVuX3ZlcnNpb25fb3BfdmFsX3QpOworICAgICAgICB1 LnZhbCA9ICh4ZW5fbWFqb3JfdmVyc2lvbigpIDw8IDE2KSB8IHhlbl9taW5vcl92ZXJzaW9uKCk7 CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lPTl9leHRyYXZlcnNpb246Cisg ICAgICAgIHN6ID0gc3RybGVuKHhlbl9leHRyYV92ZXJzaW9uKCkpICsgMTsKKyAgICAgICAgcHRy ID0geGVuX2V4dHJhX3ZlcnNpb24oKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFhFTl9W RVJTSU9OX2NhcGFiaWxpdGllczoKKyAgICAgICAgc3ogPSBjYWNoZWRfY2FwX2xlbjsKKyAgICAg ICAgcHRyID0gY2FjaGVkX2NhcDsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFhFTl9WRVJT SU9OX2NoYW5nZXNldDoKKyAgICAgICAgc3ogPSBzdHJsZW4oeGVuX2NoYW5nZXNldCgpKSArIDE7 CisgICAgICAgIHB0ciA9IHhlbl9jaGFuZ2VzZXQoKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBj YXNlIFhFTl9WRVJTSU9OX3BsYXRmb3JtX3BhcmFtZXRlcnM6CisgICAgICAgIHN6ID0gc2l6ZW9m KHhlbl92ZXJzaW9uX29wX3ZhbF90KTsKKyAgICAgICAgdS52YWwgPSBIWVBFUlZJU09SX1ZJUlRf U1RBUlQ7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lPTl9nZXRfZmVhdHVy ZXM6CisgICAgICAgIHN6ID0gc2l6ZW9mKHhlbl9mZWF0dXJlX2luZm9fdCk7CisKKyAgICAgICAg aWYgKCBndWVzdF9oYW5kbGVfaXNfbnVsbChhcmcpICkKKyAgICAgICAgICAgIGJyZWFrOworCisg ICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZ1LmZpLCBhcmcsIDEpICkKKyAgICAgICAgewor ICAgICAgICAgICAgcmMgPSAtRUZBVUxUOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K KyAgICAgICAgcmMgPSBnZXRfZmVhdHVyZXMoY3VycmVudC0+ZG9tYWluLCAmdS5maSk7CisgICAg ICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lPTl9wYWdlc2l6ZToKKyAgICAgICAgc3og PSBzaXplb2YoeGVuX3ZlcnNpb25fb3BfdmFsX3QpOworICAgICAgICB1LnZhbCA9IFBBR0VfU0la RTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFhFTl9WRVJTSU9OX2d1ZXN0X2hhbmRsZToK KyAgICAgICAgc3ogPSBBUlJBWV9TSVpFKGN1cnJlbnQtPmRvbWFpbi0+aGFuZGxlKTsKKyAgICAg ICAgcHRyID0gY3VycmVudC0+ZG9tYWluLT5oYW5kbGU7CisgICAgICAgIGJyZWFrOworCisgICAg Y2FzZSBYRU5fVkVSU0lPTl9jb21tYW5kbGluZToKKyAgICAgICAgc3ogPSBzdHJsZW4oc2F2ZWRf Y21kbGluZSkgKyAxOworICAgICAgICBwdHIgPSBzYXZlZF9jbWRsaW5lOworICAgICAgICBicmVh azsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJjID0gLUVOT1NZUzsKKyAgICB9CisKKyAgICBp ZiAoIHJjICkKKyAgICAgICAgcmV0dXJuIHJjOworCisgICAgLyoKKyAgICAgKiBUaGlzIGh5cGVy Y2FsbCBhbHNvIGFsbG93cyB0aGUgY2xpZW50IHRvIHByb2JlLiBJZiBpdCBwcm92aWRlcworICAg ICAqIGEgTlVMTCBhcmcgd2Ugd2lsbCByZXR1cm4gdGhlIHNpemUgb2YgdGhlIHNwYWNlIGl0IGhh cyB0bworICAgICAqIGFsbG9jYXRlIGZvciB0aGUgc3BlY2lmaWMgc3ViLW9wLgorICAgICAqLwor ICAgIEFTU0VSVChzeik7CisgICAgaWYgKCBndWVzdF9oYW5kbGVfaXNfbnVsbChhcmcpICkKKyAg ICAgICAgcmV0dXJuIHN6OworCisgICAgaWYgKCAhcmMgKQorICAgIHsKKyAgICAgICAgdW5zaWdu ZWQgaW50IGJ5dGVzID0gbWluKHN6LCBsZW4pOworCisgICAgICAgIGlmICggY29weV90b19ndWVz dChhcmcsIHB0ciA/IDogJnUsIGJ5dGVzKSApCisgICAgICAgICAgICByYyA9IC1FRkFVTFQ7CisK KyAgICAgICAgLyogV2UgcmV0dXJuIGxlbiAodHJ1bmNhdGUpIHdvcnRoIG9mIGRhdGEgZXZlbiBp ZiB3ZSBmYWlsLiAqLworICAgICAgICBpZiAoICFyYyAmJiBzeiA+IGxlbiApCisgICAgICAgICAg ICByYyA9IC1FTk9CVUZTOworICAgIH0KKworICAgIHJldHVybiByYyA9PSAwID8gc3ogOiByYzsK K30KKwogRE8obm1pX29wKSh1bnNpZ25lZCBpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFN KHZvaWQpIGFyZykKIHsKICAgICBzdHJ1Y3QgeGVubm1pX2NhbGxiYWNrIGNiOwpAQCAtNDE4LDYg KzU0MywyMCBAQCBETyhuaV9oeXBlcmNhbGwpKHZvaWQpCiAgICAgcmV0dXJuIC1FTk9TWVM7CiB9 CiAKK3N0YXRpYyBpbnQgX19pbml0IGtlcm5lbF9jYWNoZV9pbml0KHZvaWQpCit7CisgICAgLyoK KyAgICAgKiBQcmUtYWxsb2NhdGUgdGhlIGNhY2hlIHNvIHdlIGRvIG5vdCBoYXZlIHRvIHdvcnJ5 IGFib3V0CisgICAgICogc2ltdWx0YW5lb3VzIGludm9jYXRpb25zIG9uIHNhZmVfc3RyY2F0IGJ5 IGd1ZXN0cyBhbmQgdGhlIGNhY2hlCisgICAgICogZGF0YSBiZWNvbWluZyBnYXJiYWdlLgorICAg ICAqLworICAgIGFyY2hfZ2V0X3hlbl9jYXBzKCZjYWNoZWRfY2FwKTsKKyAgICBjYWNoZWRfY2Fw X2xlbiA9IHN0cmxlbihjYWNoZWRfY2FwKSArIDE7CisKKyAgICByZXR1cm4gMDsKK30KK19faW5p dGNhbGwoa2VybmVsX2NhY2hlX2luaXQpOworCiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICog bW9kZTogQwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2FyY2gtYXJtLmggYi94ZW4v aW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaAppbmRleCA4NzBiYzNiLi41ZjkwNzE4IDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaAorKysgYi94ZW4vaW5jbHVkZS9wdWJs aWMvYXJjaC1hcm0uaApAQCAtMTI4LDYgKzEyOCw4IEBACiAgKiAgICAqIFZDUFVPUF9yZWdpc3Rl cl92Y3B1X2luZm8KICAqICAgICogVkNQVU9QX3JlZ2lzdGVyX3J1bnN0YXRlX21lbW9yeV9hcmVh CiAgKgorICogIEhZUEVSVklTT1JfdmVyc2lvbl9vcAorICogICBBbGwgZ2VuZXJpYyBzdWItb3Bl cmF0aW9ucwogICoKICAqIE90aGVyIG5vdGVzIG9uIHRoZSBBUk0gQUJJOgogICoKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL3B1YmxpYy92ZXJzaW9uLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvdmVy c2lvbi5oCmluZGV4IDI0YTU4MmYuLmQ3MWVjNWIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1 YmxpYy92ZXJzaW9uLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3ZlcnNpb24uaApAQCAtMzAs NyArMzAsMTQgQEAKIAogI2luY2x1ZGUgInhlbi5oIgogCi0vKiBOQi4gQWxsIG9wcyByZXR1cm4g emVybyBvbiBzdWNjZXNzLCBleGNlcHQgWEVOVkVSX3t2ZXJzaW9uLHBhZ2VzaXplfSAqLworLyoK KyAqIFRoZXJlIGFyZSB0d28gaHlwZXJjYWxscyBtZW50aW9uZWQgaW4gaGVyZS4gVGhlIFhFTlZF Ul8gYXJlIGZvcgorICogSFlQRVJDQUxMX3hlbl92ZXJzaW9uICgxNyksIHdoaWxlIFZFUlNJT05f IGFyZSBmb3IgdGhlCisgKiBIWVBFUkNBTExfdmVyc2lvbl9vcCAoNDEpLgorICoKKyAqIFRoZSBz dWJvcHMgYXJlIHZlcnkgc2ltaWxhciBleGNlcHQgdGhhdCB0aGUgbGF0ZXIgaHlwZXJjYWxsIGhh cyBhCisgKiBzYW5lIGludGVyZmFjZS4KKyAqLwogCiAvKiBhcmcgPT0gTlVMTDsgcmV0dXJucyBt YWpvcjptaW5vciAoMTY6MTYpLiAqLwogI2RlZmluZSBYRU5WRVJfdmVyc2lvbiAgICAgIDAKQEAg LTg3LDYgKzk0LDY3IEBAIHR5cGVkZWYgc3RydWN0IHhlbl9mZWF0dXJlX2luZm8geGVuX2ZlYXR1 cmVfaW5mb190OwogI2RlZmluZSBYRU5WRVJfY29tbWFuZGxpbmUgOQogdHlwZWRlZiBjaGFyIHhl bl9jb21tYW5kbGluZV90WzEwMjRdOwogCisvKgorICogVGhlIEhZUEVSQ0FMTF92ZXJzaW9uX29w IGhhcyBhIHNldCBvZiBzdWItb3BzIHdoaWNoIG1pcnJvciB0aGUKKyAqIHN1Yi1vcHMgb2YgSFlQ RVJDQUxMX3hlbl92ZXJzaW9uLiBIb3dldmVyIHRoaXMgaHlwZXJjYWxsIGRpZmZlcnMKKyAqIHJh ZGljYWxseSBmcm9tIHRoZSBmb3JtZXI6CisgKiAgLSBJdCByZXR1cm5zIHRoZSBhbW91bnQgb2Yg Ynl0ZXMgcmV0dXJuZWQuCisgKiAgLSBJdCB3aWxsIHJldHVybiAtWEVOX0VQRVJNIGlmIHRoZSBn dWVzdCBpcyBub3QgcGVybWl0dGVkCisgKiAgICAoQWxiZWl0IFhFTl9WRVJTSU9OX3ZlcnNpb24s IFhFTl9WRVJTSU9OX3BsYXRmb3JtX3BhcmFtZXRlcnMsIGFuZAorICogICAgWEVOX1ZFUlNJT05f Z2V0X2ZlYXR1cmVzIHdpbGwgYWx3YXlzIHJldHVybiBhbiB2YWx1ZSBhcyBndWVzdCBjYW5ub3QK KyAqICAgIHN1cnZpdmUgd2l0aG91dCB0aGlzIGluZm9ybWF0aW9uKS4KKyAqICAtIEl0IHdpbGwg cmV0dXJuIHRoZSByZXF1ZXN0ZWQgZGF0YSBpbiBhcmcuCisgKiAgLSBJdCByZXF1aXJlcyBhbiB0 aGlyZCBhcmd1bWVudCAobGVuKSBmb3IgdGhlIGxlbmd0aCBvZiB0aGUKKyAqICAgIGFyZy4gTmF0 dXJhbGx5IHRoZSBhcmcgaGFzIHRvIGZpdCB0aGUgcmVxdWVzdGVkIGRhdGEgb3RoZXJ3aXNlCisg KiAgICAtWEVOX0VOT0JVRlMgaXMgcmV0dXJuZWQuCisgKgorICogSXQgYWxzbyBvZmZlcnMgYW4g bWVjaGFuaXNtIHRvIHByb2JlIGZvciB0aGUgYW1vdW50IG9mIGJ5dGVzIGFuCisgKiBzdWItb3Ag d2lsbCByZXF1aXJlLiBIYXZpbmcgdGhlIGFyZyBoYXZlIGFuIE5VTEwgaGFuZGxlIHdpbGwKKyAq IHJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlcXVlc3RlZCBmb3IgdGhlIG9wZXJhdGlvbi4g T3IgYW4KKyAqIG5lZ2F0aXZlIHZhbHVlIGlmIGFuIGVycm9yIGlzIGVuY291bnRlcmVkLgorICov CisKK3R5cGVkZWYgdWludDY0X3QgeGVuX3ZlcnNpb25fb3BfdmFsX3Q7CitERUZJTkVfWEVOX0dV RVNUX0hBTkRMRSh4ZW5fdmVyc2lvbl9vcF92YWxfdCk7CisKKy8qCisgKiBhcmcgPT0geGVuX3Zl cnNpb25fb3BfdmFsX3QuIEVuY29kZWQgYXMgbWFqb3I6bWlub3IgKDMxLi4xNjoxNS4uMCksIHdo aWxlCisgKiA2My4uMzIgYXJlIHplcm8uCisgKi8KKyNkZWZpbmUgWEVOX1ZFUlNJT05fdmVyc2lv biAgICAgICAgICAgICAwCisKKy8qIGFyZyA9PSBjaGFyW10uIENvbnRhaW5zIE5VTCB0ZXJtaW5h dGVkIHV0Zi04IHN0cmluZy4gKi8KKyNkZWZpbmUgWEVOX1ZFUlNJT05fZXh0cmF2ZXJzaW9uICAg ICAgICAxCisKKy8qIGFyZyA9PSBjaGFyW10uIENvbnRhaW5zIE5VTCB0ZXJtaW5hdGVkIHV0Zi04 IHN0cmluZy4gKi8KKyNkZWZpbmUgWEVOX1ZFUlNJT05fY2FwYWJpbGl0aWVzICAgICAgICAzCisK Ky8qIGFyZyA9PSBjaGFyW10uIENvbnRhaW5zIE5VTCB0ZXJtaW5hdGVkIHV0Zi04IHN0cmluZy4g Ki8KKyNkZWZpbmUgWEVOX1ZFUlNJT05fY2hhbmdlc2V0ICAgICAgICAgICA0CisKKy8qIGFyZyA9 PSB4ZW5fdmVyc2lvbl9vcF92YWxfdC4gKi8KKyNkZWZpbmUgWEVOX1ZFUlNJT05fcGxhdGZvcm1f cGFyYW1ldGVycyA1CisKKy8qCisgKiBhcmcgPSB4ZW5fZmVhdHVyZV9pbmZvX3QgLSBzaGFyZXMg dGhlIHNhbWUgc3RydWN0dXJlCisgKiBhcyB0aGUgWEVOVkVSX2dldF9mZWF0dXJlcy4KKyAqLwor I2RlZmluZSBYRU5fVkVSU0lPTl9nZXRfZmVhdHVyZXMgICAgICAgIDYKKworLyogYXJnID09IHhl bl92ZXJzaW9uX29wX3ZhbF90LiAqLworI2RlZmluZSBYRU5fVkVSU0lPTl9wYWdlc2l6ZSAgICAg ICAgICAgIDcKKworLyoKKyAqIGFyZyA9PSB2b2lkLgorICoKKyAqIFRoZSB0b29sc3RhY2sgZmls bHMgaXQgb3V0IGZvciBndWVzdCBjb25zdW1wdGlvbi4gSXQgaXMgaW50ZW5kZWQgdG8gaG9sZAor ICogdGhlIFVVSUQgb2YgdGhlIGd1ZXN0LgorICovCisjZGVmaW5lIFhFTl9WRVJTSU9OX2d1ZXN0 X2hhbmRsZSAgICAgICAgOAorCisvKiBhcmcgPSBjaGFyW10uIENvbnRhaW5zIE5VTCB0ZXJtaW5h dGVkIHV0Zi04IHN0cmluZy4gKi8KKyNkZWZpbmUgWEVOX1ZFUlNJT05fY29tbWFuZGxpbmUgICAg ICAgICA5CisKICNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfVkVSU0lPTl9IX18gKi8KIAogLyoKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy94 ZW4uaAppbmRleCA2NGJhN2FiLi4xYTk5OTI5IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJs aWMveGVuLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3hlbi5oCkBAIC0xMTUsNiArMTE1LDcg QEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Vsb25nX3QpOwogI2RlZmluZSBfX0hZUEVS VklTT1JfdG1lbV9vcCAgICAgICAgICAgICAgMzgKICNkZWZpbmUgX19IWVBFUlZJU09SX3hjX3Jl c2VydmVkX29wICAgICAgIDM5IC8qIHJlc2VydmVkIGZvciBYZW5DbGllbnQgKi8KICNkZWZpbmUg X19IWVBFUlZJU09SX3hlbnBtdV9vcCAgICAgICAgICAgIDQwCisjZGVmaW5lIF9fSFlQRVJWSVNP Ul92ZXJzaW9uX29wICAgICAgICAgICA0MSAvKiBzdXBlcnNlZGVzIHhlbl92ZXJzaW9uICgxNykg Ki8KIAogLyogQXJjaGl0ZWN0dXJlLXNwZWNpZmljIGh5cGVyY2FsbCBkZWZpbml0aW9ucy4gKi8K ICNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfMCAgICAgICAgICAgICAgIDQ4CmRpZmYgLS1naXQg YS94ZW4vaW5jbHVkZS94ZW4vaHlwZXJjYWxsLmggYi94ZW4vaW5jbHVkZS94ZW4vaHlwZXJjYWxs LmgKaW5kZXggMGM4YWUwZS4uZThkMmI4MSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2h5 cGVyY2FsbC5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9oeXBlcmNhbGwuaApAQCAtMTQ3LDYgKzE0 NywxMCBAQCBkb194ZW5vcHJvZl9vcChpbnQgb3AsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9p ZCkgYXJnKTsKIGV4dGVybiBsb25nCiBkb194ZW5wbXVfb3AodW5zaWduZWQgaW50IG9wLCBYRU5f R1VFU1RfSEFORExFX1BBUkFNKHhlbl9wbXVfcGFyYW1zX3QpIGFyZyk7CiAKK2V4dGVybiBsb25n Citkb192ZXJzaW9uX29wKHVuc2lnbmVkIGludCBjbWQsCisgICAgWEVOX0dVRVNUX0hBTkRMRV9Q QVJBTSh2b2lkKSBhcmcsIHVuc2lnbmVkIGludCBsZW4pOworCiAjaWZkZWYgQ09ORklHX0NPTVBB VAogCiBleHRlcm4gaW50CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaCBiL3hl bi9pbmNsdWRlL3hzbS9kdW1teS5oCmluZGV4IGFiYmUyODIuLmU1ZGFkMzUgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCkBA IC03NTEsMyArNzUxLDI0IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCB4c21feGVuX3ZlcnNpb24g KFhTTV9ERUZBVUxUX0FSRyB1aW50MzJfdCBvcCkKICAgICAgICAgcmV0dXJuIHhzbV9kZWZhdWx0 X2FjdGlvbihYU01fUFJJViwgY3VycmVudC0+ZG9tYWluLCBOVUxMKTsKICAgICB9CiB9CisKK3N0 YXRpYyBYU01fSU5MSU5FIGludCB4c21fdmVyc2lvbl9vcCAoWFNNX0RFRkFVTFRfQVJHIHVpbnQz Ml90IG9wKQoreworICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9PVEhFUik7CisgICAgc3dpdGNo ICggb3AgKQorICAgIHsKKyAgICBjYXNlIFhFTl9WRVJTSU9OX3ZlcnNpb246CisgICAgY2FzZSBY RU5fVkVSU0lPTl9wbGF0Zm9ybV9wYXJhbWV0ZXJzOgorICAgIGNhc2UgWEVOX1ZFUlNJT05fZ2V0 X2ZlYXR1cmVzOgorICAgICAgICAvKiBUaGVzZSBNVVNUIGFsd2F5cyBiZSBhY2Nlc3NpYmxlIHRv IGFueSBndWVzdCBieSBkZWZhdWx0LiAqLworICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNlIFhF Tl9WRVJTSU9OX2V4dHJhdmVyc2lvbjoKKyAgICBjYXNlIFhFTl9WRVJTSU9OX2NhcGFiaWxpdGll czoKKyAgICBjYXNlIFhFTl9WRVJTSU9OX3BhZ2VzaXplOgorICAgIGNhc2UgWEVOX1ZFUlNJT05f Z3Vlc3RfaGFuZGxlOgorICAgICAgICAvKiBUaGVzZSBjYW4gYmUgYWNjZXNzaWJsZSB0byBhIGd1 ZXN0LiAqLworICAgICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKFhTTV9IT09LLCBjdXJy ZW50LT5kb21haW4sIE5VTEwpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiB4c21fZGVm YXVsdF9hY3Rpb24oWFNNX1BSSVYsIGN1cnJlbnQtPmRvbWFpbiwgTlVMTCk7CisgICAgfQorfQpk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveHNtL3hzbS5oIGIveGVuL2luY2x1ZGUveHNtL3hzbS5o CmluZGV4IDVlY2JlZTAuLmFjODA0NzIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hzbS94c20u aAorKysgYi94ZW4vaW5jbHVkZS94c20veHNtLmgKQEAgLTE5NCw2ICsxOTQsNyBAQCBzdHJ1Y3Qg eHNtX29wZXJhdGlvbnMgewogICAgIGludCAoKnBtdV9vcCkgKHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGludCBvcCk7CiAjZW5kaWYKICAgICBpbnQgKCp4ZW5fdmVyc2lvbikgKHVpbnQzMl90 IGNtZCk7CisgICAgaW50ICgqdmVyc2lvbl9vcCkgKHVpbnQzMl90IGNtZCk7CiB9OwogCiAjaWZk ZWYgQ09ORklHX1hTTQpAQCAtNzM3LDYgKzczOCwxMSBAQCBzdGF0aWMgaW5saW5lIGludCB4c21f eGVuX3ZlcnNpb24gKHhzbV9kZWZhdWx0X3QgZGVmLCB1aW50MzJfdCBvcCkKICAgICByZXR1cm4g eHNtX29wcy0+eGVuX3ZlcnNpb24ob3ApOwogfQogCitzdGF0aWMgaW5saW5lIGludCB4c21fdmVy c2lvbl9vcCAoeHNtX2RlZmF1bHRfdCBkZWYsIHVpbnQzMl90IG9wKQoreworICAgIHJldHVybiB4 c21fb3BzLT52ZXJzaW9uX29wKG9wKTsKK30KKwogI2VuZGlmIC8qIFhTTV9OT19XUkFQUEVSUyAq LwogCiAjaWZkZWYgQ09ORklHX01VTFRJQk9PVApkaWZmIC0tZ2l0IGEveGVuL3hzbS9kdW1teS5j IGIveGVuL3hzbS9kdW1teS5jCmluZGV4IDk3OTFhZDQuLjc3NmRkMDkgMTAwNjQ0Ci0tLSBhL3hl bi94c20vZHVtbXkuYworKysgYi94ZW4veHNtL2R1bW15LmMKQEAgLTE2Myw0ICsxNjMsNSBAQCB2 b2lkIHhzbV9maXh1cF9vcHMgKHN0cnVjdCB4c21fb3BlcmF0aW9ucyAqb3BzKQogICAgIHNldF90 b19kdW1teV9pZl9udWxsKG9wcywgcG11X29wKTsKICNlbmRpZgogICAgIHNldF90b19kdW1teV9p Zl9udWxsKG9wcywgeGVuX3ZlcnNpb24pOworICAgIHNldF90b19kdW1teV9pZl9udWxsKG9wcywg dmVyc2lvbl9vcCk7CiB9CmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMgYi94ZW4v eHNtL2ZsYXNrL2hvb2tzLmMKaW5kZXggMjA2OWNiMy4uMWVhZWM1OCAxMDA2NDQKLS0tIGEveGVu L3hzbS9mbGFzay9ob29rcy5jCisrKyBiL3hlbi94c20vZmxhc2svaG9va3MuYwpAQCAtMTY1OCw2 ICsxNjU4LDQwIEBAIHN0YXRpYyBpbnQgZmxhc2tfeGVuX3ZlcnNpb24gKHVpbnQzMl90IG9wKQog ICAgIH0KIH0KIAorc3RhdGljIGludCBmbGFza192ZXJzaW9uX29wICh1aW50MzJfdCBvcCkKK3sK KyAgICB1MzIgZHNpZCA9IGRvbWFpbl9zaWQoY3VycmVudC0+ZG9tYWluKTsKKworICAgIHN3aXRj aCAoIG9wICkKKyAgICB7CisgICAgY2FzZSBYRU5fVkVSU0lPTl92ZXJzaW9uOgorICAgIGNhc2Ug WEVOX1ZFUlNJT05fcGxhdGZvcm1fcGFyYW1ldGVyczoKKyAgICBjYXNlIFhFTl9WRVJTSU9OX2dl dF9mZWF0dXJlczoKKyAgICAgICAgLyogVGhlc2UgTVVTVCBhbHdheXMgYmUgYWNjZXNzaWJsZSB0 byBhbnkgZ3Vlc3QgYnkgZGVmYXVsdC4gKi8KKyAgICAgICAgcmV0dXJuIDA7CisgICAgY2FzZSBY RU5fVkVSU0lPTl9leHRyYXZlcnNpb246CisgICAgICAgIHJldHVybiBhdmNfaGFzX3Blcm0oZHNp ZCwgU0VDSU5JVFNJRF9YRU4sIFNFQ0NMQVNTX1ZFUlNJT04sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVkVSU0lPTl9fRVhUUkFWRVJTSU9OLCBOVUxMKTsKKyAgICBjYXNlIFhFTl9WRVJT SU9OX2NhcGFiaWxpdGllczoKKyAgICAgICAgcmV0dXJuIGF2Y19oYXNfcGVybShkc2lkLCBTRUNJ TklUU0lEX1hFTiwgU0VDQ0xBU1NfVkVSU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBWRVJTSU9OX19DQVBBQklMSVRJRVMsIE5VTEwpOworICAgIGNhc2UgWEVOX1ZFUlNJT05fY2hh bmdlc2V0OgorICAgICAgICByZXR1cm4gYXZjX2hhc19wZXJtKGRzaWQsIFNFQ0lOSVRTSURfWEVO LCBTRUNDTEFTU19WRVJTSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFUlNJT05f X0NIQU5HRVNFVCwgTlVMTCk7CisgICAgY2FzZSBYRU5fVkVSU0lPTl9wYWdlc2l6ZToKKyAgICAg ICAgcmV0dXJuIGF2Y19oYXNfcGVybShkc2lkLCBTRUNJTklUU0lEX1hFTiwgU0VDQ0xBU1NfVkVS U0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRVJTSU9OX19QQUdFU0laRSwgTlVM TCk7CisgICAgY2FzZSBYRU5fVkVSU0lPTl9ndWVzdF9oYW5kbGU6CisgICAgICAgIHJldHVybiBh dmNfaGFzX3Blcm0oZHNpZCwgU0VDSU5JVFNJRF9YRU4sIFNFQ0NMQVNTX1ZFUlNJT04sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVkVSU0lPTl9fR1VFU1RfSEFORExFLCBOVUxMKTsKKyAg ICBjYXNlIFhFTl9WRVJTSU9OX2NvbW1hbmRsaW5lOgorICAgICAgICByZXR1cm4gYXZjX2hhc19w ZXJtKGRzaWQsIFNFQ0lOSVRTSURfWEVOLCBTRUNDTEFTU19WRVJTSU9OLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFZFUlNJT05fX0NPTU1BTkRMSU5FLCBOVUxMKTsKKyAgICBkZWZhdWx0 OgorICAgICAgICByZXR1cm4gLUVQRVJNOworICAgIH0KK30KKwogbG9uZyBkb19mbGFza19vcChY RU5fR1VFU1RfSEFORExFX1BBUkFNKHhzbV9vcF90KSB1X2ZsYXNrX29wKTsKIGludCBjb21wYXRf Zmxhc2tfb3AoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4c21fb3BfdCkgdV9mbGFza19vcCk7CiAK QEAgLTE3OTcsNiArMTgzMSw3IEBAIHN0YXRpYyBzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgZmxhc2tf b3BzID0gewogICAgIC5wbXVfb3AgPSBmbGFza19wbXVfb3AsCiAjZW5kaWYKICAgICAueGVuX3Zl cnNpb24gPSBmbGFza194ZW5fdmVyc2lvbiwKKyAgICAudmVyc2lvbl9vcCA9IGZsYXNrX3ZlcnNp b25fb3AsCiB9OwogCiBzdGF0aWMgX19pbml0IHZvaWQgZmxhc2tfaW5pdCh2b2lkKQpkaWZmIC0t Z2l0IGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgYi94ZW4veHNtL2ZsYXNr L3BvbGljeS9hY2Nlc3NfdmVjdG9ycwppbmRleCBiYWRjZjFjLi41NjYwMGJiIDEwMDY0NAotLS0g YS94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycworKysgYi94ZW4veHNtL2ZsYXNr L3BvbGljeS9hY2Nlc3NfdmVjdG9ycwpAQCAtNDk2LDEyICs0OTYsMTQgQEAgY2xhc3Mgc2VjdXJp dHkKICAgICBkZWxfb2NvbnRleHQKIH0KIAotIyBDbGFzcyB2ZXJzaW9uIGlzIHVzZWQgdG8gZGVz Y3JpYmUgdGhlIFhFTlZFUl8gaHlwZXJjYWxsLgorIyBDbGFzcyB2ZXJzaW9uIGlzIHVzZWQgdG8g ZGVzY3JpYmUgdGhlIFhFTlZFUl8gYW5kIFZFUlNJT04gaHlwZXJjYWxsLgogIyBBbG1vc3QgYWxs IHN1Yi1vcHMgYXJlIGRlc2NyaWJlZCBoZXJlIC0gaW4gdGhlIGRlZmF1bHQgY2FzZSBhbGwgb2Yg dGhlbSBzaG91bGQKLSMgYmUgYWxsb3dlZCBleGNlcHQgdGhlIFhFTlZFUl9jb21tYW5kbGluZS4K KyMgYmUgYWxsb3dlZCBleGNlcHQgdGhlIFhFTlZFUl9jb21tYW5kbGluZSwgVkVSU0lPTl9jb21t YW5kbGluZSwgYW5kCisjIFZFUlNJT05fY2hhbmdlc2V0LgogIwogIyBUaGUgb25lcyB0aGF0IGFy ZSBvbWl0dGVkIGFyZSBYRU5WRVJfdmVyc2lvbiwgWEVOVkVSX3BsYXRmb3JtX3BhcmFtZXRlcnMs Ci0jIGFuZCBYRU5WRVJfZ2V0X2ZlYXR1cmVzICAtIGFzIHRoZXkgTVVTVCBhbHdheXMgYmUgcmV0 dXJuZWQgdG8gYSBndWVzdC4KKyMgWEVOVkVSX2dldF9mZWF0dXJlcywgWEVOX1ZFUlNJT05fdmVy c2lvbiwgWEVOX1ZFUlNJT05fcGxhdGZvcm1fcGFyYW1ldGVycywKKyMgYW5kIFhFTl9WRVJTSU9O X2dldF9mZWF0dXJlcyAtIGFzIHRoZXkgTVVTVCBhbHdheXMgYmUgcmV0dXJuZWQgdG8gYSBndWVz dC4KICMKIGNsYXNzIHZlcnNpb24KIHsKQEAgLTUxOSw0ICs1MjEsMTcgQEAgY2xhc3MgdmVyc2lv bgogICAgIHhlbl9ndWVzdF9oYW5kbGUKICMgWGVuIGNvbW1hbmQgbGluZS4KICAgICB4ZW5fY29t bWFuZGxpbmUKKyMgLS0tIFZFUlNJT04gaHlwZXJjYWxsIC0tLQorIyBFeHRyYSBpbmZvcm1hdGlv bnMgKC11bnN0YWJsZSkuCisgICAgZXh0cmF2ZXJzaW9uCisjIFN1Y2ggYXMgInhlbi0zLjAteDg2 XzY0IHhlbi0zLjAteDg2XzMycCBodm0tMy4wLXg4Nl8zMiBodm0tMy4wLXg4Nl8zMnAgaHZtLTMu MC14ODZfNjQiLgorICAgIGNhcGFiaWxpdGllcworIyBTb3VyY2UgY29kZSBjaGFuZ2VzZXQuCisg ICAgY2hhbmdlc2V0CisjIFBhZ2Ugc2l6ZSB0aGUgaHlwZXJ2aXNvciB1c2VzLgorICAgIHBhZ2Vz aXplCisjIEFuIHZhbHVlIHRoYXQgdGhlIGNvbnRyb2wgc3RhY2sgY2FuIGNob29zZS4KKyAgICBn dWVzdF9oYW5kbGUKKyMgWGVuIGNvbW1hbmQgbGluZS4KKyAgICBjb21tYW5kbGluZQogfQotLSAK Mi41LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=