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 CED58C4345F for ; Thu, 25 Apr 2024 18:56:18 +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:MIME-Version:Message-ID:Date:References :In-Reply-To:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=c3kB4WUXErZGe8vMARl5L01RO0NCV7CU8KCp6PNRDuQ=; b=OarHN5WWcM4ooY o2kQbrpX3M2P0EKNJJpfrpPBHo4a1V4Rkw21xBZYYRU7qmdEdlNfdaKHK4clodc38l+w8m0/3PBZJ KFyWreT8/i5ffXM+fQDejNIlf59DxJDgCnbU3/z43Lmy13/CUYVc+M3O1B1f7Z1y/6L7xuw8foSc/ 4Mf4MVk30LNJGw2jKW3zGnENWumBmp8ctyKK6JUeIthbWejnGz7QrTA8RWIBIioD2+loaJiY3vky0 mE0e2KUX2A4p5UwPorEcNEyEUkO2Vz9X2uVUVXXufvDUMvqkwngb/dDlGGIUlQoxkx7rLbVRcUYwU WoSxLDYs0RXcOsXgJgcA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s04GL-00000009oJJ-3BEF; Thu, 25 Apr 2024 18:56:05 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s04GJ-00000009oIA-1Z8a for linux-arm-kernel@lists.infradead.org; Thu, 25 Apr 2024 18:56:04 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 5CEA261EBD; Thu, 25 Apr 2024 18:56:01 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A4B7FC113CC; Thu, 25 Apr 2024 18:55:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1714071361; bh=gvIDnW7fKA4/z8SLEzwxKjbQ9fFnFV+k80e9QAEvWGA=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=Xe1J7qyi6penA0+QjEJfPnHXZtcAtYz5H/gGP9JX3jQzpnm9EeogB2YXxHB7ad6kv sGq0ya2XMskzTwrT4gF+wcKE8ZLHr42r2a71TfTKWXyT77rV2233mgMBT9Q3L0DL05 6CrKXi9k612/HZHQ2uksL2a+FrzzxYtW9W/Mkx8w+TmpIXwzgMOS/0SpgGnQeyjW+H i3bNTxjIFYrUYVvYyShDeRSw1PNqywS0u9TtXn6kLgUPBkETi9Ec8ZfDrr8G/GNWRh Vg6eSpBZNf+jYmxDXxSYDbDqwzXEY0YVspYYRMZcfJpwMN7YUiG8YmZu9LgafGws/o auDGF8endPQCA== From: Puranjay Mohan To: Andrii Nakryiko Cc: Catalin Marinas , Will Deacon , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Eduard Zingerman , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Zi Shen Lim , Xu Kuohai , Florent Revest , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org Subject: Re: [PATCH bpf-next v2 2/2] bpf, arm64: inline bpf_get_smp_processor_id() helper In-Reply-To: References: <20240424173550.16359-1-puranjay@kernel.org> <20240424173550.16359-3-puranjay@kernel.org> Date: Thu, 25 Apr 2024 18:55:56 +0000 Message-ID: MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240425_115603_640839_97C0DF0B X-CRM114-Status: GOOD ( 34.04 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org QW5kcmlpIE5ha3J5aWtvIDxhbmRyaWkubmFrcnlpa29AZ21haWwuY29tPiB3cml0ZXM6Cgo+IE9u IFRodSwgQXByIDI1LCAyMDI0IGF0IDM6MTTigK9BTSBQdXJhbmpheSBNb2hhbiA8cHVyYW5qYXlA a2VybmVsLm9yZz4gd3JvdGU6Cj4+Cj4+IEFuZHJpaSBOYWtyeWlrbyA8YW5kcmlpLm5ha3J5aWtv QGdtYWlsLmNvbT4gd3JpdGVzOgo+Pgo+PiA+IE9uIFdlZCwgQXByIDI0LCAyMDI0IGF0IDEwOjM2 4oCvQU0gUHVyYW5qYXkgTW9oYW4gPHB1cmFuamF5QGtlcm5lbC5vcmc+IHdyb3RlOgo+PiA+Pgo+ PiA+PiBBcyBBUk02NCBKSVQgbm93IGltcGxlbWVudHMgQlBGX01PVjY0X1BFUkNQVV9SRUcgaW5z dHJ1Y3Rpb24sIGlubGluZQo+PiA+PiBicGZfZ2V0X3NtcF9wcm9jZXNzb3JfaWQoKS4KPj4gPj4K Pj4gPj4gQVJNNjQgdXNlcyB0aGUgcGVyLWNwdSB2YXJpYWJsZSBjcHVfbnVtYmVyIHRvIHN0b3Jl IHRoZSBjcHUgaWQuCj4+ID4+Cj4+ID4+IEhlcmUgaXMgaG93IHRoZSBCUEYgYW5kIEFSTTY0IEpJ VGVkIGFzc2VtYmx5IGNoYW5nZXMgYWZ0ZXIgdGhpcyBjb21taXQ6Cj4+ID4+Cj4+ID4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlBGCj4+ID4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PT09PQo+PiA+PiAgICAgICAgICAgICAgIEJF Rk9SRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFGVEVSCj4+ID4+ICAg ICAgICAgICAgICAtLS0tLS0tLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt LS0tLS0tCj4+ID4+Cj4+ID4+IGludCBjcHUgPSBicGZfZ2V0X3NtcF9wcm9jZXNzb3JfaWQoKTsg ICAgICAgICAgIGludCBjcHUgPSBicGZfZ2V0X3NtcF9wcm9jZXNzb3JfaWQoKTsKPj4gPj4gKDg1 KSBjYWxsIGJwZl9nZXRfc21wX3Byb2Nlc3Nvcl9pZCMyMjkwMzIgICAgICAgKDE4KSByMCA9IDB4 ZmZmZjgwMDA4MjA3MjAwOAo+PiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoYmYpIHIwID0gcjAKPj4gPgo+PiA+IG5pdDogaG1tLCB5b3UgYXJlIHBy b2JhYmx5IHVzaW5nIGEgYml0IG91dGRhdGVkIGJwZnRvb2wsIGl0IHNob3VsZCBiZQo+PiA+IGVt aXR0ZWQgYXM6Cj4+ID4KPj4gPiAoYmYpIHIwID0gJih2b2lkIF9fcGVyY3B1ICopKHIwKQo+Pgo+ PiBZZXMsIEkgd2FzIHVzaW5nIHRoZSBicGZ0b29sIHNoaXBwZWQgd2l0aCB0aGUgZGlzdHJvLiBJ IHRyaWVkIGl0IGFnYWluCj4+IHdpdGggdGhlIGxhdGVzdCBicGZ0b29sIGFuZCBpdCBlbWl0dGVk IHRoaXMgYXMgZXhwZWN0ZWQuCj4KPiBDb29sLCB3b3VsZCBiZSBuaWNlIHRvIHVwZGF0ZSB0aGUg Y29tbWl0IG1lc3NhZ2Ugd2l0aCB0aGUgcmlnaHQgc3ludGF4Cj4gZm9yIG5leHQgcmV2aXNpb24s IHRoYW5rcyEKPgoKU3VyZSwgd2lsbCBkby4KCj4+Cj4+ID4KPj4gPj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDYxKSByMCA9ICoodTMyICopKHIwICsw KQo+PiA+Pgo+PiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSTTY0 IEpJVAo+PiA+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT09PT09PT09 PT0KPj4gPj4KPj4gPj4gICAgICAgICAgICAgICBCRUZPUkUgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBRlRFUgo+PiA+PiAgICAgICAgICAgICAgLS0tLS0tLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLQo+PiA+Pgo+PiA+PiBpbnQgY3B1 ID0gYnBmX2dldF9zbXBfcHJvY2Vzc29yX2lkKCk7ICAgICAgaW50IGNwdSA9IGJwZl9nZXRfc21w X3Byb2Nlc3Nvcl9pZCgpOwo+PiA+PiBtb3YgICAgIHgxMCwgIzB4ZmZmZmZmZmZmZmZmZjRkMCAg ICAgICAgICAgbW92ICAgICB4NywgIzB4ZmZmZjgwMDBmZmZmZmZmZgo+PiA+PiBtb3ZrICAgIHgx MCwgIzB4ODAyYiwgbHNsICMxNiAgICAgICAgICAgICAgbW92ayAgICB4NywgIzB4ODIwNywgbHNs ICMxNgo+PiA+PiBtb3ZrICAgIHgxMCwgIzB4ODAwMCwgbHNsICMzMiAgICAgICAgICAgICAgbW92 ayAgICB4NywgIzB4MjAwOAo+PiA+PiBibHIgICAgIHgxMCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbXJzICAgICB4MTAsIHRwaWRyX2VsMQo+PiA+PiBhZGQgICAgIHg3LCB4MCwgIzB4 MCAgICAgICAgICAgICAgICAgICAgICAgYWRkICAgICB4NywgeDcsIHgxMAo+PiA+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGRyICAgICB3NywgW3g3XQo+PiA+ Pgo+PiA+PiBQZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB1c2luZyBiZW5jaG1hcmtbMV0KPj4gPj4K Pj4gPj4gICAgICAgICAgICAgIEJFRk9SRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFGVEVSCj4+ID4+ICAgICAgICAgICAgIC0tLS0tLS0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC0tLS0tLS0KPj4gPj4KPj4gPj4gZ2xvYi1hcnItaW5jICAgOiAg IDIzLjgxNyDCsSAwLjAxOU0vcyAgICAgIGdsb2ItYXJyLWluYyAgIDogICAyNC42MzEgwrEgMC4w MjdNL3MKPj4gPj4gYXJyLWluYyAgICAgICAgOiAgIDIzLjI1MyDCsSAwLjAxOU0vcyAgICAgIGFy ci1pbmMgICAgICAgIDogICAyMy43NDIgwrEgMC4wMjNNL3MKPj4gPj4gaGFzaC1pbmMgICAgICAg OiAgIDEyLjI1OCDCsSAwLjAxME0vcyAgICAgIGhhc2gtaW5jICAgICAgIDogICAxMi42MjUgwrEg MC4wMDRNL3MKPj4gPj4KPj4gPj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmFrcnlpa28vbGlu dXgvY29tbWl0LzhkZWM5MDA5NzVlZgo+PiA+Pgo+PiA+PiBTaWduZWQtb2ZmLWJ5OiBQdXJhbmph eSBNb2hhbiA8cHVyYW5qYXlAa2VybmVsLm9yZz4KPj4gPj4gLS0tCj4+ID4+ICBrZXJuZWwvYnBm L3ZlcmlmaWVyLmMgfCAxMSArKysrKysrKysrLQo+PiA+PiAgMSBmaWxlIGNoYW5nZWQsIDEwIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPj4gPj4KPj4gPgo+PiA+IEJlc2lkZXMgdGhlIG5p dHMsIGxndG0uCj4+ID4KPj4gPiBBY2tlZC1ieTogQW5kcmlpIE5ha3J5aWtvIDxhbmRyaWlAa2Vy bmVsLm9yZz4KPj4gPgo+PiA+PiBkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIv a2VybmVsL2JwZi92ZXJpZmllci5jCj4+ID4+IGluZGV4IDk3MTVjODhjYzAyNS4uMzM3M2JlMjYx ODg5IDEwMDY0NAo+PiA+PiAtLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKPj4gPj4gKysrIGIv a2VybmVsL2JwZi92ZXJpZmllci5jCj4+ID4+IEBAIC0yMDIwNSw3ICsyMDIwNSw3IEBAIHN0YXRp YyBpbnQgZG9fbWlzY19maXh1cHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudikKPj4gPj4g ICAgICAgICAgICAgICAgICAgICAgICAgZ290byBuZXh0X2luc247Cj4+ID4+ICAgICAgICAgICAg ICAgICB9Cj4+ID4+Cj4+ID4+IC0jaWZkZWYgQ09ORklHX1g4Nl82NAo+PiA+PiArI2lmIGRlZmlu ZWQoQ09ORklHX1g4Nl82NCkgfHwgZGVmaW5lZChDT05GSUdfQVJNNjQpCj4+ID4KPj4gPiBJIHRo aW5rIHlvdSBjYW4gZHJvcCB0aGlzLCB3ZSBhcmUgcHJvdGVjdGVkIGJ5Cj4+ID4gYnBmX2ppdF9z dXBwb3J0c19wZXJjcHVfaW5zbigpIGNoZWNrIGFuZCBuZXdseSBhZGRlZCBpbm5lciAjaWYvI2Vs aWYKPj4gPiBjaGVja3M/Cj4+Cj4+IElmIEkgcmVtb3ZlIHRoaXMgYW5kIGxhdGVyIGFkZCBzdXBw b3J0IG9mIHBlcmNwdV9pbnNuIG9uIFJJU0NWIHdpdGhvdXQKPj4gaW5saW5pbmcgYnBmX2dldF9z bXBfcHJvY2Vzc29yX2lkKCkgdGhlbiBpdCB3aWxsIGNhdXNlIHByb2JsZW1zIGhlcmUKPj4gcmln aHQ/IGJlY2F1c2UgdGhlbiB0aGUgbGFzdCA1LTYgbGluZXMgaW5zaWRlIHRoaXMgaWYoKXt9IHdp bGwgYmUKPj4gZXhlY3V0ZWQgZm9yIFJJU0NWLgo+Cj4gSnVzdCBhZGQKPgo+ICNlbHNlCj4gcmV0 dXJuIC1FRkFVTFQ7CgpJIGRvbid0IHRoaW5rIHdlIGNhbiByZXR1cm4uCgo+ICNlbmRpZgo+Cj4g Pwo+Cj4gSSdtIHRyeWluZyB0byBhdm9pZCB0aGlzIGR1cGxpY2F0aW9uIG9mIHRoZSBkZWZpbmVk KENPTkZJR194eHgpIGNoZWNrcwo+IGZvciBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcy4KCkRvZXMg dGhlIGZvbGxvd2luZyBsb29rIGNvcnJlY3Q/CgpJIHdpbGwgZG8gaXQgbGlrZSB0aGlzOgoKICAg ICAgICAgICAgICAgIC8qIEltcGxlbWVudCBicGZfZ2V0X3NtcF9wcm9jZXNzb3JfaWQoKSBpbmxp bmUuICovCiAgICAgICAgICAgICAgICBpZiAoaW5zbi0+aW1tID09IEJQRl9GVU5DX2dldF9zbXBf cHJvY2Vzc29yX2lkICYmCiAgICAgICAgICAgICAgICAgICAgcHJvZy0+aml0X3JlcXVlc3RlZCAm JiBicGZfaml0X3N1cHBvcnRzX3BlcmNwdV9pbnNuKCkpIHsKICAgICAgICAgICAgICAgICAgICAg ICAgLyogQlBGX0ZVTkNfZ2V0X3NtcF9wcm9jZXNzb3JfaWQgaW5saW5pbmcgaXMgYW4KICAgICAg ICAgICAgICAgICAgICAgICAgICogb3B0aW1pemF0aW9uLCBzbyBpZiBwY3B1X2hvdC5jcHVfbnVt YmVyIGlzIGV2ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICogY2hhbmdlZCBpbiBzb21lIGlu Y29tcGF0aWJsZSBhbmQgaGFyZCB0byBzdXBwb3J0CiAgICAgICAgICAgICAgICAgICAgICAgICAq IHdheSwgaXQncyBmaW5lIHRvIGJhY2sgb3V0IHRoaXMgaW5saW5pbmcgbG9naWMKICAgICAgICAg ICAgICAgICAgICAgICAgICovCiNpZiBkZWZpbmVkKENPTkZJR19YODZfNjQpCiAgICAgICAgICAg ICAgICAgICAgICAgIGluc25fYnVmWzBdID0gQlBGX01PVjMyX0lNTShCUEZfUkVHXzAsICh1MzIp KHVuc2lnbmVkIGxvbmcpJnBjcHVfaG90LmNwdV9udW1iZXIpOwogICAgICAgICAgICAgICAgICAg ICAgICBpbnNuX2J1ZlsxXSA9IEJQRl9NT1Y2NF9QRVJDUFVfUkVHKEJQRl9SRUdfMCwgQlBGX1JF R18wKTsKICAgICAgICAgICAgICAgICAgICAgICAgaW5zbl9idWZbMl0gPSBCUEZfTERYX01FTShC UEZfVywgQlBGX1JFR18wLCBCUEZfUkVHXzAsIDApOwogICAgICAgICAgICAgICAgICAgICAgICBj bnQgPSAzOwojZWxpZiBkZWZpbmVkKENPTkZJR19BUk02NCkKICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGJwZl9pbnNuIGNwdV9udW1iZXJfYWRkclsyXSA9IHsgQlBGX0xEX0lNTTY0KEJQ Rl9SRUdfMCwgKHU2NCkmY3B1X251bWJlcikgfTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlu c25fYnVmWzBdID0gY3B1X251bWJlcl9hZGRyWzBdOwogICAgICAgICAgICAgICAgICAgICAgICBp bnNuX2J1ZlsxXSA9IGNwdV9udW1iZXJfYWRkclsxXTsKICAgICAgICAgICAgICAgICAgICAgICAg aW5zbl9idWZbMl0gPSBCUEZfTU9WNjRfUEVSQ1BVX1JFRyhCUEZfUkVHXzAsIEJQRl9SRUdfMCk7 CiAgICAgICAgICAgICAgICAgICAgICAgIGluc25fYnVmWzNdID0gQlBGX0xEWF9NRU0oQlBGX1cs IEJQRl9SRUdfMCwgQlBGX1JFR18wLCAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgY250ID0g NDsKI2Vsc2UKICAgICAgICAgICAgICAgICAgICAgICAgZ290byBuZXh0X2luc247CiNlbmRpZgog ICAgICAgICAgICAgICAgICAgICAgICBuZXdfcHJvZyA9IGJwZl9wYXRjaF9pbnNuX2RhdGEoZW52 LCBpICsgZGVsdGEsIGluc25fYnVmLCBjbnQpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAo IW5ld19wcm9nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVN OwoKICAgICAgICAgICAgICAgICAgICAgICAgZGVsdGEgICAgKz0gY250IC0gMTsKICAgICAgICAg ICAgICAgICAgICAgICAgZW52LT5wcm9nID0gcHJvZyA9IG5ld19wcm9nOwogICAgICAgICAgICAg ICAgICAgICAgICBpbnNuICAgICAgPSBuZXdfcHJvZy0+aW5zbnNpICsgaSArIGRlbHRhOwogICAg ICAgICAgICAgICAgICAgICAgICBnb3RvIG5leHRfaW5zbjsKICAgICAgICAgICAgICAgIH0KCgo+ Pgo+PiA+Cj4+ID4+ICAgICAgICAgICAgICAgICAvKiBJbXBsZW1lbnQgYnBmX2dldF9zbXBfcHJv Y2Vzc29yX2lkKCkgaW5saW5lLiAqLwo+PiA+PiAgICAgICAgICAgICAgICAgaWYgKGluc24tPmlt bSA9PSBCUEZfRlVOQ19nZXRfc21wX3Byb2Nlc3Nvcl9pZCAmJgo+PiA+PiAgICAgICAgICAgICAg ICAgICAgIHByb2ctPmppdF9yZXF1ZXN0ZWQgJiYgYnBmX2ppdF9zdXBwb3J0c19wZXJjcHVfaW5z bigpKSB7Cj4+ID4+IEBAIC0yMDIxNCwxMSArMjAyMTQsMjAgQEAgc3RhdGljIGludCBkb19taXNj X2ZpeHVwcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KQo+PiA+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgKiBjaGFuZ2VkIGluIHNvbWUgaW5jb21wYXRpYmxlIGFuZCBoYXJkIHRvIHN1 cHBvcnQKPj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICogd2F5LCBpdCdzIGZpbmUgdG8g YmFjayBvdXQgdGhpcyBpbmxpbmluZyBsb2dpYwo+PiA+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgKi8KPj4gPj4gKyNpZiBkZWZpbmVkKENPTkZJR19YODZfNjQpCj4+ID4+ICAgICAgICAgICAg ICAgICAgICAgICAgIGluc25fYnVmWzBdID0gQlBGX01PVjMyX0lNTShCUEZfUkVHXzAsICh1MzIp KHVuc2lnbmVkIGxvbmcpJnBjcHVfaG90LmNwdV9udW1iZXIpOwo+PiA+PiAgICAgICAgICAgICAg ICAgICAgICAgICBpbnNuX2J1ZlsxXSA9IEJQRl9NT1Y2NF9QRVJDUFVfUkVHKEJQRl9SRUdfMCwg QlBGX1JFR18wKTsKPj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgaW5zbl9idWZbMl0gPSBC UEZfTERYX01FTShCUEZfVywgQlBGX1JFR18wLCBCUEZfUkVHXzAsIDApOwo+PiA+PiAgICAgICAg ICAgICAgICAgICAgICAgICBjbnQgPSAzOwo+PiA+PiArI2VsaWYgZGVmaW5lZChDT05GSUdfQVJN NjQpCj4+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBicGZfaW5zbiBjcHVfbnVt YmVyX2FkZHJbMl0gPSB7IEJQRl9MRF9JTU02NChCUEZfUkVHXzAsICh1NjQpJmNwdV9udW1iZXIp IH07Cj4+ID4+Cj4+ID4KPj4gPiB0aGlzICZjcHVfbnVtYmVyIG9mZnNldCBpcyBub3QgZ3VhcmFu dGVlZCB0byBiZSB3aXRoaW4gNEdCIG9uIGFybTY0Pwo+Pgo+PiBVbmZvcnR1bmF0ZWx5LCB0aGUg cGVyLWNwdSBzZWN0aW9uIGlzIG5vdCBwbGFjZWQgaW4gdGhlIGZpcnN0IDRHQiBhbmQKPj4gdGhl cmVmb3JlIHRoZSBwZXItY3B1IHBvaW50ZXJzIGFyZSBub3QgMzItYml0IG9uIEFSTTY0Lgo+Cj4g SSBzZWUuIEl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gdHVybiB4ODYtNjQgY29kZSBpbnRvIHVzaW5n IE1PVjY0X0lNTSBhcwo+IHdlbGwgdG8ga2VlcCBtb3JlIG9mIHRoZSBsb2dpYyBjb21tb24uIFRo ZW4gaXQgd2lsbCBiZSBqdXN0IHRoZQo+IGRpZmZlcmVuY2Ugb2YgYW4gb2Zmc2V0IHRoYXQncyBs b2FkZWQuIEdpdmUgaXQgYSB0cnk/CgpJIHRoaW5rIE1PVjY0X0lNTSB3b3VsZCBoYXZlIG1vcmUg b3ZlcmhlYWQgdGhhbiBNT1YzMl9JTU0gYW5kIGlmIHdlIGNhbgp1c2UgaXQgaW4geDg2LTY0IHdl IHNob3VsZCBrZWVwIGRvaW5nIGl0IHRoYXQgd2F5LiBXZHl0PyAKCj4+Cj4+ID4KPj4gPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgaW5zbl9idWZbMF0gPSBjcHVfbnVtYmVyX2FkZHJbMF07Cj4+ ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIGluc25fYnVmWzFdID0gY3B1X251bWJlcl9hZGRy WzFdOwo+PiA+PiArICAgICAgICAgICAgICAgICAgICAgICBpbnNuX2J1ZlsyXSA9IEJQRl9NT1Y2 NF9QRVJDUFVfUkVHKEJQRl9SRUdfMCwgQlBGX1JFR18wKTsKPj4gPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgaW5zbl9idWZbM10gPSBCUEZfTERYX01FTShCUEZfVywgQlBGX1JFR18wLCBCUEZf UkVHXzAsIDApOwo+PiA+PiArICAgICAgICAgICAgICAgICAgICAgICBjbnQgPSA0Owo+PiA+PiAr I2VuZGlmCj4+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19wcm9nID0gYnBmX3BhdGNo X2luc25fZGF0YShlbnYsIGkgKyBkZWx0YSwgaW5zbl9idWYsIGNudCk7Cj4+ID4+ICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICghbmV3X3Byb2cpCj4+ID4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4+ID4+IC0tCj4+ID4+IDIuNDAuMQo+PiA+PgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=