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 2AA40C0219D for ; Tue, 11 Feb 2025 10:16:57 +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=E1Erw4Ydh5y4DJvkmDdho+NQLlaOL/OBU2iXLQJf+iw=; b=IJyJ43QtQdX5On 4HsiuUSYJQ1PtADQyL9uaxy+dlvHl4xxwpRdDzk4+TkzxzQzg4GkLtVy9pqKmWAnB5Y8GNfTymnje Q2H619Hg6h3JWjQH7yZVqgeAV5YgfdnUg8Sqg3tOVOM89QM0WxwGcTR5j+oYYmSzgsihBWPDY33P/ aPyBgRPy/b8EQxR/bVzd2+u9Hr8WRkHReUMK4R0rFNysuiST7Yx9xNgGGxvzD2d+Iuep3vP2h3q5e pQ5wMMFEkxh0TPpqEFN9xe25K/5bkwZz16HOesMqD2T1bpWQSIeQSS3ZJFtjvu6gwP5ON48xygoDI EQ7QgLSS7iv4naBNlxjQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1thnJy-00000003Juh-2rAQ; Tue, 11 Feb 2025 10:16:50 +0000 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1thnJw-00000003JtK-032c for linux-riscv@lists.infradead.org; Tue, 11 Feb 2025 10:16:49 +0000 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-4395561ab71so2833245e9.2 for ; Tue, 11 Feb 2025 02:16:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1739269006; x=1739873806; darn=lists.infradead.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=hr+txc8S3MhukU4OHB0qTW/XNv1EfGTILRmXGQLaiSY=; b=C0xSIhvKtVNUP465/vM/Q1KKZJHNV5x9aFKLF7oG23cDzWnwDIz1KlQRqJqi1101sM XGL/9+h4li2bPWj6dng6lVFU89iOtIMBy4twS5xBX3a4Rm7onE+PqIeAfbsW46U4uMmP 2zVQKJC+5+wlgGmNHbB1BAVq32wokHsJcSBJWPbCLALkVIce8noBhOCuWwzmmkwzQpE/ xwoBJ8QhBxS2QLq4d+oOc2rOdl8s7UmBExWm/rNYNeHZjpcuUkuX+Fw+LIwOtCmnNbwE 6+NAzu6cLsUOGjy3oDq+LSlziL8yPsWcpN2Acd20kyj7xFT5S+BLVR1viNfTU0Of/GZl sX0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739269006; x=1739873806; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=hr+txc8S3MhukU4OHB0qTW/XNv1EfGTILRmXGQLaiSY=; b=rUPPssEPUC9B8djuPD3XoJ2NF+BVQ0klLM1jooqE6AVzwo/XtIF32ONBNy9iG0UtFM w65BNiw5hzLjmDZMiMFiGxNYKV4cAt6frdM0AxAZPKZWJWFFiPk4nAPuHawEF51X+bBD Laxqvt4dPiK1HBzpuT/pJUo4iRMRwegBvv/MfC/lO9dgz/udAxO73NPFgSxjcEhjE9p/ dHXge83y4vws/HpL/1iCimJb/bc0go6RIXSRcs1oBGnbrVL3MozY2iAIPlQJKQDJFyKq TNk0161uHNPeaB9U6ZSfs8r9TLpl+Ll8epFw0UbYlk10CReYn+hoy1Ycik6oCnyeUGQo wG2w== X-Forwarded-Encrypted: i=1; AJvYcCUmKWLCeGH/W/g1RY70k+3ch6i8JOS6MKVN6ZHOrs3YhN64ngfQavCMfhRqRHpaYsq6SYBP8ulENrsiNw==@lists.infradead.org X-Gm-Message-State: AOJu0YyY2C/IE5WVSBCTJXnAVB/Eid+oq3vPZryMsxm6ejMbUujKSqil Yxf63vixI7WycJ9PY/24Ct/hU9Coy3VGTSq4XbpXF/MgCUjJpNLfUnb41mNEM9M= X-Gm-Gg: ASbGncvreJPSNBcRRYadwyv+LxNZy3LWvfGbKPFVJx3/NZX3bI4nUHDByJ2uhtsulPR R2gI+mGOMdyCvMPmPWjYnzWr7Ql2f6LSBM3GI/ZmVfOSTD0V8unl//EKvkoa+d33QV74xAN09rO O5m1U9u5FgYw2dcnOgGyNAlwytaeoC3NwO5R/YouhynVWff1fBsqkC2qDgI6957Aq8DNu1toyu/ 8nGUIQXhrL95T/ZPdEu5/ACJ7HZHxUiXXvKyKFutJKs8ZwXI/V08T+VQXBKlIicm3ERmoDpu3us pdoRsnVttRyE0Wp8Qe5Xg1T4ijGcQwHn6VDjC4xOEBZXq+EJnGycn9EU/TIs X-Google-Smtp-Source: AGHT+IGe51XhBA8uvfOTpS5Ph4IB3kPeaqWEJ9W+ri8AzVo+M6m3GEUiQubnnboCCLNrcCU4WSijCg== X-Received: by 2002:a05:600c:4588:b0:439:55fc:81ad with SMTP id 5b1f17b1804b1-43955fc8df7mr5867695e9.7.1739269006486; Tue, 11 Feb 2025 02:16:46 -0800 (PST) Received: from ?IPV6:2a01:e0a:e17:9700:16d2:7456:6634:9626? ([2a01:e0a:e17:9700:16d2:7456:6634:9626]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4391dca0179sm170069325e9.11.2025.02.11.02.16.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 11 Feb 2025 02:16:45 -0800 (PST) Message-ID: <579dbdce-e61e-48ed-8685-a2cda9d753c3@rivosinc.com> Date: Tue, 11 Feb 2025 11:16:45 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 1/6] RISC-V: add vector extension validation checks To: Conor Dooley , linux-riscv@lists.infradead.org Cc: Conor Dooley , Eric Biggers , Rob Herring , Krzysztof Kozlowski , Paul Walmsley , Palmer Dabbelt , Andy Chiu , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org References: <20250205-cobbler-unpadded-5580c1f5d946@spud> <20250205-defensive-lent-04936dac6bdd@spud> Content-Language: en-US From: =?UTF-8?B?Q2zDqW1lbnQgTMOpZ2Vy?= In-Reply-To: <20250205-defensive-lent-04936dac6bdd@spud> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250211_021648_312529_C29E69F0 X-CRM114-Status: GOOD ( 29.51 ) 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 CgpPbiAwNS8wMi8yMDI1IDE3OjA1LCBDb25vciBEb29sZXkgd3JvdGU6Cj4gRnJvbTogQ29ub3Ig RG9vbGV5IDxjb25vci5kb29sZXlAbWljcm9jaGlwLmNvbT4KPiAKPiBVc2luZyBDbGVtZW50J3Mg bmV3IHZhbGlkYXRpb24gY2FsbGJhY2tzLCBzdXBwb3J0IGNoZWNraW5nIHRoYXQKPiBkZXBlbmRl bmNpZXMgaGF2ZSBiZWVuIHNhdGlzZmllZCBmb3IgdGhlIHZlY3RvciBleHRlbnNpb25zLiBGcm9t IHRoZQo+IGtlcm5lbCdzIHBlcmZlY3RpdmUsIGl0J3Mgbm90IHJlcXVpcmVkIHRvIGRpZmZlcmVu dGlhdGUgYmV0d2VlbiB0aGUKPiBjb25kaXRpb25zIGZvciBhbGwgdGhlIHZhcmlvdXMgdmVjdG9y IHN1YnNldHMgLSBpdCdzIHRoZSBmaXJtd2FyZSdzIGpvYgo+IHRvIG5vdCByZXBvcnQgaW1wb3Nz aWJsZSBjb21iaW5hdGlvbnMuIEluc3RlYWQsIHRoZSBrZXJuZWwgb25seSBoYXMgdG8KPiBjaGVj ayB0aGF0IHRoZSBjb3JyZWN0IGNvbmZpZyBvcHRpb25zIGFyZSBlbmFibGVkIGFuZCB0byBlbmZv cmNlIGl0cwo+IHJlcXVpcmVtZW50IG9mIHRoZSBkIGV4dGVuc2lvbiBiZWluZyBwcmVzZW50IGZv ciBGUFUgc3VwcG9ydC4KPiAKPiBTaW5jZSB2ZWN0b3Igd2lsbCBub3cgYmUgZGlzYWJsZWQgcHJv YWN0aXZlbHksIHRoZXJlJ3Mgbm8gbmVlZCB0byBjbGVhcgo+IHRoZSBiaXQgaW4gZWxmX2h3Y2Fw IGluIHJpc2N2X2ZpbGxfaHdjYXAoKSBhbnkgbG9uZ2VyLgo+IAo+IFNpZ25lZC1vZmYtYnk6IENv bm9yIERvb2xleSA8Y29ub3IuZG9vbGV5QG1pY3JvY2hpcC5jb20+Cj4gLS0tCj4gIGFyY2gvcmlz Y3YvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oIHwgIDMgKysKPiAgYXJjaC9yaXNjdi9rZXJuZWwv Y3B1ZmVhdHVyZS5jICAgICAgfCA1NyArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQo+ICAy IGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQo+IAo+IGRp ZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaCBiL2FyY2gvcmlz Y3YvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oCj4gaW5kZXggNTY5MTQwZDZlNjM5Li41ZDk0Mjdj Y2JjN2EgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmgK PiArKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaAo+IEBAIC01Niw2ICs1 Niw5IEBAIHZvaWQgX19pbml0IHJpc2N2X3VzZXJfaXNhX2VuYWJsZSh2b2lkKTsKPiAgI2RlZmlu ZSBfX1JJU0NWX0lTQV9FWFRfQlVORExFKF9uYW1lLCBfYnVuZGxlZF9leHRzKSBcCj4gIAlfUklT Q1ZfSVNBX0VYVF9EQVRBKF9uYW1lLCBSSVNDVl9JU0FfRVhUX0lOVkFMSUQsIF9idW5kbGVkX2V4 dHMsIFwKPiAgCQkJICAgIEFSUkFZX1NJWkUoX2J1bmRsZWRfZXh0cyksIE5VTEwpCj4gKyNkZWZp bmUgX19SSVNDVl9JU0FfRVhUX0JVTkRMRV9WQUxJREFURShfbmFtZSwgX2J1bmRsZWRfZXh0cywg X3ZhbGlkYXRlKSBcCj4gKwlfUklTQ1ZfSVNBX0VYVF9EQVRBKF9uYW1lLCBSSVNDVl9JU0FfRVhU X0lOVkFMSUQsIF9idW5kbGVkX2V4dHMsIFwKPiArCQkJICAgIEFSUkFZX1NJWkUoX2J1bmRsZWRf ZXh0cyksIF92YWxpZGF0ZSkKPiAgCj4gIC8qIFVzZWQgdG8gZGVjbGFyZSBleHRlbnNpb25zIHRo YXQgYXJlIGEgc3VwZXJzZXQgb2Ygb3RoZXIgZXh0ZW5zaW9ucyAoWnZiYiBmb3IgaW5zdGFuY2Up ICovCj4gICNkZWZpbmUgX19SSVNDVl9JU0FfRVhUX1NVUEVSU0VUKF9uYW1lLCBfaWQsIF9zdWJf ZXh0cykgXAo+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC9jcHVmZWF0dXJlLmMgYi9h cmNoL3Jpc2N2L2tlcm5lbC9jcHVmZWF0dXJlLmMKPiBpbmRleCBjNmJhNzUwNTM2YzMuLjQwYTI0 YjA4ZDkwNSAxMDA2NDQKPiAtLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9jcHVmZWF0dXJlLmMKPiAr KysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9jcHVmZWF0dXJlLmMKPiBAQCAtMTA5LDYgKzEwOSwzNSBA QCBzdGF0aWMgaW50IHJpc2N2X2V4dF96aWNib3pfdmFsaWRhdGUoY29uc3Qgc3RydWN0IHJpc2N2 X2lzYV9leHRfZGF0YSAqZGF0YSwKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaW50 IHJpc2N2X2V4dF92ZWN0b3JfeF92YWxpZGF0ZShjb25zdCBzdHJ1Y3QgcmlzY3ZfaXNhX2V4dF9k YXRhICpkYXRhLAo+ICsJCQkJICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmlzYV9iaXRtYXAp Cj4gK3sKPiArCWlmICghSVNfRU5BQkxFRChDT05GSUdfUklTQ1ZfSVNBX1YpKQo+ICsJCXJldHVy biAtRUlOVkFMOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHJpc2N2 X2V4dF92ZWN0b3JfZmxvYXRfdmFsaWRhdGUoY29uc3Qgc3RydWN0IHJpc2N2X2lzYV9leHRfZGF0 YSAqZGF0YSwKPiArCQkJCQkgICBjb25zdCB1bnNpZ25lZCBsb25nICppc2FfYml0bWFwKQo+ICt7 Cj4gKwlpZiAoIUlTX0VOQUJMRUQoQ09ORklHX1JJU0NWX0lTQV9WKSkKPiArCQlyZXR1cm4gLUVJ TlZBTDsKPiArCj4gKwlpZiAoIUlTX0VOQUJMRUQoQ09ORklHX0ZQVSkpCj4gKwkJcmV0dXJuIC1F SU5WQUw7Cj4gKwo+ICsJLyoKPiArCSAqIFRoZSBrZXJuZWwgZG9lc24ndCBzdXBwb3J0IHN5c3Rl bXMgdGhhdCBkb24ndCBpbXBsZW1lbnQgYm90aCBvZgo+ICsJICogRiBhbmQgRCwgc28gaWYgYW55 IG9mIHRoZSB2ZWN0b3IgZXh0ZW5zaW9ucyB0aGF0IGRvIGZsb2F0aW5nIHBvaW50Cj4gKwkgKiBh cmUgdG8gYmUgdXNhYmxlLCBib3RoIGZsb2F0aW5nIHBvaW50IGV4dGVuc2lvbnMgbmVlZCB0byBi ZSB1c2FibGUuCj4gKwkgKi8KPiArCWlmICghX19yaXNjdl9pc2FfZXh0ZW5zaW9uX2F2YWlsYWJs ZShpc2FfYml0bWFwLCBSSVNDVl9JU0FfRVhUX2QpKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsK PiArCXJldHVybiAwOwo+ICt9CgpJIHRoaW5rIHRoaXMgc2hvdWxkIGFsc28gYmUgbW9kaWZpZWQg dG8gYmUgbGlrZSB0aGlzOgoKICBpZiAoX19yaXNjdl9pc2FfZXh0ZW5zaW9uX2F2YWlsYWJsZShp c2FfYml0bWFwLCBSSVNDVl9JU0FfRVhUX2QpKQoJICByZXR1cm4gMDsKCiAgcmV0dXJuIC1FUFJP QkVERUZFUjsKClRoYXQgd29uJ3QgYWN0dWFsbHkgY2hhbmdlIHRoZSB3YXkgaXQgd29ya3Mgc2lu Y2UgUklTQ1ZfSVNBX0VYVF9kIChhbmQKYWxsIHNpbmdsZSBsZXR0ZXIgZXh0ZW5zaW9ucykgaXMg YWx3YXlzIHByb2JlZCBiZWZvcmUgdGhlIG90aGVycyB0aG91Z2guCgpDbMOpbWVudAoKPiArCj4g IHN0YXRpYyBpbnQgcmlzY3ZfZXh0X3pjYV9kZXBlbmRzKGNvbnN0IHN0cnVjdCByaXNjdl9pc2Ff ZXh0X2RhdGEgKmRhdGEsCj4gIAkJCQkgY29uc3QgdW5zaWduZWQgbG9uZyAqaXNhX2JpdG1hcCkK PiAgewo+IEBAIC0zMjYsMTIgKzM1NSwxMCBAQCBjb25zdCBzdHJ1Y3QgcmlzY3ZfaXNhX2V4dF9k YXRhIHJpc2N2X2lzYV9leHRbXSA9IHsKPiAgCV9fUklTQ1ZfSVNBX0VYVF9EQVRBKGQsIFJJU0NW X0lTQV9FWFRfZCksCj4gIAlfX1JJU0NWX0lTQV9FWFRfREFUQShxLCBSSVNDVl9JU0FfRVhUX3Ep LAo+ICAJX19SSVNDVl9JU0FfRVhUX1NVUEVSU0VUKGMsIFJJU0NWX0lTQV9FWFRfYywgcmlzY3Zf Y19leHRzKSwKPiAtCV9fUklTQ1ZfSVNBX0VYVF9TVVBFUlNFVCh2LCBSSVNDVl9JU0FfRVhUX3Ys IHJpc2N2X3ZfZXh0cyksCj4gKwlfX1JJU0NWX0lTQV9FWFRfU1VQRVJTRVRfVkFMSURBVEUodiwg UklTQ1ZfSVNBX0VYVF92LCByaXNjdl92X2V4dHMsIHJpc2N2X2V4dF92ZWN0b3JfZmxvYXRfdmFs aWRhdGUpLAo+ICAJX19SSVNDVl9JU0FfRVhUX0RBVEEoaCwgUklTQ1ZfSVNBX0VYVF9oKSwKPiAt CV9fUklTQ1ZfSVNBX0VYVF9TVVBFUlNFVF9WQUxJREFURSh6aWNib20sIFJJU0NWX0lTQV9FWFRf WklDQk9NLCByaXNjdl94bGludXhlbnZjZmdfZXh0cywKPiAtCQkJCQkgIHJpc2N2X2V4dF96aWNi b21fdmFsaWRhdGUpLAo+IC0JX19SSVNDVl9JU0FfRVhUX1NVUEVSU0VUX1ZBTElEQVRFKHppY2Jv eiwgUklTQ1ZfSVNBX0VYVF9aSUNCT1osIHJpc2N2X3hsaW51eGVudmNmZ19leHRzLAo+IC0JCQkJ CSAgcmlzY3ZfZXh0X3ppY2Jvel92YWxpZGF0ZSksCj4gKwlfX1JJU0NWX0lTQV9FWFRfU1VQRVJT RVRfVkFMSURBVEUoemljYm9tLCBSSVNDVl9JU0FfRVhUX1pJQ0JPTSwgcmlzY3ZfeGxpbnV4ZW52 Y2ZnX2V4dHMsIHJpc2N2X2V4dF96aWNib21fdmFsaWRhdGUpLAo+ICsJX19SSVNDVl9JU0FfRVhU X1NVUEVSU0VUX1ZBTElEQVRFKHppY2JveiwgUklTQ1ZfSVNBX0VYVF9aSUNCT1osIHJpc2N2X3hs aW51eGVudmNmZ19leHRzLCByaXNjdl9leHRfemljYm96X3ZhbGlkYXRlKSwKPiAgCV9fUklTQ1Zf SVNBX0VYVF9EQVRBKHppY2Nyc2UsIFJJU0NWX0lTQV9FWFRfWklDQ1JTRSksCj4gIAlfX1JJU0NW X0lTQV9FWFRfREFUQSh6aWNudHIsIFJJU0NWX0lTQV9FWFRfWklDTlRSKSwKPiAgCV9fUklTQ1Zf SVNBX0VYVF9EQVRBKHppY29uZCwgUklTQ1ZfSVNBX0VYVF9aSUNPTkQpLAo+IEBAIC0zNzIsMTEg KzM5OSwxMSBAQCBjb25zdCBzdHJ1Y3QgcmlzY3ZfaXNhX2V4dF9kYXRhIHJpc2N2X2lzYV9leHRb XSA9IHsKPiAgCV9fUklTQ1ZfSVNBX0VYVF9EQVRBKHp0c28sIFJJU0NWX0lTQV9FWFRfWlRTTyks Cj4gIAlfX1JJU0NWX0lTQV9FWFRfU1VQRVJTRVQoenZiYiwgUklTQ1ZfSVNBX0VYVF9aVkJCLCBy aXNjdl96dmJiX2V4dHMpLAo+ICAJX19SSVNDVl9JU0FfRVhUX0RBVEEoenZiYywgUklTQ1ZfSVNB X0VYVF9aVkJDKSwKPiAtCV9fUklTQ1ZfSVNBX0VYVF9TVVBFUlNFVCh6dmUzMmYsIFJJU0NWX0lT QV9FWFRfWlZFMzJGLCByaXNjdl96dmUzMmZfZXh0cyksCj4gLQlfX1JJU0NWX0lTQV9FWFRfREFU QSh6dmUzMngsIFJJU0NWX0lTQV9FWFRfWlZFMzJYKSwKPiAtCV9fUklTQ1ZfSVNBX0VYVF9TVVBF UlNFVCh6dmU2NGQsIFJJU0NWX0lTQV9FWFRfWlZFNjRELCByaXNjdl96dmU2NGRfZXh0cyksCj4g LQlfX1JJU0NWX0lTQV9FWFRfU1VQRVJTRVQoenZlNjRmLCBSSVNDVl9JU0FfRVhUX1pWRTY0Riwg cmlzY3ZfenZlNjRmX2V4dHMpLAo+IC0JX19SSVNDVl9JU0FfRVhUX1NVUEVSU0VUKHp2ZTY0eCwg UklTQ1ZfSVNBX0VYVF9aVkU2NFgsIHJpc2N2X3p2ZTY0eF9leHRzKSwKPiArCV9fUklTQ1ZfSVNB X0VYVF9TVVBFUlNFVF9WQUxJREFURSh6dmUzMmYsIFJJU0NWX0lTQV9FWFRfWlZFMzJGLCByaXNj dl96dmUzMmZfZXh0cywgcmlzY3ZfZXh0X3ZlY3Rvcl9mbG9hdF92YWxpZGF0ZSksCj4gKwlfX1JJ U0NWX0lTQV9FWFRfREFUQV9WQUxJREFURSh6dmUzMngsIFJJU0NWX0lTQV9FWFRfWlZFMzJYLCBy aXNjdl9leHRfdmVjdG9yX3hfdmFsaWRhdGUpLAo+ICsJX19SSVNDVl9JU0FfRVhUX1NVUEVSU0VU X1ZBTElEQVRFKHp2ZTY0ZCwgUklTQ1ZfSVNBX0VYVF9aVkU2NEQsIHJpc2N2X3p2ZTY0ZF9leHRz LCByaXNjdl9leHRfdmVjdG9yX2Zsb2F0X3ZhbGlkYXRlKSwKPiArCV9fUklTQ1ZfSVNBX0VYVF9T VVBFUlNFVF9WQUxJREFURSh6dmU2NGYsIFJJU0NWX0lTQV9FWFRfWlZFNjRGLCByaXNjdl96dmU2 NGZfZXh0cywgcmlzY3ZfZXh0X3ZlY3Rvcl9mbG9hdF92YWxpZGF0ZSksCj4gKwlfX1JJU0NWX0lT QV9FWFRfU1VQRVJTRVRfVkFMSURBVEUoenZlNjR4LCBSSVNDVl9JU0FfRVhUX1pWRTY0WCwgcmlz Y3ZfenZlNjR4X2V4dHMsIHJpc2N2X2V4dF92ZWN0b3JfeF92YWxpZGF0ZSksCj4gIAlfX1JJU0NW X0lTQV9FWFRfREFUQSh6dmZoLCBSSVNDVl9JU0FfRVhUX1pWRkgpLAo+ICAJX19SSVNDVl9JU0Ff RVhUX0RBVEEoenZmaG1pbiwgUklTQ1ZfSVNBX0VYVF9aVkZITUlOKSwKPiAgCV9fUklTQ1ZfSVNB X0VYVF9EQVRBKHp2a2IsIFJJU0NWX0lTQV9FWFRfWlZLQiksCj4gQEAgLTk2MCwxNiArOTg3LDYg QEAgdm9pZCBfX2luaXQgcmlzY3ZfZmlsbF9od2NhcCh2b2lkKQo+ICAJCXJpc2N2X3Zfc2V0dXBf dnNpemUoKTsKPiAgCX0KPiAgCj4gLQlpZiAoZWxmX2h3Y2FwICYgQ09NUEFUX0hXQ0FQX0lTQV9W KSB7Cj4gLQkJLyoKPiAtCQkgKiBJU0Egc3RyaW5nIGluIGRldmljZSB0cmVlIG1pZ2h0IGhhdmUg J3YnIGZsYWcsIGJ1dAo+IC0JCSAqIENPTkZJR19SSVNDVl9JU0FfViBpcyBkaXNhYmxlZCBpbiBr ZXJuZWwuCj4gLQkJICogQ2xlYXIgViBmbGFnIGluIGVsZl9od2NhcCBpZiBDT05GSUdfUklTQ1Zf SVNBX1YgaXMgZGlzYWJsZWQuCj4gLQkJICovCj4gLQkJaWYgKCFJU19FTkFCTEVEKENPTkZJR19S SVNDVl9JU0FfVikpCj4gLQkJCWVsZl9od2NhcCAmPSB+Q09NUEFUX0hXQ0FQX0lTQV9WOwo+IC0J fQo+IC0KPiAgCW1lbXNldChwcmludF9zdHIsIDAsIHNpemVvZihwcmludF9zdHIpKTsKPiAgCWZv ciAoaSA9IDAsIGogPSAwOyBpIDwgTlVNX0FMUEhBX0VYVFM7IGkrKykKPiAgCQlpZiAocmlzY3Zf aXNhWzBdICYgQklUX01BU0soaSkpCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1yaXNjdgo=