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 lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) (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 761CBC624DB for ; Sat, 5 Sep 2026 18:12:00 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x2uqc-0002x1-Jt; Sat, 05 Sep 2026 14:10:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2uqN-0002sL-Ef for qemu-devel@nongnu.org; Sat, 05 Sep 2026 14:10:25 -0400 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2uqI-0001da-FC for qemu-devel@nongnu.org; Sat, 05 Sep 2026 14:10:20 -0400 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 685Hb0GR2295054 for ; Sat, 5 Sep 2026 18:10:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= LpTLBTasF+5RS+EpSk3QCx962PeXHI2vn2JaNnRbKLs=; b=NkVlEWsenzGtdxYk kS1e8rMlvi9aN9V7m/sOwoXk+MmIO+cfefootgPj28VSpXIgP1x+q86+X79I5AXt aWRR4BH+JI8jj74gq8V0CcfOdC4LyV7Z+RQgyDWMhzFdCdDpMM6ha0QGGH2sSgv0 M9m6wK1FP0W5EiY2vTfCWsP7fVmjcLJikGx5pWd1czFTwCHX4D20XGQx1KWggK7j o/piTjkfS7uDG4/nM2ch+9v+sKxmGHN+FoX9fDTut9ScIlXdY0patlILZ6cmTAVB tSCWP5/hKNRLKSr3IRA3xTq1+8VWF0wTAOSkQ0vQg40N/1BLFztxUCoNqFjpOAbq QiZ8nQ== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ggcca1rh1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 05 Sep 2026 18:10:16 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2d7443e0f0bso31810125ad.1 for ; Sat, 05 Sep 2026 11:10:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788631816; x=1789236616; darn=nongnu.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=LpTLBTasF+5RS+EpSk3QCx962PeXHI2vn2JaNnRbKLs=; b=IIRswIcNm1pCTjLnTYTz2Wv4/qNYaE+TtUHgk3XL+GHk/DQzzFPymRkkSTct1yVuk6 bYLJO0wdGMg1kISk8qS7QiKUAH4smLjQyw6Jn8cUsVolpIyOkXYc3ZijQaGSDqefd3sw j7Rd4NEOX4mkmoCJSjyB3X1ZOuDi28EgVe6luGnuyqLkzUbzi3J6oS8IOTCQXwqHeMTy L1YUcz2OeZgvoV6nt3HTBKTOPKDhCzQ9p4YPBPdRhI5iZAX1ZyalelPfnZaFo2HPEOp2 m+4CHm6xbmkpmFEeey+1ejnJvDkYCIWp388hG6yXB3ERgMXJnesiVbNE4tbt1os0/k1k KAXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788631816; x=1789236616; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=LpTLBTasF+5RS+EpSk3QCx962PeXHI2vn2JaNnRbKLs=; b=ObXBbLd+GwxeadR8/ThnknZEBekCz1PRuMmqNlh9fdbBmSRH664JuCxXmy5W3cVToJ JPPkBUw1vS2t6p6lLMqzS8mHZfeRPTdhOsUXC6lMf/DD2E1rMJreNdrn6NNjz65zBnzc Y5MAj/xhwvmT9MLx+2RAgxdyojsGcgDyzyQxvPo41w2EBqYZ3B3wuenDClcyc94GbBJS siYjbn9FgvqP7XNEUKn0BTPIfv1Tx0h3gwHj7XlPMKQnQxFCI+tTqEpAMm/NpZrdRZ1I 8xDyUK9zomfYoUa7Bf6othSAjIOswblVXmagwviHQHRcMaW3C5FNZO2UHB4A8fswK1S2 mDHw== X-Gm-Message-State: AFuF++lcuLxR3S9q6tqpn7rLLqno0SLD3MsFGGYgFRHEVwlJkWVxXY1a chqTwqu5Nc72UKHkqwiGsm6V41P+Bsyzlm0ia3GlLZf2q9E99OPNcCjv5nOt5UOSkWXijgpDuas dnkDoRc5riXmwwTzQ2SjD3URu4PKfoQxuSi9zX13aqH+miSZH2019OHWVJfPIysbfxA== X-Gm-Gg: AYBFou05IpY4CXpFOnCebQ8QffGC3gkeNUW26jANy2hVFowC6G1S+xHeaA4JQXQtj8x KAoO85bJmUB9RbeAMrdYeZxzcxcsfjZiam5MlmcXOHe6q6jomWVs2ODd+bMVxkCkram8MC6s65K f76Ay/0VnvwVAIU4xgDYIhJ4jnDAeEsCTn5S1f6d6jL/4vhHHgq1ToXXhA/S3ljGjAy5JNMGVTe GAzHw8fLNPugGBTMpgR8RX6siQosJwBaAAKu1lz5+FJVPrGpLu1dkWMJ+LEgDwwI0seRCFKEfv4 p8zexX9/rL7r/dsN32tSEy0WUsgTA7sVB1Re6f4EFdVUcUs82OVS8Z3D0uQ1Wwdwkm3/MqqSyES 0OgwYavO98VSSyHYrH5djTvrSvZPfhxIOxSJst0G5eiBi1Yt/ X-Received: by 2002:a17:902:e948:b0:2d9:51b7:c0bc with SMTP id d9443c01a7336-2db125a3452mr215405915ad.12.1788631816058; Sat, 05 Sep 2026 11:10:16 -0700 (PDT) X-Received: by 2002:a17:902:e948:b0:2d9:51b7:c0bc with SMTP id d9443c01a7336-2db125a3452mr215405195ad.12.1788631815495; Sat, 05 Sep 2026 11:10:15 -0700 (PDT) Received: from hu-bcain-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3339a534df1sm17985505eec.7.2026.09.05.11.10.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Sep 2026 11:10:14 -0700 (PDT) From: Brian Cain To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Brian Cain , sid.manning@oss.qualcomm.com Subject: [PATCH 10/17] tests/tcg/hexagon: add HVX vwhist tests Date: Sat, 5 Sep 2026 11:09:42 -0700 Message-Id: <20260905180949.1852673-11-brian.cain@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260905180949.1852673-1-brian.cain@oss.qualcomm.com> References: <20260905180949.1852673-1-brian.cain@oss.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Proofpoint-GUID: vQ7IBOjpHR5uIkgh4fmUfXQodTpp5XvA X-Authority-Analysis: v=2.4 cv=EJo2FVZC c=1 sm=1 tr=0 ts=6a9c5b08 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=3zvnb_JKlmlTvwE-U_QA:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-ORIG-GUID: vQ7IBOjpHR5uIkgh4fmUfXQodTpp5XvA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTA1MDIwMSBTYWx0ZWRfX4Va+JQZQzQ15 FlD9Gnrrtaib6txlabgw648ib0FibxDOLLeuWPY//+NuTr86Rk/el/RyEhZJXMEFSGAdGq605L8 BIuVP5q4YzigPLtbFqn4qn7tqX0g41WigbUvIG3lZwYmxouOQe1OCFsC6FVOC88PoZ495EoRY6L Bsh/tScfkUNlFQEaS3ECAFINI99j9C75KS5C9pZzXkn6cSYmQAbfeR5xjgSsu7ybSjnpfY0aL2z fEYzTDIePvn7nT1N59SRRoW1sRcaTbI1EiCV7pyZ+Fe2LfJOyn8LeVB9MLFvbAMXquQKKktlGuE b9h9QR3uDzehGSufXQYvBnZyiLW8seGQXL8iDmtdu3bQOD+Rqz4aO7R11OBM1oaRMHeM23fe3gG iv9GURCyk5v66FClC71eLAvskk3IZaRLWyMHvoXHA9g3y8z779p5Sa270bwTnuTpfMF5AtTFezC sCAMLw09ngVqRMNzkjw== X-Proofpoint-Spam-Info: AW1haW4tMjYwOTA1MDIwMSBTYWx0ZWRfXymTI/INYoYXK Kwqw0BQ5BAxULEgik27CUEmy9JMrHv2VGvy0yPajoZ9IS3hFx6RJ7SPvDT8k3wv/+h32rf7Gt5c 6dxCjQt+xn00/atzOM5Nm+H0Fblxnh8= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-05_06,2026-09-03_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 impostorscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 clxscore=1015 bulkscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609050201 Received-SPF: pass client-ip=205.220.168.131; envelope-from=brian.cain@oss.qualcomm.com; helo=mx0a-0031df01.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org VGVzdCBhbGwgZWlnaHQgdndoaXN0IGluc3RydWN0aW9uIHZhcmlhbnRzIGFuZCB0aGUgZm91ciBR LW1hc2tlZCBmb3Jtcy4KClNpZ25lZC1vZmYtYnk6IEJyaWFuIENhaW4gPGJyaWFuLmNhaW5Ab3Nz LnF1YWxjb21tLmNvbT4KLS0tCiB0ZXN0cy90Y2cvaGV4YWdvbi90ZXN0X3Z3aGlzdC5jIHwgMzYx ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0ZXN0cy90Y2cvaGV4YWdvbi9tZXNv bi5idWlsZCAgIHwgICAxICsKIDIgZmlsZXMgY2hhbmdlZCwgMzYyIGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy90Y2cvaGV4YWdvbi90ZXN0X3Z3aGlzdC5jCgpkaWZmIC0t Z2l0IGEvdGVzdHMvdGNnL2hleGFnb24vdGVzdF92d2hpc3QuYyBiL3Rlc3RzL3RjZy9oZXhhZ29u L3Rlc3RfdndoaXN0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVl MTQzZjc5YTQzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvdGNnL2hleGFnb24vdGVzdF92d2hp c3QuYwpAQCAtMCwwICsxLDM2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgUXVhbGNvbW0gVGVj aG5vbG9naWVzLCBJbmMuIGFuZC9vciBpdHMgc3Vic2lkaWFyaWVzLgorICogU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKyAqLworCisvKgorICogVGVzdCBIVlggd2Vp Z2h0ZWQgaGlzdG9ncmFtIGluc3RydWN0aW9ucyAodndoaXN0MTI4L3Z3aGlzdDI1NiB2YXJpYW50 cykuCisgKgorICogRWFjaCBoYWxmd29yZCBpbiB0aGUgaW5wdXQgdmVjdG9yIChsb2FkZWQgdmlh IFZ4LnRtcCkgY29udGFpbnMgYSBidWNrZXQKKyAqIGluZGV4IChsb3cgYnl0ZSkgYW5kIGEgd2Vp Z2h0IChoaWdoIGJ5dGUpLiAgVGhlIGluc3RydWN0aW9uIGFjY3VtdWxhdGVzCisgKiB0aGUgd2Vp Z2h0IGludG8gdGhlIGFwcHJvcHJpYXRlIGVsZW1lbnQgb2YgdGhlIGRlc3RpbmF0aW9uIHZlY3Rv ci4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNs dWRlIDxzdHJpbmcuaD4KKworaW50IGVycjsKKworI2RlZmluZSBNQVhfVkVDX1NJWkVfQllURVMg IDEyOAorCit0eXBlZGVmIHVuaW9uIHsKKyAgICB1aW50MzJfdCB1d1tNQVhfVkVDX1NJWkVfQllU RVMgLyA0XTsKKyAgICB1aW50MTZfdCB1aFtNQVhfVkVDX1NJWkVfQllURVMgLyAyXTsKKyAgICB1 aW50OF90ICB1YltNQVhfVkVDX1NJWkVfQllURVNdOworfSBNTVZlY3RvcjsKKworLyoKKyAqIEJ1 aWxkIGlucHV0IHZlY3RvciBmb3IgdndoaXN0MjU2OiBlYWNoIGhhbGZ3b3JkIGlzICh3ZWlnaHQg PDwgOCB8IGJ1Y2tldCkuCisgKiBXZSBwdXQgYnVja2V0PTAsIHdlaWdodD0xIGluIGV2ZXJ5IHNs b3Qgc28gdGhhdCB2MC51aFswXSBnZXRzIGluY3JlbWVudGVkCisgKiBieSAxIGZvciBlYWNoIG9m IHRoZSA2NCBoYWxmd29yZHMgLT4gdjAudWhbMF0gc2hvdWxkIGVxdWFsIDY0LgorICovCitzdGF0 aWMgTU1WZWN0b3IgaW5wdXQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZChNQVhfVkVDX1NJWkVfQllU RVMpKSk7CitzdGF0aWMgTU1WZWN0b3IgemVyb192ZWMgX19hdHRyaWJ1dGVfXygoYWxpZ25lZChN QVhfVkVDX1NJWkVfQllURVMpKSk7CitzdGF0aWMgTU1WZWN0b3IgcmVzdWx0IF9fYXR0cmlidXRl X18oKGFsaWduZWQoTUFYX1ZFQ19TSVpFX0JZVEVTKSkpOworCitzdGF0aWMgdm9pZCBjaGVja191 aW50MzIoaW50IGxpbmUsIGludCBpZHgsIHVpbnQzMl90IHZhbCwgdWludDMyX3QgZXhwZWN0KQor eworICAgIGlmICh2YWwgIT0gZXhwZWN0KSB7CisgICAgICAgIHByaW50ZigiRVJST1IgYXQgbGlu ZSAlZDogWyVkXSAweCUwOHggIT0gMHglMDh4XG4iLAorICAgICAgICAgICAgICAgbGluZSwgaWR4 LCB2YWwsIGV4cGVjdCk7CisgICAgICAgIGVycisrOworICAgIH0KK30KKworc3RhdGljIHZvaWQg Y2hlY2tfdWludDE2KGludCBsaW5lLCBpbnQgaWR4LCB1aW50MTZfdCB2YWwsIHVpbnQxNl90IGV4 cGVjdCkKK3sKKyAgICBpZiAodmFsICE9IGV4cGVjdCkgeworICAgICAgICBwcmludGYoIkVSUk9S IGF0IGxpbmUgJWQ6IFslZF0gMHglMDR4ICE9IDB4JTA0eFxuIiwKKyAgICAgICAgICAgICAgIGxp bmUsIGlkeCwgdmFsLCBleHBlY3QpOworICAgICAgICBlcnIrKzsKKyAgICB9Cit9CisKKy8qCisg KiBUZXN0IHZ3aGlzdDI1NjogMjU2LWJpbiBoaXN0b2dyYW0gd2l0aCAxNi1iaXQgYWNjdW11bGF0 aW9uLgorICogRWFjaCBoYWxmd29yZCBvZiB0aGUgaW5wdXQ6IGxvdyBieXRlID0gYnVja2V0LCBo aWdoIGJ5dGUgPSB3ZWlnaHQuCisgKiBidWNrZXQgYml0cyBbNzozXSAtPiB2aW5kZXggKHdoaWNo IHZlY3RvciByZWdpc3RlciksIFsyOjBdICsgbGFuZSAtPiBlbGVtZW50LgorICogQWxsIGVudHJp ZXMgaGF2ZSBidWNrZXQ9MCB3ZWlnaHQ9MSwgc28gdjAudWhbMC4uN10gZ2V0IGluY3JlbWVudGVk LgorICovCitzdGF0aWMgdm9pZCB0ZXN0X3Z3aGlzdDI1Nih2b2lkKQoreworICAgIGludCBpOwor CisgICAgLyogU2V0IGFsbCBpbnB1dCBoYWxmd29yZHMgdG8gYnVja2V0PTAsIHdlaWdodD0xICov CisgICAgZm9yIChpID0gMDsgaSA8IE1BWF9WRUNfU0laRV9CWVRFUyAvIDI7IGkrKykgeworICAg ICAgICBpbnB1dC51aFtpXSA9IDB4MDEwMDsgIC8qIHdlaWdodD0xLCBidWNrZXQ9MCAqLworICAg IH0KKworICAgIGFzbSB2b2xhdGlsZSgKKyAgICAgICAgLyogWmVybyBvdXQgdjAgKHRoZSB0YXJn ZXQgZm9yIGJ1Y2tldCAwKSAqLworICAgICAgICAidjAgPSB2bWVtKCVbemVyb10gKyAjMClcblx0 IgorICAgICAgICAie1xuXHQiCisgICAgICAgICIgICAgdjEyLnRtcCA9IHZtZW0oJVtpbnBdICsg IzApXG5cdCIKKyAgICAgICAgIiAgICB2d2hpc3QyNTZcblx0IgorICAgICAgICAifVxuXHQiCisg ICAgICAgICJ2bWVtKCVbb3V0XSArICMwKSA9IHYwXG5cdCIKKyAgICAgICAgOgorICAgICAgICA6 IFtpbnBdICJyIigmaW5wdXQpLCBbemVyb10gInIiKCZ6ZXJvX3ZlYyksCisgICAgICAgICAgW291 dF0gInIiKCZyZXN1bHQpCisgICAgICAgIDogInYwIiwgInYxMiIsICJtZW1vcnkiKTsKKworICAg IC8qCisgICAgICogNjQgaW5wdXQgaGFsZndvcmRzIGFsbCB0YXJnZXRpbmcgYnVja2V0IDAuCisg ICAgICogZWxpbmRleCA9IChpICYgfjcpIHwgKGJ1Y2tldCAmIDcpID0gaSAmIH43ICAoc2luY2Ug YnVja2V0PTApLgorICAgICAqIFNvIGVsZW1lbnRzIDAsOCwxNiwyNCwzMiw0MCw0OCw1NiBlYWNo IGdldCA4IGluY3JlbWVudHMuCisgICAgICovCisgICAgZm9yIChpID0gMDsgaSA8IDY0OyBpKysp IHsKKyAgICAgICAgdWludDE2X3QgZXhwZWN0ZWQgPSAoKGkgJiA3KSA9PSAwKSA/IDggOiAwOwor ICAgICAgICBjaGVja191aW50MTYoX19MSU5FX18sIGksIHJlc3VsdC51aFtpXSwgZXhwZWN0ZWQp OworICAgIH0KK30KKworLyoKKyAqIFRlc3QgdndoaXN0MjU2OnNhdCAtLSBzYXR1cmF0aW5nIHZh cmlhbnQuCisgKiBVc2Ugd2VpZ2h0PTB4RkYgdG8gdGVzdCB0aGF0IHNhdHVyYXRpb24gdG8gMHhG RkZGIHdvcmtzLgorICovCitzdGF0aWMgdm9pZCB0ZXN0X3Z3aGlzdDI1Nl9zYXQodm9pZCkKK3sK KyAgICBpbnQgaTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBNQVhfVkVDX1NJWkVfQllURVMgLyAy OyBpKyspIHsKKyAgICAgICAgaW5wdXQudWhbaV0gPSAweEZGMDA7ICAvKiB3ZWlnaHQ9MHhGRiwg YnVja2V0PTAgKi8KKyAgICB9CisKKyAgICBhc20gdm9sYXRpbGUoCisgICAgICAgICJ2MCA9IHZt ZW0oJVt6ZXJvXSArICMwKVxuXHQiCisgICAgICAgICJ7XG5cdCIKKyAgICAgICAgIiAgICB2MTIu dG1wID0gdm1lbSglW2lucF0gKyAjMClcblx0IgorICAgICAgICAiICAgIHZ3aGlzdDI1NjpzYXRc blx0IgorICAgICAgICAifVxuXHQiCisgICAgICAgICJ2bWVtKCVbb3V0XSArICMwKSA9IHYwXG5c dCIKKyAgICAgICAgOgorICAgICAgICA6IFtpbnBdICJyIigmaW5wdXQpLCBbemVyb10gInIiKCZ6 ZXJvX3ZlYyksCisgICAgICAgICAgW291dF0gInIiKCZyZXN1bHQpCisgICAgICAgIDogInYwIiwg InYxMiIsICJtZW1vcnkiKTsKKworICAgIC8qCisgICAgICogU2FtZSBkaXN0cmlidXRpb24gYXMg dndoaXN0MjU2OiBlbGVtZW50cyAwLDgsMTYsLi4uLDU2LgorICAgICAqIEVhY2ggZ2V0cyA4ICog MHhGRiA9IDIwNDAgPSAweDdGOCAod2l0aGluIHVpbnQxNiByYW5nZSkuCisgICAgICovCisgICAg Zm9yIChpID0gMDsgaSA8IDY0OyBpKyspIHsKKyAgICAgICAgdWludDE2X3QgZXhwZWN0ZWQgPSAo KGkgJiA3KSA9PSAwKSA/IDggKiAweEZGIDogMDsKKyAgICAgICAgY2hlY2tfdWludDE2KF9fTElO RV9fLCBpLCByZXN1bHQudWhbaV0sIGV4cGVjdGVkKTsKKyAgICB9Cit9CisKKy8qCisgKiBUZXN0 IHZ3aGlzdDEyODogMTI4LWJpbiBoaXN0b2dyYW0gd2l0aCAzMi1iaXQgYWNjdW11bGF0aW9uLgor ICogYnVja2V0IGJpdHMgWzc6M10gLT4gdmluZGV4LCBbMjoxXSArIGxhbmUgLT4gZWxlbWVudCAo d29yZCBncmFudWxhcml0eSkuCisgKi8KK3N0YXRpYyB2b2lkIHRlc3RfdndoaXN0MTI4KHZvaWQp Cit7CisgICAgaW50IGk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgTUFYX1ZFQ19TSVpFX0JZVEVT IC8gMjsgaSsrKSB7CisgICAgICAgIGlucHV0LnVoW2ldID0gMHgwMTAwOyAgLyogd2VpZ2h0PTEs IGJ1Y2tldD0wICovCisgICAgfQorCisgICAgYXNtIHZvbGF0aWxlKAorICAgICAgICAidjAgPSB2 bWVtKCVbemVyb10gKyAjMClcblx0IgorICAgICAgICAie1xuXHQiCisgICAgICAgICIgICAgdjEy LnRtcCA9IHZtZW0oJVtpbnBdICsgIzApXG5cdCIKKyAgICAgICAgIiAgICB2d2hpc3QxMjhcblx0 IgorICAgICAgICAifVxuXHQiCisgICAgICAgICJ2bWVtKCVbb3V0XSArICMwKSA9IHYwXG5cdCIK KyAgICAgICAgOgorICAgICAgICA6IFtpbnBdICJyIigmaW5wdXQpLCBbemVyb10gInIiKCZ6ZXJv X3ZlYyksCisgICAgICAgICAgW291dF0gInIiKCZyZXN1bHQpCisgICAgICAgIDogInYwIiwgInYx MiIsICJtZW1vcnkiKTsKKworICAgIC8qCisgICAgICogMTI4LWJpbjogNjQgaGFsZndvcmRzIGFs bCB0YXJnZXRpbmcgYnVja2V0IDAuCisgICAgICogYnVja2V0IDAgLT4gdmluZGV4PTAsIGVsaW5k ZXggYmFzZWQgb24gKGk+PjEpJih+MykgfCAoYnVja2V0Pj4xKSYzLgorICAgICAqIFdpdGggYnVj a2V0PTAsIGVsaW5kZXggPSAoaT4+MSkmKH4zKS4KKyAgICAgKiBGb3IgaT0wLDE6IGVsaW5kZXg9 MDsgaT0yLDM6IGVsaW5kZXg9MDsgLi4uIHVwIHRvIGk9Niw3OiBlbGluZGV4PTAKKyAgICAgKiBp IHJhbmdlcyAwLi42My4gKGk+PjEpIHJhbmdlcyAwLi4zMS4KKyAgICAgKiAoaT4+MSkmKH4zKSA9 IDAsMCwwLDAsNCw0LDQsNCw4LC4uLgorICAgICAqIFNvIGVsZW1lbnRzIDAsNCw4LDEyLDE2LDIw LDI0LDI4IGVhY2ggZ2V0IDggaW5jcmVtZW50cy4KKyAgICAgKi8KKyAgICBmb3IgKGkgPSAwOyBp IDwgMzI7IGkrKykgeworICAgICAgICB1aW50MzJfdCBleHBlY3RlZCA9ICgoaSAmIDMpID09IDAp ID8gOCA6IDA7CisgICAgICAgIGNoZWNrX3VpbnQzMihfX0xJTkVfXywgaSwgcmVzdWx0LnV3W2ld LCBleHBlY3RlZCk7CisgICAgfQorfQorCisvKgorICogVGVzdCB2d2hpc3QxMjgoIzApIC0tIG1h c2tlZCB2YXJpYW50LgorICogT25seSBwcm9jZXNzZXMgZWxlbWVudHMgd2hlcmUgKGJ1Y2tldCAm IDEpID09IG1vZGUuCisgKi8KK3N0YXRpYyB2b2lkIHRlc3RfdndoaXN0MTI4bSh2b2lkKQorewor ICAgIGludCBpOworCisgICAgLyogQWxsIGJ1Y2tldD0wLCB3ZWlnaHQ9MS4gIGJ1Y2tldCYxPT0w LCBzbyBtb2RlPTAgbWF0Y2hlcyBhbGwuICovCisgICAgZm9yIChpID0gMDsgaSA8IE1BWF9WRUNf U0laRV9CWVRFUyAvIDI7IGkrKykgeworICAgICAgICBpbnB1dC51aFtpXSA9IDB4MDEwMDsgIC8q IHdlaWdodD0xLCBidWNrZXQ9MCAqLworICAgIH0KKworICAgIGFzbSB2b2xhdGlsZSgKKyAgICAg ICAgInYwID0gdm1lbSglW3plcm9dICsgIzApXG5cdCIKKyAgICAgICAgIntcblx0IgorICAgICAg ICAiICAgIHYxMi50bXAgPSB2bWVtKCVbaW5wXSArICMwKVxuXHQiCisgICAgICAgICIgICAgdndo aXN0MTI4KCMwKVxuXHQiCisgICAgICAgICJ9XG5cdCIKKyAgICAgICAgInZtZW0oJVtvdXRdICsg IzApID0gdjBcblx0IgorICAgICAgICA6CisgICAgICAgIDogW2lucF0gInIiKCZpbnB1dCksIFt6 ZXJvXSAiciIoJnplcm9fdmVjKSwKKyAgICAgICAgICBbb3V0XSAiciIoJnJlc3VsdCkKKyAgICAg ICAgOiAidjAiLCAidjEyIiwgIm1lbW9yeSIpOworCisgICAgLyogU2FtZSBkaXN0cmlidXRpb24g YXMgdndoaXN0MTI4IHNpbmNlIGFsbCBidWNrZXRzIGhhdmUgYml0MD0wICovCisgICAgZm9yIChp ID0gMDsgaSA8IDMyOyBpKyspIHsKKyAgICAgICAgdWludDMyX3QgZXhwZWN0ZWQgPSAoKGkgJiAz KSA9PSAwKSA/IDggOiAwOworICAgICAgICBjaGVja191aW50MzIoX19MSU5FX18sIGksIHJlc3Vs dC51d1tpXSwgZXhwZWN0ZWQpOworICAgIH0KKworICAgIC8qIE5vdyB0ZXN0IHdpdGggbW9kZT0x OiBidWNrZXQ9MCBoYXMgYml0MD0wLCBzbyBub3RoaW5nIHNob3VsZCBtYXRjaCAqLworICAgIG1l bXNldCgmcmVzdWx0LCAwLCBzaXplb2YocmVzdWx0KSk7CisgICAgYXNtIHZvbGF0aWxlKAorICAg ICAgICAidjAgPSB2bWVtKCVbemVyb10gKyAjMClcblx0IgorICAgICAgICAie1xuXHQiCisgICAg ICAgICIgICAgdjEyLnRtcCA9IHZtZW0oJVtpbnBdICsgIzApXG5cdCIKKyAgICAgICAgIiAgICB2 d2hpc3QxMjgoIzEpXG5cdCIKKyAgICAgICAgIn1cblx0IgorICAgICAgICAidm1lbSglW291dF0g KyAjMCkgPSB2MFxuXHQiCisgICAgICAgIDoKKyAgICAgICAgOiBbaW5wXSAiciIoJmlucHV0KSwg W3plcm9dICJyIigmemVyb192ZWMpLAorICAgICAgICAgIFtvdXRdICJyIigmcmVzdWx0KQorICAg ICAgICA6ICJ2MCIsICJ2MTIiLCAibWVtb3J5Iik7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgMzI7 IGkrKykgeworICAgICAgICBjaGVja191aW50MzIoX19MSU5FX18sIGksIHJlc3VsdC51d1tpXSwg MCk7CisgICAgfQorfQorCitzdGF0aWMgTU1WZWN0b3Igb25lc192ZWMgX19hdHRyaWJ1dGVfXygo YWxpZ25lZChNQVhfVkVDX1NJWkVfQllURVMpKSk7CisKKy8qCisgKiBUZXN0IHZ3aGlzdDI1NihR djQpIC0tIFEtbWFza2VkIHZ3aGlzdDI1Ni4KKyAqIFNldCBRMCB0byBhbGwtb25lcyBzbyBhbGwg ZWxlbWVudHMgcGFzcyB0aGUgbWFzayAtPiBzYW1lIGFzIHZ3aGlzdDI1Ni4KKyAqLworc3RhdGlj IHZvaWQgdGVzdF92d2hpc3QyNTZxKHZvaWQpCit7CisgICAgaW50IGk7CisKKyAgICBmb3IgKGkg PSAwOyBpIDwgTUFYX1ZFQ19TSVpFX0JZVEVTIC8gMjsgaSsrKSB7CisgICAgICAgIGlucHV0LnVo W2ldID0gMHgwMTAwOyAgLyogd2VpZ2h0PTEsIGJ1Y2tldD0wICovCisgICAgfQorCisgICAgYXNt IHZvbGF0aWxlKAorICAgICAgICAidjAgPSB2bWVtKCVbemVyb10gKyAjMClcblx0IgorICAgICAg ICAidjEgPSB2bWVtKCVbb25lc10gKyAjMClcblx0IgorICAgICAgICAicTAgPSB2Y21wLmVxKHYx LmIsIHYxLmIpXG5cdCIgIC8qIGFsbC1vbmVzIFEwICovCisgICAgICAgICJ7XG5cdCIKKyAgICAg ICAgIiAgICB2MTIudG1wID0gdm1lbSglW2lucF0gKyAjMClcblx0IgorICAgICAgICAiICAgIHZ3 aGlzdDI1NihxMClcblx0IgorICAgICAgICAifVxuXHQiCisgICAgICAgICJ2bWVtKCVbb3V0XSAr ICMwKSA9IHYwXG5cdCIKKyAgICAgICAgOgorICAgICAgICA6IFtpbnBdICJyIigmaW5wdXQpLCBb emVyb10gInIiKCZ6ZXJvX3ZlYyksCisgICAgICAgICAgW291dF0gInIiKCZyZXN1bHQpLCBbb25l c10gInIiKCZvbmVzX3ZlYykKKyAgICAgICAgOiAidjAiLCAidjEiLCAidjEyIiwgInEwIiwgIm1l bW9yeSIpOworCisgICAgZm9yIChpID0gMDsgaSA8IDY0OyBpKyspIHsKKyAgICAgICAgdWludDE2 X3QgZXhwZWN0ZWQgPSAoKGkgJiA3KSA9PSAwKSA/IDggOiAwOworICAgICAgICBjaGVja191aW50 MTYoX19MSU5FX18sIGksIHJlc3VsdC51aFtpXSwgZXhwZWN0ZWQpOworICAgIH0KK30KKworLyoK KyAqIFRlc3QgdndoaXN0MjU2KFF2NCk6c2F0IC0tIFEtbWFza2VkIHNhdHVyYXRpbmcgdndoaXN0 MjU2LgorICovCitzdGF0aWMgdm9pZCB0ZXN0X3Z3aGlzdDI1NnFfc2F0KHZvaWQpCit7CisgICAg aW50IGk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgTUFYX1ZFQ19TSVpFX0JZVEVTIC8gMjsgaSsr KSB7CisgICAgICAgIGlucHV0LnVoW2ldID0gMHhGRjAwOyAgLyogd2VpZ2h0PTB4RkYsIGJ1Y2tl dD0wICovCisgICAgfQorCisgICAgYXNtIHZvbGF0aWxlKAorICAgICAgICAidjAgPSB2bWVtKCVb emVyb10gKyAjMClcblx0IgorICAgICAgICAidjEgPSB2bWVtKCVbb25lc10gKyAjMClcblx0Igor ICAgICAgICAicTAgPSB2Y21wLmVxKHYxLmIsIHYxLmIpXG5cdCIKKyAgICAgICAgIntcblx0Igor ICAgICAgICAiICAgIHYxMi50bXAgPSB2bWVtKCVbaW5wXSArICMwKVxuXHQiCisgICAgICAgICIg ICAgdndoaXN0MjU2KHEwKTpzYXRcblx0IgorICAgICAgICAifVxuXHQiCisgICAgICAgICJ2bWVt KCVbb3V0XSArICMwKSA9IHYwXG5cdCIKKyAgICAgICAgOgorICAgICAgICA6IFtpbnBdICJyIigm aW5wdXQpLCBbemVyb10gInIiKCZ6ZXJvX3ZlYyksCisgICAgICAgICAgW291dF0gInIiKCZyZXN1 bHQpLCBbb25lc10gInIiKCZvbmVzX3ZlYykKKyAgICAgICAgOiAidjAiLCAidjEiLCAidjEyIiwg InEwIiwgIm1lbW9yeSIpOworCisgICAgZm9yIChpID0gMDsgaSA8IDY0OyBpKyspIHsKKyAgICAg ICAgdWludDE2X3QgZXhwZWN0ZWQgPSAoKGkgJiA3KSA9PSAwKSA/IDggKiAweEZGIDogMDsKKyAg ICAgICAgY2hlY2tfdWludDE2KF9fTElORV9fLCBpLCByZXN1bHQudWhbaV0sIGV4cGVjdGVkKTsK KyAgICB9Cit9CisKKy8qCisgKiBUZXN0IHZ3aGlzdDEyOChRdjQpIC0tIFEtbWFza2VkIHZ3aGlz dDEyOC4KKyAqLworc3RhdGljIHZvaWQgdGVzdF92d2hpc3QxMjhxKHZvaWQpCit7CisgICAgaW50 IGk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgTUFYX1ZFQ19TSVpFX0JZVEVTIC8gMjsgaSsrKSB7 CisgICAgICAgIGlucHV0LnVoW2ldID0gMHgwMTAwOyAgLyogd2VpZ2h0PTEsIGJ1Y2tldD0wICov CisgICAgfQorCisgICAgYXNtIHZvbGF0aWxlKAorICAgICAgICAidjAgPSB2bWVtKCVbemVyb10g KyAjMClcblx0IgorICAgICAgICAidjEgPSB2bWVtKCVbb25lc10gKyAjMClcblx0IgorICAgICAg ICAicTAgPSB2Y21wLmVxKHYxLmIsIHYxLmIpXG5cdCIKKyAgICAgICAgIntcblx0IgorICAgICAg ICAiICAgIHYxMi50bXAgPSB2bWVtKCVbaW5wXSArICMwKVxuXHQiCisgICAgICAgICIgICAgdndo aXN0MTI4KHEwKVxuXHQiCisgICAgICAgICJ9XG5cdCIKKyAgICAgICAgInZtZW0oJVtvdXRdICsg IzApID0gdjBcblx0IgorICAgICAgICA6CisgICAgICAgIDogW2lucF0gInIiKCZpbnB1dCksIFt6 ZXJvXSAiciIoJnplcm9fdmVjKSwKKyAgICAgICAgICBbb3V0XSAiciIoJnJlc3VsdCksIFtvbmVz XSAiciIoJm9uZXNfdmVjKQorICAgICAgICA6ICJ2MCIsICJ2MSIsICJ2MTIiLCAicTAiLCAibWVt b3J5Iik7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgMzI7IGkrKykgeworICAgICAgICB1aW50MzJf dCBleHBlY3RlZCA9ICgoaSAmIDMpID09IDApID8gOCA6IDA7CisgICAgICAgIGNoZWNrX3VpbnQz MihfX0xJTkVfXywgaSwgcmVzdWx0LnV3W2ldLCBleHBlY3RlZCk7CisgICAgfQorfQorCisvKgor ICogVGVzdCB2d2hpc3QxMjgoUXY0LCMwKSAtLSBRLW1hc2tlZCBtb2RlIHZ3aGlzdDEyOC4KKyAq Lworc3RhdGljIHZvaWQgdGVzdF92d2hpc3QxMjhxbSh2b2lkKQoreworICAgIGludCBpOworCisg ICAgZm9yIChpID0gMDsgaSA8IE1BWF9WRUNfU0laRV9CWVRFUyAvIDI7IGkrKykgeworICAgICAg ICBpbnB1dC51aFtpXSA9IDB4MDEwMDsgIC8qIHdlaWdodD0xLCBidWNrZXQ9MCAqLworICAgIH0K KworICAgIGFzbSB2b2xhdGlsZSgKKyAgICAgICAgInYwID0gdm1lbSglW3plcm9dICsgIzApXG5c dCIKKyAgICAgICAgInYxID0gdm1lbSglW29uZXNdICsgIzApXG5cdCIKKyAgICAgICAgInEwID0g dmNtcC5lcSh2MS5iLCB2MS5iKVxuXHQiCisgICAgICAgICJ7XG5cdCIKKyAgICAgICAgIiAgICB2 MTIudG1wID0gdm1lbSglW2lucF0gKyAjMClcblx0IgorICAgICAgICAiICAgIHZ3aGlzdDEyOChx MCwjMClcblx0IgorICAgICAgICAifVxuXHQiCisgICAgICAgICJ2bWVtKCVbb3V0XSArICMwKSA9 IHYwXG5cdCIKKyAgICAgICAgOgorICAgICAgICA6IFtpbnBdICJyIigmaW5wdXQpLCBbemVyb10g InIiKCZ6ZXJvX3ZlYyksCisgICAgICAgICAgW291dF0gInIiKCZyZXN1bHQpLCBbb25lc10gInIi KCZvbmVzX3ZlYykKKyAgICAgICAgOiAidjAiLCAidjEiLCAidjEyIiwgInEwIiwgIm1lbW9yeSIp OworCisgICAgLyogYnVja2V0PTAsIGJpdDA9MCwgbW9kZT0wIG1hdGNoZXMgLT4gc2FtZSBhcyB2 d2hpc3QxMjggKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgMzI7IGkrKykgeworICAgICAgICB1aW50 MzJfdCBleHBlY3RlZCA9ICgoaSAmIDMpID09IDApID8gOCA6IDA7CisgICAgICAgIGNoZWNrX3Vp bnQzMihfX0xJTkVfXywgaSwgcmVzdWx0LnV3W2ldLCBleHBlY3RlZCk7CisgICAgfQorfQorCitp bnQgbWFpbih2b2lkKQoreworICAgIG1lbXNldCgmemVyb192ZWMsIDAsIHNpemVvZih6ZXJvX3Zl YykpOworICAgIG1lbXNldCgmb25lc192ZWMsIDB4ZmYsIHNpemVvZihvbmVzX3ZlYykpOworCisg ICAgdGVzdF92d2hpc3QyNTYoKTsKKyAgICB0ZXN0X3Z3aGlzdDI1Nl9zYXQoKTsKKyAgICB0ZXN0 X3Z3aGlzdDEyOCgpOworICAgIHRlc3RfdndoaXN0MTI4bSgpOworICAgIHRlc3RfdndoaXN0MjU2 cSgpOworICAgIHRlc3RfdndoaXN0MjU2cV9zYXQoKTsKKyAgICB0ZXN0X3Z3aGlzdDEyOHEoKTsK KyAgICB0ZXN0X3Z3aGlzdDEyOHFtKCk7CisKKyAgICBwdXRzKGVyciA/ICJGQUlMIiA6ICJQQVNT Iik7CisgICAgcmV0dXJuIGVyciA/IDEgOiAwOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvdGNnL2hl eGFnb24vbWVzb24uYnVpbGQgYi90ZXN0cy90Y2cvaGV4YWdvbi9tZXNvbi5idWlsZAppbmRleCBm Y2YwYmQzOGYyNi4uNGM3MDg3NTAzNGQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3RjZy9oZXhhZ29uL21l c29uLmJ1aWxkCisrKyBiL3Rlc3RzL3RjZy9oZXhhZ29uL21lc29uLmJ1aWxkCkBAIC05NCw2ICs5 NCw3IEBAIHRlc3RzICs9IHsKICAgJ3Rlc3Rfdm1pbmguUyc6IHsnY2ZsYWdzJzogYXNtZmxhZ3N9 LAogICAndGVzdF92cG1weWguUyc6IHsnY2ZsYWdzJzogYXNtZmxhZ3N9LAogICAndGVzdF92c3Bs aWNlYi5TJzogeydjZmxhZ3MnOiBhc21mbGFnc30sCisgICd0ZXN0X3Z3aGlzdC5jJzogeydjZmxh Z3MnOiBbY2ZsYWdzLCAnLW1odngnXX0sCiAgICd1bmFsaWduZWRfcGMuYyc6IHsnY2ZsYWdzJzog Y2ZsYWdzfSwKICAgJ3VuYWxpZ25lZF9kYXRhLmMnOiB7J2NmbGFncyc6IGNmbGFnc30sCiAgICd1 c3IuYyc6IHsKLS0gCjIuMzQuMQoK