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 259E5C44536 for ; Thu, 22 Jan 2026 02:06:17 +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:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=qw2jAvlzDuAHKjFH/JbXMEiHLuOSMmplIWdcJmNFv6g=; b=FOHqGZlJYaflIc VbN3YnMYTPHoOFi79v6nqqNHZ7QXErfmZCADtciBQ5NeMLGSnagcxWEpxiASDEhuXHhKEQkGw5xJ4 ZS0IW8I5pgiAIxIz+6GWn9GX/nfpOT0pzuaud0C1aSAhO0CFht5VeaMHORwe1FG9ResJJDas0+o+v aNrR6FDHyiNNtzGjLpmzpP4KSkw0d3OG+mOvI9La12OGgVh1q8Xqt4nwidlwNobhUVq/lLSoFEpia vBmamT8eSxdrxDD/yxX0kWmnf3wjm5ouS49Hs1hn63zwu2PYh0MLd9pjXvG4dV7mpXmdTDfJRt733 nadBeEepzHoKcu4D4U0Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vik57-00000006ITd-3vUk; Thu, 22 Jan 2026 02:05:57 +0000 Received: from mgamail.intel.com ([198.175.65.10]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vik54-00000006IT3-3HOr; Thu, 22 Jan 2026 02:05:56 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1769047555; x=1800583555; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=Z5B5wh//Qt82C/gDTTGyeFpKCNKDQxO0GBvNPK37V/A=; b=TeWcpIrINsKBUWUPUhovA1Mrucvn/x73Pl88/aNvuE3wYbTp0RXUCCO1 MmzVmyp9vzQSqK95oXANRfSYzn1eVxjz/4kqnLyN3nJG54ViFhUKioToP HQ9rahJkDbcLKLY8PWiQXhLC+s3vtcn+/pQ7q3+j0WzyM4SMUYgey19GC XdQClPaS/CLRmQAvOkPmcfeQNHd9rhArcUO885rP6jKbq4VncbLC1iC5A LxyWyQhGuNrqeaKFM8WR9MW/inTzs1UM/iUyOYNpL20x3CfudEfQZk7SV oDbaY1hlx/fcbwzPFUzhqP8fhDg88sxbNzTSpy2869LeRzsvC4odGsKem g==; X-CSE-ConnectionGUID: Cx+UuUjaRlaLb87YpdfHlg== X-CSE-MsgGUID: mdKg5zHiQKaqilJa/nyPtQ== X-IronPort-AV: E=McAfee;i="6800,10657,11678"; a="87699335" X-IronPort-AV: E=Sophos;i="6.21,244,1763452800"; d="scan'208";a="87699335" Received: from fmviesa002.fm.intel.com ([10.60.135.142]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jan 2026 18:05:54 -0800 X-CSE-ConnectionGUID: nc8BKj1qQESfmr2ZlalFVA== X-CSE-MsgGUID: 2VjWfv2qTjmYLOW/Xg0vYw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,244,1763452800"; d="scan'208";a="229579471" Received: from unknown (HELO [10.238.3.254]) ([10.238.3.254]) by fmviesa002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jan 2026 18:05:46 -0800 Message-ID: Date: Thu, 22 Jan 2026 10:05:43 +0800 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 Cc: 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 References: <20260121021735.3625244-1-irogers@google.com> <56bb6d4d-ad9e-485f-af15-e0f6fbc261c1@linux.intel.com> Content-Language: en-US From: "Mi, Dapeng" In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260121_180554_914195_6F9CF01B X-CRM114-Status: GOOD ( 14.32 ) 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 Ck9uIDEvMjEvMjAyNiAxMDozOCBQTSwgSWFuIFJvZ2VycyB3cm90ZToKPiBPbiBXZWQsIEphbiAy MSwgMjAyNiBhdCAxMjoyOOKAr0FNIE1pLCBEYXBlbmcgPGRhcGVuZzEubWlAbGludXguaW50ZWwu Y29tPiB3cm90ZToKPj4KPj4gT24gMS8yMS8yMDI2IDEwOjE3IEFNLCBJYW4gUm9nZXJzIHdyb3Rl Ogo+Pj4gYXJjaF9fc2FtcGxlX3JlZ19tYXNrcyBpc24ndCBzdXBwb3J0ZWQgb24gQVJNKDMyKSwg Y3NreSwgbG9vbmdhcmNoLAo+Pj4gTUlQUywgUklTQy1WIGFuZCBzMzkwLiBUaGUgdGFibGUgcmV0 dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGp1c3QgaGFzIHRoZQo+Pj4gbmFtZSBvZiBhIHJlZ2lzdGVy IHBhaXJlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHNhbXBsZV9yZWdzX3VzZXIgbWFzawo+Pj4g dmFsdWUuIEZvciBhIGdpdmVuIHBlcmYgcmVnaXN0ZXIgd2UgY2FuIGNvbXB1dGUgdGhlIG5hbWUg d2l0aAo+Pj4gcGVyZl9yZWdfbmFtZSBhbmQgdGhlIG1hc2sgaXMganVzdCAxIGxlZnQtc2hpZnRl ZCBieSB0aGUgcGVyZiByZWdpc3Rlcgo+Pj4gbnVtYmVyLiBDaGFuZ2UgX19wYXJzZV9yZWdzIHRv IHVzZSB0aGlzIG1ldGhvZCBmb3IgZmluZGluZyByZWdpc3RlcnMKPj4+IHJhdGhlciB0aGFuIGFy Y2hfX3NhbXBsZV9yZWdfbWFza3MsIHRoZXJlYnkgYWRkaW5nIF9fcGFyc2VfcmVncwo+Pj4gc3Vw cG9ydCBmb3IgQVJNKDMyKSwgY3NreSwgbG9vbmdhcmNoLCBNSVBTLCBSSVNDLVYgYW5kIHMzOTAu IEFzCj4+PiBhcmNoX19zYW1wbGVfcmVnX21hc2tzIGlzIHRoZW4gdW51c2VkLCByZW1vdmUgdGhl IG5vdyB1bm5lZWRlZAo+Pj4gZGVjbGFyYXRpb25zLgo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IElh biBSb2dlcnMgPGlyb2dlcnNAZ29vZ2xlLmNvbT4KPj4+IC0tLQo+Pj4gdjI6IENvcnJlY3QgdGhl IHNldHRpbmcgb2YgcmVnIG1hc2sgZm9yIHJlZ2lzdGVycyB0aGF0IG5lZWQgPjEgYml0IHNldAo+ Pj4gICAgIGxpa2UgWE1Ncy4KPj4+Cj4+PiBUaGUgaWRlYSBmb3IgdGhpcyBwYXRjaCBjYW1lIHVw IGluIGNvbnZlcnNhdGlvbiB3aXRoIERhcGVuZyBNaSB0bwo+Pj4gYXZvaWQgYWRkaXRpb25hbCBm dW5jdGlvbnMgYW5kIHRhYmxlcyBmb3IgeDg2IEFQWCBzdXBwb3J0Ogo+Pj4gaHR0cHM6Ly9sb3Jl Lmtlcm5lbC5vcmcvbGttbC9DQVAtNT1mV09zdkFYdXU4cXgwdGs5cThqOEJvWFBNSkIzR3h0bytp dTZ3ZjA2aTRjVkFAbWFpbC5nbWFpbC5jb20vCj4+Pgo+Pj4gVGhlIHBhdGNoIGlzIG9uIHRvcCBv ZiB0aGUgZHdmbCBjbGVhbiB1cCBwYXRjaGVzIHRoYXQgc3dpdGNoIHBlcmYKPj4+IHJlZ2lzdGVy IGZ1bmN0aW9ucyB0byB1c2luZyBlX21hY2hpbmUgYXMgYW4gYXJndW1lbnQgcmF0aGVyIHRoYW4g dGhlCj4+PiBhcmNoIHN0cmluZywgdGhpcyBtZWFucyB0aGF0IEVNX0hPU1QgY2FuIGJlIHVzZWQg d2l0aCBwZXJmX3JlZ19uYW1lOgo+Pj4gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDI2 MDExNzA1Mjg0OS4yMjA1NTQ1LTEtaXJvZ2Vyc0Bnb29nbGUuY29tLwo+Pj4gLS0tCj4+PiAgdG9v bHMvcGVyZi9hcmNoL2FybS91dGlsL3BlcmZfcmVncy5jICAgICAgICAgIHwgICA5IC0tCj4+PiAg dG9vbHMvcGVyZi9hcmNoL2FybTY0L3V0aWwvbWFjaGluZS5jICAgICAgICAgIHwgIDE0ICstLQo+ Pj4gIHRvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL3BlcmZfcmVncy5jICAgICAgICB8ICA0NSAr LS0tLS0tCj4+PiAgdG9vbHMvcGVyZi9hcmNoL2Nza3kvdXRpbC9wZXJmX3JlZ3MuYyAgICAgICAg IHwgICA5IC0tCj4+PiAgdG9vbHMvcGVyZi9hcmNoL2xvb25nYXJjaC91dGlsL3BlcmZfcmVncy5j ICAgIHwgICA5IC0tCj4+PiAgdG9vbHMvcGVyZi9hcmNoL21pcHMvdXRpbC9wZXJmX3JlZ3MuYyAg ICAgICAgIHwgICA5IC0tCj4+PiAgdG9vbHMvcGVyZi9hcmNoL3Bvd2VycGMvdXRpbC9wZXJmX3Jl Z3MuYyAgICAgIHwgIDY4IC0tLS0tLS0tLS0KPj4+ICB0b29scy9wZXJmL2FyY2gvcmlzY3YvdXRp bC9wZXJmX3JlZ3MuYyAgICAgICAgfCAgIDkgLS0KPj4+ICB0b29scy9wZXJmL2FyY2gvczM5MC91 dGlsL3BlcmZfcmVncy5jICAgICAgICAgfCAgIDkgLS0KPj4+ICB0b29scy9wZXJmL2FyY2gveDg2 L3V0aWwvcGVyZl9yZWdzLmMgICAgICAgICAgfCAgNDcgLS0tLS0tLQo+Pj4gIC4uLi91dGlsL2Fy bTY0LWZyYW1lLXBvaW50ZXItdW53aW5kLXN1cHBvcnQuYyB8ICAgMyArLQo+Pj4gIHRvb2xzL3Bl cmYvdXRpbC9wYXJzZS1yZWdzLW9wdGlvbnMuYyAgICAgICAgICB8IDExNiArKysrKysrKysrKy0t LS0tLS0KPj4+ICB0b29scy9wZXJmL3V0aWwvcGVyZl9yZWdzLmMgICAgICAgICAgICAgICAgICAg fCAgIDkgLS0KPj4+ICB0b29scy9wZXJmL3V0aWwvcGVyZl9yZWdzLmggICAgICAgICAgICAgICAg ICAgfCAgMTIgLS0KPj4+ICAxNCBmaWxlcyBjaGFuZ2VkLCA4MSBpbnNlcnRpb25zKCspLCAyODcg ZGVsZXRpb25zKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9hcm0vdXRp bC9wZXJmX3JlZ3MuYyBiL3Rvb2xzL3BlcmYvYXJjaC9hcm0vdXRpbC9wZXJmX3JlZ3MuYwo+Pj4g aW5kZXggZjk0YTAyMTBjN2I3Li4wM2E1YmMwY2Y2NGMgMTAwNjQ0Cj4+PiAtLS0gYS90b29scy9w ZXJmL2FyY2gvYXJtL3V0aWwvcGVyZl9yZWdzLmMKPj4+ICsrKyBiL3Rvb2xzL3BlcmYvYXJjaC9h cm0vdXRpbC9wZXJmX3JlZ3MuYwo+Pj4gQEAgLTIsMTAgKzIsNiBAQAo+Pj4gICNpbmNsdWRlICJw ZXJmX3JlZ3MuaCIKPj4+ICAjaW5jbHVkZSAiLi4vLi4vLi4vdXRpbC9wZXJmX3JlZ3MuaCIKPj4+ Cj4+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnIHNhbXBsZV9yZWdfbWFza3NbXSA9 IHsKPj4+IC0gICAgIFNNUExfUkVHX0VORAo+Pj4gLX07Cj4+PiAtCj4+PiAgdWludDY0X3QgYXJj aF9faW50cl9yZWdfbWFzayh2b2lkKQo+Pj4gIHsKPj4+ICAgICAgIHJldHVybiBQRVJGX1JFR1Nf TUFTSzsKPj4+IEBAIC0xNSw4ICsxMSwzIEBAIHVpbnQ2NF90IGFyY2hfX3VzZXJfcmVnX21hc2so dm9pZCkKPj4+ICB7Cj4+PiAgICAgICByZXR1cm4gUEVSRl9SRUdTX01BU0s7Cj4+PiAgfQo+Pj4g LQo+Pj4gLWNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnICphcmNoX19zYW1wbGVfcmVnX21hc2tzKHZv aWQpCj4+PiAtewo+Pj4gLSAgICAgcmV0dXJuIHNhbXBsZV9yZWdfbWFza3M7Cj4+PiAtfQo+Pj4g ZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL21hY2hpbmUuYyBiL3Rvb2xz L3BlcmYvYXJjaC9hcm02NC91dGlsL21hY2hpbmUuYwo+Pj4gaW5kZXggYWFiMWNjMmJjMjgzLi44 MGZiMTNjOTU4ZDkgMTAwNjQ0Cj4+PiAtLS0gYS90b29scy9wZXJmL2FyY2gvYXJtNjQvdXRpbC9t YWNoaW5lLmMKPj4+ICsrKyBiL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL21hY2hpbmUuYwo+ Pj4gQEAgLTEsMTggKzEsMTIgQEAKPj4+ICAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMAo+Pj4KPj4+IC0jaW5jbHVkZSA8aW50dHlwZXMuaD4KPj4+IC0jaW5jbHVkZSA8c3RkaW8u aD4KPj4+IC0jaW5jbHVkZSA8c3RyaW5nLmg+Cj4+PiAtI2luY2x1ZGUgImRlYnVnLmgiCj4+PiAt I2luY2x1ZGUgInN5bWJvbC5oIgo+Pj4gLSNpbmNsdWRlICJjYWxsY2hhaW4uaCIKPj4+ICsjaW5j bHVkZSAiY2FsbGNoYWluLmgiIC8vIHByb3RvdHlwZSBvZiBhcmNoX19hZGRfbGVhZl9mcmFtZV9y ZWNvcmRfb3B0cwo+Pj4gICNpbmNsdWRlICJwZXJmX3JlZ3MuaCIKPj4+ICAjaW5jbHVkZSAicmVj b3JkLmgiCj4+PiAtI2luY2x1ZGUgInV0aWwvcGVyZl9yZWdzLmgiCj4+PiArCj4+PiArI2RlZmlu ZSBTTVBMX1JFR19NQVNLKGIpICgxVUxMIDw8IChiKSkKPj4+Cj4+PiAgdm9pZCBhcmNoX19hZGRf bGVhZl9mcmFtZV9yZWNvcmRfb3B0cyhzdHJ1Y3QgcmVjb3JkX29wdHMgKm9wdHMpCj4+PiAgewo+ Pj4gLSAgICAgY29uc3Qgc3RydWN0IHNhbXBsZV9yZWcgKnNhbXBsZV9yZWdfbWFza3MgPSBhcmNo X19zYW1wbGVfcmVnX21hc2tzKCk7Cj4+PiAtCj4+PiAtICAgICBvcHRzLT5zYW1wbGVfdXNlcl9y ZWdzIHw9IHNhbXBsZV9yZWdfbWFza3NbUEVSRl9SRUdfQVJNNjRfTFJdLm1hc2s7Cj4+PiArICAg ICBvcHRzLT5zYW1wbGVfdXNlcl9yZWdzIHw9IFNNUExfUkVHX01BU0soUEVSRl9SRUdfQVJNNjRf TFIpOwo+Pj4gIH0KPj4+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gvYXJtNjQvdXRpbC9w ZXJmX3JlZ3MuYyBiL3Rvb2xzL3BlcmYvYXJjaC9hcm02NC91dGlsL3BlcmZfcmVncy5jCj4+PiBp bmRleCAwOTMwODY2NWUyOGEuLjliYjc2OGUxYmVhMSAxMDA2NDQKPj4+IC0tLSBhL3Rvb2xzL3Bl cmYvYXJjaC9hcm02NC91dGlsL3BlcmZfcmVncy5jCj4+PiArKysgYi90b29scy9wZXJmL2FyY2gv YXJtNjQvdXRpbC9wZXJmX3JlZ3MuYwo+Pj4gQEAgLTEyLDQ4ICsxMiwxMiBAQAo+Pj4gICNpbmNs dWRlICIuLi8uLi8uLi91dGlsL2V2ZW50LmgiCj4+PiAgI2luY2x1ZGUgIi4uLy4uLy4uL3V0aWwv cGVyZl9yZWdzLmgiCj4+Pgo+Pj4gKyNkZWZpbmUgU01QTF9SRUdfTUFTSyhiKSAoMVVMTCA8PCAo YikpCj4+PiArCj4+PiAgI2lmbmRlZiBIV0NBUF9TVkUKPj4+ICAjZGVmaW5lIEhXQ0FQX1NWRSAg ICAoMSA8PCAyMikKPj4+ICAjZW5kaWYKPj4+Cj4+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1w bGVfcmVnIHNhbXBsZV9yZWdfbWFza3NbXSA9IHsKPj4+IC0gICAgIFNNUExfUkVHKHgwLCBQRVJG X1JFR19BUk02NF9YMCksCj4+PiAtICAgICBTTVBMX1JFRyh4MSwgUEVSRl9SRUdfQVJNNjRfWDEp LAo+Pj4gLSAgICAgU01QTF9SRUcoeDIsIFBFUkZfUkVHX0FSTTY0X1gyKSwKPj4+IC0gICAgIFNN UExfUkVHKHgzLCBQRVJGX1JFR19BUk02NF9YMyksCj4+PiAtICAgICBTTVBMX1JFRyh4NCwgUEVS Rl9SRUdfQVJNNjRfWDQpLAo+Pj4gLSAgICAgU01QTF9SRUcoeDUsIFBFUkZfUkVHX0FSTTY0X1g1 KSwKPj4+IC0gICAgIFNNUExfUkVHKHg2LCBQRVJGX1JFR19BUk02NF9YNiksCj4+PiAtICAgICBT TVBMX1JFRyh4NywgUEVSRl9SRUdfQVJNNjRfWDcpLAo+Pj4gLSAgICAgU01QTF9SRUcoeDgsIFBF UkZfUkVHX0FSTTY0X1g4KSwKPj4+IC0gICAgIFNNUExfUkVHKHg5LCBQRVJGX1JFR19BUk02NF9Y OSksCj4+PiAtICAgICBTTVBMX1JFRyh4MTAsIFBFUkZfUkVHX0FSTTY0X1gxMCksCj4+PiAtICAg ICBTTVBMX1JFRyh4MTEsIFBFUkZfUkVHX0FSTTY0X1gxMSksCj4+PiAtICAgICBTTVBMX1JFRyh4 MTIsIFBFUkZfUkVHX0FSTTY0X1gxMiksCj4+PiAtICAgICBTTVBMX1JFRyh4MTMsIFBFUkZfUkVH X0FSTTY0X1gxMyksCj4+PiAtICAgICBTTVBMX1JFRyh4MTQsIFBFUkZfUkVHX0FSTTY0X1gxNCks Cj4+PiAtICAgICBTTVBMX1JFRyh4MTUsIFBFUkZfUkVHX0FSTTY0X1gxNSksCj4+PiAtICAgICBT TVBMX1JFRyh4MTYsIFBFUkZfUkVHX0FSTTY0X1gxNiksCj4+PiAtICAgICBTTVBMX1JFRyh4MTcs IFBFUkZfUkVHX0FSTTY0X1gxNyksCj4+PiAtICAgICBTTVBMX1JFRyh4MTgsIFBFUkZfUkVHX0FS TTY0X1gxOCksCj4+PiAtICAgICBTTVBMX1JFRyh4MTksIFBFUkZfUkVHX0FSTTY0X1gxOSksCj4+ PiAtICAgICBTTVBMX1JFRyh4MjAsIFBFUkZfUkVHX0FSTTY0X1gyMCksCj4+PiAtICAgICBTTVBM X1JFRyh4MjEsIFBFUkZfUkVHX0FSTTY0X1gyMSksCj4+PiAtICAgICBTTVBMX1JFRyh4MjIsIFBF UkZfUkVHX0FSTTY0X1gyMiksCj4+PiAtICAgICBTTVBMX1JFRyh4MjMsIFBFUkZfUkVHX0FSTTY0 X1gyMyksCj4+PiAtICAgICBTTVBMX1JFRyh4MjQsIFBFUkZfUkVHX0FSTTY0X1gyNCksCj4+PiAt ICAgICBTTVBMX1JFRyh4MjUsIFBFUkZfUkVHX0FSTTY0X1gyNSksCj4+PiAtICAgICBTTVBMX1JF Ryh4MjYsIFBFUkZfUkVHX0FSTTY0X1gyNiksCj4+PiAtICAgICBTTVBMX1JFRyh4MjcsIFBFUkZf UkVHX0FSTTY0X1gyNyksCj4+PiAtICAgICBTTVBMX1JFRyh4MjgsIFBFUkZfUkVHX0FSTTY0X1gy OCksCj4+PiAtICAgICBTTVBMX1JFRyh4MjksIFBFUkZfUkVHX0FSTTY0X1gyOSksCj4+PiAtICAg ICBTTVBMX1JFRyhsciwgUEVSRl9SRUdfQVJNNjRfTFIpLAo+Pj4gLSAgICAgU01QTF9SRUcoc3As IFBFUkZfUkVHX0FSTTY0X1NQKSwKPj4+IC0gICAgIFNNUExfUkVHKHBjLCBQRVJGX1JFR19BUk02 NF9QQyksCj4+PiAtICAgICBTTVBMX1JFRyh2ZywgUEVSRl9SRUdfQVJNNjRfVkcpLAo+Pj4gLSAg ICAgU01QTF9SRUdfRU5ECj4+PiAtfTsKPj4+IC0KPj4+ICAvKiAleE5VTSAqLwo+Pj4gICNkZWZp bmUgU0RUX09QX1JFR0VYMSAgIl4oeFsxLTJdP1swLTldfDNbMC0xXSkkIgo+Pj4KPj4+IEBAIC0x NzUsOCArMTM5LDMgQEAgdWludDY0X3QgYXJjaF9fdXNlcl9yZWdfbWFzayh2b2lkKQo+Pj4gICAg ICAgfQo+Pj4gICAgICAgcmV0dXJuIFBFUkZfUkVHU19NQVNLOwo+Pj4gIH0KPj4+IC0KPj4+IC1j b25zdCBzdHJ1Y3Qgc2FtcGxlX3JlZyAqYXJjaF9fc2FtcGxlX3JlZ19tYXNrcyh2b2lkKQo+Pj4g LXsKPj4+IC0gICAgIHJldHVybiBzYW1wbGVfcmVnX21hc2tzOwo+Pj4gLX0KPj4+IGRpZmYgLS1n aXQgYS90b29scy9wZXJmL2FyY2gvY3NreS91dGlsL3BlcmZfcmVncy5jIGIvdG9vbHMvcGVyZi9h cmNoL2Nza3kvdXRpbC9wZXJmX3JlZ3MuYwo+Pj4gaW5kZXggNmIxNjY1ZjQxMTgwLi4yY2Y3YTU0 MTA2ZTAgMTAwNjQ0Cj4+PiAtLS0gYS90b29scy9wZXJmL2FyY2gvY3NreS91dGlsL3BlcmZfcmVn cy5jCj4+PiArKysgYi90b29scy9wZXJmL2FyY2gvY3NreS91dGlsL3BlcmZfcmVncy5jCj4+PiBA QCAtMiwxMCArMiw2IEBACj4+PiAgI2luY2x1ZGUgInBlcmZfcmVncy5oIgo+Pj4gICNpbmNsdWRl ICIuLi8uLi91dGlsL3BlcmZfcmVncy5oIgo+Pj4KPj4+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHNh bXBsZV9yZWcgc2FtcGxlX3JlZ19tYXNrc1tdID0gewo+Pj4gLSAgICAgU01QTF9SRUdfRU5ECj4+ PiAtfTsKPj4+IC0KPj4+ICB1aW50NjRfdCBhcmNoX19pbnRyX3JlZ19tYXNrKHZvaWQpCj4+PiAg ewo+Pj4gICAgICAgcmV0dXJuIFBFUkZfUkVHU19NQVNLOwo+Pj4gQEAgLTE1LDggKzExLDMgQEAg dWludDY0X3QgYXJjaF9fdXNlcl9yZWdfbWFzayh2b2lkKQo+Pj4gIHsKPj4+ICAgICAgIHJldHVy biBQRVJGX1JFR1NfTUFTSzsKPj4+ICB9Cj4+PiAtCj4+PiAtY29uc3Qgc3RydWN0IHNhbXBsZV9y ZWcgKmFyY2hfX3NhbXBsZV9yZWdfbWFza3Modm9pZCkKPj4+IC17Cj4+PiAtICAgICByZXR1cm4g c2FtcGxlX3JlZ19tYXNrczsKPj4+IC19Cj4+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9hcmNo L2xvb25nYXJjaC91dGlsL3BlcmZfcmVncy5jIGIvdG9vbHMvcGVyZi9hcmNoL2xvb25nYXJjaC91 dGlsL3BlcmZfcmVncy5jCj4+PiBpbmRleCBmOTRhMDIxMGM3YjcuLjAzYTViYzBjZjY0YyAxMDA2 NDQKPj4+IC0tLSBhL3Rvb2xzL3BlcmYvYXJjaC9sb29uZ2FyY2gvdXRpbC9wZXJmX3JlZ3MuYwo+ Pj4gKysrIGIvdG9vbHMvcGVyZi9hcmNoL2xvb25nYXJjaC91dGlsL3BlcmZfcmVncy5jCj4+PiBA QCAtMiwxMCArMiw2IEBACj4+PiAgI2luY2x1ZGUgInBlcmZfcmVncy5oIgo+Pj4gICNpbmNsdWRl ICIuLi8uLi8uLi91dGlsL3BlcmZfcmVncy5oIgo+Pj4KPj4+IC1zdGF0aWMgY29uc3Qgc3RydWN0 IHNhbXBsZV9yZWcgc2FtcGxlX3JlZ19tYXNrc1tdID0gewo+Pj4gLSAgICAgU01QTF9SRUdfRU5E Cj4+PiAtfTsKPj4+IC0KPj4+ICB1aW50NjRfdCBhcmNoX19pbnRyX3JlZ19tYXNrKHZvaWQpCj4+ PiAgewo+Pj4gICAgICAgcmV0dXJuIFBFUkZfUkVHU19NQVNLOwo+Pj4gQEAgLTE1LDggKzExLDMg QEAgdWludDY0X3QgYXJjaF9fdXNlcl9yZWdfbWFzayh2b2lkKQo+Pj4gIHsKPj4+ICAgICAgIHJl dHVybiBQRVJGX1JFR1NfTUFTSzsKPj4+ICB9Cj4+PiAtCj4+PiAtY29uc3Qgc3RydWN0IHNhbXBs ZV9yZWcgKmFyY2hfX3NhbXBsZV9yZWdfbWFza3Modm9pZCkKPj4+IC17Cj4+PiAtICAgICByZXR1 cm4gc2FtcGxlX3JlZ19tYXNrczsKPj4+IC19Cj4+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9h cmNoL21pcHMvdXRpbC9wZXJmX3JlZ3MuYyBiL3Rvb2xzL3BlcmYvYXJjaC9taXBzL3V0aWwvcGVy Zl9yZWdzLmMKPj4+IGluZGV4IDZiMTY2NWY0MTE4MC4uMmNmN2E1NDEwNmUwIDEwMDY0NAo+Pj4g LS0tIGEvdG9vbHMvcGVyZi9hcmNoL21pcHMvdXRpbC9wZXJmX3JlZ3MuYwo+Pj4gKysrIGIvdG9v bHMvcGVyZi9hcmNoL21pcHMvdXRpbC9wZXJmX3JlZ3MuYwo+Pj4gQEAgLTIsMTAgKzIsNiBAQAo+ Pj4gICNpbmNsdWRlICJwZXJmX3JlZ3MuaCIKPj4+ICAjaW5jbHVkZSAiLi4vLi4vdXRpbC9wZXJm X3JlZ3MuaCIKPj4+Cj4+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnIHNhbXBsZV9y ZWdfbWFza3NbXSA9IHsKPj4+IC0gICAgIFNNUExfUkVHX0VORAo+Pj4gLX07Cj4+PiAtCj4+PiAg dWludDY0X3QgYXJjaF9faW50cl9yZWdfbWFzayh2b2lkKQo+Pj4gIHsKPj4+ICAgICAgIHJldHVy biBQRVJGX1JFR1NfTUFTSzsKPj4+IEBAIC0xNSw4ICsxMSwzIEBAIHVpbnQ2NF90IGFyY2hfX3Vz ZXJfcmVnX21hc2sodm9pZCkKPj4+ICB7Cj4+PiAgICAgICByZXR1cm4gUEVSRl9SRUdTX01BU0s7 Cj4+PiAgfQo+Pj4gLQo+Pj4gLWNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnICphcmNoX19zYW1wbGVf cmVnX21hc2tzKHZvaWQpCj4+PiAtewo+Pj4gLSAgICAgcmV0dXJuIHNhbXBsZV9yZWdfbWFza3M7 Cj4+PiAtfQo+Pj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvYXJjaC9wb3dlcnBjL3V0aWwvcGVy Zl9yZWdzLmMgYi90b29scy9wZXJmL2FyY2gvcG93ZXJwYy91dGlsL3BlcmZfcmVncy5jCj4+PiBp bmRleCBiZDM2Y2ZkNDIwYTIuLjc3OTA3M2Y3ZTk5MiAxMDA2NDQKPj4+IC0tLSBhL3Rvb2xzL3Bl cmYvYXJjaC9wb3dlcnBjL3V0aWwvcGVyZl9yZWdzLmMKPj4+ICsrKyBiL3Rvb2xzL3BlcmYvYXJj aC9wb3dlcnBjL3V0aWwvcGVyZl9yZWdzLmMKPj4+IEBAIC0xOCw2OSArMTgsNiBAQAo+Pj4gICNk ZWZpbmUgUFZSX1BPV0VSMTAgICAgICAgICAgMHgwMDgwCj4+PiAgI2RlZmluZSBQVlJfUE9XRVIx MSAgICAgICAgICAweDAwODIKPj4+Cj4+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1wbGVfcmVn IHNhbXBsZV9yZWdfbWFza3NbXSA9IHsKPj4+IC0gICAgIFNNUExfUkVHKHIwLCBQRVJGX1JFR19Q T1dFUlBDX1IwKSwKPj4+IC0gICAgIFNNUExfUkVHKHIxLCBQRVJGX1JFR19QT1dFUlBDX1IxKSwK Pj4+IC0gICAgIFNNUExfUkVHKHIyLCBQRVJGX1JFR19QT1dFUlBDX1IyKSwKPj4+IC0gICAgIFNN UExfUkVHKHIzLCBQRVJGX1JFR19QT1dFUlBDX1IzKSwKPj4+IC0gICAgIFNNUExfUkVHKHI0LCBQ RVJGX1JFR19QT1dFUlBDX1I0KSwKPj4+IC0gICAgIFNNUExfUkVHKHI1LCBQRVJGX1JFR19QT1dF UlBDX1I1KSwKPj4+IC0gICAgIFNNUExfUkVHKHI2LCBQRVJGX1JFR19QT1dFUlBDX1I2KSwKPj4+ IC0gICAgIFNNUExfUkVHKHI3LCBQRVJGX1JFR19QT1dFUlBDX1I3KSwKPj4+IC0gICAgIFNNUExf UkVHKHI4LCBQRVJGX1JFR19QT1dFUlBDX1I4KSwKPj4+IC0gICAgIFNNUExfUkVHKHI5LCBQRVJG X1JFR19QT1dFUlBDX1I5KSwKPj4+IC0gICAgIFNNUExfUkVHKHIxMCwgUEVSRl9SRUdfUE9XRVJQ Q19SMTApLAo+Pj4gLSAgICAgU01QTF9SRUcocjExLCBQRVJGX1JFR19QT1dFUlBDX1IxMSksCj4+ PiAtICAgICBTTVBMX1JFRyhyMTIsIFBFUkZfUkVHX1BPV0VSUENfUjEyKSwKPj4+IC0gICAgIFNN UExfUkVHKHIxMywgUEVSRl9SRUdfUE9XRVJQQ19SMTMpLAo+Pj4gLSAgICAgU01QTF9SRUcocjE0 LCBQRVJGX1JFR19QT1dFUlBDX1IxNCksCj4+PiAtICAgICBTTVBMX1JFRyhyMTUsIFBFUkZfUkVH X1BPV0VSUENfUjE1KSwKPj4+IC0gICAgIFNNUExfUkVHKHIxNiwgUEVSRl9SRUdfUE9XRVJQQ19S MTYpLAo+Pj4gLSAgICAgU01QTF9SRUcocjE3LCBQRVJGX1JFR19QT1dFUlBDX1IxNyksCj4+PiAt ICAgICBTTVBMX1JFRyhyMTgsIFBFUkZfUkVHX1BPV0VSUENfUjE4KSwKPj4+IC0gICAgIFNNUExf UkVHKHIxOSwgUEVSRl9SRUdfUE9XRVJQQ19SMTkpLAo+Pj4gLSAgICAgU01QTF9SRUcocjIwLCBQ RVJGX1JFR19QT1dFUlBDX1IyMCksCj4+PiAtICAgICBTTVBMX1JFRyhyMjEsIFBFUkZfUkVHX1BP V0VSUENfUjIxKSwKPj4+IC0gICAgIFNNUExfUkVHKHIyMiwgUEVSRl9SRUdfUE9XRVJQQ19SMjIp LAo+Pj4gLSAgICAgU01QTF9SRUcocjIzLCBQRVJGX1JFR19QT1dFUlBDX1IyMyksCj4+PiAtICAg ICBTTVBMX1JFRyhyMjQsIFBFUkZfUkVHX1BPV0VSUENfUjI0KSwKPj4+IC0gICAgIFNNUExfUkVH KHIyNSwgUEVSRl9SRUdfUE9XRVJQQ19SMjUpLAo+Pj4gLSAgICAgU01QTF9SRUcocjI2LCBQRVJG X1JFR19QT1dFUlBDX1IyNiksCj4+PiAtICAgICBTTVBMX1JFRyhyMjcsIFBFUkZfUkVHX1BPV0VS UENfUjI3KSwKPj4+IC0gICAgIFNNUExfUkVHKHIyOCwgUEVSRl9SRUdfUE9XRVJQQ19SMjgpLAo+ Pj4gLSAgICAgU01QTF9SRUcocjI5LCBQRVJGX1JFR19QT1dFUlBDX1IyOSksCj4+PiAtICAgICBT TVBMX1JFRyhyMzAsIFBFUkZfUkVHX1BPV0VSUENfUjMwKSwKPj4+IC0gICAgIFNNUExfUkVHKHIz MSwgUEVSRl9SRUdfUE9XRVJQQ19SMzEpLAo+Pj4gLSAgICAgU01QTF9SRUcobmlwLCBQRVJGX1JF R19QT1dFUlBDX05JUCksCj4+PiAtICAgICBTTVBMX1JFRyhtc3IsIFBFUkZfUkVHX1BPV0VSUENf TVNSKSwKPj4+IC0gICAgIFNNUExfUkVHKG9yaWdfcjMsIFBFUkZfUkVHX1BPV0VSUENfT1JJR19S MyksCj4+PiAtICAgICBTTVBMX1JFRyhjdHIsIFBFUkZfUkVHX1BPV0VSUENfQ1RSKSwKPj4+IC0g ICAgIFNNUExfUkVHKGxpbmssIFBFUkZfUkVHX1BPV0VSUENfTElOSyksCj4+PiAtICAgICBTTVBM X1JFRyh4ZXIsIFBFUkZfUkVHX1BPV0VSUENfWEVSKSwKPj4+IC0gICAgIFNNUExfUkVHKGNjciwg UEVSRl9SRUdfUE9XRVJQQ19DQ1IpLAo+Pj4gLSAgICAgU01QTF9SRUcoc29mdGUsIFBFUkZfUkVH X1BPV0VSUENfU09GVEUpLAo+Pj4gLSAgICAgU01QTF9SRUcodHJhcCwgUEVSRl9SRUdfUE9XRVJQ Q19UUkFQKSwKPj4+IC0gICAgIFNNUExfUkVHKGRhciwgUEVSRl9SRUdfUE9XRVJQQ19EQVIpLAo+ Pj4gLSAgICAgU01QTF9SRUcoZHNpc3IsIFBFUkZfUkVHX1BPV0VSUENfRFNJU1IpLAo+Pj4gLSAg ICAgU01QTF9SRUcoc2llciwgUEVSRl9SRUdfUE9XRVJQQ19TSUVSKSwKPj4+IC0gICAgIFNNUExf UkVHKG1tY3JhLCBQRVJGX1JFR19QT1dFUlBDX01NQ1JBKSwKPj4+IC0gICAgIFNNUExfUkVHKG1t Y3IwLCBQRVJGX1JFR19QT1dFUlBDX01NQ1IwKSwKPj4+IC0gICAgIFNNUExfUkVHKG1tY3IxLCBQ RVJGX1JFR19QT1dFUlBDX01NQ1IxKSwKPj4+IC0gICAgIFNNUExfUkVHKG1tY3IyLCBQRVJGX1JF R19QT1dFUlBDX01NQ1IyKSwKPj4+IC0gICAgIFNNUExfUkVHKG1tY3IzLCBQRVJGX1JFR19QT1dF UlBDX01NQ1IzKSwKPj4+IC0gICAgIFNNUExfUkVHKHNpZXIyLCBQRVJGX1JFR19QT1dFUlBDX1NJ RVIyKSwKPj4+IC0gICAgIFNNUExfUkVHKHNpZXIzLCBQRVJGX1JFR19QT1dFUlBDX1NJRVIzKSwK Pj4+IC0gICAgIFNNUExfUkVHKHBtYzEsIFBFUkZfUkVHX1BPV0VSUENfUE1DMSksCj4+PiAtICAg ICBTTVBMX1JFRyhwbWMyLCBQRVJGX1JFR19QT1dFUlBDX1BNQzIpLAo+Pj4gLSAgICAgU01QTF9S RUcocG1jMywgUEVSRl9SRUdfUE9XRVJQQ19QTUMzKSwKPj4+IC0gICAgIFNNUExfUkVHKHBtYzQs IFBFUkZfUkVHX1BPV0VSUENfUE1DNCksCj4+PiAtICAgICBTTVBMX1JFRyhwbWM1LCBQRVJGX1JF R19QT1dFUlBDX1BNQzUpLAo+Pj4gLSAgICAgU01QTF9SRUcocG1jNiwgUEVSRl9SRUdfUE9XRVJQ Q19QTUM2KSwKPj4+IC0gICAgIFNNUExfUkVHKHNkYXIsIFBFUkZfUkVHX1BPV0VSUENfU0RBUiks Cj4+PiAtICAgICBTTVBMX1JFRyhzaWFyLCBQRVJGX1JFR19QT1dFUlBDX1NJQVIpLAo+Pj4gLSAg ICAgU01QTF9SRUdfRU5ECj4+PiAtfTsKPj4+IC0KPj4+ICAvKiBSRUcgb3IgJXJSRUcgKi8KPj4+ ICAjZGVmaW5lIFNEVF9PUF9SRUdFWDEgICJeKCVyKT8oWzEtMl0/WzAtOV18M1swLTFdKSQiCj4+ Pgo+Pj4gQEAgLTIzMyw4ICsxNzAsMyBAQCB1aW50NjRfdCBhcmNoX191c2VyX3JlZ19tYXNrKHZv aWQpCj4+PiAgewo+Pj4gICAgICAgcmV0dXJuIFBFUkZfUkVHU19NQVNLOwo+Pj4gIH0KPj4+IC0K Pj4+IC1jb25zdCBzdHJ1Y3Qgc2FtcGxlX3JlZyAqYXJjaF9fc2FtcGxlX3JlZ19tYXNrcyh2b2lk KQo+Pj4gLXsKPj4+IC0gICAgIHJldHVybiBzYW1wbGVfcmVnX21hc2tzOwo+Pj4gLX0KPj4+IGRp ZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gvcmlzY3YvdXRpbC9wZXJmX3JlZ3MuYyBiL3Rvb2xz L3BlcmYvYXJjaC9yaXNjdi91dGlsL3BlcmZfcmVncy5jCj4+PiBpbmRleCA2YjE2NjVmNDExODAu LjJjZjdhNTQxMDZlMCAxMDA2NDQKPj4+IC0tLSBhL3Rvb2xzL3BlcmYvYXJjaC9yaXNjdi91dGls L3BlcmZfcmVncy5jCj4+PiArKysgYi90b29scy9wZXJmL2FyY2gvcmlzY3YvdXRpbC9wZXJmX3Jl Z3MuYwo+Pj4gQEAgLTIsMTAgKzIsNiBAQAo+Pj4gICNpbmNsdWRlICJwZXJmX3JlZ3MuaCIKPj4+ ICAjaW5jbHVkZSAiLi4vLi4vdXRpbC9wZXJmX3JlZ3MuaCIKPj4+Cj4+PiAtc3RhdGljIGNvbnN0 IHN0cnVjdCBzYW1wbGVfcmVnIHNhbXBsZV9yZWdfbWFza3NbXSA9IHsKPj4+IC0gICAgIFNNUExf UkVHX0VORAo+Pj4gLX07Cj4+PiAtCj4+PiAgdWludDY0X3QgYXJjaF9faW50cl9yZWdfbWFzayh2 b2lkKQo+Pj4gIHsKPj4+ICAgICAgIHJldHVybiBQRVJGX1JFR1NfTUFTSzsKPj4+IEBAIC0xNSw4 ICsxMSwzIEBAIHVpbnQ2NF90IGFyY2hfX3VzZXJfcmVnX21hc2sodm9pZCkKPj4+ICB7Cj4+PiAg ICAgICByZXR1cm4gUEVSRl9SRUdTX01BU0s7Cj4+PiAgfQo+Pj4gLQo+Pj4gLWNvbnN0IHN0cnVj dCBzYW1wbGVfcmVnICphcmNoX19zYW1wbGVfcmVnX21hc2tzKHZvaWQpCj4+PiAtewo+Pj4gLSAg ICAgcmV0dXJuIHNhbXBsZV9yZWdfbWFza3M7Cj4+PiAtfQo+Pj4gZGlmZiAtLWdpdCBhL3Rvb2xz L3BlcmYvYXJjaC9zMzkwL3V0aWwvcGVyZl9yZWdzLmMgYi90b29scy9wZXJmL2FyY2gvczM5MC91 dGlsL3BlcmZfcmVncy5jCj4+PiBpbmRleCA2YjE2NjVmNDExODAuLjJjZjdhNTQxMDZlMCAxMDA2 NDQKPj4+IC0tLSBhL3Rvb2xzL3BlcmYvYXJjaC9zMzkwL3V0aWwvcGVyZl9yZWdzLmMKPj4+ICsr KyBiL3Rvb2xzL3BlcmYvYXJjaC9zMzkwL3V0aWwvcGVyZl9yZWdzLmMKPj4+IEBAIC0yLDEwICsy LDYgQEAKPj4+ICAjaW5jbHVkZSAicGVyZl9yZWdzLmgiCj4+PiAgI2luY2x1ZGUgIi4uLy4uL3V0 aWwvcGVyZl9yZWdzLmgiCj4+Pgo+Pj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2FtcGxlX3JlZyBz YW1wbGVfcmVnX21hc2tzW10gPSB7Cj4+PiAtICAgICBTTVBMX1JFR19FTkQKPj4+IC19Owo+Pj4g LQo+Pj4gIHVpbnQ2NF90IGFyY2hfX2ludHJfcmVnX21hc2sodm9pZCkKPj4+ICB7Cj4+PiAgICAg ICByZXR1cm4gUEVSRl9SRUdTX01BU0s7Cj4+PiBAQCAtMTUsOCArMTEsMyBAQCB1aW50NjRfdCBh cmNoX191c2VyX3JlZ19tYXNrKHZvaWQpCj4+PiAgewo+Pj4gICAgICAgcmV0dXJuIFBFUkZfUkVH U19NQVNLOwo+Pj4gIH0KPj4+IC0KPj4+IC1jb25zdCBzdHJ1Y3Qgc2FtcGxlX3JlZyAqYXJjaF9f c2FtcGxlX3JlZ19tYXNrcyh2b2lkKQo+Pj4gLXsKPj4+IC0gICAgIHJldHVybiBzYW1wbGVfcmVn X21hc2tzOwo+Pj4gLX0KPj4+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL2FyY2gveDg2L3V0aWwv cGVyZl9yZWdzLmMgYi90b29scy9wZXJmL2FyY2gveDg2L3V0aWwvcGVyZl9yZWdzLmMKPj4+IGlu ZGV4IDEyZmQ5M2YwNDgwMi4uYTdjYTQxNTRmZGY5IDEwMDY0NAo+Pj4gLS0tIGEvdG9vbHMvcGVy Zi9hcmNoL3g4Ni91dGlsL3BlcmZfcmVncy5jCj4+PiArKysgYi90b29scy9wZXJmL2FyY2gveDg2 L3V0aWwvcGVyZl9yZWdzLmMKPj4+IEBAIC0xMyw0OCArMTMsNiBAQAo+Pj4gICNpbmNsdWRlICIu Li8uLi8uLi91dGlsL3BtdS5oIgo+Pj4gICNpbmNsdWRlICIuLi8uLi8uLi91dGlsL3BtdXMuaCIK Pj4+Cj4+PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnIHNhbXBsZV9yZWdfbWFza3Nb XSA9IHsKPj4+IC0gICAgIFNNUExfUkVHKEFYLCBQRVJGX1JFR19YODZfQVgpLAo+Pj4gLSAgICAg U01QTF9SRUcoQlgsIFBFUkZfUkVHX1g4Nl9CWCksCj4+PiAtICAgICBTTVBMX1JFRyhDWCwgUEVS Rl9SRUdfWDg2X0NYKSwKPj4+IC0gICAgIFNNUExfUkVHKERYLCBQRVJGX1JFR19YODZfRFgpLAo+ Pj4gLSAgICAgU01QTF9SRUcoU0ksIFBFUkZfUkVHX1g4Nl9TSSksCj4+PiAtICAgICBTTVBMX1JF RyhESSwgUEVSRl9SRUdfWDg2X0RJKSwKPj4+IC0gICAgIFNNUExfUkVHKEJQLCBQRVJGX1JFR19Y ODZfQlApLAo+Pj4gLSAgICAgU01QTF9SRUcoU1AsIFBFUkZfUkVHX1g4Nl9TUCksCj4+PiAtICAg ICBTTVBMX1JFRyhJUCwgUEVSRl9SRUdfWDg2X0lQKSwKPj4+IC0gICAgIFNNUExfUkVHKEZMQUdT LCBQRVJGX1JFR19YODZfRkxBR1MpLAo+Pj4gLSAgICAgU01QTF9SRUcoQ1MsIFBFUkZfUkVHX1g4 Nl9DUyksCj4+PiAtICAgICBTTVBMX1JFRyhTUywgUEVSRl9SRUdfWDg2X1NTKSwKPj4+IC0jaWZk ZWYgSEFWRV9BUkNIX1g4Nl82NF9TVVBQT1JUCj4+PiAtICAgICBTTVBMX1JFRyhSOCwgUEVSRl9S RUdfWDg2X1I4KSwKPj4+IC0gICAgIFNNUExfUkVHKFI5LCBQRVJGX1JFR19YODZfUjkpLAo+Pj4g LSAgICAgU01QTF9SRUcoUjEwLCBQRVJGX1JFR19YODZfUjEwKSwKPj4+IC0gICAgIFNNUExfUkVH KFIxMSwgUEVSRl9SRUdfWDg2X1IxMSksCj4+PiAtICAgICBTTVBMX1JFRyhSMTIsIFBFUkZfUkVH X1g4Nl9SMTIpLAo+Pj4gLSAgICAgU01QTF9SRUcoUjEzLCBQRVJGX1JFR19YODZfUjEzKSwKPj4+ IC0gICAgIFNNUExfUkVHKFIxNCwgUEVSRl9SRUdfWDg2X1IxNCksCj4+PiAtICAgICBTTVBMX1JF RyhSMTUsIFBFUkZfUkVHX1g4Nl9SMTUpLAo+Pj4gLSNlbmRpZgo+Pj4gLSAgICAgU01QTF9SRUcy KFhNTTAsIFBFUkZfUkVHX1g4Nl9YTU0wKSwKPj4+IC0gICAgIFNNUExfUkVHMihYTU0xLCBQRVJG X1JFR19YODZfWE1NMSksCj4+PiAtICAgICBTTVBMX1JFRzIoWE1NMiwgUEVSRl9SRUdfWDg2X1hN TTIpLAo+Pj4gLSAgICAgU01QTF9SRUcyKFhNTTMsIFBFUkZfUkVHX1g4Nl9YTU0zKSwKPj4+IC0g ICAgIFNNUExfUkVHMihYTU00LCBQRVJGX1JFR19YODZfWE1NNCksCj4+PiAtICAgICBTTVBMX1JF RzIoWE1NNSwgUEVSRl9SRUdfWDg2X1hNTTUpLAo+Pj4gLSAgICAgU01QTF9SRUcyKFhNTTYsIFBF UkZfUkVHX1g4Nl9YTU02KSwKPj4+IC0gICAgIFNNUExfUkVHMihYTU03LCBQRVJGX1JFR19YODZf WE1NNyksCj4+PiAtICAgICBTTVBMX1JFRzIoWE1NOCwgUEVSRl9SRUdfWDg2X1hNTTgpLAo+Pj4g LSAgICAgU01QTF9SRUcyKFhNTTksIFBFUkZfUkVHX1g4Nl9YTU05KSwKPj4+IC0gICAgIFNNUExf UkVHMihYTU0xMCwgUEVSRl9SRUdfWDg2X1hNTTEwKSwKPj4+IC0gICAgIFNNUExfUkVHMihYTU0x MSwgUEVSRl9SRUdfWDg2X1hNTTExKSwKPj4+IC0gICAgIFNNUExfUkVHMihYTU0xMiwgUEVSRl9S RUdfWDg2X1hNTTEyKSwKPj4+IC0gICAgIFNNUExfUkVHMihYTU0xMywgUEVSRl9SRUdfWDg2X1hN TTEzKSwKPj4+IC0gICAgIFNNUExfUkVHMihYTU0xNCwgUEVSRl9SRUdfWDg2X1hNTTE0KSwKPj4+ IC0gICAgIFNNUExfUkVHMihYTU0xNSwgUEVSRl9SRUdfWDg2X1hNTTE1KSwKPj4+IC0gICAgIFNN UExfUkVHX0VORAo+Pj4gLX07Cj4+PiAtCj4+PiAgc3RydWN0IHNkdF9uYW1lX3JlZyB7Cj4+PiAg ICAgICBjb25zdCBjaGFyICpzZHRfbmFtZTsKPj4+ICAgICAgIGNvbnN0IGNoYXIgKnVwcm9iZV9u YW1lOwo+Pj4gQEAgLTI3NiwxMSArMjM0LDYgQEAgaW50IGFyY2hfc2R0X2FyZ19wYXJzZV9vcChj aGFyICpvbGRfb3AsIGNoYXIgKipuZXdfb3ApCj4+PiAgICAgICByZXR1cm4gU0RUX0FSR19WQUxJ RDsKPj4+ICB9Cj4+Pgo+Pj4gLWNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnICphcmNoX19zYW1wbGVf cmVnX21hc2tzKHZvaWQpCj4+PiAtewo+Pj4gLSAgICAgcmV0dXJuIHNhbXBsZV9yZWdfbWFza3M7 Cj4+PiAtfQo+Pj4gLQo+Pj4gIHVpbnQ2NF90IGFyY2hfX2ludHJfcmVnX21hc2sodm9pZCkKPj4+ ICB7Cj4+PiAgICAgICBzdHJ1Y3QgcGVyZl9ldmVudF9hdHRyIGF0dHIgPSB7Cj4+PiBkaWZmIC0t Z2l0IGEvdG9vbHMvcGVyZi91dGlsL2FybTY0LWZyYW1lLXBvaW50ZXItdW53aW5kLXN1cHBvcnQu YyBiL3Rvb2xzL3BlcmYvdXRpbC9hcm02NC1mcmFtZS1wb2ludGVyLXVud2luZC1zdXBwb3J0LmMK Pj4+IGluZGV4IDk1OGFmZThiODIxZS4uODU4Y2UyYjAxODEyIDEwMDY0NAo+Pj4gLS0tIGEvdG9v bHMvcGVyZi91dGlsL2FybTY0LWZyYW1lLXBvaW50ZXItdW53aW5kLXN1cHBvcnQuYwo+Pj4gKysr IGIvdG9vbHMvcGVyZi91dGlsL2FybTY0LWZyYW1lLXBvaW50ZXItdW53aW5kLXN1cHBvcnQuYwo+ Pj4gQEAgLTIsNyArMiw2IEBACj4+PiAgI2luY2x1ZGUgImFybTY0LWZyYW1lLXBvaW50ZXItdW53 aW5kLXN1cHBvcnQuaCIKPj4+ICAjaW5jbHVkZSAiY2FsbGNoYWluLmgiCj4+PiAgI2luY2x1ZGUg ImV2ZW50LmgiCj4+PiAtI2luY2x1ZGUgInBlcmZfcmVncy5oIiAvLyBTTVBMX1JFR19NQVNLCj4+ PiAgI2luY2x1ZGUgInVud2luZC5oIgo+Pj4gICNpbmNsdWRlIDxzdHJpbmcuaD4KPj4+Cj4+PiBA QCAtMTUsNiArMTQsOCBAQCBzdHJ1Y3QgZW50cmllcyB7Cj4+PiAgICAgICBzaXplX3QgbGVuZ3Ro Owo+Pj4gIH07Cj4+Pgo+Pj4gKyNkZWZpbmUgU01QTF9SRUdfTUFTSyhiKSAoMVVMTCA8PCAoYikp Cj4+PiArCj4+PiAgc3RhdGljIGJvb2wgZ2V0X2xlYWZfZnJhbWVfY2FsbGVyX2VuYWJsZWQoc3Ry dWN0IHBlcmZfc2FtcGxlICpzYW1wbGUpCj4+PiAgewo+Pj4gICAgICAgc3RydWN0IHJlZ3NfZHVt cCAqcmVnczsKPj4+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvcGFyc2UtcmVncy1vcHRp b25zLmMgYi90b29scy9wZXJmL3V0aWwvcGFyc2UtcmVncy1vcHRpb25zLmMKPj4+IGluZGV4IGNk YTFjNjIwOTY4ZS4uYzBkMGVmOWZkNDk1IDEwMDY0NAo+Pj4gLS0tIGEvdG9vbHMvcGVyZi91dGls L3BhcnNlLXJlZ3Mtb3B0aW9ucy5jCj4+PiArKysgYi90b29scy9wZXJmL3V0aWwvcGFyc2UtcmVn cy1vcHRpb25zLmMKPj4+IEBAIC01LDE1ICs1LDU0IEBACj4+PiAgI2luY2x1ZGUgPHN0cmluZy5o Pgo+Pj4gICNpbmNsdWRlIDxzdGRpby5oPgo+Pj4gICNpbmNsdWRlICJ1dGlsL2RlYnVnLmgiCj4+ PiArI2luY2x1ZGUgPGR3YXJmLXJlZ3MuaD4KPj4+ICAjaW5jbHVkZSA8c3ViY21kL3BhcnNlLW9w dGlvbnMuaD4KPj4+ICAjaW5jbHVkZSAidXRpbC9wZXJmX3JlZ3MuaCIKPj4+ICAjaW5jbHVkZSAi dXRpbC9wYXJzZS1yZWdzLW9wdGlvbnMuaCIKPj4+Cj4+PiArc3RhdGljIHZvaWQgbGlzdF9wZXJm X3JlZ3MoRklMRSAqZnAsIHVpbnQ2NF90IG1hc2spCj4+PiArewo+Pj4gKyAgICAgY29uc3QgY2hh ciAqbGFzdF9uYW1lID0gTlVMTDsKPj4+ICsKPj4+ICsgICAgIGZwcmludGYoZnAsICJhdmFpbGFi bGUgcmVnaXN0ZXJzOiAiKTsKPj4+ICsgICAgIGZvciAoaW50IHJlZyA9IDA7IHJlZyA8IDY0OyBy ZWcrKykgewo+PiBDb3VsZCB3ZSBub3QgdXNlIHRoZSBtYWdpYyBudW1iZXIgNjQ/IEl0J3Mgbm90 IHNhZmUsIHRoZSBzdXBwb3J0ZWQgR1AKPj4gcmVnaXN0ZXIgbnVtYmVyIGNvdWxkIGV4Y2VlZCA2 NCBpbiB0aGUgZnV0dXJlLCB0aGVuIHRoZSBleGNlZWRlZCByZWdpc3Rlcgo+PiB3b24ndCBiZSBp dGVyYXRlZC4KPiBIb3cgd2lsbCBzdWNoIGEgcmVnaXN0ZXIgYXBwZWFyIGluIHNhbXBsZV9yZWdz X3VzZXIvc2FtcGxlX3JlZ3NfaW50cj8KPiBUaGVyZSdzIGEgcmVxdWlyZW1lbnQgdGhhdCBwZXJm IHJlZ2lzdGVycyBiZSBpbmRpY2VzIGludG8gdGhlIDY0LWJpdAo+IG1hc2suCgpJbiB0aGVvcnks IGlmIHRoZSBHUFJzIGV4Y2VlZHMgNjQsIHRoZW4gc2FtcGxlX3JlZ3NfdXNlci9zYW1wbGVfcmVn c19pbnRyCmNvdWxkIGJlY29tZSBhbiB1NjQgYXJyYXkuIFNvIGlmIHRoZSB1c2VyIG1pc3NlZCB0 byBtb2RpZnkgdGhlIG1hZ2ljIG51bWJlcgo2NCwgdGhlbiB0aGVyZSB3b3VsZCBiZSBzb21ldGhp bmcgd3JvbmcuIElNTywgdGhlIGJlbG93IGNoYW5nZSBsb29rcyBzYWZlcgphbmQgSSBwZXJzb25h bGx5IGRvZXNuJ3QgbGlrZSB0aGUgbWFnaWMgbnVtYmVyLiA6KQoKCj4KPj4gSG93IGFib3V0IHRo aXM/Cj4+Cj4+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL3V0aWwvcGFyc2UtcmVncy1vcHRpb25z LmMKPj4gYi90b29scy9wZXJmL3V0aWwvcGFyc2UtcmVncy1vcHRpb25zLmMKPj4gaW5kZXggYzBk MGVmOWZkNDk1Li41MTc3MDE2YTdhZDQgMTAwNjQ0Cj4+IC0tLSBhL3Rvb2xzL3BlcmYvdXRpbC9w YXJzZS1yZWdzLW9wdGlvbnMuYwo+PiArKysgYi90b29scy9wZXJmL3V0aWwvcGFyc2UtcmVncy1v cHRpb25zLmMKPj4gQEAgLTE1LDcgKzE1LDcgQEAgc3RhdGljIHZvaWQgbGlzdF9wZXJmX3JlZ3Mo RklMRSAqZnAsIHVpbnQ2NF90IG1hc2spCj4+ICAgICAgICAgY29uc3QgY2hhciAqbGFzdF9uYW1l ID0gTlVMTDsKPj4KPj4gICAgICAgICBmcHJpbnRmKGZwLCAiYXZhaWxhYmxlIHJlZ2lzdGVyczog Iik7Cj4+IC0gICAgICAgZm9yIChpbnQgcmVnID0gMDsgcmVnIDwgNjQ7IHJlZysrKSB7Cj4+ICsg ICAgICAgZm9yICh1bnNpZ25lZCBsb25nIHJlZyA9IDA7IHJlZyA8IHNpemVvZihtYXNrKSAqIEJJ VFNfUEVSX0JZVEU7Cj4+IHJlZysrKSB7Cj4+ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpu YW1lOwo+Pgo+PiAgICAgICAgICAgICAgICAgaWYgKCgoMVVMTCA8PCByZWcpICYgbWFzaykgPT0g MCkKPj4KPj4KPj4+ICsgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZTsKPj4+ICsKPj4+ICsg ICAgICAgICAgICAgaWYgKCgoMVVMTCA8PCByZWcpICYgbWFzaykgPT0gMCkKPj4+ICsgICAgICAg ICAgICAgICAgICAgICBjb250aW51ZTsKPj4+ICsKPj4+ICsgICAgICAgICAgICAgbmFtZSA9IHBl cmZfcmVnX25hbWUocmVnLCBFTV9IT1NUKTsKPj4+ICsgICAgICAgICAgICAgaWYgKG5hbWUgJiYg KCFsYXN0X25hbWUgfHwgc3RyY21wKGxhc3RfbmFtZSwgbmFtZSkpKQo+Pj4gKyAgICAgICAgICAg ICAgICAgICAgIGZwcmludGYoZnAsICIlcyVzIiwgcmVnID4gMCA/ICIgIiA6ICIiLCBuYW1lKTsK Pj4+ICsgICAgICAgICAgICAgbGFzdF9uYW1lID0gbmFtZTsKPj4+ICsgICAgIH0KPj4+ICsgICAg IGZwdXRjKCdcbicsIGZwKTsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIHVpbnQ2NF90IG5hbWVf dG9fcGVyZl9yZWdfbWFzayhjb25zdCBjaGFyICp0b19tYXRjaCwgdWludDY0X3QgbWFzaykKPj4+ ICt7Cj4+PiArICAgICB1aW50NjRfdCByZWdfbWFzayA9IDA7Cj4+PiArCj4+PiArICAgICBmb3Ig KGludCByZWcgPSAwOyByZWcgPCA2NDsgcmVnKyspIHsKPj4gZGl0dG8uCj4+Cj4+Cj4+PiArICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7Cj4+PiArCj4+PiArICAgICAgICAgICAgIGlmICgo KDFVTEwgPDwgcmVnKSAmIG1hc2spID09IDApCj4+PiArICAgICAgICAgICAgICAgICAgICAgY29u dGludWU7Cj4+PiArCj4+PiArICAgICAgICAgICAgIG5hbWUgPSBwZXJmX3JlZ19uYW1lKHJlZywg RU1fSE9TVCk7Cj4+PiArICAgICAgICAgICAgIGlmICghbmFtZSkKPj4+ICsgICAgICAgICAgICAg ICAgICAgICBjb250aW51ZTsKPj4+ICsKPj4+ICsgICAgICAgICAgICAgaWYgKCFzdHJjYXNlY21w KHRvX21hdGNoLCBuYW1lKSkKPj4+ICsgICAgICAgICAgICAgICAgICAgICByZWdfbWFzayB8PSAx VUxMIDw8IHJlZzsKPj4gSG93IG11Y2ggcmVnaXN0ZXIgbmFtZXMgYXJlIGV4cGVjdGVkIHRvIG1h dGNoIGhlcmU/IEl0IHNlZW1zIHRoZSBmdW5jdGlvbgo+PiBleHBlY3RzIHRvIG1hdGNoIG9ubHkg b25lIHJlZ2lzdGVyIG5hbWUuIElmIHNvLCB3ZSBjYW4gImJyZWFrIiBoZXJlLgo+IFJlZ2lzdGVy cyBsaWtlIFhNTTAgZG91YmxlIHVwIHNvIHRoYXQgdGhleSBoYXZlIHR3byA2NC1iaXQgc2xvdHMg aW4KPiB0aGUgc2FtcGxlIGRhdGEuIFlvdSBuZWVkIHRvIG1hdGNoIHRoZSBuYW1lIG11bHRpcGxl IHRpbWVzIHNvIHRoYXQgYWxsCj4gYml0cyBjYW4gYmUgc2V0IGluIHRoZSBtYXNrLgoKT2gsIHll cy4gSSBtaXNzZWQgWE1NIHJlZ2lzdGVycy4gVGhhbmtzLgoKCj4KPiBUaGFua3MsCj4gSWFuCj4K Pj4gVGhhbmtzLgo+Pgo+Pgo+Pj4gKyAgICAgfQo+Pj4gKyAgICAgcmV0dXJuIHJlZ19tYXNrOwo+ Pj4gK30KPj4+ICsKPj4+ICBzdGF0aWMgaW50Cj4+PiAgX19wYXJzZV9yZWdzKGNvbnN0IHN0cnVj dCBvcHRpb24gKm9wdCwgY29uc3QgY2hhciAqc3RyLCBpbnQgdW5zZXQsIGJvb2wgaW50cikKPj4+ ICB7Cj4+PiAgICAgICB1aW50NjRfdCAqbW9kZSA9ICh1aW50NjRfdCAqKW9wdC0+dmFsdWU7Cj4+ PiAtICAgICBjb25zdCBzdHJ1Y3Qgc2FtcGxlX3JlZyAqciA9IE5VTEw7Cj4+PiAgICAgICBjaGFy ICpzLCAqb3MgPSBOVUxMLCAqcDsKPj4+ICAgICAgIGludCByZXQgPSAtMTsKPj4+ICAgICAgIHVp bnQ2NF90IG1hc2s7Cj4+PiBAQCAtMjcsNTAgKzY2LDQxIEBAIF9fcGFyc2VfcmVncyhjb25zdCBz dHJ1Y3Qgb3B0aW9uICpvcHQsIGNvbnN0IGNoYXIgKnN0ciwgaW50IHVuc2V0LCBib29sIGludHIp Cj4+PiAgICAgICBpZiAoKm1vZGUpCj4+PiAgICAgICAgICAgICAgIHJldHVybiAtMTsKPj4+Cj4+ PiAtICAgICBpZiAoaW50cikKPj4+IC0gICAgICAgICAgICAgbWFzayA9IGFyY2hfX2ludHJfcmVn X21hc2soKTsKPj4+IC0gICAgIGVsc2UKPj4+IC0gICAgICAgICAgICAgbWFzayA9IGFyY2hfX3Vz ZXJfcmVnX21hc2soKTsKPj4+IC0KPj4+ICAgICAgIC8qIHN0ciBtYXkgYmUgTlVMTCBpbiBjYXNl IG5vIGFyZyBpcyBwYXNzZWQgdG8gLUkgKi8KPj4+IC0gICAgIGlmIChzdHIpIHsKPj4+IC0gICAg ICAgICAgICAgLyogYmVjYXVzZSBzdHIgaXMgcmVhZC1vbmx5ICovCj4+PiAtICAgICAgICAgICAg IHMgPSBvcyA9IHN0cmR1cChzdHIpOwo+Pj4gLSAgICAgICAgICAgICBpZiAoIXMpCj4+PiAtICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwo+Pj4gLQo+Pj4gLSAgICAgICAgICAgICBmb3Ig KDs7KSB7Cj4+PiAtICAgICAgICAgICAgICAgICAgICAgcCA9IHN0cmNocihzLCAnLCcpOwo+Pj4g LSAgICAgICAgICAgICAgICAgICAgIGlmIChwKQo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKnAgPSAnXDAnOwo+Pj4gLQo+Pj4gLSAgICAgICAgICAgICAgICAgICAgIGlmICghc3Ry Y21wKHMsICI/IikpIHsKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYo c3RkZXJyLCAiYXZhaWxhYmxlIHJlZ2lzdGVyczogIik7Cj4+PiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmb3IgKHIgPSBhcmNoX19zYW1wbGVfcmVnX21hc2tzKCk7IHItPm5hbWU7IHIr Kykgewo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoci0+bWFz ayAmIG1hc2spCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZnByaW50ZihzdGRlcnIsICIlcyAiLCByLT5uYW1lKTsKPj4+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwdXRjKCdc bicsIHN0ZGVycik7Cj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBqdXN0IHBy aW50aW5nIGF2YWlsYWJsZSByZWdzICovCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnb3RvIGVycm9yOwo+Pj4gLSAgICAgICAgICAgICAgICAgICAgIH0KPj4+IC0gICAgICAgICAg ICAgICAgICAgICBmb3IgKHIgPSBhcmNoX19zYW1wbGVfcmVnX21hc2tzKCk7IHItPm5hbWU7IHIr Kykgewo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChyLT5tYXNrICYgbWFz aykgJiYgIXN0cmNhc2VjbXAocywgci0+bmFtZSkpCj4+PiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4gLSAgICAgICAgICAgICAgICAgICAgIH0KPj4+IC0g ICAgICAgICAgICAgICAgICAgICBpZiAoIXIgfHwgIXItPm5hbWUpIHsKPj4+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpX193YXJuaW5nKCJVbmtub3duIHJlZ2lzdGVyIFwiJXNcIiwg Y2hlY2sgbWFuIHBhZ2Ugb3IgcnVuIFwicGVyZiByZWNvcmQgJXM/XCJcbiIsCj4+PiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLCBpbnRyID8gIi1JIiA6ICItLXVz ZXItcmVncz0iKTsKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7 Cj4+PiAtICAgICAgICAgICAgICAgICAgICAgfQo+Pj4gLQo+Pj4gLSAgICAgICAgICAgICAgICAg ICAgICptb2RlIHw9IHItPm1hc2s7Cj4+PiAtCj4+PiAtICAgICAgICAgICAgICAgICAgICAgaWYg KCFwKQo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+PiAtCj4+PiAt ICAgICAgICAgICAgICAgICAgICAgcyA9IHAgKyAxOwo+Pj4gKyAgICAgaWYgKCFzdHIpCj4+PiAr ICAgICAgICAgICAgIHJldHVybiAtMTsKPj4+ICsKPj4+ICsgICAgIG1hc2sgPSBpbnRyID8gYXJj aF9faW50cl9yZWdfbWFzaygpIDogYXJjaF9fdXNlcl9yZWdfbWFzaygpOwo+Pj4gKwo+Pj4gKyAg ICAgLyogYmVjYXVzZSBzdHIgaXMgcmVhZC1vbmx5ICovCj4+PiArICAgICBzID0gb3MgPSBzdHJk dXAoc3RyKTsKPj4+ICsgICAgIGlmICghcykKPj4+ICsgICAgICAgICAgICAgcmV0dXJuIC0xOwo+ Pj4gKwo+Pj4gKyAgICAgZm9yICg7Oykgewo+Pj4gKyAgICAgICAgICAgICB1aW50NjRfdCByZWdf bWFzazsKPj4+ICsKPj4+ICsgICAgICAgICAgICAgcCA9IHN0cmNocihzLCAnLCcpOwo+Pj4gKyAg ICAgICAgICAgICBpZiAocCkKPj4+ICsgICAgICAgICAgICAgICAgICAgICAqcCA9ICdcMCc7Cj4+ PiArCj4+PiArICAgICAgICAgICAgIGlmICghc3RyY21wKHMsICI/IikpIHsKPj4+ICsgICAgICAg ICAgICAgICAgICAgICBsaXN0X3BlcmZfcmVncyhzdGRlcnIsIG1hc2spOwo+Pj4gKyAgICAgICAg ICAgICAgICAgICAgIGdvdG8gZXJyb3I7Cj4+PiArICAgICAgICAgICAgIH0KPj4+ICsKPj4+ICsg ICAgICAgICAgICAgcmVnX21hc2sgPSBuYW1lX3RvX3BlcmZfcmVnX21hc2socywgbWFzayk7Cj4+ PiArICAgICAgICAgICAgIGlmIChyZWdfbWFzayA9PSAwKSB7Cj4+PiArICAgICAgICAgICAgICAg ICAgICAgdWlfX3dhcm5pbmcoIlVua25vd24gcmVnaXN0ZXIgXCIlc1wiLCBjaGVjayBtYW4gcGFn ZSBvciBydW4gXCJwZXJmIHJlY29yZCAlcz9cIlxuIiwKPj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHMsIGludHIgPyAiLUkiIDogIi0tdXNlci1yZWdzPSIpOwo+Pj4gKyAgICAgICAg ICAgICAgICAgICAgIGdvdG8gZXJyb3I7Cj4+PiAgICAgICAgICAgICAgIH0KPj4+ICsgICAgICAg ICAgICAgKm1vZGUgfD0gcmVnX21hc2s7Cj4+PiArCj4+PiArICAgICAgICAgICAgIGlmICghcCkK Pj4+ICsgICAgICAgICAgICAgICAgICAgICBicmVhazsKPj4+ICsKPj4+ICsgICAgICAgICAgICAg cyA9IHAgKyAxOwo+Pj4gICAgICAgfQo+Pj4gICAgICAgcmV0ID0gMDsKPj4+Cj4+PiBkaWZmIC0t Z2l0IGEvdG9vbHMvcGVyZi91dGlsL3BlcmZfcmVncy5jIGIvdG9vbHMvcGVyZi91dGlsL3BlcmZf cmVncy5jCj4+PiBpbmRleCBiNThkNTliODRmYjEuLmVjNjAyZGExYWViNiAxMDA2NDQKPj4+IC0t LSBhL3Rvb2xzL3BlcmYvdXRpbC9wZXJmX3JlZ3MuYwo+Pj4gKysrIGIvdG9vbHMvcGVyZi91dGls L3BlcmZfcmVncy5jCj4+PiBAQCAtMjIsMTUgKzIyLDYgQEAgdWludDY0X3QgX193ZWFrIGFyY2hf X3VzZXJfcmVnX21hc2sodm9pZCkKPj4+ICAgICAgIHJldHVybiAwOwo+Pj4gIH0KPj4+Cj4+PiAt c3RhdGljIGNvbnN0IHN0cnVjdCBzYW1wbGVfcmVnIHNhbXBsZV9yZWdfbWFza3NbXSA9IHsKPj4+ IC0gICAgIFNNUExfUkVHX0VORAo+Pj4gLX07Cj4+PiAtCj4+PiAtY29uc3Qgc3RydWN0IHNhbXBs ZV9yZWcgKiBfX3dlYWsgYXJjaF9fc2FtcGxlX3JlZ19tYXNrcyh2b2lkKQo+Pj4gLXsKPj4+IC0g ICAgIHJldHVybiBzYW1wbGVfcmVnX21hc2tzOwo+Pj4gLX0KPj4+IC0KPj4+ICBjb25zdCBjaGFy ICpwZXJmX3JlZ19uYW1lKGludCBpZCwgdWludDE2X3QgZV9tYWNoaW5lKQo+Pj4gIHsKPj4+ICAg ICAgIGNvbnN0IGNoYXIgKnJlZ19uYW1lID0gTlVMTDsKPj4+IGRpZmYgLS1naXQgYS90b29scy9w ZXJmL3V0aWwvcGVyZl9yZWdzLmggYi90b29scy9wZXJmL3V0aWwvcGVyZl9yZWdzLmgKPj4+IGlu ZGV4IDdiZmM2YTM0YzAyYi4uMmMyYThkZTY5MTJkIDEwMDY0NAo+Pj4gLS0tIGEvdG9vbHMvcGVy Zi91dGlsL3BlcmZfcmVncy5oCj4+PiArKysgYi90b29scy9wZXJmL3V0aWwvcGVyZl9yZWdzLmgK Pj4+IEBAIC03LDE3ICs3LDYgQEAKPj4+Cj4+PiAgc3RydWN0IHJlZ3NfZHVtcDsKPj4+Cj4+PiAt c3RydWN0IHNhbXBsZV9yZWcgewo+Pj4gLSAgICAgY29uc3QgY2hhciAqbmFtZTsKPj4+IC0gICAg IHVpbnQ2NF90IG1hc2s7Cj4+PiAtfTsKPj4+IC0KPj4+IC0jZGVmaW5lIFNNUExfUkVHX01BU0so YikgKDFVTEwgPDwgKGIpKQo+Pj4gLSNkZWZpbmUgU01QTF9SRUcobiwgYikgeyAubmFtZSA9ICNu LCAubWFzayA9IFNNUExfUkVHX01BU0soYikgfQo+Pj4gLSNkZWZpbmUgU01QTF9SRUcyX01BU0so YikgKDNVTEwgPDwgKGIpKQo+Pj4gLSNkZWZpbmUgU01QTF9SRUcyKG4sIGIpIHsgLm5hbWUgPSAj biwgLm1hc2sgPSBTTVBMX1JFRzJfTUFTSyhiKSB9Cj4+PiAtI2RlZmluZSBTTVBMX1JFR19FTkQg eyAubmFtZSA9IE5VTEwgfQo+Pj4gLQo+Pj4gIGVudW0gewo+Pj4gICAgICAgU0RUX0FSR19WQUxJ RCA9IDAsCj4+PiAgICAgICBTRFRfQVJHX1NLSVAsCj4+PiBAQCAtMjYsNyArMTUsNiBAQCBlbnVt IHsKPj4+ICBpbnQgYXJjaF9zZHRfYXJnX3BhcnNlX29wKGNoYXIgKm9sZF9vcCwgY2hhciAqKm5l d19vcCk7Cj4+PiAgdWludDY0X3QgYXJjaF9faW50cl9yZWdfbWFzayh2b2lkKTsKPj4+ICB1aW50 NjRfdCBhcmNoX191c2VyX3JlZ19tYXNrKHZvaWQpOwo+Pj4gLWNvbnN0IHN0cnVjdCBzYW1wbGVf cmVnICphcmNoX19zYW1wbGVfcmVnX21hc2tzKHZvaWQpOwo+Pj4KPj4+ICBjb25zdCBjaGFyICpw ZXJmX3JlZ19uYW1lKGludCBpZCwgdWludDE2X3QgZV9tYWNoaW5lKTsKPj4+ICBpbnQgcGVyZl9y ZWdfdmFsdWUodTY0ICp2YWxwLCBzdHJ1Y3QgcmVnc19kdW1wICpyZWdzLCBpbnQgaWQpOwoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcmlzY3Yg bWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=