From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C3788C433E3 for ; Tue, 14 Jul 2020 11:25:31 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8307B217D8 for ; Tue, 14 Jul 2020 11:25:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="RcqE4g64"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="UxDHbXM/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8307B217D8 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Mime-Version:References:In-Reply-To:Message-Id: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=MGj7KX+c6Wp8eRwqw+p/t9bXRgZOUP5YYf9ptr1bD1Q=; b=RcqE4g64t6hWLbqp/uHBXZ+Wl 61HQOKs4T+CiFkgh6Wy2VP26i4UoANGdjFdboqh5EhmX3D9sLt/tAxRu7CUrzpHZMrtopSn49bJoD KtjErFveow//TvcsXTmxfIkoUm+uZN21ziGM09bZSM+fQ1KPR3XJCi9bIdFYwO1++Mt9KBerSLiMj Utm+YsFhy1zqg74LpWOI8Lfa49lbI178YDYwBQsNPPMhVw0LxevmULjRnbClnRRLTZV13molQ1R2u TlUpHOzrG59861tGR3JXSOALfLq1SoHwodUutD1aoOg+CmWi/HGFzVnWcwRGINWvsEHv7y51e20/X jtGaMZ4LA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jvJ3u-0008I0-Od; Tue, 14 Jul 2020 11:25:26 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jvJ3s-0008Gu-NQ for linux-riscv@lists.infradead.org; Tue, 14 Jul 2020 11:25:25 +0000 Received: from devnote2 (NE2965lan1.rev.em-net.ne.jp [210.141.244.193]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 05CD42077D; Tue, 14 Jul 2020 11:25:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1594725924; bh=6ZvUkrPctgXnpkfo0fUBL2cQ2/rmdUyIWl3ZJGuFlyA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=UxDHbXM/O+tqeajBaeop7BCKzSDCGhqDsnoGlRWqvwC23DwE9KgJV+qGvOQ5Wu2U3 giI9y3wGhMPzyoVlXwy7TqF3DigNHZAUCgayGblna1BIn6vPH4hYgaegjvZ2Dzuqec 7pfYVtQ8QNQNz9YNAW4kTCRzf90somJh68PBNp6k= Date: Tue, 14 Jul 2020 20:25:18 +0900 From: Masami Hiramatsu To: guoren@kernel.org Subject: Re: [PATCH v3 1/7] RISC-V: Implement ptrace regs and stack API Message-Id: <20200714202518.2d052f8d046e00329b167f15@kernel.org> In-Reply-To: <1594683562-68149-2-git-send-email-guoren@kernel.org> References: <1594683562-68149-1-git-send-email-guoren@kernel.org> <1594683562-68149-2-git-send-email-guoren@kernel.org> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.32; x86_64-pc-linux-gnu) Mime-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200714_072524_915261_388F245D X-CRM114-Status: GOOD ( 27.00 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: me@packi.ch, Guo Ren , anup@brainfault.org, palmerdabbelt@google.com, linux-kernel@vger.kernel.org, linux-csky@vger.kernel.org, oleg@redhat.com, zong.li@sifive.com, paul.walmsley@sifive.com, greentime.hu@sifive.com, linux-riscv@lists.infradead.org, bjorn.topel@gmail.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gTW9uLCAxMyBKdWwgMjAyMCAyMzozOToxNiArMDAwMApndW9yZW5Aa2VybmVsLm9yZyB3cm90 ZToKCj4gRnJvbTogUGF0cmljayBTdMOkaGxpbiA8bWVAcGFja2kuY2g+Cj4gCj4gTmVlZGVkIGZv ciBrcHJvYmVzIHN1cHBvcnQuIENvcGllZCBhbmQgYWRhcHRlZCBmcm9tIGFybTY0IGNvZGUuCj4g Cj4gR3VvIFJlbiBmaXh1cCBwdF9yZWdzIHR5cGUgZm9yIGxpbnV4LTUuOC1yYzEuCj4gCgpMb29r cyBnb29kIHRvIG1lLgoKUmV2aWV3ZWQtYnk6IE1hc2FtaSBIaXJhbWF0c3UgPG1oaXJhbWF0QGtl cm5lbC5vcmc+CgpUaGFuayB5b3UhCgo+IFNpZ25lZC1vZmYtYnk6IFBhdHJpY2sgU3TDpGhsaW4g PG1lQHBhY2tpLmNoPgo+IFNpZ25lZC1vZmYtYnk6IEd1byBSZW4gPGd1b3JlbkBsaW51eC5hbGli YWJhLmNvbT4KPiBSZXZpZXdlZC1ieTogUGVra2EgRW5iZXJnIDxwZW5iZXJnQGtlcm5lbC5vcmc+ Cj4gUmV2aWV3ZWQtYnk6IFpvbmcgTGkgPHpvbmcubGlAc2lmaXZlLmNvbT4KPiAtLS0KPiAgYXJj aC9yaXNjdi9LY29uZmlnICAgICAgICAgICAgICB8ICAxICsKPiAgYXJjaC9yaXNjdi9pbmNsdWRl L2FzbS9wdHJhY2UuaCB8IDI5ICsrKysrKysrKysrKwo+ICBhcmNoL3Jpc2N2L2tlcm5lbC9wdHJh Y2UuYyAgICAgIHwgOTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK PiAgMyBmaWxlcyBjaGFuZ2VkLCAxMjkgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9h cmNoL3Jpc2N2L0tjb25maWcgYi9hcmNoL3Jpc2N2L0tjb25maWcKPiBpbmRleCAzMjMwYzFkLi5l NzA0NDlhIDEwMDY0NAo+IC0tLSBhL2FyY2gvcmlzY3YvS2NvbmZpZwo+ICsrKyBiL2FyY2gvcmlz Y3YvS2NvbmZpZwo+IEBAIC03OCw2ICs3OCw3IEBAIGNvbmZpZyBSSVNDVgo+ICAJc2VsZWN0IFNQ QVJTRV9JUlEKPiAgCXNlbGVjdCBTWVNDVExfRVhDRVBUSU9OX1RSQUNFCj4gIAlzZWxlY3QgVEhS RUFEX0lORk9fSU5fVEFTSwo+ICsJc2VsZWN0IEhBVkVfUkVHU19BTkRfU1RBQ0tfQUNDRVNTX0FQ SQo+ICAKPiAgY29uZmlnIEFSQ0hfTU1BUF9STkRfQklUU19NSU4KPiAgCWRlZmF1bHQgMTggaWYg NjRCSVQKPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wdHJhY2UuaCBiL2Fy Y2gvcmlzY3YvaW5jbHVkZS9hc20vcHRyYWNlLmgKPiBpbmRleCBlZTQ5ZjgwLi4yMzM3MmJiIDEw MDY0NAo+IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcHRyYWNlLmgKPiArKysgYi9hcmNo L3Jpc2N2L2luY2x1ZGUvYXNtL3B0cmFjZS5oCj4gQEAgLTgsNiArOCw3IEBACj4gIAo+ICAjaW5j bHVkZSA8dWFwaS9hc20vcHRyYWNlLmg+Cj4gICNpbmNsdWRlIDxhc20vY3NyLmg+Cj4gKyNpbmNs dWRlIDxsaW51eC9jb21waWxlci5oPgo+ICAKPiAgI2lmbmRlZiBfX0FTU0VNQkxZX18KPiAgCj4g QEAgLTYwLDYgKzYxLDcgQEAgc3RydWN0IHB0X3JlZ3Mgewo+ICAKPiAgI2RlZmluZSB1c2VyX21v ZGUocmVncykgKCgocmVncyktPnN0YXR1cyAmIFNSX1BQKSA9PSAwKQo+ICAKPiArI2RlZmluZSBN QVhfUkVHX09GRlNFVCBvZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywgb3JpZ19hMCkKPiAgCj4gIC8q IEhlbHBlcnMgZm9yIHdvcmtpbmcgd2l0aCB0aGUgaW5zdHJ1Y3Rpb24gcG9pbnRlciAqLwo+ICBz dGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgaW5zdHJ1Y3Rpb25fcG9pbnRlcihzdHJ1Y3QgcHRf cmVncyAqcmVncykKPiBAQCAtODUsNiArODcsMTIgQEAgc3RhdGljIGlubGluZSB2b2lkIHVzZXJf c3RhY2tfcG9pbnRlcl9zZXQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCj4gIAlyZWdzLT5zcCA9ICB2 YWw7Cj4gIH0KPiAgCj4gKy8qIFZhbGlkIG9ubHkgZm9yIEtlcm5lbCBtb2RlIHRyYXBzLiAqLwo+ ICtzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcga2VybmVsX3N0YWNrX3BvaW50ZXIoc3RydWN0 IHB0X3JlZ3MgKnJlZ3MpCj4gK3sKPiArCXJldHVybiByZWdzLT5zcDsKPiArfQo+ICsKPiAgLyog SGVscGVycyBmb3Igd29ya2luZyB3aXRoIHRoZSBmcmFtZSBwb2ludGVyICovCj4gIHN0YXRpYyBp bmxpbmUgdW5zaWduZWQgbG9uZyBmcmFtZV9wb2ludGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzKQo+ ICB7Cj4gQEAgLTEwMSw2ICsxMDksMjcgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHJl Z3NfcmV0dXJuX3ZhbHVlKHN0cnVjdCBwdF9yZWdzICpyZWdzKQo+ICAJcmV0dXJuIHJlZ3MtPmEw Owo+ICB9Cj4gIAo+ICtleHRlcm4gaW50IHJlZ3NfcXVlcnlfcmVnaXN0ZXJfb2Zmc2V0KGNvbnN0 IGNoYXIgKm5hbWUpOwo+ICtleHRlcm4gdW5zaWduZWQgbG9uZyByZWdzX2dldF9rZXJuZWxfc3Rh Y2tfbnRoKHN0cnVjdCBwdF9yZWdzICpyZWdzLAo+ICsJCQkJCSAgICAgICB1bnNpZ25lZCBpbnQg bik7Cj4gKwo+ICsvKioKPiArICogcmVnc19nZXRfcmVnaXN0ZXIoKSAtIGdldCByZWdpc3RlciB2 YWx1ZSBmcm9tIGl0cyBvZmZzZXQKPiArICogQHJlZ3M6CXB0X3JlZ3MgZnJvbSB3aGljaCByZWdp c3RlciB2YWx1ZSBpcyBnb3R0ZW4KPiArICogQG9mZnNldDoJb2Zmc2V0IG9mIHRoZSByZWdpc3Rl ci4KPiArICoKPiArICogcmVnc19nZXRfcmVnaXN0ZXIgcmV0dXJucyB0aGUgdmFsdWUgb2YgYSBy ZWdpc3RlciB3aG9zZSBvZmZzZXQgZnJvbSBAcmVncy4KPiArICogVGhlIEBvZmZzZXQgaXMgdGhl IG9mZnNldCBvZiB0aGUgcmVnaXN0ZXIgaW4gc3RydWN0IHB0X3JlZ3MuCj4gKyAqIElmIEBvZmZz ZXQgaXMgYmlnZ2VyIHRoYW4gTUFYX1JFR19PRkZTRVQsIHRoaXMgcmV0dXJucyAwLgo+ICsgKi8K PiArc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHJlZ3NfZ2V0X3JlZ2lzdGVyKHN0cnVjdCBw dF9yZWdzICpyZWdzLAo+ICsJCQkJCSAgICAgIHVuc2lnbmVkIGludCBvZmZzZXQpCj4gK3sKPiAr CWlmICh1bmxpa2VseShvZmZzZXQgPiBNQVhfUkVHX09GRlNFVCkpCj4gKwkJcmV0dXJuIDA7Cj4g Kwo+ICsJcmV0dXJuICoodW5zaWduZWQgbG9uZyAqKSgodW5zaWduZWQgbG9uZylyZWdzICsgb2Zm c2V0KTsKPiArfQo+ICAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCj4gIAo+ICAjZW5kaWYgLyog X0FTTV9SSVNDVl9QVFJBQ0VfSCAqLwo+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC9w dHJhY2UuYyBiL2FyY2gvcmlzY3Yva2VybmVsL3B0cmFjZS5jCj4gaW5kZXggNDQ0ZGM3Yi4uYTEx YzY5MiAxMDA2NDQKPiAtLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9wdHJhY2UuYwo+ICsrKyBiL2Fy Y2gvcmlzY3Yva2VybmVsL3B0cmFjZS5jCj4gQEAgLTEyNSw2ICsxMjUsMTA1IEBAIGNvbnN0IHN0 cnVjdCB1c2VyX3JlZ3NldF92aWV3ICp0YXNrX3VzZXJfcmVnc2V0X3ZpZXcoc3RydWN0IHRhc2tf c3RydWN0ICp0YXNrKQo+ICAJcmV0dXJuICZyaXNjdl91c2VyX25hdGl2ZV92aWV3Owo+ICB9Cj4g IAo+ICtzdHJ1Y3QgcHRfcmVnc19vZmZzZXQgewo+ICsJY29uc3QgY2hhciAqbmFtZTsKPiArCWlu dCBvZmZzZXQ7Cj4gK307Cj4gKwo+ICsjZGVmaW5lIFJFR19PRkZTRVRfTkFNRShyKSB7Lm5hbWUg PSAjciwgLm9mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBwdF9yZWdzLCByKX0KPiArI2RlZmluZSBS RUdfT0ZGU0VUX0VORCB7Lm5hbWUgPSBOVUxMLCAub2Zmc2V0ID0gMH0KPiArCj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgcHRfcmVnc19vZmZzZXQgcmVnb2Zmc2V0X3RhYmxlW10gPSB7Cj4gKwlSRUdf T0ZGU0VUX05BTUUoZXBjKSwKPiArCVJFR19PRkZTRVRfTkFNRShyYSksCj4gKwlSRUdfT0ZGU0VU X05BTUUoc3ApLAo+ICsJUkVHX09GRlNFVF9OQU1FKGdwKSwKPiArCVJFR19PRkZTRVRfTkFNRSh0 cCksCj4gKwlSRUdfT0ZGU0VUX05BTUUodDApLAo+ICsJUkVHX09GRlNFVF9OQU1FKHQxKSwKPiAr CVJFR19PRkZTRVRfTkFNRSh0MiksCj4gKwlSRUdfT0ZGU0VUX05BTUUoczApLAo+ICsJUkVHX09G RlNFVF9OQU1FKHMxKSwKPiArCVJFR19PRkZTRVRfTkFNRShhMCksCj4gKwlSRUdfT0ZGU0VUX05B TUUoYTEpLAo+ICsJUkVHX09GRlNFVF9OQU1FKGEyKSwKPiArCVJFR19PRkZTRVRfTkFNRShhMyks Cj4gKwlSRUdfT0ZGU0VUX05BTUUoYTQpLAo+ICsJUkVHX09GRlNFVF9OQU1FKGE1KSwKPiArCVJF R19PRkZTRVRfTkFNRShhNiksCj4gKwlSRUdfT0ZGU0VUX05BTUUoYTcpLAo+ICsJUkVHX09GRlNF VF9OQU1FKHMyKSwKPiArCVJFR19PRkZTRVRfTkFNRShzMyksCj4gKwlSRUdfT0ZGU0VUX05BTUUo czQpLAo+ICsJUkVHX09GRlNFVF9OQU1FKHM1KSwKPiArCVJFR19PRkZTRVRfTkFNRShzNiksCj4g KwlSRUdfT0ZGU0VUX05BTUUoczcpLAo+ICsJUkVHX09GRlNFVF9OQU1FKHM4KSwKPiArCVJFR19P RkZTRVRfTkFNRShzOSksCj4gKwlSRUdfT0ZGU0VUX05BTUUoczEwKSwKPiArCVJFR19PRkZTRVRf TkFNRShzMTEpLAo+ICsJUkVHX09GRlNFVF9OQU1FKHQzKSwKPiArCVJFR19PRkZTRVRfTkFNRSh0 NCksCj4gKwlSRUdfT0ZGU0VUX05BTUUodDUpLAo+ICsJUkVHX09GRlNFVF9OQU1FKHQ2KSwKPiAr CVJFR19PRkZTRVRfTkFNRShzdGF0dXMpLAo+ICsJUkVHX09GRlNFVF9OQU1FKGJhZGFkZHIpLAo+ ICsJUkVHX09GRlNFVF9OQU1FKGNhdXNlKSwKPiArCVJFR19PRkZTRVRfTkFNRShvcmlnX2EwKSwK PiArCVJFR19PRkZTRVRfRU5ELAo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIHJlZ3NfcXVlcnlfcmVn aXN0ZXJfb2Zmc2V0KCkgLSBxdWVyeSByZWdpc3RlciBvZmZzZXQgZnJvbSBpdHMgbmFtZQo+ICsg KiBAbmFtZToJdGhlIG5hbWUgb2YgYSByZWdpc3Rlcgo+ICsgKgo+ICsgKiByZWdzX3F1ZXJ5X3Jl Z2lzdGVyX29mZnNldCgpIHJldHVybnMgdGhlIG9mZnNldCBvZiBhIHJlZ2lzdGVyIGluIHN0cnVj dAo+ICsgKiBwdF9yZWdzIGZyb20gaXRzIG5hbWUuIElmIHRoZSBuYW1lIGlzIGludmFsaWQsIHRo aXMgcmV0dXJucyAtRUlOVkFMOwo+ICsgKi8KPiAraW50IHJlZ3NfcXVlcnlfcmVnaXN0ZXJfb2Zm c2V0KGNvbnN0IGNoYXIgKm5hbWUpCj4gK3sKPiArCWNvbnN0IHN0cnVjdCBwdF9yZWdzX29mZnNl dCAqcm9mZjsKPiArCj4gKwlmb3IgKHJvZmYgPSByZWdvZmZzZXRfdGFibGU7IHJvZmYtPm5hbWUg IT0gTlVMTDsgcm9mZisrKQo+ICsJCWlmICghc3RyY21wKHJvZmYtPm5hbWUsIG5hbWUpKQo+ICsJ CQlyZXR1cm4gcm9mZi0+b2Zmc2V0Owo+ICsJcmV0dXJuIC1FSU5WQUw7Cj4gK30KPiArCj4gKy8q Kgo+ICsgKiByZWdzX3dpdGhpbl9rZXJuZWxfc3RhY2soKSAtIGNoZWNrIHRoZSBhZGRyZXNzIGlu IHRoZSBzdGFjawo+ICsgKiBAcmVnczogICAgICBwdF9yZWdzIHdoaWNoIGNvbnRhaW5zIGtlcm5l bCBzdGFjayBwb2ludGVyLgo+ICsgKiBAYWRkcjogICAgICBhZGRyZXNzIHdoaWNoIGlzIGNoZWNr ZWQuCj4gKyAqCj4gKyAqIHJlZ3Nfd2l0aGluX2tlcm5lbF9zdGFjaygpIGNoZWNrcyBAYWRkciBp cyB3aXRoaW4gdGhlIGtlcm5lbCBzdGFjayBwYWdlKHMpLgo+ICsgKiBJZiBAYWRkciBpcyB3aXRo aW4gdGhlIGtlcm5lbCBzdGFjaywgaXQgcmV0dXJucyB0cnVlLiBJZiBub3QsIHJldHVybnMgZmFs c2UuCj4gKyAqLwo+ICtzdGF0aWMgYm9vbCByZWdzX3dpdGhpbl9rZXJuZWxfc3RhY2soc3RydWN0 IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgYWRkcikKPiArewo+ICsJcmV0dXJuIChhZGRy ICYgfihUSFJFQURfU0laRSAtIDEpKSAgPT0KPiArCQkoa2VybmVsX3N0YWNrX3BvaW50ZXIocmVn cykgJiB+KFRIUkVBRF9TSVpFIC0gMSkpOwo+ICt9Cj4gKwo+ICsvKioKPiArICogcmVnc19nZXRf a2VybmVsX3N0YWNrX250aCgpIC0gZ2V0IE50aCBlbnRyeSBvZiB0aGUgc3RhY2sKPiArICogQHJl Z3M6CXB0X3JlZ3Mgd2hpY2ggY29udGFpbnMga2VybmVsIHN0YWNrIHBvaW50ZXIuCj4gKyAqIEBu OgkJc3RhY2sgZW50cnkgbnVtYmVyLgo+ICsgKgo+ICsgKiByZWdzX2dldF9rZXJuZWxfc3RhY2tf bnRoKCkgcmV0dXJucyBAbiB0aCBlbnRyeSBvZiB0aGUga2VybmVsIHN0YWNrIHdoaWNoCj4gKyAq IGlzIHNwZWNpZmllZCBieSBAcmVncy4gSWYgdGhlIEBuIHRoIGVudHJ5IGlzIE5PVCBpbiB0aGUg a2VybmVsIHN0YWNrLAo+ICsgKiB0aGlzIHJldHVybnMgMC4KPiArICovCj4gK3Vuc2lnbmVkIGxv bmcgcmVnc19nZXRfa2VybmVsX3N0YWNrX250aChzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWdu ZWQgaW50IG4pCj4gK3sKPiArCXVuc2lnbmVkIGxvbmcgKmFkZHIgPSAodW5zaWduZWQgbG9uZyAq KWtlcm5lbF9zdGFja19wb2ludGVyKHJlZ3MpOwo+ICsKPiArCWFkZHIgKz0gbjsKPiArCWlmIChy ZWdzX3dpdGhpbl9rZXJuZWxfc3RhY2socmVncywgKHVuc2lnbmVkIGxvbmcpYWRkcikpCj4gKwkJ cmV0dXJuICphZGRyOwo+ICsJZWxzZQo+ICsJCXJldHVybiAwOwo+ICt9Cj4gKwo+ICB2b2lkIHB0 cmFjZV9kaXNhYmxlKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpCj4gIHsKPiAgCWNsZWFyX3Rz a190aHJlYWRfZmxhZyhjaGlsZCwgVElGX1NZU0NBTExfVFJBQ0UpOwo+IC0tIAo+IDIuNy40Cj4g CgoKLS0gCk1hc2FtaSBIaXJhbWF0c3UgPG1oaXJhbWF0QGtlcm5lbC5vcmc+CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5n IGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==