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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 12BB7C433EF for ; Mon, 27 Sep 2021 20:14:30 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 C725F60EC0 for ; Mon, 27 Sep 2021 20:14:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org C725F60EC0 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=atishpatra.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=EyiomBy1CTvLhKcw9eR2/IQXfHibWqXmpYpTcqWD1k4=; b=Wgd7GnCvSxPIxU T2caVEkSNs8tyfvjjhl97JwGRRY+On7aBaxT6ur477TS2m+z4f5HMv7jHymiGHRb4U8i0PJyPixSA kxWtbjsXURiBZPpv5Gx+JXIZtA62SYK+oPXDMVSV06DatJ+k+FAScxCbk/d5oJiJ3G+52XnQuANHV vefr961JUBEQlylOUIahv9XDOVW4Dysl6qfRBT2LHyYfZ/7HTR8EgrZu/lBW/8EspHhDvrHBY/MbQ 0KPwnjVC5mMS3IJcptoV49vC2StadJ0lQSUqv4hM3ocn0dwv3BahKJM+fzVhT3Ka84nLLVPukqaDp YxQPWpdezTDq1u84MUJw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mUx0q-0048kn-3n; Mon, 27 Sep 2021 20:14:08 +0000 Received: from mail-yb1-xb33.google.com ([2607:f8b0:4864:20::b33]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mUx0m-0048jg-4Q for linux-riscv@lists.infradead.org; Mon, 27 Sep 2021 20:14:06 +0000 Received: by mail-yb1-xb33.google.com with SMTP id f133so26696593yba.11 for ; Mon, 27 Sep 2021 13:14:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atishpatra.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=c66a6C5XgA1GjQXAh1T6mv7vyXi6DD5KwrXxvAxiDio=; b=HLy5fmMVDZIMGvoHc7crM5e8SgaNekSC/LMmSbDIQiiNEBBC9+2LBD2g/T6RZvUHTe JGnTpQwHfgz7tqwURd+3Zw08OBbSmZwfewj+fVdKKqsWqVs4BCx10bCgmOY0iEqnlasg 6Ly//WpIx7/o/mp9389QkCPtSdnGtzr6QlUF4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=c66a6C5XgA1GjQXAh1T6mv7vyXi6DD5KwrXxvAxiDio=; b=WzcTnOOf5/zuAZiyMM7IQOk6WuuMj4FnwxzdRSez05MQvGe6CKz4DLuuHwQDpIq3Zb 8kqNa1JxqtKNWxL/76lLVojQXF+eu0VyGHTuMdcByiAEBUByTNo9MCbIS0YZ6a/ALolN lDlvg1iNREtg9vo2xjrbA+dKCHzX/hxTJptrlVXyJjFRfARNf3kCv0dRszbLqQA+HuNg O+EJswSYEhe4kem1Rwui9ie9bPROjPx1C9R6gJ+vC7X1OGgTKngRcuDzLbgFZEX5ZsZ1 2/IBTbNT/YcVkiKZWgsQS7msISxYKChE7uixaMgmDA6FBYkrAvXlRd+V/JJsvSzF+53F rchA== X-Gm-Message-State: AOAM531nU9hf1dqWSSVl7GyECGrdfJQLq4dEFB9KBpSbNwqwWjA2t2EC tA5fpYZu0wBPR0EJpRGIgqGkkDoq/4kAjhIA4DjZ X-Google-Smtp-Source: ABdhPJw0i6F6ikG0SNU22YTw6zWxRkOonH4tfKHSfOXueO6thXwLlqT9AXfPAD/EH10uv1GNhHhcpjOk1WQnz1wZeYU= X-Received: by 2002:a05:6902:1549:: with SMTP id r9mr2401550ybu.204.1632773642716; Mon, 27 Sep 2021 13:14:02 -0700 (PDT) MIME-Version: 1.0 References: <20210923172107.1117604-1-guoren@kernel.org> In-Reply-To: From: Atish Patra Date: Mon, 27 Sep 2021 13:13:51 -0700 Message-ID: Subject: Re: [PATCH V2 1/2] riscv: Add RISC-V svpbmt extension To: Guo Ren , Palmer Dabbelt Cc: Anup Patel , Atish Patra , Palmer Dabbelt , =?UTF-8?Q?Christoph_M=C3=BCllner?= , Philipp Tomsich , Christoph Hellwig , liush , wefu@redhat.com, =?UTF-8?B?V2VpIFd1ICjlkLTkvJ8p?= , Drew Fustini , linux-riscv , "linux-kernel@vger.kernel.org List" , taiten.peng@canonical.com, aniket.ponkshe@canonical.com, Heinrich Schuchardt , gordan.markus@canonical.com, Guo Ren , Arnd Bergmann , Chen-Yu Tsai , Maxime Ripard , Daniel Lustig , Greg Favor , Andrea Mondelli , Jonathan Behrens , Xinhaoqu , Bill Huffman , Nick Kossifidis , Allen Baum , Josh Scheid , Richard Trauben X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210927_131404_212878_6B11D5F6 X-CRM114-Status: GOOD ( 38.15 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 T24gTW9uLCBTZXAgMjcsIDIwMjEgYXQgMTowOSBQTSBBdGlzaCBQYXRyYSA8YXRpc2hwQGF0aXNo cGF0cmEub3JnPiB3cm90ZToKPgo+Cj4KPiBPbiBUaHUsIFNlcCAyMywgMjAyMSBhdCAxMDoyMiBB TSA8Z3VvcmVuQGtlcm5lbC5vcmc+IHdyb3RlOgo+Pgo+PiBGcm9tOiBHdW8gUmVuIDxndW9yZW5A bGludXguYWxpYmFiYS5jb20+Cj4+Cj4+IFRoaXMgcGF0Y2ggZm9sbG93cyB0aGUgc3RhbmRhcmQg cHVyZSBSSVNDLVYgU3ZwYm10IGV4dGVuc2lvbiBpbgo+PiBwcml2aWxlZ2Ugc3BlYyB0byBzb2x2 ZSB0aGUgbm9uLWNvaGVyZW50IFNPQyBkbWEgc3luY2hyb25pemF0aW9uCj4+IGlzc3Vlcy4KPj4K Pj4gSGVyZSBpcyB0aGUgc3ZwYm10IFBURSBmb3JtYXQ6Cj4+IHwgNjMgfCA2Mi02MSB8IDYwLTgg fCA3IHwgNiB8IDUgfCA0IHwgMyB8IDIgfCAxIHwgMAo+PiAgIE4gICAgIE1UICAgICBSU1cgICAg RCAgIEEgICBHICAgVSAgIFggICBXICAgUiAgIFYKPj4gICAgICAgICBeCj4+Cj4+IE9mIHRoZSBS ZXNlcnZlZCBiaXRzIFs2Mzo1NF0gaW4gYSBsZWFmIFBURSwgdGhlIGhpZ2ggYml0IGlzIGFscmVh ZHkKPj4gYWxsb2NhdGVkIChhcyB0aGUgTiBiaXQpLCBzbyBiaXRzIFs2Mjo2MV0gYXJlIHVzZWQg YXMgdGhlIE1UIChha2EKPj4gTWVtVHlwZSkgZmllbGQuIFRoaXMgZmllbGQgc3BlY2lmaWVzIG9u ZSBvZiB0aHJlZSBtZW1vcnkgdHlwZXMgdGhhdAo+PiBhcmUgY2xvc2UgZXF1aXZhbGVudHMgKG9y IGVxdWl2YWxlbnQgaW4gZWZmZWN0KSB0byB0aGUgdGhyZWUgbWFpbiB4ODYKPj4gYW5kIEFSTXY4 IG1lbW9yeSB0eXBlcyAtIGFzIHNob3duIGluIHRoZSBmb2xsb3dpbmcgdGFibGUuCj4+Cj4+IFJJ U0MtVgo+PiBFbmNvZGluZyAmCj4+IE1lbVR5cGUgICAgIFJJU0MtViBEZXNjcmlwdGlvbgo+PiAt LS0tLS0tLS0tICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KPj4gMDAgLSBQTUEgICAgTm9ybWFsIENhY2hlYWJsZSwgTm8gY2hhbmdlIHRvIGltcGxpZWQg UE1BIG1lbW9yeSB0eXBlCj4+IDAxIC0gTkMgICAgIE5vbi1jYWNoZWFibGUsIGlkZW1wb3RlbnQs IHdlYWtseS1vcmRlcmVkIE1haW4gTWVtb3J5Cj4+IDEwIC0gSU8gICAgIE5vbi1jYWNoZWFibGUs IG5vbi1pZGVtcG90ZW50LCBzdHJvbmdseS1vcmRlcmVkIEkvTyBtZW1vcnkKPj4gMTEgLSBSc3Zk ICAgUmVzZXJ2ZWQgZm9yIGZ1dHVyZSBzdGFuZGFyZCB1c2UKPj4KPj4gVGhlIHN0YW5kYXJkIHBy b3RlY3Rpb25fbWFwW10gbmVlZG4ndCBiZSBtb2RpZmllZCBiZWNhdXNlIHRoZSAiUE1BIgo+PiB0 eXBlIGtlZXBzIHRoZSBoaWdoZXN0IGJpdHMgemVyby4gQW5kIHRoZSB3aG9sZSBtb2RpZmljYXRp b24gaXMKPj4gbGltaXRlZCBpbiB0aGUgYXJjaC9yaXNjdi8qIGFuZCB1c2luZyBhIGdsb2JhbCB2 YXJpYWJsZQo+PiAoX19yaXNjdl9zdnBibXQpIGFzIF9QQUdFX0RNQV9NQVNLL0lPL05DIGZvciBw Z3Byb3Rfbm9uY2FjaGVkCj4+ICgmd3JpdGVjb21iaW5lKSBpbiBwZ3RhYmxlLmguIFdlIGFsc28g YWRkIF9QQUdFX0NIR19NQVNLIHRvIGZpbHRlcgo+PiBQRk4gdGhhbiBiZWZvcmUuCj4+Cj4KClJl c2VuZGluZyBpdCBhcyBpdCB3YXMgbm90IGRlbGl2ZXJlZCB0byB0aGUgbWFpbGluZyBsaXN0IGJl Y2F1c2UgSFRNTApmb3JtYXR0aW5nIHdhcyBzZWxlY3RlZCBieSBtaXN0YWtlLgpTb3JyeSBmb3Ig dGhlIG5vaXNlLiBIZXJlIGlzIHRoZSBvcmlnaW5hbCBlbWFpbC4KCj4gQFBhbG1lciBEYWJiZWx0 IEBHdW8gUmVuCj4KPiBDYW4gd2UgZmlyc3QgZGVjaWRlIHdoYXQgdG8gZG8gd2l0aCBEMSdzIHVw c3RyZWFtaW5nIHBsYW4gPyBJIGhhZCBhIHNsaWRlWzFdIHRvIGRpc2N1c3MgdGhhdCBkdXJpbmcg UklTQy1WIEJvRi4KPiBCdXQgd2UgcmFuIG91dCBvZiB0aW1lLiBMZXQncyBjb250aW51ZSB0aGUg ZGlzY3Vzc2lvbiBoZXJlLgo+Cj4gV2UgYWxsIGFncmVlIHRoYXQgQWxsd2lubmVyIEQxIGhhcyBp bmNvbXBhdGlibGUgY2hhbmdlcyB3aXRoIHByaXZpbGVnZSBzcGVjaWZpY2F0aW9uIGJlY2F1c2Ug aXQgdXNlcyB0d28gcmVzZXJ2ZWQgYml0cyBldmVuIGFmdGVyIFN2cGJtdCBpcyBtZXJnZWQuCj4g TGV0J3Mgbm90IGFyZ3VlIG9uIHRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMgY2hhbmdlLiBUaGUg c2lsaWNvbiBpcyBhbHJlYWR5IG91dCBhbmQgdGhlIHNwZWNpZmljYXRpb24ganVzdCBnb3QgZnJv emVuLgo+IFVuZm9ydHVuYXRlbHksIHdlIGRvbid0IGhhdmUgYSB0aW1lIHN0b25lIHRvIGNoYW5n ZSB0aGUgcGFzdCA7KS4KPgo+IFdlIG5lZWQgdG8gZGVjaWRlIHdoZXRoZXIgd2Ugc2hvdWxkIHN1 cHBvcnQgdGhlIHVwc3RyZWFtIGtlcm5lbCBmb3IgRDEuIEZldyB0aGluZ3MgdG8gY29uc2lkZXIu Cj4g4oCTIENhbiBpdCBiZSBjb25zaWRlcmVkIGFzIGFuIGVycmF0YSA/Cj4g4oCTIERvZXMgaXQg c2V0IGEgYmFkIHByZWNlZGVudCBhbmQgb3BlbiBjYW4gb2Ygd29ybXMgaW4gZnV0dXJlID8KPiDi gJMgQ2FuIHdlIGp1c3QgaWdub3JlIEQxIGdpdmVuIHRoZSBtYXNzIHZvbHVtZSA/Cj4KPiBPbmUg c29sdXRpb24gSSBjYW4gdGhpbmsgb2YgaXMgdGhhdCB3ZSBhbGxvdyB0aGlzIGFzIGFuIGV4Y2Vw dGlvbiB0byB0aGUgcGF0Y2ggYWNjZXB0YW5jZSBwb2xpY3kuCj4gV2UgbmVlZCB0byBleHBsaWNp dGx5IHNwZWNpZnkgdGhpcyBib2FyZCBhcyBhbiBleGNlcHRpb24gYmVjYXVzZSB0aGUgcG9saWN5 IHdhcyBub3QgaW4gcGxhY2UgZHVyaW5nIHRoZSBkZXNpZ24gcGhhc2Ugb2YgdGhlIGhhcmR3YXJl Lgo+IEF0IGxlYXN0LCBpdCBwcm90ZWN0cyB1cyBmcm9tIGFjY2VwdGluZyB0aGUgaW5jb21wYXRp YmxlIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZS4gQW55IG90aGVyIGlkZWFzID8KPgo+IFsxXSBodHRw czovL2xpbnV4cGx1bWJlcnNjb25mLm9yZy9ldmVudC8xMS9jb250cmlidXRpb25zLzExMjgvYXR0 YWNobWVudHMvODQ2LzE3NTcvUklTQy1WJTIwQm9mLnBkZgo+Cj4+IEVuYWJsZSBpdCBpbiBkZXZp Y2V0cmVlIC0gKFJldXNlICJtbXUtdHlwZSIgb2YgY3B1X3NlY3Rpb24pCj4+ICAtIHJpc2N2LHN2 Mzksc3ZwYm10Cj4+ICAtIHJpc2N2LHN2NDgsc3ZwYm10Cj4+Cj4+IFNpZ25lZC1vZmYtYnk6IEd1 byBSZW4gPGd1b3JlbkBsaW51eC5hbGliYWJhLmNvbT4KPj4gQ28tZGV2ZWxvcGVkLWJ5OiBMaXUg U2hhb2h1YSA8bGl1c2hAYWxsd2lubmVydGVjaC5jb20+Cj4+IFNpZ25lZC1vZmYtYnk6IExpdSBT aGFvaHVhIDxsaXVzaEBhbGx3aW5uZXJ0ZWNoLmNvbT4KPj4gQ28tZGV2ZWxvcGVkLWJ5OiBXZWkg RnUgPHdlZnVAcmVkaGF0LmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogV2VpIEZ1IDx3ZWZ1QHJlZGhh dC5jb20+Cj4+IENjOiBQYWxtZXIgRGFiYmVsdCA8cGFsbWVyZGFiYmVsdEBnb29nbGUuY29tPgo+ PiBDYzogQ2hyaXN0b3BoIEhlbGx3aWcgPGhjaEBsc3QuZGU+Cj4+IENjOiBBbnVwIFBhdGVsIDxh bnVwLnBhdGVsQHdkYy5jb20+Cj4+IENjOiBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPgo+ PiBDYzogQXRpc2ggUGF0cmEgPGF0aXNoLnBhdHJhQHdkYy5jb20+Cj4+IENjOiBEcmV3IEZ1c3Rp bmkgPGRyZXdAYmVhZ2xlYm9hcmQub3JnPgo+PiBDYzogV2VpIEZ1IDx3ZWZ1QHJlZGhhdC5jb20+ Cj4+IENjOiBXZWkgV3UgPGxhenlwYXJzZXJAZ21haWwuY29tPgo+PiBDYzogQ2hlbi1ZdSBUc2Fp IDx3ZW5zQGNzaWUub3JnPgo+PiBDYzogTWF4aW1lIFJpcGFyZCA8bWF4aW1lQGNlcm5vLnRlY2g+ Cj4+IENjOiBEYW5pZWwgTHVzdGlnIDxkbHVzdGlnQG52aWRpYS5jb20+Cj4+IENjOiBHcmVnIEZh dm9yIDxnZmF2b3JAdmVudGFuYW1pY3JvLmNvbT4KPj4gQ2M6IEFuZHJlYSBNb25kZWxsaSA8YW5k cmVhLm1vbmRlbGxpQGh1YXdlaS5jb20+Cj4+IENjOiBKb25hdGhhbiBCZWhyZW5zIDxiZWhyZW5z akBtaXQuZWR1Pgo+PiBDYzogWGluaGFvcXUgKEZyZWRkaWUpIDx4aW5oYW9xdUBodWF3ZWkuY29t Pgo+PiBDYzogQmlsbCBIdWZmbWFuIDxodWZmbWFuQGNhZGVuY2UuY29tPgo+PiBDYzogTmljayBL b3NzaWZpZGlzIDxtaWNrQGljcy5mb3J0aC5ncj4KPj4gQ2M6IEFsbGVuIEJhdW0gPGFsbGVuLmJh dW1AZXNwZXJhbnRvdGVjaC5jb20+Cj4+IENjOiBKb3NoIFNjaGVpZCA8anNjaGVpZEB2ZW50YW5h bWljcm8uY29tPgo+PiBDYzogUmljaGFyZCBUcmF1YmVuIDxydHJhdWJlbkBnbWFpbC5jb20+Cj4+ Cj4+IC0tLQo+Pgo+PiBDaGFuZ2VzIHNpbmNlIFYyOgo+PiAgLSBTZXBlcmF0ZSBEVCBtb2RpZmlj YXRpb24gaW50byBhbm90aGVyIHBhdGNoCj4+ICAtIE1vdmUgcmlzY3Zfc3ZwYm10KCkgaW50byBy aXNjdl9maWxsX2h3Y2FwKCkKPj4gIC0gRml4dXAgcHJpbnRfbW11KCkKPj4gIC0gTWFrZSBfX3Jp c2N2X3N2cGJtdCB1cGRhdGVkIG9ubHkgd2hlbiBhbGwgQ1BVIG5vZGVzIGhhdmUgInN2cG1idCIK Pj4gICAgaW4gdGhlICJtbXUtdHlwZSIgRFQgcHJvcGVydHkKPj4gIC0gRGVmaW5lIF9QQUdFX01U X01BU0sgYXMgKF9QQUdFX01UX1BNQSB8IF9QQUdFX01UX05DIHwgX1BBR0VfTVRfSU8pCj4+ICAt IENoYW5nZSB1NjQgdG8gdW5zaWduZWQgbG9uZyBpbiBfUEFHRV9NVF9YWFgKPj4gIC0gQ2hhbmdl IF9fcmlzY3Zfc3ZwYm10Lm10W10gdG8gX19yaXNjdl9zdnBibXQubXRfeHh4Cj4+ICAtIE9wdGlt aXplIHNvbWUgbWlzbGVhZGluZyBuYW1lcwo+PiAtLS0KPj4gIGFyY2gvcmlzY3YvaW5jbHVkZS9h c20vZml4bWFwLmggICAgICAgfCAgMiArLQo+PiAgYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wZ3Rh YmxlLTY0LmggICB8ICA4ICsrKystLQo+PiAgYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wZ3RhYmxl LWJpdHMuaCB8IDQxICsrKysrKysrKysrKysrKysrKysrKysrKystLQo+PiAgYXJjaC9yaXNjdi9p bmNsdWRlL2FzbS9wZ3RhYmxlLmggICAgICB8IDM5ICsrKysrKysrKysrKysrKysrKystLS0tLS0K Pj4gIGFyY2gvcmlzY3Yva2VybmVsL2NwdS5jICAgICAgICAgICAgICAgfCAgNCArKy0KPj4gIGFy Y2gvcmlzY3Yva2VybmVsL2NwdWZlYXR1cmUuYyAgICAgICAgfCAyNCArKysrKysrKysrKysrKysr Cj4+ICBhcmNoL3Jpc2N2L21tL2luaXQuYyAgICAgICAgICAgICAgICAgIHwgIDUgKysrKwo+PiAg NyBmaWxlcyBjaGFuZ2VkLCAxMDcgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCj4+Cj4+ IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2ZpeG1hcC5oIGIvYXJjaC9yaXNj di9pbmNsdWRlL2FzbS9maXhtYXAuaAo+PiBpbmRleCA1NGNiZjA3ZmI0ZTkuLjVhY2Q5OWQwOGU3 NCAxMDA2NDQKPj4gLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9maXhtYXAuaAo+PiArKysg Yi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2ZpeG1hcC5oCj4+IEBAIC00Myw3ICs0Myw3IEBAIGVu dW0gZml4ZWRfYWRkcmVzc2VzIHsKPj4gICAgICAgICBfX2VuZF9vZl9maXhlZF9hZGRyZXNzZXMK Pj4gIH07Cj4+Cj4+IC0jZGVmaW5lIEZJWE1BUF9QQUdFX0lPICAgICAgICAgUEFHRV9LRVJORUwK Pj4gKyNkZWZpbmUgRklYTUFQX1BBR0VfSU8gICAgICAgICBQQUdFX0lPUkVNQVAKPj4KPj4gICNk ZWZpbmUgX19lYXJseV9zZXRfZml4bWFwICAgICBfX3NldF9maXhtYXAKPj4KPj4gZGlmZiAtLWdp dCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGd0YWJsZS02NC5oIGIvYXJjaC9yaXNjdi9pbmNs dWRlL2FzbS9wZ3RhYmxlLTY0LmgKPj4gaW5kZXggMjI4MjYxYWE5NjI4Li4wYjUzZWE2N2U5MWEg MTAwNjQ0Cj4+IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGd0YWJsZS02NC5oCj4+ICsr KyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGd0YWJsZS02NC5oCj4+IEBAIC02MSwxMiArNjEs MTQgQEAgc3RhdGljIGlubGluZSB2b2lkIHB1ZF9jbGVhcihwdWRfdCAqcHVkcCkKPj4KPj4gIHN0 YXRpYyBpbmxpbmUgcG1kX3QgKnB1ZF9wZ3RhYmxlKHB1ZF90IHB1ZCkKPj4gIHsKPj4gLSAgICAg ICByZXR1cm4gKHBtZF90ICopcGZuX3RvX3ZpcnQocHVkX3ZhbChwdWQpID4+IF9QQUdFX1BGTl9T SElGVCk7Cj4+ICsgICAgICAgcmV0dXJuIChwbWRfdCAqKXBmbl90b192aXJ0KChwdWRfdmFsKHB1 ZCkgJiBfUEFHRV9DSEdfTUFTSykKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPj4gX1BBR0VfUEZOX1NISUZUKTsKPj4gIH0KPj4KPj4gIHN0YXRpYyBp bmxpbmUgc3RydWN0IHBhZ2UgKnB1ZF9wYWdlKHB1ZF90IHB1ZCkKPj4gIHsKPj4gLSAgICAgICBy ZXR1cm4gcGZuX3RvX3BhZ2UocHVkX3ZhbChwdWQpID4+IF9QQUdFX1BGTl9TSElGVCk7Cj4+ICsg ICAgICAgcmV0dXJuIHBmbl90b19wYWdlKChwdWRfdmFsKHB1ZCkgJiBfUEFHRV9DSEdfTUFTSykK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPj4gX1BB R0VfUEZOX1NISUZUKTsKPj4gIH0KPj4KPj4gIHN0YXRpYyBpbmxpbmUgcG1kX3QgcGZuX3BtZCh1 bnNpZ25lZCBsb25nIHBmbiwgcGdwcm90X3QgcHJvdCkKPj4gQEAgLTc2LDcgKzc4LDcgQEAgc3Rh dGljIGlubGluZSBwbWRfdCBwZm5fcG1kKHVuc2lnbmVkIGxvbmcgcGZuLCBwZ3Byb3RfdCBwcm90 KQo+Pgo+PiAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIF9wbWRfcGZuKHBtZF90IHBtZCkK Pj4gIHsKPj4gLSAgICAgICByZXR1cm4gcG1kX3ZhbChwbWQpID4+IF9QQUdFX1BGTl9TSElGVDsK Pj4gKyAgICAgICByZXR1cm4gKHBtZF92YWwocG1kKSAmIF9QQUdFX0NIR19NQVNLKSA+PiBfUEFH RV9QRk5fU0hJRlQ7Cj4+ICB9Cj4+Cj4+ICAjZGVmaW5lIG1rX3BtZChwYWdlLCBwcm90KSAgICBw Zm5fcG1kKHBhZ2VfdG9fcGZuKHBhZ2UpLCBwcm90KQo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNj di9pbmNsdWRlL2FzbS9wZ3RhYmxlLWJpdHMuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGd0 YWJsZS1iaXRzLmgKPj4gaW5kZXggMmVlNDEzOTEyOTI2Li4zYjM4ZmUxNGYxNjkgMTAwNjQ0Cj4+ IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGd0YWJsZS1iaXRzLmgKPj4gKysrIGIvYXJj aC9yaXNjdi9pbmNsdWRlL2FzbS9wZ3RhYmxlLWJpdHMuaAo+PiBAQCAtNyw3ICs3LDcgQEAKPj4g ICNkZWZpbmUgX0FTTV9SSVNDVl9QR1RBQkxFX0JJVFNfSAo+Pgo+PiAgLyoKPj4gLSAqIFBURSBm b3JtYXQ6Cj4+ICsgKiBydjMyIFBURSBmb3JtYXQ6Cj4+ICAgKiB8IFhMRU4tMSAgMTAgfCA5ICAg ICAgICAgICAgIDggfCA3IHwgNiB8IDUgfCA0IHwgMyB8IDIgfCAxIHwgMAo+PiAgICogICAgICAg UEZOICAgICAgcmVzZXJ2ZWQgZm9yIFNXICAgRCAgIEEgICBHICAgVSAgIFggICBXICAgUiAgIFYK Pj4gICAqLwo+PiBAQCAtMjQsNiArMjQsNDIgQEAKPj4gICNkZWZpbmUgX1BBR0VfRElSVFkgICAg ICgxIDw8IDcpICAgIC8qIFNldCBieSBoYXJkd2FyZSBvbiBhbnkgd3JpdGUgKi8KPj4gICNkZWZp bmUgX1BBR0VfU09GVCAgICAgICgxIDw8IDgpICAgIC8qIFJlc2VydmVkIGZvciBzb2Z0d2FyZSAq Lwo+Pgo+PiArI2lmbmRlZiBfX0FTU0VNQkxZX18KPj4gKyNpZmRlZiBDT05GSUdfNjRCSVQKPj4g Ky8qCj4+ICsgKiBydjY0IFBURSBmb3JtYXQ6Cj4+ICsgKiB8IDYzIHwgNjIgNjEgfCA2MCA1NCB8 IDUzICAxMCB8IDkgICAgICAgICAgICAgOCB8IDcgfCA2IHwgNSB8IDQgfCAzIHwgMiB8IDEgfCAw Cj4+ICsgKiAgIE4gICAgICBNVCAgICAgUlNWICAgIFBGTiAgICAgIHJlc2VydmVkIGZvciBTVyAg IEQgICBBICAgRyAgIFUgICBYICAgVyAgIFIgICBWCj4+ICsgKiBbNjI6NjFdIE1lbW9yeSBUeXBl IGRlZmluaXRpb25zOgo+PiArICogIDAwIC0gUE1BICAgIE5vcm1hbCBDYWNoZWFibGUsIE5vIGNo YW5nZSB0byBpbXBsaWVkIFBNQSBtZW1vcnkgdHlwZQo+PiArICogIDAxIC0gTkMgICAgIE5vbi1j YWNoZWFibGUsIGlkZW1wb3RlbnQsIHdlYWtseS1vcmRlcmVkIE1haW4gTWVtb3J5Cj4+ICsgKiAg MTAgLSBJTyAgICAgTm9uLWNhY2hlYWJsZSwgbm9uLWlkZW1wb3RlbnQsIHN0cm9uZ2x5LW9yZGVy ZWQgSS9PIG1lbW9yeQo+PiArICogIDExIC0gUnN2ZCAgIFJlc2VydmVkIGZvciBmdXR1cmUgc3Rh bmRhcmQgdXNlCj4+ICsgKi8KPj4gKyNkZWZpbmUgX1NWUEJNVF9QTUEgICAgICAgICAgICAoKHVu c2lnbmVkIGxvbmcpMHgwIDw8IDYxKQo+PiArI2RlZmluZSBfU1ZQQk1UX05DICAgICAgICAgICAg ICgodW5zaWduZWQgbG9uZykweDEgPDwgNjEpCj4+ICsjZGVmaW5lIF9TVlBCTVRfSU8gICAgICAg ICAgICAgKCh1bnNpZ25lZCBsb25nKTB4MiA8PCA2MSkKPj4gKyNkZWZpbmUgX1NWUEJNVF9NQVNL ICAgICAgICAgICAoX1NWUEJNVF9QTUEgfCBfU1ZQQk1UX05DIHwgX1NWUEJNVF9JTykKPj4gKwo+ PiArZXh0ZXJuIHN0cnVjdCBfX3Jpc2N2X3N2cGJtdF9zdHJ1Y3Qgewo+PiArICAgICAgIHVuc2ln bmVkIGxvbmcgbWFzazsKPj4gKyAgICAgICB1bnNpZ25lZCBsb25nIG10X3BtYTsKPj4gKyAgICAg ICB1bnNpZ25lZCBsb25nIG10X25jOwo+PiArICAgICAgIHVuc2lnbmVkIGxvbmcgbXRfaW87Cj4+ ICt9IF9fcmlzY3Zfc3ZwYm10Owo+PiArCj4+ICsjZGVmaW5lIF9QQUdFX01UX01BU0sgICAgICAg ICAgX19yaXNjdl9zdnBibXQubWFzawo+PiArI2RlZmluZSBfUEFHRV9NVF9QTUEgICAgICAgICAg IF9fcmlzY3Zfc3ZwYm10Lm10X3BtYQo+PiArI2RlZmluZSBfUEFHRV9NVF9OQyAgICAgICAgICAg IF9fcmlzY3Zfc3ZwYm10Lm10X25jCj4+ICsjZGVmaW5lIF9QQUdFX01UX0lPICAgICAgICAgICAg X19yaXNjdl9zdnBibXQubXRfaW8KPj4gKyNlbHNlCj4+ICsjZGVmaW5lIF9QQUdFX01UX01BU0sg ICAgICAgICAgMAo+PiArI2RlZmluZSBfUEFHRV9NVF9QTUEgICAgICAgICAgIDAKPj4gKyNkZWZp bmUgX1BBR0VfTVRfTkMgICAgICAgICAgICAwCj4+ICsjZGVmaW5lIF9QQUdFX01UX0lPICAgICAg ICAgICAgMAo+PiArI2VuZGlmIC8qIENPTkZJR182NEJJVCAqLwo+PiArI2VuZGlmIC8qIF9fQVNT RU1CTFlfXyAqLwo+PiArCj4+ICAjZGVmaW5lIF9QQUdFX1NQRUNJQUwgICBfUEFHRV9TT0ZUCj4+ ICAjZGVmaW5lIF9QQUdFX1RBQkxFICAgICBfUEFHRV9QUkVTRU5UCj4+Cj4+IEBAIC0zOCw3ICs3 NCw4IEBACj4+ICAvKiBTZXQgb2YgYml0cyB0byBwcmVzZXJ2ZSBhY3Jvc3MgcHRlX21vZGlmeSgp ICovCj4+ICAjZGVmaW5lIF9QQUdFX0NIR19NQVNLICAofih1bnNpZ25lZCBsb25nKShfUEFHRV9Q UkVTRU5UIHwgX1BBR0VfUkVBRCB8IFwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgX1BBR0VfV1JJVEUgfCBfUEFHRV9FWEVDIHwgICAgXAo+PiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfUEFHRV9VU0VSIHwgX1BBR0VfR0xPQkFM KSkKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1BBR0VfVVNF UiB8IF9QQUdFX0dMT0JBTCB8ICAgXAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBfUEFHRV9NVF9NQVNLKSkKPj4gIC8qCj4+ICAgKiB3aGVuIGFsbCBvZiBSL1cv WCBhcmUgemVybywgdGhlIFBURSBpcyBhIHBvaW50ZXIgdG8gdGhlIG5leHQgbGV2ZWwKPj4gICAq IG9mIHRoZSBwYWdlIHRhYmxlOyBvdGhlcndpc2UsIGl0IGlzIGEgbGVhZiBQVEUuCj4+IGRpZmYg LS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3BndGFibGUuaCBiL2FyY2gvcmlzY3YvaW5j bHVkZS9hc20vcGd0YWJsZS5oCj4+IGluZGV4IDM5YjU1MDMxMGVjNi4uM2ZjNzBhNjNlMzk1IDEw MDY0NAo+PiAtLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3BndGFibGUuaAo+PiArKysgYi9h cmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3BndGFibGUuaAo+PiBAQCAtMTM2LDcgKzEzNiw4IEBACj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBfUEFHRV9QUkVTRU5UIFwKPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IF9QQUdFX0FDQ0VTU0VEIFwKPj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IF9QQUdFX0RJUlRZIFwKPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IF9QQUdFX0dMT0JBTCkKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IF9QQUdFX0dMT0JBTCBcCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBfUEFHRV9NVF9QTUEpCj4+Cj4+ICAjZGVmaW5lIFBBR0VfS0VSTkVMICAgICAg ICAgICAgX19wZ3Byb3QoX1BBR0VfS0VSTkVMKQo+PiAgI2RlZmluZSBQQUdFX0tFUk5FTF9SRUFE ICAgICAgIF9fcGdwcm90KF9QQUdFX0tFUk5FTCAmIH5fUEFHRV9XUklURSkKPj4gQEAgLTE0Niwx MSArMTQ3LDkgQEAKPj4KPj4gICNkZWZpbmUgUEFHRV9UQUJMRSAgICAgICAgICAgICBfX3BncHJv dChfUEFHRV9UQUJMRSkKPj4KPj4gLS8qCj4+IC0gKiBUaGUgUklTQy1WIElTQSBkb2Vzbid0IHll dCBzcGVjaWZ5IGhvdyB0byBxdWVyeSBvciBtb2RpZnkgUE1Bcywgc28gd2UgY2FuJ3QKPj4gLSAq IGNoYW5nZSB0aGUgcHJvcGVydGllcyBvZiBtZW1vcnkgcmVnaW9ucy4KPj4gLSAqLwo+PiAtI2Rl ZmluZSBfUEFHRV9JT1JFTUFQIF9QQUdFX0tFUk5FTAo+PiArI2RlZmluZSBfUEFHRV9JT1JFTUFQ ICAoKF9QQUdFX0tFUk5FTCAmIH5fUEFHRV9NVF9NQVNLKSB8IF9QQUdFX01UX0lPKQo+PiArCj4+ ICsjZGVmaW5lIFBBR0VfSU9SRU1BUCAgICAgICAgICAgX19wZ3Byb3QoX1BBR0VfSU9SRU1BUCkK Pj4KPj4gIGV4dGVybiBwZ2RfdCBzd2FwcGVyX3BnX2RpcltdOwo+Pgo+PiBAQCAtMjMwLDEyICsy MjksMTIgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIF9wZ2RfcGZuKHBnZF90IHBnZCkK Pj4KPj4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBhZ2UgKnBtZF9wYWdlKHBtZF90IHBtZCkKPj4g IHsKPj4gLSAgICAgICByZXR1cm4gcGZuX3RvX3BhZ2UocG1kX3ZhbChwbWQpID4+IF9QQUdFX1BG Tl9TSElGVCk7Cj4+ICsgICAgICAgcmV0dXJuIHBmbl90b19wYWdlKChwbWRfdmFsKHBtZCkgJiBf UEFHRV9DSEdfTUFTSykgPj4gX1BBR0VfUEZOX1NISUZUKTsKPj4gIH0KPj4KPj4gIHN0YXRpYyBp bmxpbmUgdW5zaWduZWQgbG9uZyBwbWRfcGFnZV92YWRkcihwbWRfdCBwbWQpCj4+ICB7Cj4+IC0g ICAgICAgcmV0dXJuICh1bnNpZ25lZCBsb25nKXBmbl90b192aXJ0KHBtZF92YWwocG1kKSA+PiBf UEFHRV9QRk5fU0hJRlQpOwo+PiArICAgICAgIHJldHVybiAodW5zaWduZWQgbG9uZylwZm5fdG9f dmlydCgocG1kX3ZhbChwbWQpICYgX1BBR0VfQ0hHX01BU0spID4+IF9QQUdFX1BGTl9TSElGVCk7 Cj4+ICB9Cj4+Cj4+ICBzdGF0aWMgaW5saW5lIHB0ZV90IHBtZF9wdGUocG1kX3QgcG1kKQo+PiBA QCAtMjUxLDcgKzI1MCw3IEBAIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHVkX3B0ZShwdWRfdCBwdWQp Cj4+ICAvKiBZaWVsZHMgdGhlIHBhZ2UgZnJhbWUgbnVtYmVyIChQRk4pIG9mIGEgcGFnZSB0YWJs ZSBlbnRyeSAqLwo+PiAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHB0ZV9wZm4ocHRlX3Qg cHRlKQo+PiAgewo+PiAtICAgICAgIHJldHVybiAocHRlX3ZhbChwdGUpID4+IF9QQUdFX1BGTl9T SElGVCk7Cj4+ICsgICAgICAgcmV0dXJuICgocHRlX3ZhbChwdGUpICYgX1BBR0VfQ0hHX01BU0sp ID4+IF9QQUdFX1BGTl9TSElGVCk7Cj4+ICB9Cj4+Cj4+ICAjZGVmaW5lIHB0ZV9wYWdlKHgpICAg ICBwZm5fdG9fcGFnZShwdGVfcGZuKHgpKQo+PiBAQCAtNDkwLDYgKzQ4OSwyOCBAQCBzdGF0aWMg aW5saW5lIGludCBwdGVwX2NsZWFyX2ZsdXNoX3lvdW5nKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq dm1hLAo+PiAgICAgICAgIHJldHVybiBwdGVwX3Rlc3RfYW5kX2NsZWFyX3lvdW5nKHZtYSwgYWRk cmVzcywgcHRlcCk7Cj4+ICB9Cj4+Cj4+ICsjZGVmaW5lIHBncHJvdF9ub25jYWNoZWQgcGdwcm90 X25vbmNhY2hlZAo+PiArc3RhdGljIGlubGluZSBwZ3Byb3RfdCBwZ3Byb3Rfbm9uY2FjaGVkKHBn cHJvdF90IF9wcm90KQo+PiArewo+PiArICAgICAgIHVuc2lnbmVkIGxvbmcgcHJvdCA9IHBncHJv dF92YWwoX3Byb3QpOwo+PiArCj4+ICsgICAgICAgcHJvdCAmPSB+X1BBR0VfTVRfTUFTSzsKPj4g KyAgICAgICBwcm90IHw9IF9QQUdFX01UX0lPOwo+PiArCj4+ICsgICAgICAgcmV0dXJuIF9fcGdw cm90KHByb3QpOwo+PiArfQo+PiArCj4+ICsjZGVmaW5lIHBncHJvdF93cml0ZWNvbWJpbmUgcGdw cm90X3dyaXRlY29tYmluZQo+PiArc3RhdGljIGlubGluZSBwZ3Byb3RfdCBwZ3Byb3Rfd3JpdGVj b21iaW5lKHBncHJvdF90IF9wcm90KQo+PiArewo+PiArICAgICAgIHVuc2lnbmVkIGxvbmcgcHJv dCA9IHBncHJvdF92YWwoX3Byb3QpOwo+PiArCj4+ICsgICAgICAgcHJvdCAmPSB+X1BBR0VfTVRf TUFTSzsKPj4gKyAgICAgICBwcm90IHw9IF9QQUdFX01UX05DOwo+PiArCj4+ICsgICAgICAgcmV0 dXJuIF9fcGdwcm90KHByb3QpOwo+PiArfQo+PiArCj4+ICAvKgo+PiAgICogVEhQIGZ1bmN0aW9u cwo+PiAgICovCj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC9jcHUuYyBiL2FyY2gv cmlzY3Yva2VybmVsL2NwdS5jCj4+IGluZGV4IDZkNTllNjkwNmZkZC4uZmJjZTUyNTk2MWMwIDEw MDY0NAo+PiAtLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9jcHUuYwo+PiArKysgYi9hcmNoL3Jpc2N2 L2tlcm5lbC9jcHUuYwo+PiBAQCAtNzcsNyArNzcsOSBAQCBzdGF0aWMgdm9pZCBwcmludF9tbXUo c3RydWN0IHNlcV9maWxlICpmLCBjb25zdCBjaGFyICptbXVfdHlwZSkKPj4gICAgICAgICAgICAg ICAgIHJldHVybjsKPj4gICNlbGlmIGRlZmluZWQoQ09ORklHXzY0QklUKQo+PiAgICAgICAgIGlm IChzdHJjbXAobW11X3R5cGUsICJyaXNjdixzdjM5IikgIT0gMCAmJgo+PiAtICAgICAgICAgICBz dHJjbXAobW11X3R5cGUsICJyaXNjdixzdjQ4IikgIT0gMCkKPj4gKyAgICAgICAgICAgc3RyY21w KG1tdV90eXBlLCAicmlzY3Ysc3Y0OCIpICE9IDAgJiYKPj4gKyAgICAgICAgICAgc3RyY21wKG1t dV90eXBlLCAicmlzY3Ysc3YzOSxzdnBibXQiKSAhPSAwICYmCj4+ICsgICAgICAgICAgIHN0cmNt cChtbXVfdHlwZSwgInJpc2N2LHN2NDgsc3ZwYm10IikgIT0gMCkKPj4gICAgICAgICAgICAgICAg IHJldHVybjsKPj4gICNlbmRpZgo+Pgo+PiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwv Y3B1ZmVhdHVyZS5jIGIvYXJjaC9yaXNjdi9rZXJuZWwvY3B1ZmVhdHVyZS5jCj4+IGluZGV4IGQ5 NTlkMjA3YTQwZC4uZDFiMDQ2YTgyNTRiIDEwMDY0NAo+PiAtLS0gYS9hcmNoL3Jpc2N2L2tlcm5l bC9jcHVmZWF0dXJlLmMKPj4gKysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvY3B1ZmVhdHVyZS5jCj4+ IEBAIC04LDYgKzgsNyBAQAo+Pgo+PiAgI2luY2x1ZGUgPGxpbnV4L2JpdG1hcC5oPgo+PiAgI2lu Y2x1ZGUgPGxpbnV4L29mLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvcGd0YWJsZS5oPgo+PiAgI2lu Y2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KPj4gICNpbmNsdWRlIDxhc20vaHdjYXAuaD4KPj4gICNp bmNsdWRlIDxhc20vc21wLmg+Cj4+IEBAIC01OSw2ICs2MCwyNyBAQCBib29sIF9fcmlzY3ZfaXNh X2V4dGVuc2lvbl9hdmFpbGFibGUoY29uc3QgdW5zaWduZWQgbG9uZyAqaXNhX2JpdG1hcCwgaW50 IGJpdCkKPj4gIH0KPj4gIEVYUE9SVF9TWU1CT0xfR1BMKF9fcmlzY3ZfaXNhX2V4dGVuc2lvbl9h dmFpbGFibGUpOwo+Pgo+PiArc3RhdGljIHZvaWQgX19pbml0IHJpc2N2X3N2cGJtdCh2b2lkKQo+ PiArewo+PiArI2lmIGRlZmluZWQoQ09ORklHX01NVSkgJiYgZGVmaW5lZChDT05GSUdfNjRCSVQp Cj4+ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICpub2RlOwo+PiArICAgICAgIGNvbnN0IGNo YXIgKnN0cjsKPj4gKwo+PiArICAgICAgIGZvcl9lYWNoX29mX2NwdV9ub2RlKG5vZGUpIHsKPj4g KyAgICAgICAgICAgICAgIGlmIChvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZyhub2RlLCAibW11LXR5 cGUiLCAmc3RyKSkKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4+ICsKPj4g KyAgICAgICAgICAgICAgIGlmIChzdHJuY21wKHN0ciArIDExLCAic3ZwYm10IiwgNikpCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKPj4gKyAgICAgICB9Cj4+ICsKPj4gKyAgICAg ICBfX3Jpc2N2X3N2cGJtdC5tYXNrICAgICA9IF9TVlBCTVRfTUFTSzsKPj4gKyAgICAgICBfX3Jp c2N2X3N2cGJtdC5tdF9wbWEgICA9IF9TVlBCTVRfUE1BOwo+PiArICAgICAgIF9fcmlzY3Zfc3Zw Ym10Lm10X25jICAgID0gX1NWUEJNVF9OQzsKPj4gKyAgICAgICBfX3Jpc2N2X3N2cGJtdC5tdF9p byAgICA9IF9TVlBCTVRfSU87Cj4+ICsjZW5kaWYKPj4gK30KPj4gKwo+PiAgdm9pZCBfX2luaXQg cmlzY3ZfZmlsbF9od2NhcCh2b2lkKQo+PiAgewo+PiAgICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9k ZSAqbm9kZTsKPj4gQEAgLTY3LDYgKzg5LDggQEAgdm9pZCBfX2luaXQgcmlzY3ZfZmlsbF9od2Nh cCh2b2lkKQo+PiAgICAgICAgIHNpemVfdCBpLCBqLCBpc2FfbGVuOwo+PiAgICAgICAgIHN0YXRp YyB1bnNpZ25lZCBsb25nIGlzYTJod2NhcFsyNTZdID0gezB9Owo+Pgo+PiArICAgICAgIHJpc2N2 X3N2cGJtdCgpOwo+PiArCj4+ICAgICAgICAgaXNhMmh3Y2FwWydpJ10gPSBpc2EyaHdjYXBbJ0kn XSA9IENPTVBBVF9IV0NBUF9JU0FfSTsKPj4gICAgICAgICBpc2EyaHdjYXBbJ20nXSA9IGlzYTJo d2NhcFsnTSddID0gQ09NUEFUX0hXQ0FQX0lTQV9NOwo+PiAgICAgICAgIGlzYTJod2NhcFsnYSdd ID0gaXNhMmh3Y2FwWydBJ10gPSBDT01QQVRfSFdDQVBfSVNBX0E7Cj4+IGRpZmYgLS1naXQgYS9h cmNoL3Jpc2N2L21tL2luaXQuYyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jCj4+IGluZGV4IDdjYjRm MzkxZDEwNi4uNDNiMmUxMWZkM2UwIDEwMDY0NAo+PiAtLS0gYS9hcmNoL3Jpc2N2L21tL2luaXQu Ywo+PiArKysgYi9hcmNoL3Jpc2N2L21tL2luaXQuYwo+PiBAQCAtOTA1LDMgKzkwNSw4IEBAIGlu dCBfX21lbWluaXQgdm1lbW1hcF9wb3B1bGF0ZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25l ZCBsb25nIGVuZCwgaW50IG5vZGUsCj4+ICAgICAgICAgcmV0dXJuIHZtZW1tYXBfcG9wdWxhdGVf YmFzZXBhZ2VzKHN0YXJ0LCBlbmQsIG5vZGUsIE5VTEwpOwo+PiAgfQo+PiAgI2VuZGlmCj4+ICsK Pj4gKyNpZmRlZiBDT05GSUdfNjRCSVQKPj4gK3N0cnVjdCBfX3Jpc2N2X3N2cGJtdF9zdHJ1Y3Qg X19yaXNjdl9zdnBibXQgX19yb19hZnRlcl9pbml0Owo+PiArRVhQT1JUX1NZTUJPTChfX3Jpc2N2 X3N2cGJtdCk7Cj4+ICsjZW5kaWYKPj4gLS0KPj4gMi4yNS4xCj4+Cj4+Cj4+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IGxpbnV4LXJpc2N2IG1haWxp bmcgbGlzdAo+PiBsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCj4+IGh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YKPgo+Cj4KPiAtLQo+ IFJlZ2FyZHMsCj4gQXRpc2gKCgoKLS0gClJlZ2FyZHMsCkF0aXNoCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QK bGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==