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 C8016C369D0 for ; Thu, 17 Apr 2025 12:36:11 +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:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=b4oDxdcBq4L8WLqrHBbxJACyf4dR3aRH/SFwpcRs8Y0=; b=aZyQBj72gRIAUl xIQvkJfU/TgEFhnRnugMumO34F3XEBKF6A89XPfiQhPpRWEI3gsa4gkuym/uEzkIJcYaDlldjqZnE rD1dxRxlXi9dmKlN81xbciCM0FATEwZI857SVjP8AMFHjKRxgvyC77L3bgCyCv48QAhh7c7yE5riQ eMXVu2fAEcambZWflS9FEr1RkdCXPav/KmP+BJtNtMoB6gVNGfoSKEoBBumByN//8Z4uT54+TcCiF P23Du7Bbl7bRSU95OI51ynjECOv7mkreCy/JBBv3rQ+TKXisdYPlPpa3m6FJ1hLBqSonx2zFp9CKT 5epUJjgiQMbJ4bMP7fCw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1u5OTN-0000000CyzC-06O5; Thu, 17 Apr 2025 12:36:05 +0000 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1u5OHh-0000000CvGo-13AA for linux-riscv@lists.infradead.org; Thu, 17 Apr 2025 12:24:03 +0000 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-22423adf751so8185335ad.2 for ; Thu, 17 Apr 2025 05:24:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1744892640; x=1745497440; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=phEa7dcEzmBTgDMqbJRuOlR5YT1C9gMt2qJgUlEtugc=; b=V2JQ1/W4zBqlRqjIczoVRQehZrxIrx7S4WvmxRVcCqBdH2+Z0kpRPZAsfyKGOV6Yql +CYIsB0jT7Oyhlq8G71TUIBPatbfgfHi/rkm2BBlnSVKr8KRaQMEYNUHVDS5qvDBdeJc yvOGxKkdvG+W23+fbA5E6DRhD7gHzjKzb3JAM9YVADUm1DMf3TRkigT80IWY6M/5vIR9 Mi5HLg6gHRzUhYLLz6Bt1omfqukwhXY8NcHSzVQgv4Buam9lt/GKDPzsqkh7iH5jx5rs nvu64A0Mc9UxSBVtW4wsPAVEaE/K2aH97DzzIbSvuLhpOk9cRU+dM12isZG3K/dHTB+x myLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744892640; x=1745497440; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=phEa7dcEzmBTgDMqbJRuOlR5YT1C9gMt2qJgUlEtugc=; b=mJaP1dScsDNqH/1401xREmzkMql2v00lamY4mwgMMmKSdZIZCqhMnFmPt0YjdbkEMX VWwyKzk2xQcxVsUrpGcrixq9kl9Y9prUOn8BTlFRXTcSalhsLEUCj/2wDYRPP34iff8i HXCuwl/U8eJhww/vVfW23/WUcFAxxhyBusSUffcAV8o1mr4AyoGob9M59FuZshde9/dr CZvUre73++O4fs2hTZyBaFwGnAq4Kvj2LphQDZGybghBJxlOVNhUYD8Sv3S9rkhD1WXe 6LZa+vo7CoIqk8M87JiZna7zH5rPIAYzDEnfxekqriVgDoC0I09ERPRQTFjOiJ/F+Pw5 S7qA== X-Forwarded-Encrypted: i=1; AJvYcCWDdyy8EqZeb8Hi4I08wl/FWZoO7CEWRLVErSfG1W6U0pR4RmsMUiRWwM7N2G0B3HvhCDRqSNBCAmA4FA==@lists.infradead.org X-Gm-Message-State: AOJu0YzOki8UahBtCjpiCrO7eKZzdIe9xcYeO1rtJlHKiz7P+iAMK4xX iSl3tz8/3Z2VcO6nQCB1Eg+kAU4h5Rp/AqIV4Qk9tLmGZ2Ui6QRzVwtPoAlH/5w= X-Gm-Gg: ASbGncs9y3sD5fIguvKGF1k1CcqTOllBGgiqfIMFax3q/2mHRkSeshFwkBrtkmK8BW/ 5fpaO/BwhX2EDMj7S0qg3gkM/ow03jeyxP3qh5mEuS0LBY8gUDzo1tnwJUcb+3CVa7m3G6g7Ohi GmfXBuUnXut7N6hUM7D9wqKK5wR6FLOQ9oYX4zkNH8aEP5/3r8d4AY7Ep3UUXH3HvQYCjkG/wyK CmZi0haDhCzPc/yNF9UZu23wK9SO4XvezAUjenpleAsSPFHMCbhD1RtK9Erl1qUXbrvRXVfu3Su zz7quULNC4sJYmvfEda/I/Vi7bSLNjzbkB0vdXEWlQ== X-Google-Smtp-Source: AGHT+IFlc3NJ/iHnmfj5+tOAWrw6nyRe244Guo/NDK5DYXnnNzYpSWLwODKvV6ATsQsDyZwCjTnoTw== X-Received: by 2002:a17:903:2383:b0:229:1717:8826 with SMTP id d9443c01a7336-22c358fd48bmr94947295ad.28.1744892639855; Thu, 17 Apr 2025 05:23:59 -0700 (PDT) Received: from carbon-x1.. ([2a01:e0a:e17:9700:16d2:7456:6634:9626]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22c3ee1a78dsm18489415ad.253.2025.04.17.05.23.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Apr 2025 05:23:58 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= To: Paul Walmsley , Palmer Dabbelt , Anup Patel , Atish Patra , Shuah Khan , Jonathan Corbet , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-kselftest@vger.kernel.org Cc: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Samuel Holland , Andrew Jones Subject: [PATCH v5 00/13] riscv: add SBI FWFT misaligned exception delegation support Date: Thu, 17 Apr 2025 14:19:47 +0200 Message-ID: <20250417122337.547969-1-cleger@rivosinc.com> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250417_052401_529238_4619714B X-CRM114-Status: GOOD ( 17.19 ) 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 VGhlIFNCSSBGaXJtd2FyZSBGZWF0dXJlIGV4dGVuc2lvbiBhbGxvd3MgdGhlIFMtbW9kZSB0byBy ZXF1ZXN0IHNvbWUKc3BlY2lmaWMgZmVhdHVyZXMgKGVpdGhlciBoYXJkd2FyZSBvciBzb2Z0d2Fy ZSkgdG8gYmUgZW5hYmxlZC4gVGhpcwpzZXJpZXMgdXNlcyB0aGlzIGV4dGVuc2lvbiB0byByZXF1 ZXN0IG1pc2FsaWduZWQgYWNjZXNzIGV4Y2VwdGlvbgpkZWxlZ2F0aW9uIHRvIFMtbW9kZSBpbiBv cmRlciB0byBsZXQgdGhlIGtlcm5lbCBoYW5kbGUgaXQuIEl0IGFsc28gYWRkcwpzdXBwb3J0IGZv ciB0aGUgS1ZNIEZXRlQgU0JJIGV4dGVuc2lvbiBiYXNlZCBvbiB0aGUgbWlzYWxpZ25lZCBhY2Nl c3MKaGFuZGxpbmcgaW5mcmFzdHJ1Y3R1cmUuCgpGV0ZUIFNCSSBleHRlbnNpb24gaXMgcGFydCBv ZiB0aGUgU0JJIFYzLjAgc3BlY2lmaWNhdGlvbnMgWzFdLiBJdCBjYW4gYmUKdGVzdGVkIHVzaW5n IHRoZSBxZW11IHByb3ZpZGVkIGF0IFsyXSB3aGljaCBjb250YWlucyB0aGUgc2VyaWVzIGZyb20K WzNdLiBVcHN0cmVhbSBrdm0tdW5pdC10ZXN0cyBjYW4gYmUgdXNlZCBpbnNpZGUga3ZtIHRvIHRl c3RzIHRoZSBjb3JyZWN0CmRlbGVnYXRpb24gb2YgbWlzYWxpZ25lZCBleGNlcHRpb25zLiBVcHN0 cmVhbSBPcGVuU0JJIGNhbiBiZSB1c2VkLgoKTm90ZTogU2luY2UgU0JJIFYzLjAgaXMgbm90IHll dCByYXRpZmllZCwgRldGVCBleHRlbnNpb24gQVBJIGlzIHNwbGl0CmJldHdlZW4gaW50ZXJmYWNl IG9ubHkgYW5kIGltcGxlbWVudGF0aW9uLCBhbGxvd2luZyB0byBwaWNrIG9ubHkgdGhlCmludGVy ZmFjZSB3aGljaCBkbyBub3QgaGF2ZSBoYXJkIGRlcGVuZGVuY2llcyBvbiBTQkkuCgpUaGUgdGVz dHMgY2FuIGJlIHJ1biB1c2luZyB0aGUga3NlbGZ0ZXN0IGZyb20gc2VyaWVzIFs0XS4KCiQgcWVt dS1zeXN0ZW0tcmlzY3Y2NCBcCgktY3B1IHJ2NjQsdHJhcC1taXNhbGlnbmVkLWFjY2Vzcz10cnVl LHY9dHJ1ZSBcCgktTSB2aXJ0IFwKCS1tIDEwMjRNIFwKCS1iaW9zIGZ3X2R5bmFtaWMuYmluIFwK CS1rZXJuZWwgSW1hZ2UKIC4uLgoKICMgLi9taXNhbGlnbmVkCiBUQVAgdmVyc2lvbiAxMwogMS4u MjMKICMgU3RhcnRpbmcgMjMgdGVzdHMgZnJvbSAxIHRlc3QgY2FzZXMuCiAjICBSVU4gICAgICAg ICAgIGdsb2JhbC5ncF9sb2FkX2xoIC4uLgogIyAgICAgICAgICAgIE9LICBnbG9iYWwuZ3BfbG9h ZF9saAogb2sgMSBnbG9iYWwuZ3BfbG9hZF9saAogIyAgUlVOICAgICAgICAgICBnbG9iYWwuZ3Bf bG9hZF9saHUgLi4uCiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX2xodQogb2sgMiBn bG9iYWwuZ3BfbG9hZF9saHUKICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmdwX2xvYWRfbHcgLi4u CiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX2x3CiBvayAzIGdsb2JhbC5ncF9sb2Fk X2x3CiAjICBSVU4gICAgICAgICAgIGdsb2JhbC5ncF9sb2FkX2x3dSAuLi4KICMgICAgICAgICAg ICBPSyAgZ2xvYmFsLmdwX2xvYWRfbHd1CiBvayA0IGdsb2JhbC5ncF9sb2FkX2x3dQogIyAgUlVO ICAgICAgICAgICBnbG9iYWwuZ3BfbG9hZF9sZCAuLi4KICMgICAgICAgICAgICBPSyAgZ2xvYmFs LmdwX2xvYWRfbGQKIG9rIDUgZ2xvYmFsLmdwX2xvYWRfbGQKICMgIFJVTiAgICAgICAgICAgZ2xv YmFsLmdwX2xvYWRfY19sdyAuLi4KICMgICAgICAgICAgICBPSyAgZ2xvYmFsLmdwX2xvYWRfY19s dwogb2sgNiBnbG9iYWwuZ3BfbG9hZF9jX2x3CiAjICBSVU4gICAgICAgICAgIGdsb2JhbC5ncF9s b2FkX2NfbGQgLi4uCiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX2NfbGQKIG9rIDcg Z2xvYmFsLmdwX2xvYWRfY19sZAogIyAgUlVOICAgICAgICAgICBnbG9iYWwuZ3BfbG9hZF9jX2xk c3AgLi4uCiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX2NfbGRzcAogb2sgOCBnbG9i YWwuZ3BfbG9hZF9jX2xkc3AKICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmdwX2xvYWRfc2ggLi4u CiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX3NoCiBvayA5IGdsb2JhbC5ncF9sb2Fk X3NoCiAjICBSVU4gICAgICAgICAgIGdsb2JhbC5ncF9sb2FkX3N3IC4uLgogIyAgICAgICAgICAg IE9LICBnbG9iYWwuZ3BfbG9hZF9zdwogb2sgMTAgZ2xvYmFsLmdwX2xvYWRfc3cKICMgIFJVTiAg ICAgICAgICAgZ2xvYmFsLmdwX2xvYWRfc2QgLi4uCiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5n cF9sb2FkX3NkCiBvayAxMSBnbG9iYWwuZ3BfbG9hZF9zZAogIyAgUlVOICAgICAgICAgICBnbG9i YWwuZ3BfbG9hZF9jX3N3IC4uLgogIyAgICAgICAgICAgIE9LICBnbG9iYWwuZ3BfbG9hZF9jX3N3 CiBvayAxMiBnbG9iYWwuZ3BfbG9hZF9jX3N3CiAjICBSVU4gICAgICAgICAgIGdsb2JhbC5ncF9s b2FkX2Nfc2QgLi4uCiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5ncF9sb2FkX2Nfc2QKIG9rIDEz IGdsb2JhbC5ncF9sb2FkX2Nfc2QKICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmdwX2xvYWRfY19z ZHNwIC4uLgogIyAgICAgICAgICAgIE9LICBnbG9iYWwuZ3BfbG9hZF9jX3Nkc3AKIG9rIDE0IGds b2JhbC5ncF9sb2FkX2Nfc2RzcAogIyAgUlVOICAgICAgICAgICBnbG9iYWwuZnB1X2xvYWRfZmx3 IC4uLgogIyAgICAgICAgICAgIE9LICBnbG9iYWwuZnB1X2xvYWRfZmx3CiBvayAxNSBnbG9iYWwu ZnB1X2xvYWRfZmx3CiAjICBSVU4gICAgICAgICAgIGdsb2JhbC5mcHVfbG9hZF9mbGQgLi4uCiAj ICAgICAgICAgICAgT0sgIGdsb2JhbC5mcHVfbG9hZF9mbGQKIG9rIDE2IGdsb2JhbC5mcHVfbG9h ZF9mbGQKICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmZwdV9sb2FkX2NfZmxkIC4uLgogIyAgICAg ICAgICAgIE9LICBnbG9iYWwuZnB1X2xvYWRfY19mbGQKIG9rIDE3IGdsb2JhbC5mcHVfbG9hZF9j X2ZsZAogIyAgUlVOICAgICAgICAgICBnbG9iYWwuZnB1X2xvYWRfY19mbGRzcCAuLi4KICMgICAg ICAgICAgICBPSyAgZ2xvYmFsLmZwdV9sb2FkX2NfZmxkc3AKIG9rIDE4IGdsb2JhbC5mcHVfbG9h ZF9jX2ZsZHNwCiAjICBSVU4gICAgICAgICAgIGdsb2JhbC5mcHVfc3RvcmVfZnN3IC4uLgogIyAg ICAgICAgICAgIE9LICBnbG9iYWwuZnB1X3N0b3JlX2Zzdwogb2sgMTkgZ2xvYmFsLmZwdV9zdG9y ZV9mc3cKICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmZwdV9zdG9yZV9mc2QgLi4uCiAjICAgICAg ICAgICAgT0sgIGdsb2JhbC5mcHVfc3RvcmVfZnNkCiBvayAyMCBnbG9iYWwuZnB1X3N0b3JlX2Zz ZAogIyAgUlVOICAgICAgICAgICBnbG9iYWwuZnB1X3N0b3JlX2NfZnNkIC4uLgogIyAgICAgICAg ICAgIE9LICBnbG9iYWwuZnB1X3N0b3JlX2NfZnNkCiBvayAyMSBnbG9iYWwuZnB1X3N0b3JlX2Nf ZnNkCiAjICBSVU4gICAgICAgICAgIGdsb2JhbC5mcHVfc3RvcmVfY19mc2RzcCAuLi4KICMgICAg ICAgICAgICBPSyAgZ2xvYmFsLmZwdV9zdG9yZV9jX2ZzZHNwCiBvayAyMiBnbG9iYWwuZnB1X3N0 b3JlX2NfZnNkc3AKICMgIFJVTiAgICAgICAgICAgZ2xvYmFsLmdlbl9zaWdidXMgLi4uCiBbMTI3 OTcuOTg4NjQ3XSBtaXNhbGlnbmVkWzYxOF06IHVuaGFuZGxlZCBzaWduYWwgNyBjb2RlIDB4MSBh dCAweDAwMDAwMDAwMDAwMTRkYzAgaW4gbWlzYWxpZ25lZFs0ZGMwLDEwMDAwKzc2MDAwXQogWzEy Nzk3Ljk4ODk5MF0gQ1BVOiAwIFVJRDogMCBQSUQ6IDYxOCBDb21tOiBtaXNhbGlnbmVkIE5vdCB0 YWludGVkIDYuMTMuMC1yYzYtMDAwMDgtZzRlYzQ0Njg5NjdjOS1kaXJ0eSAjNTEKIFsxMjc5Ny45 ODkxNjldIEhhcmR3YXJlIG5hbWU6IHJpc2N2LXZpcnRpbyxxZW11IChEVCkKIFsxMjc5Ny45ODky NjRdIGVwYyA6IDAwMDAwMDAwMDAwMTRkYzAgcmEgOiAwMDAwMDAwMDAwMDE0ZDAwIHNwIDogMDAw MDdmZmZlMTY1ZDEwMAogWzEyNzk3Ljk4OTQwN10gIGdwIDogMDAwMDAwMDAwMDA4ZjZlOCB0cCA6 IDAwMDAwMDAwMDAwOTU3NjAgdDAgOiAwMDAwMDAwMDAwMDAwMDA4CiBbMTI3OTcuOTg5NTQ0XSAg dDEgOiAwMDAwMDAwMDAwMDk2NWQ4IHQyIDogMDAwMDAwMDAwMDA4ZTgzMCBzMCA6IDAwMDA3ZmZm ZTE2NWQxNjAKIFsxMjc5Ny45ODk2OTJdICBzMSA6IDAwMDAwMDAwMDAwMDAwMWEgYTAgOiAwMDAw MDAwMDAwMDAwMDAwIGExIDogMDAwMDAwMDAwMDAwMDAwMgogWzEyNzk3Ljk4OTgzMV0gIGEyIDog MDAwMDAwMDAwMDAwMDAwMCBhMyA6IDAwMDAwMDAwMDAwMDAwMDAgYTQgOiBmZmZmZmZmZmRlYWRi ZWVmCiBbMTI3OTcuOTg5OTY0XSAgYTUgOiAwMDAwMDAwMDAwMDhlZjYxIGE2IDogNjI2NzY5NzM1 ZjZlMDAwMCBhNyA6IGZmZmZmZmZmZmZmZmYwMDAKIFsxMjc5Ny45OTAwOTRdICBzMiA6IDAwMDAw MDAwMDAwMDAwMDEgczMgOiAwMDAwN2ZmZmUxNjVkODM4IHM0IDogMDAwMDdmZmZlMTY1ZDg0OAog WzEyNzk3Ljk5MDIzOF0gIHM1IDogMDAwMDAwMDAwMDAwMDAxYSBzNiA6IDAwMDAwMDAwMDAwMTA0 NDIgczcgOiAwMDAwMDAwMDAwMDEwMjAwCiBbMTI3OTcuOTkwMzkxXSAgczggOiAwMDAwMDAwMDAw MDAwMDNhIHM5IDogMDAwMDAwMDAwMDA5NDUwOCBzMTA6IDAwMDAwMDAwMDAwMDAwMDAKIFsxMjc5 Ny45OTA1MjZdICBzMTE6IDAwMDA1NTU1Njc0NjA2NjggdDMgOiAwMDAwN2ZmZmUxNjVkMDcwIHQ0 IDogMDAwMDAwMDAwMDA5NjVkMAogWzEyNzk3Ljk5MDY1Nl0gIHQ1IDogZmVmZWZlZmVmZWZlZmVm ZiB0NiA6IDAwMDAwMDAwMDAwMDAwNzMKIFsxMjc5Ny45OTA3NTZdIHN0YXR1czogMDAwMDAwMDIw MDAwNDAyMCBiYWRhZGRyOiAwMDAwMDAwMDAwMDhlZjYxIGNhdXNlOiAwMDAwMDAwMDAwMDAwMDA2 CiBbMTI3OTcuOTkwOTExXSBDb2RlOiA4NzkzIDg3OTEgMzQyMyBmY2Y0IDM3ODMgZmM4NCBjNzM3 IGRlYWQgMDcxMyBlZWY3IChjMzk4KSAwMDAxCiAjICAgICAgICAgICAgT0sgIGdsb2JhbC5nZW5f c2lnYnVzCiBvayAyMyBnbG9iYWwuZ2VuX3NpZ2J1cwogIyBQQVNTRUQ6IDIzIC8gMjMgdGVzdHMg cGFzc2VkLgogIyBUb3RhbHM6IHBhc3M6MjMgZmFpbDowIHhmYWlsOjAgeHBhc3M6MCBza2lwOjAg ZXJyb3I6MAoKV2l0aCBrdm0tdG9vbHM6CgogIyBsa3ZtIHJ1biAtayBzYmkuZmxhdCAtbSAxMjgK ICBJbmZvOiAjIGxrdm0gcnVuIC1rIHNiaS5mbGF0IC1tIDEyOCAtYyAxIC0tbmFtZSBndWVzdC05 NwogIEluZm86IFJlbW92ZWQgZ2hvc3Qgc29ja2V0IGZpbGUgIi9yb290Ly5sa3ZtLy9ndWVzdC05 Ny5zb2NrIi4KCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyAgICBrdm0tdW5pdC10ZXN0cwogIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKCiAuLi4gW3Rlc3QgbWVzc2FnZXMgZWxpZGVkXQogUEFTUzogc2JpOiBmd2Z0 OiBGV0ZUIGV4dGVuc2lvbiBwcm9iaW5nIG5vIGVycm9yCiBQQVNTOiBzYmk6IGZ3ZnQ6IGdldC9z ZXQgcmVzZXJ2ZWQgZmVhdHVyZSAweDYgZXJyb3IgPT0gU0JJX0VSUl9ERU5JRUQKIFBBU1M6IHNi aTogZndmdDogZ2V0L3NldCByZXNlcnZlZCBmZWF0dXJlIDB4M2ZmZmZmZmYgZXJyb3IgPT0gU0JJ X0VSUl9ERU5JRUQKIFBBU1M6IHNiaTogZndmdDogZ2V0L3NldCByZXNlcnZlZCBmZWF0dXJlIDB4 ODAwMDAwMDAgZXJyb3IgPT0gU0JJX0VSUl9ERU5JRUQKIFBBU1M6IHNiaTogZndmdDogZ2V0L3Nl dCByZXNlcnZlZCBmZWF0dXJlIDB4YmZmZmZmZmYgZXJyb3IgPT0gU0JJX0VSUl9ERU5JRUQKIFBB U1M6IHNiaTogZndmdDogbWlzYWxpZ25lZF9kZWxlZzogR2V0IG1pc2FsaWduZWQgZGVsZWcgZmVh dHVyZSBubyBlcnJvcgogUEFTUzogc2JpOiBmd2Z0OiBtaXNhbGlnbmVkX2RlbGVnOiBTZXQgbWlz YWxpZ25lZCBkZWxlZyBmZWF0dXJlIGludmFsaWQgdmFsdWUgZXJyb3IKIFBBU1M6IHNiaTogZndm dDogbWlzYWxpZ25lZF9kZWxlZzogU2V0IG1pc2FsaWduZWQgZGVsZWcgZmVhdHVyZSBpbnZhbGlk IHZhbHVlIGVycm9yCiBQQVNTOiBzYmk6IGZ3ZnQ6IG1pc2FsaWduZWRfZGVsZWc6IFNldCBtaXNh bGlnbmVkIGRlbGVnIGZlYXR1cmUgdmFsdWUgbm8gZXJyb3IKIFBBU1M6IHNiaTogZndmdDogbWlz YWxpZ25lZF9kZWxlZzogU2V0IG1pc2FsaWduZWQgZGVsZWcgZmVhdHVyZSB2YWx1ZSAwCiBQQVNT OiBzYmk6IGZ3ZnQ6IG1pc2FsaWduZWRfZGVsZWc6IFNldCBtaXNhbGlnbmVkIGRlbGVnIGZlYXR1 cmUgdmFsdWUgbm8gZXJyb3IKIFBBU1M6IHNiaTogZndmdDogbWlzYWxpZ25lZF9kZWxlZzogU2V0 IG1pc2FsaWduZWQgZGVsZWcgZmVhdHVyZSB2YWx1ZSAxCiBQQVNTOiBzYmk6IGZ3ZnQ6IG1pc2Fs aWduZWRfZGVsZWc6IFZlcmlmeSBtaXNhbGlnbmVkIGxvYWQgZXhjZXB0aW9uIHRyYXAgaW4gc3Vw ZXJ2aXNvcgogU1VNTUFSWTogNTAgdGVzdHMsIDIgdW5leHBlY3RlZCBmYWlsdXJlcywgMTIgc2tp cHBlZAoKVGhpcyBzZXJpZXMgaXMgYXZhaWxhYmxlIGF0IFs1XS4KCkxpbms6IGh0dHBzOi8vZ2l0 aHViLmNvbS9yaXNjdi1ub24taXNhL3Jpc2N2LXNiaS1kb2MvcmVsZWFzZXMvZG93bmxvYWQvdnYz LjAtcmMyL3Jpc2N2LXNiaS5wZGYgWzFdCkxpbms6IGh0dHBzOi8vZ2l0aHViLmNvbS9yaXZvc2lu Yy9xZW11L3RyZWUvZGV2L2NsZWdlci9taXNhbGlnbmVkIFsyXQpMaW5rOiBodHRwczovL2xvcmUu a2VybmVsLm9yZy9hbGwvMjAyNDEyMTEyMTE5MzMuMTk4NzkyLTMtZmtvbnJhZEBhbWQuY29tL1Qv IFszXQpMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9saW51eC1yaXNjdi8yMDI1MDQxNDEy MzU0My4xNjE1NDc4LTEtY2xlZ2VyQHJpdm9zaW5jLmNvbSBbNF0KTGluazogaHR0cHM6Ly9naXRo dWIuY29tL3Jpdm9zaW5jL2xpbnV4L3RyZWUvZGV2L2NsZWdlci9md2Z0IFs1XQotLS0KClY1Ogog LSBSZXR1cm4gRVJBTkdFIGFzIG1hcHBpbmcgZm9yIFNCSV9FUlJfQkFEX1JBTkdFCiAtIFJlbW92 ZWQgdW51c2VkIHNiaV9md2Z0X2dldCgpCiAtIEZpeCBrZXJuZWwgZm9yIHNiaV9md2Z0X2xvY2Fs X3NldF9jcHVtYXNrKCkKIC0gRml4IGluZGVudGF0aW9uIGZvciBzYmlfZndmdF9sb2NhbF9zZXQo KQogLSBSZW1vdmUgc3B1cmlvdXMgc3BhY2UgaW4ga3ZtX3NiaV9md2Z0X29wcy4KIC0gUmViYXNl ZCBvbiBvcmlnaW4vbWFzdGVyCiAtIFJlbW92ZSBmaXhlcyBjb21taXRzIGFuZCBzZW50IHRoZW0g YXMgYSBzZXBhcmF0ZSBzZXJpZXMgWzRdCgpWNDoKIC0gQ2hlY2sgU0JJIHZlcnNpb24gMy4wIGlu c3RlYWQgb2YgMi4wIGZvciBGV0ZUIHByZXNlbmNlCiAtIFVzZSBsb25nIGZvciBrdm1fc2JpX2Z3 ZnQgb3BlcmF0aW9uIHJldHVybiB2YWx1ZQogLSBJbml0IEtWTSBzYmkgZXh0ZW5zaW9uIGV2ZW4g aWYgZGVmYXVsdF9kaXNhYmxlZAogLSBSZW1vdmUgcmV2ZXJ0X29uX2ZhaWwgcGFyYW1ldGVyIGZv ciBzYmlfZndmdF9mZWF0dXJlX3NldCgpLgogLSBGaXggY29tbWVudHMgZm9yIHNiaV9md2Z0X3Nl dC9nZXQoKQogLSBPbmx5IGhhbmRsZSBsb2NhbCBmZWF0dXJlcyAodGhlcmUgYXJlIG5vIGdsb2Jh bHMgeWV0IGluIHRoZSBzcGVjKQogLSBBZGQgbmV3IFNCSSBlcnJvcnMgdG8gc2JpX2Vycl9tYXBf bGludXhfZXJybm8oKQoKVjM6CiAtIEFkZGVkIGNvbW1lbnQgYWJvdXQga3ZtIHNiaSBmd2Z0IHN1 cHBvcnRlZC9zZXQvZ2V0IGNhbGxiYWNrCiAgIHJlcXVpcmVtZW50cwogLSBNb3ZlIHN0cnVjdCBr dm1fc2JpX2Z3ZnRfZmVhdHVyZSBpbiBrdm1fc2JpX2Z3ZnQuYwogLSBBZGQgYSBGV0ZUIGludGVy ZmFjZQoKVjI6CiAtIEFkZGVkIEtzZWxmdGVzdCBmb3IgbWlzYWxpZ25lZCB0ZXN0aW5nCiAtIEFk ZGVkIGdldF91c2VyKCkgdXNhZ2UgaW5zdGVhZCBvZiBfX2dldF91c2VyKCkKIC0gUmVlbmFibGUg aW50ZXJydXB0IHdoZW4gcG9zc2libGUgaW4gbWlzYWxpZ25lZCBhY2Nlc3MgaGFuZGxpbmcKIC0g RG9jdW1lbnQgdGhhdCByaXNjdiBzdXBwb3J0cyB1bmFsaWduZWQtdHJhcHMKIC0gRml4IEtWTSBl eHRlbnNpb24gc3RhdGUgd2hlbiBhbiBpbml0IGZ1bmN0aW9uIGlzIHByZXNlbnQKIC0gUmV3b3Jr IFNCSSBtaXNhbGlnbmVkIGFjY2Vzc2VzIHRyYXAgZGVsZWdhdGlvbiBjb2RlCiAtIEFkZGVkIHN1 cHBvcnQgZm9yIENQVSBob3RwbHVnZ2luZwogLSBBZGRlZCBLVk0gU0JJIHJlc2V0IGNhbGxiYWNr CiAtIEFkZGVkIHJlc2V0IGZvciBLVk0gU0JJIEZXRlQgbG9jawogLSBSZXR1cm4gU0JJX0VSUl9E RU5JRURfTE9DS0VEIHdoZW4gTE9DSyBmbGFnIGlzIHNldAoKQ2zDqW1lbnQgTMOpZ2VyICgxMyk6 CiAgcmlzY3Y6IHNiaTogYWRkIEZpcm13YXJlIEZlYXR1cmUgKEZXRlQpIFNCSSBleHRlbnNpb25z IGRlZmluaXRpb25zCiAgcmlzY3Y6IHNiaTogYWRkIG5ldyBTQkkgZXJyb3IgbWFwcGluZ3MKICBy aXNjdjogc2JpOiBhZGQgRldGVCBleHRlbnNpb24gaW50ZXJmYWNlCiAgcmlzY3Y6IHNiaTogYWRk IFNCSSBGV0ZUIGV4dGVuc2lvbiBjYWxscwogIHJpc2N2OiBtaXNhbGlnbmVkOiByZXF1ZXN0IG1p c2FsaWduZWQgZXhjZXB0aW9uIGZyb20gU0JJCiAgcmlzY3Y6IG1pc2FsaWduZWQ6IHVzZSBvbl9l YWNoX2NwdSgpIGZvciBzY2FsYXIgbWlzYWxpZ25lZCBhY2Nlc3MKICAgIHByb2JpbmcKICByaXNj djogbWlzYWxpZ25lZDogdXNlIGNvcnJlY3QgQ09ORklHXyBpZmRlZiBmb3IKICAgIG1pc2FsaWdu ZWRfYWNjZXNzX3NwZWVkCiAgcmlzY3Y6IG1pc2FsaWduZWQ6IG1vdmUgZW11bGF0ZWQgYWNjZXNz IHVuaWZvcm1pdHkgY2hlY2sgaW4gYSBmdW5jdGlvbgogIHJpc2N2OiBtaXNhbGlnbmVkOiBhZGQg YSBmdW5jdGlvbiB0byBjaGVjayBtaXNhbGlnbiB0cmFwIGRlbGVnYWJpbGl0eQogIFJJU0MtVjog S1ZNOiBhZGQgU0JJIGV4dGVuc2lvbiBpbml0KCkvZGVpbml0KCkgZnVuY3Rpb25zCiAgUklTQy1W OiBLVk06IGFkZCBTQkkgZXh0ZW5zaW9uIHJlc2V0IGNhbGxiYWNrCiAgUklTQy1WOiBLVk06IGFk ZCBzdXBwb3J0IGZvciBGV0ZUIFNCSSBleHRlbnNpb24KICBSSVNDLVY6IEtWTTogYWRkIHN1cHBv cnQgZm9yIFNCSV9GV0ZUX01JU0FMSUdORURfREVMRUcKCiBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNt L2NwdWZlYXR1cmUuaCAgICAgICAgfCAgIDggKy0KIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20va3Zt X2hvc3QuaCAgICAgICAgICB8ICAgNSArLQogYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fdmNw dV9zYmkuaCAgICAgIHwgIDEyICsKIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2Jp X2Z3ZnQuaCB8ICAyOSArKysKIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vc2JpLmggICAgICAgICAg ICAgICB8ICA2MCArKysrKwogYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oICAgICAg ICAgIHwgICAxICsKIGFyY2gvcmlzY3Yva2VybmVsL3NiaS5jICAgICAgICAgICAgICAgICAgICB8 ICA3NSArKysrKysKIGFyY2gvcmlzY3Yva2VybmVsL3RyYXBzX21pc2FsaWduZWQuYyAgICAgICB8 IDExMCArKysrKysrKy0KIGFyY2gvcmlzY3Yva2VybmVsL3VuYWxpZ25lZF9hY2Nlc3Nfc3BlZWQu YyB8ICAgOCArLQogYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgIHwg ICAxICsKIGFyY2gvcmlzY3Yva3ZtL3ZjcHUuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgNyAr LQogYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmkuYyAgICAgICAgICAgICAgICAgIHwgIDU0ICsrKysr CiBhcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9md2Z0LmMgICAgICAgICAgICAgfCAyNTIgKysrKysr KysrKysrKysrKysrKysrCiBhcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9zdGEuYyAgICAgICAgICAg ICAgfCAgIDMgKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDYxMCBpbnNlcnRpb25zKCspLCAxNSBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV92 Y3B1X3NiaV9md2Z0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3Jpc2N2L2t2bS92Y3B1X3Ni aV9md2Z0LmMKCi0tIAoyLjQ5LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LXJpc2N2Cg==