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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 6142AD7234B for ; Fri, 23 Jan 2026 08:33:28 +0000 (UTC) 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:In-Reply-To:From:References:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=dl3sGWAzSIY9SxbTGEXrJq0poRY6cet8bEXZ/+b5ufo=; b=Nbk4tujySPjftN fVwsyEpDKrmhC1a+6+uYzmdwWmGj7ph1nrWQPeGbHOqdwISzAC3St2jKIBX25AuollhjhQzTTbH7V iMfg5H0xB6nZHw8hiNNuWtNIOQrUbcl+OFwgH2ftxE1Rra8oPn9SsgpF+NqgXAHzQFkuYYyTbXJrc AGbCeTnfTL9QwZK4dltt+u7d96Xpb/06eQZifusjsLQFOeLl8Xya8mlXF9IhX7iLpQdj9kkEUW0kF 95CFcFtD9w8SULOSTsBh7khI+7w97YWSkQWX+oA6xVbohBND17whFDh34JgHxraQhpMr4K9QVBz6X 2zV4XeNZkR1hLlMaf7PQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vjCbT-00000008UH3-3x4C; Fri, 23 Jan 2026 08:33:15 +0000 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vjCbQ-00000008UGC-3EF9; Fri, 23 Jan 2026 08:33:14 +0000 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 60N7DLFF005847; Fri, 23 Jan 2026 08:32:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=QebB4W 4NBY7wDDDzlK1z5Wh9zIymSigisJpG9EpgfiQ=; b=YkB0+lPR6J7MErSdljpbov dCY3rqisDwxIb/Kt8bVCUr0gF8otMytwHELV7M5tHCtDcBexXP3RlnI2EPevCbve IaZ21d/fMmQmMeAi8acm//SpcQ8tAN5n7TUotuJ9t6u8k2kOBtVQ5Kw/RcSN+WNX BCeC0jDTSSPs5QVoCUx54J4nOmI0UF/EGzmFGvDTO0PXTDdWP65Ti1YD3kL8hvOG zcunCa/6WRXw9s3qoKSoYs0N6bVBRTJ39rNJYV28lcQrv/6fy941A/69COE9vl61 CtiC85Maa+wFNdOBxeOiBW4vWT9ZghUW5C9cIT38PT4W+vv0uAjLMyoioyFH+w6g == Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4bus1pu6hr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 23 Jan 2026 08:32:50 +0000 (GMT) Received: from m0353725.ppops.net (m0353725.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 60N8Jg2P023180; Fri, 23 Jan 2026 08:32:49 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4bus1pu6hm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 23 Jan 2026 08:32:49 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 60N6IL7D016679; Fri, 23 Jan 2026 08:32:48 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4brn4yg5j6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 23 Jan 2026 08:32:45 +0000 Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com [10.20.54.100]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 60N8WdVp62849440 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 23 Jan 2026 08:32:39 GMT Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 307952004D; Fri, 23 Jan 2026 08:32:39 +0000 (GMT) Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 815562004B; Fri, 23 Jan 2026 08:32:37 +0000 (GMT) Received: from [9.111.48.241] (unknown [9.111.48.241]) by smtpav01.fra02v.mail.ibm.com (Postfix) with ESMTP; Fri, 23 Jan 2026 08:32:37 +0000 (GMT) Message-ID: <238fa60c-4dd3-406f-8b33-69d2206936d2@linux.ibm.com> Date: Fri, 23 Jan 2026 09:32:36 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] perf regs: Refactor use of arch__sample_reg_masks to perf_reg_name To: Ian Rogers , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Jiri Olsa , Adrian Hunter , James Clark , John Garry , Will Deacon , Leo Yan , Guo Ren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Shimin Guo , Athira Rajeev , Stephen Brennan , Howard Chu , Thomas Falcon , Andi Kleen , "Dr. David Alan Gilbert" , Dmitry Vyukov , =?UTF-8?Q?Krzysztof_=C5=81opatowski?= , Chun-Tse Shao , Aditya Bodkhe , Haibo Xu , Sergei Trofimovich , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org, Dapeng Mi References: <20260121021735.3625244-1-irogers@google.com> Content-Language: en-US From: Thomas Richter Organization: IBM In-Reply-To: <20260121021735.3625244-1-irogers@google.com> X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: PHHFmj7RJAMj0y4omm3S0NygVmg3AlWy X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIzMDA2NCBTYWx0ZWRfXwXinqsSxFeU6 pGi4Ta6SrCXNSzwep7eJPtlyZTuOBHfd8w06tqmYlInW6P84ZIsqiIfiATNfFV/2bwXt5XIROP8 6QO/TuxmRRcm/eF/vmS/sK7JbG0ZkYQXqdbDZoKGa+eBI5vNr4/XEOv+kQRVY/g7OUlLFl+Tw3g G8x4ODCDhr9kcsvyLSonTGFa/hiuUB7JhrHqSZp8D8mlwZo80adqneR7KSlIKiUl2P2Gfh3hHaW YzY83yGeIL46bIGhGNGLvW/b3mIl7kCX8LMTWs4bVLKscObbP1cmyFRVWbU9xGEpL7GMZUWmQ9x rfLQ0tbE0OVS6egFkacR4ntI4D8vUOqOnZS4QzbXo7Jfhn+kYSkyVRfb4NhfpF+ndGXAnoj/w7t TDBAhYzsV4zeYBrepKXQD0vTB6Mtb2JawCKTKrGMgExGK5plhOlYIgeDnVvLGgCLulzNSXDOW4s rAdUyAgHY2sZRF/Ir2g== X-Proofpoint-GUID: sB5ikwkopOPbdoUp1Lm_UyhK6Y3Tdhek X-Authority-Analysis: v=2.4 cv=GY8aXAXL c=1 sm=1 tr=0 ts=69733232 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=1XWaLZrsAAAA:8 a=VnNF1IyMAAAA:8 a=rdxWDl2YoaJ9roQkb14A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-23_01,2026-01-22_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 spamscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 adultscore=0 clxscore=1011 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2601150000 definitions=main-2601230064 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260123_003312_946170_D6F0994C X-CRM114-Status: GOOD ( 26.21 ) 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 T24gMS8yMS8yNiAwMzoxNywgSWFuIFJvZ2VycyB3cm90ZToKPiBhcmNoX19zYW1wbGVfcmVnX21h c2tzIGlzbid0IHN1cHBvcnRlZCBvbiBBUk0oMzIpLCBjc2t5LCBsb29uZ2FyY2gsCj4gTUlQUywg UklTQy1WIGFuZCBzMzkwLiBUaGUgdGFibGUgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGp1c3Qg aGFzIHRoZQo+IG5hbWUgb2YgYSByZWdpc3RlciBwYWlyZWQgd2l0aCB0aGUgY29ycmVzcG9uZGlu ZyBzYW1wbGVfcmVnc191c2VyIG1hc2sKPiB2YWx1ZS4gRm9yIGEgZ2l2ZW4gcGVyZiByZWdpc3Rl ciB3ZSBjYW4gY29tcHV0ZSB0aGUgbmFtZSB3aXRoCj4gcGVyZl9yZWdfbmFtZSBhbmQgdGhlIG1h c2sgaXMganVzdCAxIGxlZnQtc2hpZnRlZCBieSB0aGUgcGVyZiByZWdpc3Rlcgo+IG51bWJlci4g Q2hhbmdlIF9fcGFyc2VfcmVncyB0byB1c2UgdGhpcyBtZXRob2QgZm9yIGZpbmRpbmcgcmVnaXN0 ZXJzCj4gcmF0aGVyIHRoYW4gYXJjaF9fc2FtcGxlX3JlZ19tYXNrcywgdGhlcmVieSBhZGRpbmcg X19wYXJzZV9yZWdzCj4gc3VwcG9ydCBmb3IgQVJNKDMyKSwgY3NreSwgbG9vbmdhcmNoLCBNSVBT LCBSSVNDLVYgYW5kIHMzOTAuIEFzCj4gYXJjaF9fc2FtcGxlX3JlZ19tYXNrcyBpcyB0aGVuIHVu dXNlZCwgcmVtb3ZlIHRoZSBub3cgdW5uZWVkZWQKPiBkZWNsYXJhdGlvbnMuCj4gCj4gU2lnbmVk LW9mZi1ieTogSWFuIFJvZ2VycyA8aXJvZ2Vyc0Bnb29nbGUuY29tPgo+IC0tLQo+IHYyOiBDb3Jy ZWN0IHRoZSBzZXR0aW5nIG9mIHJlZyBtYXNrIGZvciByZWdpc3RlcnMgdGhhdCBuZWVkID4xIGJp dCBzZXQKPiAgICAgbGlrZSBYTU1zLgo+IAo+IFRoZSBpZGVhIGZvciB0aGlzIHBhdGNoIGNhbWUg dXAgaW4gY29udmVyc2F0aW9uIHdpdGggRGFwZW5nIE1pIHRvCj4gYXZvaWQgYWRkaXRpb25hbCBm dW5jdGlvbnMgYW5kIHRhYmxlcyBmb3IgeDg2IEFQWCBzdXBwb3J0Ogo+IGh0dHBzOi8vbG9yZS5r ZXJuZWwub3JnL2xrbWwvQ0FQLTU9ZldPc3ZBWHV1OHF4MHRrOXE4ajhCb1hQTUpCM0d4dG8raXU2 d2YwNmk0Y1ZBQG1haWwuZ21haWwuY29tLwo+IAo+IFRoZSBwYXRjaCBpcyBvbiB0b3Agb2YgdGhl IGR3ZmwgY2xlYW4gdXAgcGF0Y2hlcyB0aGF0IHN3aXRjaCBwZXJmCj4gcmVnaXN0ZXIgZnVuY3Rp b25zIHRvIHVzaW5nIGVfbWFjaGluZSBhcyBhbiBhcmd1bWVudCByYXRoZXIgdGhhbiB0aGUKPiBh cmNoIHN0cmluZywgdGhpcyBtZWFucyB0aGF0IEVNX0hPU1QgY2FuIGJlIHVzZWQgd2l0aCBwZXJm X3JlZ19uYW1lOgo+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAyNjAxMTcwNTI4NDku MjIwNTU0NS0xLWlyb2dlcnNAZ29vZ2xlLmNvbS8KPiAtLS0KPiAgdG9vbHMvcGVyZi9hcmNoL2Fy bS91dGlsL3BlcmZfcmVncy5jICAgICAgICAgIHwgICA5IC0tCj4gIHRvb2xzL3BlcmYvYXJjaC9h cm02NC91dGlsL21hY2hpbmUuYyAgICAgICAgICB8ICAxNCArLS0KPiAgdG9vbHMvcGVyZi9hcmNo L2FybTY0L3V0aWwvcGVyZl9yZWdzLmMgICAgICAgIHwgIDQ1ICstLS0tLS0KPiAgdG9vbHMvcGVy Zi9hcmNoL2Nza3kvdXRpbC9wZXJmX3JlZ3MuYyAgICAgICAgIHwgICA5IC0tCj4gIHRvb2xzL3Bl cmYvYXJjaC9sb29uZ2FyY2gvdXRpbC9wZXJmX3JlZ3MuYyAgICB8ICAgOSAtLQo+ICB0b29scy9w ZXJmL2FyY2gvbWlwcy91dGlsL3BlcmZfcmVncy5jICAgICAgICAgfCAgIDkgLS0KPiAgdG9vbHMv cGVyZi9hcmNoL3Bvd2VycGMvdXRpbC9wZXJmX3JlZ3MuYyAgICAgIHwgIDY4IC0tLS0tLS0tLS0K PiAgdG9vbHMvcGVyZi9hcmNoL3Jpc2N2L3V0aWwvcGVyZl9yZWdzLmMgICAgICAgIHwgICA5IC0t Cj4gIHRvb2xzL3BlcmYvYXJjaC9zMzkwL3V0aWwvcGVyZl9yZWdzLmMgICAgICAgICB8ICAgOSAt LQo+ICB0b29scy9wZXJmL2FyY2gveDg2L3V0aWwvcGVyZl9yZWdzLmMgICAgICAgICAgfCAgNDcg LS0tLS0tLQo+ICAuLi4vdXRpbC9hcm02NC1mcmFtZS1wb2ludGVyLXVud2luZC1zdXBwb3J0LmMg fCAgIDMgKy0KPiAgdG9vbHMvcGVyZi91dGlsL3BhcnNlLXJlZ3Mtb3B0aW9ucy5jICAgICAgICAg IHwgMTE2ICsrKysrKysrKysrLS0tLS0tLQo+ICB0b29scy9wZXJmL3V0aWwvcGVyZl9yZWdzLmMg ICAgICAgICAgICAgICAgICAgfCAgIDkgLS0KPiAgdG9vbHMvcGVyZi91dGlsL3BlcmZfcmVncy5o ICAgICAgICAgICAgICAgICAgIHwgIDEyIC0tCj4gIDE0IGZpbGVzIGNoYW5nZWQsIDgxIGluc2Vy dGlvbnMoKyksIDI4NyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9h cmNoL2FybS91dGlsL3BlcmZfcmVncy5jIGIvdG9vbHMvcGVyZi9hcmNoL2FybS91dGlsL3BlcmZf cmVncy5jCj4gaW5kZXggZjk0YTAyMTBjN2I3Li4wM2E1YmMwY2Y2NGMgMTAwNjQ0Cj4gLS0tIGEv dG9vbHMvcGVyZi9hcmNoL2FybS91dGlsL3BlcmZfcmVncy5jCj4gKysrIGIvdG9vbHMvcGVyZi9h cmNoL2FybS91dGlsL3BlcmZfcmVncy5jCj4gQEAgLTIsMTAgKzIsNiBAQAo+ICAjaW5jbHVkZSAi cGVyZl9yZWdzLmgiCj4gICNpbmNsdWRlICIuLi8uLi8uLi91dGlsL3BlcmZfcmVncy5oIgo+ICAK PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnIHNhbXBsZV9yZWdfbWFza3NbXSA9IHsK PiAtCVNNUExfUkVHX0VORAo+IC19Owo+IC0KPiAgdWludDY0X3QgYXJjaF9faW50cl9yZWdfbWFz ayh2b2lkKQo+ICB7Cj4gIAlyZXR1cm4gUEVSRl9SRUdTX01BU0s7Cj4gQEAgLTE1LDggKzExLDMg QEAgdWludDY0X3QgYXJjaF9fdXNlcl9yZWdfbWFzayh2b2lkKQo+ICB7Cj4gIAlyZXR1cm4gUEVS Rl9SRUdTX01BU0s7Cj4gIH0KPiAtCj4gLWNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnICphcmNoX19z YW1wbGVfcmVnX21hc2tzKHZvaWQpCj4gLXsKPiAtCXJldHVybiBzYW1wbGVfcmVnX21hc2tzOwo+ IC19Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL21hY2hpbmUuYyBi L3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL21hY2hpbmUuYwo+IGluZGV4IGFhYjFjYzJiYzI4 My4uODBmYjEzYzk1OGQ5IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGls L21hY2hpbmUuYwo+ICsrKyBiL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL21hY2hpbmUuYwo+ IEBAIC0xLDE4ICsxLDEyIEBACj4gIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4w Cj4gIAo+IC0jaW5jbHVkZSA8aW50dHlwZXMuaD4KPiAtI2luY2x1ZGUgPHN0ZGlvLmg+Cj4gLSNp bmNsdWRlIDxzdHJpbmcuaD4KPiAtI2luY2x1ZGUgImRlYnVnLmgiCj4gLSNpbmNsdWRlICJzeW1i b2wuaCIKPiAtI2luY2x1ZGUgImNhbGxjaGFpbi5oIgo+ICsjaW5jbHVkZSAiY2FsbGNoYWluLmgi IC8vIHByb3RvdHlwZSBvZiBhcmNoX19hZGRfbGVhZl9mcmFtZV9yZWNvcmRfb3B0cwo+ICAjaW5j bHVkZSAicGVyZl9yZWdzLmgiCj4gICNpbmNsdWRlICJyZWNvcmQuaCIKPiAtI2luY2x1ZGUgInV0 aWwvcGVyZl9yZWdzLmgiCj4gKwo+ICsjZGVmaW5lIFNNUExfUkVHX01BU0soYikgKDFVTEwgPDwg KGIpKQo+ICAKPiAgdm9pZCBhcmNoX19hZGRfbGVhZl9mcmFtZV9yZWNvcmRfb3B0cyhzdHJ1Y3Qg cmVjb3JkX29wdHMgKm9wdHMpCj4gIHsKPiAtCWNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnICpzYW1w bGVfcmVnX21hc2tzID0gYXJjaF9fc2FtcGxlX3JlZ19tYXNrcygpOwo+IC0KPiAtCW9wdHMtPnNh bXBsZV91c2VyX3JlZ3MgfD0gc2FtcGxlX3JlZ19tYXNrc1tQRVJGX1JFR19BUk02NF9MUl0ubWFz azsKPiArCW9wdHMtPnNhbXBsZV91c2VyX3JlZ3MgfD0gU01QTF9SRUdfTUFTSyhQRVJGX1JFR19B Uk02NF9MUik7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9hcmNoL2FybTY0L3V0aWwv cGVyZl9yZWdzLmMgYi90b29scy9wZXJmL2FyY2gvYXJtNjQvdXRpbC9wZXJmX3JlZ3MuYwo+IGlu ZGV4IDA5MzA4NjY1ZTI4YS4uOWJiNzY4ZTFiZWExIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL3BlcmYv YXJjaC9hcm02NC91dGlsL3BlcmZfcmVncy5jCj4gKysrIGIvdG9vbHMvcGVyZi9hcmNoL2FybTY0 L3V0aWwvcGVyZl9yZWdzLmMKPiBAQCAtMTIsNDggKzEyLDEyIEBACj4gICNpbmNsdWRlICIuLi8u Li8uLi91dGlsL2V2ZW50LmgiCj4gICNpbmNsdWRlICIuLi8uLi8uLi91dGlsL3BlcmZfcmVncy5o Igo+ICAKPiArI2RlZmluZSBTTVBMX1JFR19NQVNLKGIpICgxVUxMIDw8IChiKSkKPiArCj4gICNp Zm5kZWYgSFdDQVBfU1ZFCj4gICNkZWZpbmUgSFdDQVBfU1ZFCSgxIDw8IDIyKQo+ICAjZW5kaWYK PiAgCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2FtcGxlX3JlZyBzYW1wbGVfcmVnX21hc2tzW10g PSB7Cj4gLQlTTVBMX1JFRyh4MCwgUEVSRl9SRUdfQVJNNjRfWDApLAo+IC0JU01QTF9SRUcoeDEs IFBFUkZfUkVHX0FSTTY0X1gxKSwKPiAtCVNNUExfUkVHKHgyLCBQRVJGX1JFR19BUk02NF9YMiks Cj4gLQlTTVBMX1JFRyh4MywgUEVSRl9SRUdfQVJNNjRfWDMpLAo+IC0JU01QTF9SRUcoeDQsIFBF UkZfUkVHX0FSTTY0X1g0KSwKPiAtCVNNUExfUkVHKHg1LCBQRVJGX1JFR19BUk02NF9YNSksCj4g LQlTTVBMX1JFRyh4NiwgUEVSRl9SRUdfQVJNNjRfWDYpLAo+IC0JU01QTF9SRUcoeDcsIFBFUkZf UkVHX0FSTTY0X1g3KSwKPiAtCVNNUExfUkVHKHg4LCBQRVJGX1JFR19BUk02NF9YOCksCj4gLQlT TVBMX1JFRyh4OSwgUEVSRl9SRUdfQVJNNjRfWDkpLAo+IC0JU01QTF9SRUcoeDEwLCBQRVJGX1JF R19BUk02NF9YMTApLAo+IC0JU01QTF9SRUcoeDExLCBQRVJGX1JFR19BUk02NF9YMTEpLAo+IC0J U01QTF9SRUcoeDEyLCBQRVJGX1JFR19BUk02NF9YMTIpLAo+IC0JU01QTF9SRUcoeDEzLCBQRVJG X1JFR19BUk02NF9YMTMpLAo+IC0JU01QTF9SRUcoeDE0LCBQRVJGX1JFR19BUk02NF9YMTQpLAo+ IC0JU01QTF9SRUcoeDE1LCBQRVJGX1JFR19BUk02NF9YMTUpLAo+IC0JU01QTF9SRUcoeDE2LCBQ RVJGX1JFR19BUk02NF9YMTYpLAo+IC0JU01QTF9SRUcoeDE3LCBQRVJGX1JFR19BUk02NF9YMTcp LAo+IC0JU01QTF9SRUcoeDE4LCBQRVJGX1JFR19BUk02NF9YMTgpLAo+IC0JU01QTF9SRUcoeDE5 LCBQRVJGX1JFR19BUk02NF9YMTkpLAo+IC0JU01QTF9SRUcoeDIwLCBQRVJGX1JFR19BUk02NF9Y MjApLAo+IC0JU01QTF9SRUcoeDIxLCBQRVJGX1JFR19BUk02NF9YMjEpLAo+IC0JU01QTF9SRUco eDIyLCBQRVJGX1JFR19BUk02NF9YMjIpLAo+IC0JU01QTF9SRUcoeDIzLCBQRVJGX1JFR19BUk02 NF9YMjMpLAo+IC0JU01QTF9SRUcoeDI0LCBQRVJGX1JFR19BUk02NF9YMjQpLAo+IC0JU01QTF9S RUcoeDI1LCBQRVJGX1JFR19BUk02NF9YMjUpLAo+IC0JU01QTF9SRUcoeDI2LCBQRVJGX1JFR19B Uk02NF9YMjYpLAo+IC0JU01QTF9SRUcoeDI3LCBQRVJGX1JFR19BUk02NF9YMjcpLAo+IC0JU01Q TF9SRUcoeDI4LCBQRVJGX1JFR19BUk02NF9YMjgpLAo+IC0JU01QTF9SRUcoeDI5LCBQRVJGX1JF R19BUk02NF9YMjkpLAo+IC0JU01QTF9SRUcobHIsIFBFUkZfUkVHX0FSTTY0X0xSKSwKPiAtCVNN UExfUkVHKHNwLCBQRVJGX1JFR19BUk02NF9TUCksCj4gLQlTTVBMX1JFRyhwYywgUEVSRl9SRUdf QVJNNjRfUEMpLAo+IC0JU01QTF9SRUcodmcsIFBFUkZfUkVHX0FSTTY0X1ZHKSwKPiAtCVNNUExf UkVHX0VORAo+IC19Owo+IC0KPiAgLyogJXhOVU0gKi8KPiAgI2RlZmluZSBTRFRfT1BfUkVHRVgx ICAiXih4WzEtMl0/WzAtOV18M1swLTFdKSQiCj4gIAo+IEBAIC0xNzUsOCArMTM5LDMgQEAgdWlu dDY0X3QgYXJjaF9fdXNlcl9yZWdfbWFzayh2b2lkKQo+ICAJfQo+ICAJcmV0dXJuIFBFUkZfUkVH U19NQVNLOwo+ICB9Cj4gLQo+IC1jb25zdCBzdHJ1Y3Qgc2FtcGxlX3JlZyAqYXJjaF9fc2FtcGxl X3JlZ19tYXNrcyh2b2lkKQo+IC17Cj4gLQlyZXR1cm4gc2FtcGxlX3JlZ19tYXNrczsKPiAtfQo+ IGRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gvY3NreS91dGlsL3BlcmZfcmVncy5jIGIvdG9v bHMvcGVyZi9hcmNoL2Nza3kvdXRpbC9wZXJmX3JlZ3MuYwo+IGluZGV4IDZiMTY2NWY0MTE4MC4u MmNmN2E1NDEwNmUwIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL3BlcmYvYXJjaC9jc2t5L3V0aWwvcGVy Zl9yZWdzLmMKPiArKysgYi90b29scy9wZXJmL2FyY2gvY3NreS91dGlsL3BlcmZfcmVncy5jCj4g QEAgLTIsMTAgKzIsNiBAQAo+ICAjaW5jbHVkZSAicGVyZl9yZWdzLmgiCj4gICNpbmNsdWRlICIu Li8uLi91dGlsL3BlcmZfcmVncy5oIgo+ICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1wbGVf cmVnIHNhbXBsZV9yZWdfbWFza3NbXSA9IHsKPiAtCVNNUExfUkVHX0VORAo+IC19Owo+IC0KPiAg dWludDY0X3QgYXJjaF9faW50cl9yZWdfbWFzayh2b2lkKQo+ICB7Cj4gIAlyZXR1cm4gUEVSRl9S RUdTX01BU0s7Cj4gQEAgLTE1LDggKzExLDMgQEAgdWludDY0X3QgYXJjaF9fdXNlcl9yZWdfbWFz ayh2b2lkKQo+ICB7Cj4gIAlyZXR1cm4gUEVSRl9SRUdTX01BU0s7Cj4gIH0KPiAtCj4gLWNvbnN0 IHN0cnVjdCBzYW1wbGVfcmVnICphcmNoX19zYW1wbGVfcmVnX21hc2tzKHZvaWQpCj4gLXsKPiAt CXJldHVybiBzYW1wbGVfcmVnX21hc2tzOwo+IC19Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYv YXJjaC9sb29uZ2FyY2gvdXRpbC9wZXJmX3JlZ3MuYyBiL3Rvb2xzL3BlcmYvYXJjaC9sb29uZ2Fy Y2gvdXRpbC9wZXJmX3JlZ3MuYwo+IGluZGV4IGY5NGEwMjEwYzdiNy4uMDNhNWJjMGNmNjRjIDEw MDY0NAo+IC0tLSBhL3Rvb2xzL3BlcmYvYXJjaC9sb29uZ2FyY2gvdXRpbC9wZXJmX3JlZ3MuYwo+ ICsrKyBiL3Rvb2xzL3BlcmYvYXJjaC9sb29uZ2FyY2gvdXRpbC9wZXJmX3JlZ3MuYwo+IEBAIC0y LDEwICsyLDYgQEAKPiAgI2luY2x1ZGUgInBlcmZfcmVncy5oIgo+ICAjaW5jbHVkZSAiLi4vLi4v Li4vdXRpbC9wZXJmX3JlZ3MuaCIKPiAgCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2FtcGxlX3Jl ZyBzYW1wbGVfcmVnX21hc2tzW10gPSB7Cj4gLQlTTVBMX1JFR19FTkQKPiAtfTsKPiAtCj4gIHVp bnQ2NF90IGFyY2hfX2ludHJfcmVnX21hc2sodm9pZCkKPiAgewo+ICAJcmV0dXJuIFBFUkZfUkVH U19NQVNLOwo+IEBAIC0xNSw4ICsxMSwzIEBAIHVpbnQ2NF90IGFyY2hfX3VzZXJfcmVnX21hc2so dm9pZCkKPiAgewo+ICAJcmV0dXJuIFBFUkZfUkVHU19NQVNLOwo+ICB9Cj4gLQo+IC1jb25zdCBz dHJ1Y3Qgc2FtcGxlX3JlZyAqYXJjaF9fc2FtcGxlX3JlZ19tYXNrcyh2b2lkKQo+IC17Cj4gLQly ZXR1cm4gc2FtcGxlX3JlZ19tYXNrczsKPiAtfQo+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL2Fy Y2gvbWlwcy91dGlsL3BlcmZfcmVncy5jIGIvdG9vbHMvcGVyZi9hcmNoL21pcHMvdXRpbC9wZXJm X3JlZ3MuYwo+IGluZGV4IDZiMTY2NWY0MTE4MC4uMmNmN2E1NDEwNmUwIDEwMDY0NAo+IC0tLSBh L3Rvb2xzL3BlcmYvYXJjaC9taXBzL3V0aWwvcGVyZl9yZWdzLmMKPiArKysgYi90b29scy9wZXJm L2FyY2gvbWlwcy91dGlsL3BlcmZfcmVncy5jCj4gQEAgLTIsMTAgKzIsNiBAQAo+ICAjaW5jbHVk ZSAicGVyZl9yZWdzLmgiCj4gICNpbmNsdWRlICIuLi8uLi91dGlsL3BlcmZfcmVncy5oIgo+ICAK PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnIHNhbXBsZV9yZWdfbWFza3NbXSA9IHsK PiAtCVNNUExfUkVHX0VORAo+IC19Owo+IC0KPiAgdWludDY0X3QgYXJjaF9faW50cl9yZWdfbWFz ayh2b2lkKQo+ICB7Cj4gIAlyZXR1cm4gUEVSRl9SRUdTX01BU0s7Cj4gQEAgLTE1LDggKzExLDMg QEAgdWludDY0X3QgYXJjaF9fdXNlcl9yZWdfbWFzayh2b2lkKQo+ICB7Cj4gIAlyZXR1cm4gUEVS Rl9SRUdTX01BU0s7Cj4gIH0KPiAtCj4gLWNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnICphcmNoX19z YW1wbGVfcmVnX21hc2tzKHZvaWQpCj4gLXsKPiAtCXJldHVybiBzYW1wbGVfcmVnX21hc2tzOwo+ IC19Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9wb3dlcnBjL3V0aWwvcGVyZl9yZWdz LmMgYi90b29scy9wZXJmL2FyY2gvcG93ZXJwYy91dGlsL3BlcmZfcmVncy5jCj4gaW5kZXggYmQz NmNmZDQyMGEyLi43NzkwNzNmN2U5OTIgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvcGVyZi9hcmNoL3Bv d2VycGMvdXRpbC9wZXJmX3JlZ3MuYwo+ICsrKyBiL3Rvb2xzL3BlcmYvYXJjaC9wb3dlcnBjL3V0 aWwvcGVyZl9yZWdzLmMKPiBAQCAtMTgsNjkgKzE4LDYgQEAKPiAgI2RlZmluZSBQVlJfUE9XRVIx MAkJMHgwMDgwCj4gICNkZWZpbmUgUFZSX1BPV0VSMTEJCTB4MDA4Mgo+ICAKPiAtc3RhdGljIGNv bnN0IHN0cnVjdCBzYW1wbGVfcmVnIHNhbXBsZV9yZWdfbWFza3NbXSA9IHsKPiAtCVNNUExfUkVH KHIwLCBQRVJGX1JFR19QT1dFUlBDX1IwKSwKPiAtCVNNUExfUkVHKHIxLCBQRVJGX1JFR19QT1dF UlBDX1IxKSwKPiAtCVNNUExfUkVHKHIyLCBQRVJGX1JFR19QT1dFUlBDX1IyKSwKPiAtCVNNUExf UkVHKHIzLCBQRVJGX1JFR19QT1dFUlBDX1IzKSwKPiAtCVNNUExfUkVHKHI0LCBQRVJGX1JFR19Q T1dFUlBDX1I0KSwKPiAtCVNNUExfUkVHKHI1LCBQRVJGX1JFR19QT1dFUlBDX1I1KSwKPiAtCVNN UExfUkVHKHI2LCBQRVJGX1JFR19QT1dFUlBDX1I2KSwKPiAtCVNNUExfUkVHKHI3LCBQRVJGX1JF R19QT1dFUlBDX1I3KSwKPiAtCVNNUExfUkVHKHI4LCBQRVJGX1JFR19QT1dFUlBDX1I4KSwKPiAt CVNNUExfUkVHKHI5LCBQRVJGX1JFR19QT1dFUlBDX1I5KSwKPiAtCVNNUExfUkVHKHIxMCwgUEVS Rl9SRUdfUE9XRVJQQ19SMTApLAo+IC0JU01QTF9SRUcocjExLCBQRVJGX1JFR19QT1dFUlBDX1Ix MSksCj4gLQlTTVBMX1JFRyhyMTIsIFBFUkZfUkVHX1BPV0VSUENfUjEyKSwKPiAtCVNNUExfUkVH KHIxMywgUEVSRl9SRUdfUE9XRVJQQ19SMTMpLAo+IC0JU01QTF9SRUcocjE0LCBQRVJGX1JFR19Q T1dFUlBDX1IxNCksCj4gLQlTTVBMX1JFRyhyMTUsIFBFUkZfUkVHX1BPV0VSUENfUjE1KSwKPiAt CVNNUExfUkVHKHIxNiwgUEVSRl9SRUdfUE9XRVJQQ19SMTYpLAo+IC0JU01QTF9SRUcocjE3LCBQ RVJGX1JFR19QT1dFUlBDX1IxNyksCj4gLQlTTVBMX1JFRyhyMTgsIFBFUkZfUkVHX1BPV0VSUENf UjE4KSwKPiAtCVNNUExfUkVHKHIxOSwgUEVSRl9SRUdfUE9XRVJQQ19SMTkpLAo+IC0JU01QTF9S RUcocjIwLCBQRVJGX1JFR19QT1dFUlBDX1IyMCksCj4gLQlTTVBMX1JFRyhyMjEsIFBFUkZfUkVH X1BPV0VSUENfUjIxKSwKPiAtCVNNUExfUkVHKHIyMiwgUEVSRl9SRUdfUE9XRVJQQ19SMjIpLAo+ IC0JU01QTF9SRUcocjIzLCBQRVJGX1JFR19QT1dFUlBDX1IyMyksCj4gLQlTTVBMX1JFRyhyMjQs IFBFUkZfUkVHX1BPV0VSUENfUjI0KSwKPiAtCVNNUExfUkVHKHIyNSwgUEVSRl9SRUdfUE9XRVJQ Q19SMjUpLAo+IC0JU01QTF9SRUcocjI2LCBQRVJGX1JFR19QT1dFUlBDX1IyNiksCj4gLQlTTVBM X1JFRyhyMjcsIFBFUkZfUkVHX1BPV0VSUENfUjI3KSwKPiAtCVNNUExfUkVHKHIyOCwgUEVSRl9S RUdfUE9XRVJQQ19SMjgpLAo+IC0JU01QTF9SRUcocjI5LCBQRVJGX1JFR19QT1dFUlBDX1IyOSks Cj4gLQlTTVBMX1JFRyhyMzAsIFBFUkZfUkVHX1BPV0VSUENfUjMwKSwKPiAtCVNNUExfUkVHKHIz MSwgUEVSRl9SRUdfUE9XRVJQQ19SMzEpLAo+IC0JU01QTF9SRUcobmlwLCBQRVJGX1JFR19QT1dF UlBDX05JUCksCj4gLQlTTVBMX1JFRyhtc3IsIFBFUkZfUkVHX1BPV0VSUENfTVNSKSwKPiAtCVNN UExfUkVHKG9yaWdfcjMsIFBFUkZfUkVHX1BPV0VSUENfT1JJR19SMyksCj4gLQlTTVBMX1JFRyhj dHIsIFBFUkZfUkVHX1BPV0VSUENfQ1RSKSwKPiAtCVNNUExfUkVHKGxpbmssIFBFUkZfUkVHX1BP V0VSUENfTElOSyksCj4gLQlTTVBMX1JFRyh4ZXIsIFBFUkZfUkVHX1BPV0VSUENfWEVSKSwKPiAt CVNNUExfUkVHKGNjciwgUEVSRl9SRUdfUE9XRVJQQ19DQ1IpLAo+IC0JU01QTF9SRUcoc29mdGUs IFBFUkZfUkVHX1BPV0VSUENfU09GVEUpLAo+IC0JU01QTF9SRUcodHJhcCwgUEVSRl9SRUdfUE9X RVJQQ19UUkFQKSwKPiAtCVNNUExfUkVHKGRhciwgUEVSRl9SRUdfUE9XRVJQQ19EQVIpLAo+IC0J U01QTF9SRUcoZHNpc3IsIFBFUkZfUkVHX1BPV0VSUENfRFNJU1IpLAo+IC0JU01QTF9SRUcoc2ll ciwgUEVSRl9SRUdfUE9XRVJQQ19TSUVSKSwKPiAtCVNNUExfUkVHKG1tY3JhLCBQRVJGX1JFR19Q T1dFUlBDX01NQ1JBKSwKPiAtCVNNUExfUkVHKG1tY3IwLCBQRVJGX1JFR19QT1dFUlBDX01NQ1Iw KSwKPiAtCVNNUExfUkVHKG1tY3IxLCBQRVJGX1JFR19QT1dFUlBDX01NQ1IxKSwKPiAtCVNNUExf UkVHKG1tY3IyLCBQRVJGX1JFR19QT1dFUlBDX01NQ1IyKSwKPiAtCVNNUExfUkVHKG1tY3IzLCBQ RVJGX1JFR19QT1dFUlBDX01NQ1IzKSwKPiAtCVNNUExfUkVHKHNpZXIyLCBQRVJGX1JFR19QT1dF UlBDX1NJRVIyKSwKPiAtCVNNUExfUkVHKHNpZXIzLCBQRVJGX1JFR19QT1dFUlBDX1NJRVIzKSwK PiAtCVNNUExfUkVHKHBtYzEsIFBFUkZfUkVHX1BPV0VSUENfUE1DMSksCj4gLQlTTVBMX1JFRyhw bWMyLCBQRVJGX1JFR19QT1dFUlBDX1BNQzIpLAo+IC0JU01QTF9SRUcocG1jMywgUEVSRl9SRUdf UE9XRVJQQ19QTUMzKSwKPiAtCVNNUExfUkVHKHBtYzQsIFBFUkZfUkVHX1BPV0VSUENfUE1DNCks Cj4gLQlTTVBMX1JFRyhwbWM1LCBQRVJGX1JFR19QT1dFUlBDX1BNQzUpLAo+IC0JU01QTF9SRUco cG1jNiwgUEVSRl9SRUdfUE9XRVJQQ19QTUM2KSwKPiAtCVNNUExfUkVHKHNkYXIsIFBFUkZfUkVH X1BPV0VSUENfU0RBUiksCj4gLQlTTVBMX1JFRyhzaWFyLCBQRVJGX1JFR19QT1dFUlBDX1NJQVIp LAo+IC0JU01QTF9SRUdfRU5ECj4gLX07Cj4gLQo+ICAvKiBSRUcgb3IgJXJSRUcgKi8KPiAgI2Rl ZmluZSBTRFRfT1BfUkVHRVgxICAiXiglcik/KFsxLTJdP1swLTldfDNbMC0xXSkkIgo+ICAKPiBA QCAtMjMzLDggKzE3MCwzIEBAIHVpbnQ2NF90IGFyY2hfX3VzZXJfcmVnX21hc2sodm9pZCkKPiAg ewo+ICAJcmV0dXJuIFBFUkZfUkVHU19NQVNLOwo+ICB9Cj4gLQo+IC1jb25zdCBzdHJ1Y3Qgc2Ft cGxlX3JlZyAqYXJjaF9fc2FtcGxlX3JlZ19tYXNrcyh2b2lkKQo+IC17Cj4gLQlyZXR1cm4gc2Ft cGxlX3JlZ19tYXNrczsKPiAtfQo+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gvcmlzY3Yv dXRpbC9wZXJmX3JlZ3MuYyBiL3Rvb2xzL3BlcmYvYXJjaC9yaXNjdi91dGlsL3BlcmZfcmVncy5j Cj4gaW5kZXggNmIxNjY1ZjQxMTgwLi4yY2Y3YTU0MTA2ZTAgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMv cGVyZi9hcmNoL3Jpc2N2L3V0aWwvcGVyZl9yZWdzLmMKPiArKysgYi90b29scy9wZXJmL2FyY2gv cmlzY3YvdXRpbC9wZXJmX3JlZ3MuYwo+IEBAIC0yLDEwICsyLDYgQEAKPiAgI2luY2x1ZGUgInBl cmZfcmVncy5oIgo+ICAjaW5jbHVkZSAiLi4vLi4vdXRpbC9wZXJmX3JlZ3MuaCIKPiAgCj4gLXN0 YXRpYyBjb25zdCBzdHJ1Y3Qgc2FtcGxlX3JlZyBzYW1wbGVfcmVnX21hc2tzW10gPSB7Cj4gLQlT TVBMX1JFR19FTkQKPiAtfTsKPiAtCj4gIHVpbnQ2NF90IGFyY2hfX2ludHJfcmVnX21hc2sodm9p ZCkKPiAgewo+ICAJcmV0dXJuIFBFUkZfUkVHU19NQVNLOwo+IEBAIC0xNSw4ICsxMSwzIEBAIHVp bnQ2NF90IGFyY2hfX3VzZXJfcmVnX21hc2sodm9pZCkKPiAgewo+ICAJcmV0dXJuIFBFUkZfUkVH U19NQVNLOwo+ICB9Cj4gLQo+IC1jb25zdCBzdHJ1Y3Qgc2FtcGxlX3JlZyAqYXJjaF9fc2FtcGxl X3JlZ19tYXNrcyh2b2lkKQo+IC17Cj4gLQlyZXR1cm4gc2FtcGxlX3JlZ19tYXNrczsKPiAtfQo+ IGRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gvczM5MC91dGlsL3BlcmZfcmVncy5jIGIvdG9v bHMvcGVyZi9hcmNoL3MzOTAvdXRpbC9wZXJmX3JlZ3MuYwo+IGluZGV4IDZiMTY2NWY0MTE4MC4u MmNmN2E1NDEwNmUwIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL3BlcmYvYXJjaC9zMzkwL3V0aWwvcGVy Zl9yZWdzLmMKPiArKysgYi90b29scy9wZXJmL2FyY2gvczM5MC91dGlsL3BlcmZfcmVncy5jCj4g QEAgLTIsMTAgKzIsNiBAQAo+ICAjaW5jbHVkZSAicGVyZl9yZWdzLmgiCj4gICNpbmNsdWRlICIu Li8uLi91dGlsL3BlcmZfcmVncy5oIgo+ICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1wbGVf cmVnIHNhbXBsZV9yZWdfbWFza3NbXSA9IHsKPiAtCVNNUExfUkVHX0VORAo+IC19Owo+IC0KPiAg dWludDY0X3QgYXJjaF9faW50cl9yZWdfbWFzayh2b2lkKQo+ICB7Cj4gIAlyZXR1cm4gUEVSRl9S RUdTX01BU0s7Cj4gQEAgLTE1LDggKzExLDMgQEAgdWludDY0X3QgYXJjaF9fdXNlcl9yZWdfbWFz ayh2b2lkKQo+ICB7Cj4gIAlyZXR1cm4gUEVSRl9SRUdTX01BU0s7Cj4gIH0KPiAtCj4gLWNvbnN0 IHN0cnVjdCBzYW1wbGVfcmVnICphcmNoX19zYW1wbGVfcmVnX21hc2tzKHZvaWQpCj4gLXsKPiAt CXJldHVybiBzYW1wbGVfcmVnX21hc2tzOwo+IC19Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYv YXJjaC94ODYvdXRpbC9wZXJmX3JlZ3MuYyBiL3Rvb2xzL3BlcmYvYXJjaC94ODYvdXRpbC9wZXJm X3JlZ3MuYwo+IGluZGV4IDEyZmQ5M2YwNDgwMi4uYTdjYTQxNTRmZGY5IDEwMDY0NAo+IC0tLSBh L3Rvb2xzL3BlcmYvYXJjaC94ODYvdXRpbC9wZXJmX3JlZ3MuYwo+ICsrKyBiL3Rvb2xzL3BlcmYv YXJjaC94ODYvdXRpbC9wZXJmX3JlZ3MuYwo+IEBAIC0xMyw0OCArMTMsNiBAQAo+ICAjaW5jbHVk ZSAiLi4vLi4vLi4vdXRpbC9wbXUuaCIKPiAgI2luY2x1ZGUgIi4uLy4uLy4uL3V0aWwvcG11cy5o Igo+ICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnIHNhbXBsZV9yZWdfbWFza3Nb XSA9IHsKPiAtCVNNUExfUkVHKEFYLCBQRVJGX1JFR19YODZfQVgpLAo+IC0JU01QTF9SRUcoQlgs IFBFUkZfUkVHX1g4Nl9CWCksCj4gLQlTTVBMX1JFRyhDWCwgUEVSRl9SRUdfWDg2X0NYKSwKPiAt CVNNUExfUkVHKERYLCBQRVJGX1JFR19YODZfRFgpLAo+IC0JU01QTF9SRUcoU0ksIFBFUkZfUkVH X1g4Nl9TSSksCj4gLQlTTVBMX1JFRyhESSwgUEVSRl9SRUdfWDg2X0RJKSwKPiAtCVNNUExfUkVH KEJQLCBQRVJGX1JFR19YODZfQlApLAo+IC0JU01QTF9SRUcoU1AsIFBFUkZfUkVHX1g4Nl9TUCks Cj4gLQlTTVBMX1JFRyhJUCwgUEVSRl9SRUdfWDg2X0lQKSwKPiAtCVNNUExfUkVHKEZMQUdTLCBQ RVJGX1JFR19YODZfRkxBR1MpLAo+IC0JU01QTF9SRUcoQ1MsIFBFUkZfUkVHX1g4Nl9DUyksCj4g LQlTTVBMX1JFRyhTUywgUEVSRl9SRUdfWDg2X1NTKSwKPiAtI2lmZGVmIEhBVkVfQVJDSF9YODZf NjRfU1VQUE9SVAo+IC0JU01QTF9SRUcoUjgsIFBFUkZfUkVHX1g4Nl9SOCksCj4gLQlTTVBMX1JF RyhSOSwgUEVSRl9SRUdfWDg2X1I5KSwKPiAtCVNNUExfUkVHKFIxMCwgUEVSRl9SRUdfWDg2X1Ix MCksCj4gLQlTTVBMX1JFRyhSMTEsIFBFUkZfUkVHX1g4Nl9SMTEpLAo+IC0JU01QTF9SRUcoUjEy LCBQRVJGX1JFR19YODZfUjEyKSwKPiAtCVNNUExfUkVHKFIxMywgUEVSRl9SRUdfWDg2X1IxMyks Cj4gLQlTTVBMX1JFRyhSMTQsIFBFUkZfUkVHX1g4Nl9SMTQpLAo+IC0JU01QTF9SRUcoUjE1LCBQ RVJGX1JFR19YODZfUjE1KSwKPiAtI2VuZGlmCj4gLQlTTVBMX1JFRzIoWE1NMCwgUEVSRl9SRUdf WDg2X1hNTTApLAo+IC0JU01QTF9SRUcyKFhNTTEsIFBFUkZfUkVHX1g4Nl9YTU0xKSwKPiAtCVNN UExfUkVHMihYTU0yLCBQRVJGX1JFR19YODZfWE1NMiksCj4gLQlTTVBMX1JFRzIoWE1NMywgUEVS Rl9SRUdfWDg2X1hNTTMpLAo+IC0JU01QTF9SRUcyKFhNTTQsIFBFUkZfUkVHX1g4Nl9YTU00KSwK PiAtCVNNUExfUkVHMihYTU01LCBQRVJGX1JFR19YODZfWE1NNSksCj4gLQlTTVBMX1JFRzIoWE1N NiwgUEVSRl9SRUdfWDg2X1hNTTYpLAo+IC0JU01QTF9SRUcyKFhNTTcsIFBFUkZfUkVHX1g4Nl9Y TU03KSwKPiAtCVNNUExfUkVHMihYTU04LCBQRVJGX1JFR19YODZfWE1NOCksCj4gLQlTTVBMX1JF RzIoWE1NOSwgUEVSRl9SRUdfWDg2X1hNTTkpLAo+IC0JU01QTF9SRUcyKFhNTTEwLCBQRVJGX1JF R19YODZfWE1NMTApLAo+IC0JU01QTF9SRUcyKFhNTTExLCBQRVJGX1JFR19YODZfWE1NMTEpLAo+ IC0JU01QTF9SRUcyKFhNTTEyLCBQRVJGX1JFR19YODZfWE1NMTIpLAo+IC0JU01QTF9SRUcyKFhN TTEzLCBQRVJGX1JFR19YODZfWE1NMTMpLAo+IC0JU01QTF9SRUcyKFhNTTE0LCBQRVJGX1JFR19Y ODZfWE1NMTQpLAo+IC0JU01QTF9SRUcyKFhNTTE1LCBQRVJGX1JFR19YODZfWE1NMTUpLAo+IC0J U01QTF9SRUdfRU5ECj4gLX07Cj4gLQo+ICBzdHJ1Y3Qgc2R0X25hbWVfcmVnIHsKPiAgCWNvbnN0 IGNoYXIgKnNkdF9uYW1lOwo+ICAJY29uc3QgY2hhciAqdXByb2JlX25hbWU7Cj4gQEAgLTI3Niwx MSArMjM0LDYgQEAgaW50IGFyY2hfc2R0X2FyZ19wYXJzZV9vcChjaGFyICpvbGRfb3AsIGNoYXIg KipuZXdfb3ApCj4gIAlyZXR1cm4gU0RUX0FSR19WQUxJRDsKPiAgfQo+ICAKPiAtY29uc3Qgc3Ry dWN0IHNhbXBsZV9yZWcgKmFyY2hfX3NhbXBsZV9yZWdfbWFza3Modm9pZCkKPiAtewo+IC0JcmV0 dXJuIHNhbXBsZV9yZWdfbWFza3M7Cj4gLX0KPiAtCj4gIHVpbnQ2NF90IGFyY2hfX2ludHJfcmVn X21hc2sodm9pZCkKPiAgewo+ICAJc3RydWN0IHBlcmZfZXZlbnRfYXR0ciBhdHRyID0gewo+IGRp ZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvYXJtNjQtZnJhbWUtcG9pbnRlci11bndpbmQtc3Vw cG9ydC5jIGIvdG9vbHMvcGVyZi91dGlsL2FybTY0LWZyYW1lLXBvaW50ZXItdW53aW5kLXN1cHBv cnQuYwo+IGluZGV4IDk1OGFmZThiODIxZS4uODU4Y2UyYjAxODEyIDEwMDY0NAo+IC0tLSBhL3Rv b2xzL3BlcmYvdXRpbC9hcm02NC1mcmFtZS1wb2ludGVyLXVud2luZC1zdXBwb3J0LmMKPiArKysg Yi90b29scy9wZXJmL3V0aWwvYXJtNjQtZnJhbWUtcG9pbnRlci11bndpbmQtc3VwcG9ydC5jCj4g QEAgLTIsNyArMiw2IEBACj4gICNpbmNsdWRlICJhcm02NC1mcmFtZS1wb2ludGVyLXVud2luZC1z dXBwb3J0LmgiCj4gICNpbmNsdWRlICJjYWxsY2hhaW4uaCIKPiAgI2luY2x1ZGUgImV2ZW50Lmgi Cj4gLSNpbmNsdWRlICJwZXJmX3JlZ3MuaCIgLy8gU01QTF9SRUdfTUFTSwo+ICAjaW5jbHVkZSAi dW53aW5kLmgiCj4gICNpbmNsdWRlIDxzdHJpbmcuaD4KPiAgCj4gQEAgLTE1LDYgKzE0LDggQEAg c3RydWN0IGVudHJpZXMgewo+ICAJc2l6ZV90IGxlbmd0aDsKPiAgfTsKPiAgCj4gKyNkZWZpbmUg U01QTF9SRUdfTUFTSyhiKSAoMVVMTCA8PCAoYikpCj4gKwo+ICBzdGF0aWMgYm9vbCBnZXRfbGVh Zl9mcmFtZV9jYWxsZXJfZW5hYmxlZChzdHJ1Y3QgcGVyZl9zYW1wbGUgKnNhbXBsZSkKPiAgewo+ ICAJc3RydWN0IHJlZ3NfZHVtcCAqcmVnczsKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGls L3BhcnNlLXJlZ3Mtb3B0aW9ucy5jIGIvdG9vbHMvcGVyZi91dGlsL3BhcnNlLXJlZ3Mtb3B0aW9u cy5jCj4gaW5kZXggY2RhMWM2MjA5NjhlLi5jMGQwZWY5ZmQ0OTUgMTAwNjQ0Cj4gLS0tIGEvdG9v bHMvcGVyZi91dGlsL3BhcnNlLXJlZ3Mtb3B0aW9ucy5jCj4gKysrIGIvdG9vbHMvcGVyZi91dGls L3BhcnNlLXJlZ3Mtb3B0aW9ucy5jCj4gQEAgLTUsMTUgKzUsNTQgQEAKPiAgI2luY2x1ZGUgPHN0 cmluZy5oPgo+ICAjaW5jbHVkZSA8c3RkaW8uaD4KPiAgI2luY2x1ZGUgInV0aWwvZGVidWcuaCIK PiArI2luY2x1ZGUgPGR3YXJmLXJlZ3MuaD4KPiAgI2luY2x1ZGUgPHN1YmNtZC9wYXJzZS1vcHRp b25zLmg+Cj4gICNpbmNsdWRlICJ1dGlsL3BlcmZfcmVncy5oIgo+ICAjaW5jbHVkZSAidXRpbC9w YXJzZS1yZWdzLW9wdGlvbnMuaCIKPiAgCj4gK3N0YXRpYyB2b2lkIGxpc3RfcGVyZl9yZWdzKEZJ TEUgKmZwLCB1aW50NjRfdCBtYXNrKQo+ICt7Cj4gKwljb25zdCBjaGFyICpsYXN0X25hbWUgPSBO VUxMOwo+ICsKPiArCWZwcmludGYoZnAsICJhdmFpbGFibGUgcmVnaXN0ZXJzOiAiKTsKPiArCWZv ciAoaW50IHJlZyA9IDA7IHJlZyA8IDY0OyByZWcrKykgewo+ICsJCWNvbnN0IGNoYXIgKm5hbWU7 Cj4gKwo+ICsJCWlmICgoKDFVTEwgPDwgcmVnKSAmIG1hc2spID09IDApCj4gKwkJCWNvbnRpbnVl Owo+ICsKPiArCQluYW1lID0gcGVyZl9yZWdfbmFtZShyZWcsIEVNX0hPU1QpOwo+ICsJCWlmIChu YW1lICYmICghbGFzdF9uYW1lIHx8IHN0cmNtcChsYXN0X25hbWUsIG5hbWUpKSkKPiArCQkJZnBy aW50ZihmcCwgIiVzJXMiLCByZWcgPiAwID8gIiAiIDogIiIsIG5hbWUpOwo+ICsJCWxhc3RfbmFt ZSA9IG5hbWU7Cj4gKwl9Cj4gKwlmcHV0YygnXG4nLCBmcCk7Cj4gK30KPiArCj4gK3N0YXRpYyB1 aW50NjRfdCBuYW1lX3RvX3BlcmZfcmVnX21hc2soY29uc3QgY2hhciAqdG9fbWF0Y2gsIHVpbnQ2 NF90IG1hc2spCj4gK3sKPiArCXVpbnQ2NF90IHJlZ19tYXNrID0gMDsKPiArCj4gKwlmb3IgKGlu dCByZWcgPSAwOyByZWcgPCA2NDsgcmVnKyspIHsKPiArCQljb25zdCBjaGFyICpuYW1lOwo+ICsK PiArCQlpZiAoKCgxVUxMIDw8IHJlZykgJiBtYXNrKSA9PSAwKQo+ICsJCQljb250aW51ZTsKPiAr Cj4gKwkJbmFtZSA9IHBlcmZfcmVnX25hbWUocmVnLCBFTV9IT1NUKTsKPiArCQlpZiAoIW5hbWUp Cj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlpZiAoIXN0cmNhc2VjbXAodG9fbWF0Y2gsIG5hbWUp KQo+ICsJCQlyZWdfbWFzayB8PSAxVUxMIDw8IHJlZzsKPiArCX0KPiArCXJldHVybiByZWdfbWFz azsKPiArfQo+ICsKPiAgc3RhdGljIGludAo+ICBfX3BhcnNlX3JlZ3MoY29uc3Qgc3RydWN0IG9w dGlvbiAqb3B0LCBjb25zdCBjaGFyICpzdHIsIGludCB1bnNldCwgYm9vbCBpbnRyKQo+ICB7Cj4g IAl1aW50NjRfdCAqbW9kZSA9ICh1aW50NjRfdCAqKW9wdC0+dmFsdWU7Cj4gLQljb25zdCBzdHJ1 Y3Qgc2FtcGxlX3JlZyAqciA9IE5VTEw7Cj4gIAljaGFyICpzLCAqb3MgPSBOVUxMLCAqcDsKPiAg CWludCByZXQgPSAtMTsKPiAgCXVpbnQ2NF90IG1hc2s7Cj4gQEAgLTI3LDUwICs2Niw0MSBAQCBf X3BhcnNlX3JlZ3MoY29uc3Qgc3RydWN0IG9wdGlvbiAqb3B0LCBjb25zdCBjaGFyICpzdHIsIGlu dCB1bnNldCwgYm9vbCBpbnRyKQo+ICAJaWYgKCptb2RlKQo+ICAJCXJldHVybiAtMTsKPiAgCj4g LQlpZiAoaW50cikKPiAtCQltYXNrID0gYXJjaF9faW50cl9yZWdfbWFzaygpOwo+IC0JZWxzZQo+ IC0JCW1hc2sgPSBhcmNoX191c2VyX3JlZ19tYXNrKCk7Cj4gLQo+ICAJLyogc3RyIG1heSBiZSBO VUxMIGluIGNhc2Ugbm8gYXJnIGlzIHBhc3NlZCB0byAtSSAqLwo+IC0JaWYgKHN0cikgewo+IC0J CS8qIGJlY2F1c2Ugc3RyIGlzIHJlYWQtb25seSAqLwo+IC0JCXMgPSBvcyA9IHN0cmR1cChzdHIp Owo+IC0JCWlmICghcykKPiAtCQkJcmV0dXJuIC0xOwo+IC0KPiAtCQlmb3IgKDs7KSB7Cj4gLQkJ CXAgPSBzdHJjaHIocywgJywnKTsKPiAtCQkJaWYgKHApCj4gLQkJCQkqcCA9ICdcMCc7Cj4gLQo+ IC0JCQlpZiAoIXN0cmNtcChzLCAiPyIpKSB7Cj4gLQkJCQlmcHJpbnRmKHN0ZGVyciwgImF2YWls YWJsZSByZWdpc3RlcnM6ICIpOwo+IC0JCQkJZm9yIChyID0gYXJjaF9fc2FtcGxlX3JlZ19tYXNr cygpOyByLT5uYW1lOyByKyspIHsKPiAtCQkJCQlpZiAoci0+bWFzayAmIG1hc2spCj4gLQkJCQkJ CWZwcmludGYoc3RkZXJyLCAiJXMgIiwgci0+bmFtZSk7Cj4gLQkJCQl9Cj4gLQkJCQlmcHV0Yygn XG4nLCBzdGRlcnIpOwo+IC0JCQkJLyoganVzdCBwcmludGluZyBhdmFpbGFibGUgcmVncyAqLwo+ IC0JCQkJZ290byBlcnJvcjsKPiAtCQkJfQo+IC0JCQlmb3IgKHIgPSBhcmNoX19zYW1wbGVfcmVn X21hc2tzKCk7IHItPm5hbWU7IHIrKykgewo+IC0JCQkJaWYgKChyLT5tYXNrICYgbWFzaykgJiYg IXN0cmNhc2VjbXAocywgci0+bmFtZSkpCj4gLQkJCQkJYnJlYWs7Cj4gLQkJCX0KPiAtCQkJaWYg KCFyIHx8ICFyLT5uYW1lKSB7Cj4gLQkJCQl1aV9fd2FybmluZygiVW5rbm93biByZWdpc3RlciBc IiVzXCIsIGNoZWNrIG1hbiBwYWdlIG9yIHJ1biBcInBlcmYgcmVjb3JkICVzP1wiXG4iLAo+IC0J CQkJCSAgICBzLCBpbnRyID8gIi1JIiA6ICItLXVzZXItcmVncz0iKTsKPiAtCQkJCWdvdG8gZXJy b3I7Cj4gLQkJCX0KPiAtCj4gLQkJCSptb2RlIHw9IHItPm1hc2s7Cj4gLQo+IC0JCQlpZiAoIXAp Cj4gLQkJCQlicmVhazsKPiAtCj4gLQkJCXMgPSBwICsgMTsKPiArCWlmICghc3RyKQo+ICsJCXJl dHVybiAtMTsKPiArCj4gKwltYXNrID0gaW50ciA/IGFyY2hfX2ludHJfcmVnX21hc2soKSA6IGFy Y2hfX3VzZXJfcmVnX21hc2soKTsKPiArCj4gKwkvKiBiZWNhdXNlIHN0ciBpcyByZWFkLW9ubHkg Ki8KPiArCXMgPSBvcyA9IHN0cmR1cChzdHIpOwo+ICsJaWYgKCFzKQo+ICsJCXJldHVybiAtMTsK PiArCj4gKwlmb3IgKDs7KSB7Cj4gKwkJdWludDY0X3QgcmVnX21hc2s7Cj4gKwo+ICsJCXAgPSBz dHJjaHIocywgJywnKTsKPiArCQlpZiAocCkKPiArCQkJKnAgPSAnXDAnOwo+ICsKPiArCQlpZiAo IXN0cmNtcChzLCAiPyIpKSB7Cj4gKwkJCWxpc3RfcGVyZl9yZWdzKHN0ZGVyciwgbWFzayk7Cj4g KwkJCWdvdG8gZXJyb3I7Cj4gKwkJfQo+ICsKPiArCQlyZWdfbWFzayA9IG5hbWVfdG9fcGVyZl9y ZWdfbWFzayhzLCBtYXNrKTsKPiArCQlpZiAocmVnX21hc2sgPT0gMCkgewo+ICsJCQl1aV9fd2Fy bmluZygiVW5rbm93biByZWdpc3RlciBcIiVzXCIsIGNoZWNrIG1hbiBwYWdlIG9yIHJ1biBcInBl cmYgcmVjb3JkICVzP1wiXG4iLAo+ICsJCQkJcywgaW50ciA/ICItSSIgOiAiLS11c2VyLXJlZ3M9 Iik7Cj4gKwkJCWdvdG8gZXJyb3I7Cj4gIAkJfQo+ICsJCSptb2RlIHw9IHJlZ19tYXNrOwo+ICsK PiArCQlpZiAoIXApCj4gKwkJCWJyZWFrOwo+ICsKPiArCQlzID0gcCArIDE7Cj4gIAl9Cj4gIAly ZXQgPSAwOwo+ICAKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL3BlcmZfcmVncy5jIGIv dG9vbHMvcGVyZi91dGlsL3BlcmZfcmVncy5jCj4gaW5kZXggYjU4ZDU5Yjg0ZmIxLi5lYzYwMmRh MWFlYjYgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvcGVyZi91dGlsL3BlcmZfcmVncy5jCj4gKysrIGIv dG9vbHMvcGVyZi91dGlsL3BlcmZfcmVncy5jCj4gQEAgLTIyLDE1ICsyMiw2IEBAIHVpbnQ2NF90 IF9fd2VhayBhcmNoX191c2VyX3JlZ19tYXNrKHZvaWQpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAK PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnIHNhbXBsZV9yZWdfbWFza3NbXSA9IHsK PiAtCVNNUExfUkVHX0VORAo+IC19Owo+IC0KPiAtY29uc3Qgc3RydWN0IHNhbXBsZV9yZWcgKiBf X3dlYWsgYXJjaF9fc2FtcGxlX3JlZ19tYXNrcyh2b2lkKQo+IC17Cj4gLQlyZXR1cm4gc2FtcGxl X3JlZ19tYXNrczsKPiAtfQo+IC0KPiAgY29uc3QgY2hhciAqcGVyZl9yZWdfbmFtZShpbnQgaWQs IHVpbnQxNl90IGVfbWFjaGluZSkKPiAgewo+ICAJY29uc3QgY2hhciAqcmVnX25hbWUgPSBOVUxM Owo+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvcGVyZl9yZWdzLmggYi90b29scy9wZXJm L3V0aWwvcGVyZl9yZWdzLmgKPiBpbmRleCA3YmZjNmEzNGMwMmIuLjJjMmE4ZGU2OTEyZCAxMDA2 NDQKPiAtLS0gYS90b29scy9wZXJmL3V0aWwvcGVyZl9yZWdzLmgKPiArKysgYi90b29scy9wZXJm L3V0aWwvcGVyZl9yZWdzLmgKPiBAQCAtNywxNyArNyw2IEBACj4gIAo+ICBzdHJ1Y3QgcmVnc19k dW1wOwo+ICAKPiAtc3RydWN0IHNhbXBsZV9yZWcgewo+IC0JY29uc3QgY2hhciAqbmFtZTsKPiAt CXVpbnQ2NF90IG1hc2s7Cj4gLX07Cj4gLQo+IC0jZGVmaW5lIFNNUExfUkVHX01BU0soYikgKDFV TEwgPDwgKGIpKQo+IC0jZGVmaW5lIFNNUExfUkVHKG4sIGIpIHsgLm5hbWUgPSAjbiwgLm1hc2sg PSBTTVBMX1JFR19NQVNLKGIpIH0KPiAtI2RlZmluZSBTTVBMX1JFRzJfTUFTSyhiKSAoM1VMTCA8 PCAoYikpCj4gLSNkZWZpbmUgU01QTF9SRUcyKG4sIGIpIHsgLm5hbWUgPSAjbiwgLm1hc2sgPSBT TVBMX1JFRzJfTUFTSyhiKSB9Cj4gLSNkZWZpbmUgU01QTF9SRUdfRU5EIHsgLm5hbWUgPSBOVUxM IH0KPiAtCj4gIGVudW0gewo+ICAJU0RUX0FSR19WQUxJRCA9IDAsCj4gIAlTRFRfQVJHX1NLSVAs Cj4gQEAgLTI2LDcgKzE1LDYgQEAgZW51bSB7Cj4gIGludCBhcmNoX3NkdF9hcmdfcGFyc2Vfb3Ao Y2hhciAqb2xkX29wLCBjaGFyICoqbmV3X29wKTsKPiAgdWludDY0X3QgYXJjaF9faW50cl9yZWdf bWFzayh2b2lkKTsKPiAgdWludDY0X3QgYXJjaF9fdXNlcl9yZWdfbWFzayh2b2lkKTsKPiAtY29u c3Qgc3RydWN0IHNhbXBsZV9yZWcgKmFyY2hfX3NhbXBsZV9yZWdfbWFza3Modm9pZCk7Cj4gIAo+ ICBjb25zdCBjaGFyICpwZXJmX3JlZ19uYW1lKGludCBpZCwgdWludDE2X3QgZV9tYWNoaW5lKTsK PiAgaW50IHBlcmZfcmVnX3ZhbHVlKHU2NCAqdmFscCwgc3RydWN0IHJlZ3NfZHVtcCAqcmVncywg aW50IGlkKTsKCkkgaGF2ZSB0ZXN0ZWQgdGhpcyBwYXRjaCBzZXQgZm9yIHMzOTAuCgpUZXN0ZWQt Ynk6IFRob21hcyBSaWNodGVyIDx0bXJpY2h0QGxpbnV4LmlibS5jb20+Ci0tIApUaG9tYXMgUmlj aHRlciwgRGVwdCAzMzAzLCBJQk0gczM5MCBMaW51eCBEZXZlbG9wbWVudCwgQm9lYmxpbmdlbiwg R2VybWFueQotLQpJQk0gRGV1dHNjaGxhbmQgUmVzZWFyY2ggJiBEZXZlbG9wbWVudCBHbWJICgpW b3JzaXR6ZW5kZXIgZGVzIEF1ZnNpY2h0c3JhdHM6IFdvbGZnYW5nIFdlbmR0CgpHZXNjaMOkZnRz ZsO8aHJ1bmc6IERhdmlkIEZhbGxlcgoKU2l0eiBkZXIgR2VzZWxsc2NoYWZ0OiBCw7ZibGluZ2Vu IC8gUmVnaXN0ZXJnZXJpY2h0OiBBbXRzZ2VyaWNodCBTdHV0dGdhcnQsIEhSQiAyNDMyOTQKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2 IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK