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 36FC4CCF2DE for ; Mon, 19 Oct 2026 14:00:45 +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:References:In-Reply-To: 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: List-Owner; bh=WTTS1P7VyipHTSefk+Za0oHXldV8tCJnoEWC7nnPO9k=; b=uxNqUCCruLDndy BbmipcyULwJP8gLNQKaRjvhGTur+YYzU5jg+dFY/Cipzn4HQA1ZYsNR4UsMxVJellDfKtRbXBl3pG 6bLBDwAJAro8SQ72/Y0BhjQnKQ5DVmCHLjf1Ppr2xXVGQbG8A86JJI4XtYj4TvdjWWh1WT8i8Sm3f tjwhHm2aGo1oWIRz34TjloxBWTT3tBHqzWKcxl5tNGLpXbv0TARCltg76coK7b+FpP9QP78uE8TFo wa+GaCWq2Z20eqf75XhGnt50GZm9ProW9KlscIgPmjr6a80d5HXUUXIe3/4n2vv5PUXwzmGVbJJVP U4jZDk2VlQnFTWqhTmqg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xInuh-00000007clb-2G0a; Mon, 19 Oct 2026 14:00:31 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xInuf-00000007cjR-261L for linux-riscv@lists.infradead.org; Mon, 19 Oct 2026 14:00:29 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id DCEA46020A; Mon, 19 Oct 2026 14:00:28 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 836BF1F000C6; Mon, 19 Oct 2026 14:00:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792418428; bh=CDyUvjRFuY6gb/FANiwi4tYUqLnklY0TRx7rrQv5F9E=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=BLidLT4/lGMMuz3I+Yx/yaHIzQjxenx0c4/kA21a9Z7c48Nkv6AeV0jjIcyguY3UD mxUUabP7m1WdQu4n4GsiHY2hAoBfwtID7XB+YwBdWFgpGC0WaqdCUyfCyDQU71kCTk uwV1sJ2ZPGWrtWmplpc5JBpdEvQkywTVbiYoolJJxy6eSJbsPLBmUNL+0TpLMsJdrT d0U/VQ0GecWNIUJECjX1xxjow9XWa3cVsxgVY/hZHS3sXU/RM1fRmz03pDpVC66OOa G4c8OUF8bJ3v31W3oMR9gSlN1t47EVuXi7yqN4NgLiFxdmjYjlzwlRQsoxBI/CnF7O 7MhfkTnCBtyHw== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Yong-Xuan Wang , Samuel Holland , Paul Walmsley , Sasha Levin , palmer@dabbelt.com, aou@eecs.berkeley.edu, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH AUTOSEL 6.18] RISC-V: errata: Add SiFive MAL-9092 workaround Date: Mon, 19 Oct 2026 09:48:53 -0400 Message-ID: <20261019135441.1420968-242-sashal@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20261019135441.1420968-1-sashal@kernel.org> References: <20261019135441.1420968-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.18.57 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 RnJvbTogWW9uZy1YdWFuIFdhbmcgPHlvbmd4dWFuLndhbmdAc2lmaXZlLmNvbT4KClsgVXBzdHJl YW0gY29tbWl0IDE0OGFiODczZDgxOTRjYjQ0ZjI5NDc0ZGEzYjQ0MjhmYTJlMTAwZDEgXQoKU2lG aXZlIGNvcmVzIHdpdGggTUFMLTkwOTIgcmVxdWlyZSBmZW5jZS5ydyBpbnN0cnVjdGlvbnMgYXJv dW5kCkhMVi9ITFZYL0hTViBoeXBlcnZpc29yIGluc3RydWN0aW9ucyB0byBlbnN1cmUgcHJvcGVy IG1lbW9yeSBvcmRlcmluZwp3aGVuIGFjY2Vzc2luZyBndWVzdCBtZW1vcnkuCgpOb3RlIHRoYXQg SFNUQVRVUy5IVSBpcyBjbGVhcmVkIGR1cmluZyBLVk0gaW5pdGlhbGl6YXRpb24sIHJlc3RyaWN0 aW5nCmh5cGVydmlzb3IgaW5zdHJ1Y3Rpb25zIHRvIEhTLW1vZGUgb25seS4gSWYgZnV0dXJlIGNo YW5nZXMgZW5hYmxlCkhTVEFUVVMuSFUgZm9yIFUtbW9kZSBhY2Nlc3MsIGFkZGl0aW9uYWwgZXJy YXRhIGNvbnNpZGVyYXRpb25zIHdpbGwgYmUKbmVlZGVkLgoKU2lnbmVkLW9mZi1ieTogWW9uZy1Y dWFuIFdhbmcgPHlvbmd4dWFuLndhbmdAc2lmaXZlLmNvbT4KUmV2aWV3ZWQtYnk6IFNhbXVlbCBI b2xsYW5kIDxzYW11ZWwuaG9sbGFuZEBzaWZpdmUuY29tPgpMaW5rOiBodHRwczovL3BhdGNoLm1z Z2lkLmxpbmsvMjAyNjA4MTctc2lmaXZlLWVycmF0YS12MS0xLTZhODBmMWEyNzQzZEBzaWZpdmUu Y29tClNpZ25lZC1vZmYtYnk6IFBhdWwgV2FsbXNsZXkgPHBqd0BrZXJuZWwub3JnPgpTaWduZWQt b2ZmLWJ5OiBTYXNoYSBMZXZpbiA8c2FzaGFsQGtlcm5lbC5vcmc+Ci0tLQoKTExNIEdlbmVyYXRl ZCBleHBsYW5hdGlvbnMsIG1heSBiZSBjb21wbGV0ZWx5IGJvZ3VzOgoKVGhlIGxvY2FsIHRyZWUg aXMgKio2LjE4LnkqKiAoYHY2LjE4LjU3YCkuIFRoaXMgU2lGaXZlIE1BTC05MDkyIGNoYW5nZQpp cyBhIGhhcmR3YXJlLWVycmF0YSB3b3JrYXJvdW5kIGZvciBLVk0gZ3Vlc3QtbWVtb3J5IGFjY2Vz c2VzLCBhbmQgdGhlCmNvZGUgaXQgcGF0Y2hlcyBpcyBhbHJlYWR5IGluIHRoaXMgc2VyaWVzLgoK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09ClBIQVNFIDE6IENPTU1JVCBNRVNTQUdFIEZPUkVOU0lDUwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqU3RlcCAx LjE6IFBBUlNFIFRIRSBTVUJKRUNUIExJTkUqKgoKUmVjb3JkOiBbc3Vic3lzdGVtOiBSSVNDLVYg ZXJyYXRhL1NpRml2ZV0gW2FjdGlvbiB2ZXJiOiBBZGRdIFt3b3JrYXJvdW5kCmZvciBTaUZpdmUg TUFMLTkwOTI6IGBmZW5jZS5yd2AgYXJvdW5kIEhMVi9ITFZYL0hTVl0KCioqU3RlcCAxLjI6IFBB UlNFIEFMTCBDT01NSVQgTUVTU0FHRSBUQUdTKioKClJlY29yZDoKLSBObyBgRml4ZXM6YCB0YWcg KGV4cGVjdGVkIGZvciB0aGlzIHJldmlldyBxdWV1ZSkKLSBObyBgUmVwb3J0ZWQtYnk6YCAvIGBU ZXN0ZWQtYnk6YCAvIGBBY2tlZC1ieTpgCi0gYFJldmlld2VkLWJ5OiBTYW11ZWwgSG9sbGFuZCA8 c2FtdWVsLmhvbGxhbmRAc2lmaXZlLmNvbT5gIChTaUZpdmUsCiAgc2FtZSB2ZW5kb3IpCi0gYExp bms6IGh0dHBzOi8vcGF0Y2gubXNnaWQubGluay8yMDI2MDgxNy1zaWZpdmUtCiAgZXJyYXRhLXYx LTEtNmE4MGYxYTI3NDNkQHNpZml2ZS5jb21gCi0gYFNpZ25lZC1vZmYtYnk6IFlvbmctWHVhbiBX YW5nIDx5b25neHVhbi53YW5nQHNpZml2ZS5jb20+YCAoYXV0aG9yLAogIFNpRml2ZSkKLSBgU2ln bmVkLW9mZi1ieTogUGF1bCBXYWxtc2xleSA8cGp3QGtlcm5lbC5vcmc+YCAoUklTQy1WIGFyY2gK ICBtYWludGFpbmVyKQotIE5vIGBDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZ2AgKGV4cGVjdGVk OyBub3QgYSBuZWdhdGl2ZSBzaWduYWwpCi0gU2FzaGEgTGV2aW4gU09CIGlnbm9yZWQgcGVyIGlu c3RydWN0aW9ucwoKKipTdGVwIDEuMzogQU5BTFlaRSBUSEUgQ09NTUlUIEJPRFkgVEVYVCoqCgpS ZWNvcmQ6Ci0gW0J1Z10gU2lGaXZlIGNvcmVzIHdpdGggTUFMLTkwOTIgZG8gbm90IHByb3ZpZGUg dGhlIHJlcXVpcmVkIG1lbW9yeQogIG9yZGVyaW5nIGFyb3VuZCBoeXBlcnZpc29yIGxvYWQvc3Rv cmUgKGBITFZgL2BITFZYYC9gSFNWYCkgd2hlbgogIHRvdWNoaW5nIGd1ZXN0IG1lbW9yeS4KLSBb U3ltcHRvbV0gV3Jvbmcvc3RhbGUgZ3Vlc3QgaW5zdHJ1Y3Rpb24gb3IgZGF0YSBvYnNlcnZlZCBi eSB0aGUgaG9zdAogIGh5cGVydmlzb3IgKEtWTSB1bnByaXZpbGVnZWQgZ3Vlc3QtbWVtb3J5IGFj Y2VzcykuIE5vdCBhIGRvY3VtZW50ZWQKICBvb3BzOyBpdCBpcyBhbiBhcmNoaXRlY3R1cmUtbGV2 ZWwgb3JkZXJpbmcgaG9sZS4KLSBbVmVyc2lvbl0gTm9uZSBzdGF0ZWQuIFBhdWwgcXVldWVkIGl0 IGZvciB2Ny4zLXJjLiBBZmZlY3RlZCBgbWltcGlkYAogIHZhbHVlcyBsb29rIGxpa2UgMjAyNS0x MC0zMSwgMjAyNS0xMi0xNywgYW5kIDIwMjYtMDMtMjAgc2lsaWNvbi4KLSBbUm9vdCBjYXVzZV0g TWlzc2luZyBgZmVuY2UucndgIGFyb3VuZCB0aG9zZSBoeXBlcnZpc29yIGluc3RydWN0aW9ucwog IG9uIHNwZWNpZmljIGBtYXJjaGlkYC9gbWltcGlkYCBjb21iaW5hdGlvbnMuIGBIU1RBVFVTLkhV YCBpcyBsZWZ0CiAgY2xlYXIgaW4gS1ZNIHNldHVwLCBzbyB0aGUgd29ya2Fyb3VuZCBpcyBIUy1t b2RlIG9ubHkuCgoqKlN0ZXAgMS40OiBERVRFQ1QgSElEREVOIEJVRyBGSVhFUyoqCgpSZWNvcmQ6 IE5vdCBhIGRpc2d1aXNlZCBjbGVhbnVwLiBJdCBpcyBhbiBleHBsaWNpdCBoYXJkd2FyZS1lcnJh dGEKd29ya2Fyb3VuZCwgd2hpY2ggaXMgYSBzdGFibGUgZXhjZXB0aW9uIGNhdGVnb3J5IChxdWly a3Mvd29ya2Fyb3VuZHMpLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09ClBIQVNFIDI6IERJRkYgQU5BTFlTSVMgLSBMSU5FIEJZ IExJTkUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CgoqKlN0ZXAgMi4xOiBJTlZFTlRPUlkgVEhFIENIQU5HRVMqKgoKUmVjb3Jk OgotIGBhcmNoL3Jpc2N2L0tjb25maWcuZXJyYXRhYDogKzE0IChgQ09ORklHX0VSUkFUQV9TSUZJ VkVfTUFMXzkwOTJgLAogIGBkZXBlbmRzIG9uIEVSUkFUQV9TSUZJVkUgJiYgNjRCSVRgLCBgZGVm YXVsdCB5YCkKLSBgYXJjaC9yaXNjdi9lcnJhdGEvc2lmaXZlL2VycmF0YS5jYDogKzIwIChgZXJy YXRhX21hbF85MDkyX2NoZWNrX2Z1bmNgCiAgKyBsaXN0IGVudHJ5KQotIGBhcmNoL3Jpc2N2L2lu Y2x1ZGUvYXNtL2VycmF0YV9saXN0X3ZlbmRvcnMuaGA6ICsyLy0xCiAgKGBFUlJBVEFfU0lGSVZF X01BTF85MDkyIDJgLCBgRVJSQVRBX1NJRklWRV9OVU1CRVIgM2ApCi0gYGFyY2gvcmlzY3YvaW5j bHVkZS9hc20vaW5zbi1kZWYuaGA6ICsxMy8tMyAoQUxURVJOQVRJVkUgbm9w4oaSYGZlbmNlCiAg cncscndgIGFyb3VuZCBgSExWWF9IVWAvYEhMVl9XYC9gSExWX0RgKQotIFRvdGFsOiAqKjQgZmls ZXMsICs0OS8tNCoqLiBGdW5jdGlvbnM6IGBlcnJhdGFfbWFsXzkwOTJfY2hlY2tfZnVuY2AKICAo bmV3KSwgYGVycmF0YV9saXN0W11gIChleHRlbmRlZCksIEhMViBtYWNyb3MuIFNjb3BlOiBzaW5n bGUtYXJjaAogIHN1cmdpY2FsIGVycmF0YSwgbm90IGEgcmVmYWN0b3IuCgoqKlN0ZXAgMi4yOiBV TkRFUlNUQU5EIFRIRSBDT0RFIEZMT1cgQ0hBTkdFKioKClJlY29yZDoKLSBQcm9iZTogcHJldmlv dXNseSBvbmx5IENJUC00NTMvQ0lQLTEyMDAuIEFmdGVyLAogIGBtYXJjaGlkPT0weDgwMDAwMDAw MDAwMDAxMDlgIGFuZCBgbWltcGlkYCBpbgogIGB7MHgxOTI1MTAzMSwweDE5MjUxMjE3LDB4MTky NjAzMjB9YCBhbHNvIHNldCBiaXQKICBgRVJSQVRBX1NJRklWRV9NQUxfOTA5MmAuCi0gSExWIG1h Y3JvczogcHJldmlvdXNseSBhIHNpbmdsZSBoeXBlcnZpc29yIGxvYWQuIEFmdGVyLCBgbm9wYCAo b3IKICBwYXRjaGVkIGBmZW5jZSBydyxyd2ApIGJvdGggYmVmb3JlIGFuZCBhZnRlciB0aGUgaW5z dHJ1Y3Rpb24gdmlhIHRoZQogIGV4aXN0aW5nIGBBTFRFUk5BVElWRWAgZnJhbWV3b3JrLgotIE5v cm1hbCBLVk0gcGF0aCAoYGt2bV9yaXNjdl92Y3B1X3VucHJpdl9yZWFkYCksIG5vdCBhbiBlcnJv ciBwYXRoLgogIFVuYWZmZWN0ZWQgQ1BVcyBrZWVwIGBub3BgLgoKKipTdGVwIDIuMzogSURFTlRJ RlkgVEhFIEJVRyBNRUNIQU5JU00qKgoKUmVjb3JkOiBbY2F0ZWdvcnk6IGhhcmR3YXJlIHdvcmth cm91bmQgLyBtZW1vcnktb3JkZXJpbmcgZXJyYXRhXQpbbWVjaGFuaXNtOiBTaUZpdmUgTUFMLTkw OTIgb21pdHMgb3JkZXJpbmcgYXJvdW5kIEhTLW1vZGUgZ3Vlc3QtbWVtb3J5Cmh5cGVydmlzb3Ig b3BzOyBhbHRlcm5hdGl2ZXMgcGF0Y2ggaW4gYGZlbmNlLnJ3YCBvbmx5IG9uIG1hdGNoaW5nIENQ VXNdCgpObyBIU1YgbWFjcm9zIGV4aXN0IGluIHRoaXMgdHJlZTsgd3JhcHBpbmcgSExWL0hMVlgg aXMgdGhlIGNvbXBsZXRlIGluLQp0cmVlIGNvdmVyYWdlLgoKKipTdGVwIDIuNDogQVNTRVNTIFRI RSBGSVggUVVBTElUWSoqCgpSZWNvcmQ6IE1hdGNoZXMgQ0lQLTQ1My9DSVAtMTIwMCBzdHlsZS4g Q1BVLUlEIGdhdGVkLCBgZGVmYXVsdCB5YCwKcmV2aWV3ZWQgYnkgU2lGaXZlIGFuZCBxdWV1ZWQg YnkgdGhlIGFyY2ggbWFpbnRhaW5lci4gUmVncmVzc2lvbiByaXNrIGlzCmxvdzogZXh0cmEgbm9w cyBvbiBvdGhlciBDUFVzOyBmZW5jZXMgb25seSBvbiBsaXN0ZWQgSURzLiBSZXNpZHVhbApyaXNr czogYGluc24tZGVmLmhgIHJlbGllcyBvbiBpbmNsdWRlIG9yZGVyIGZvcgpgQUxURVJOQVRJVkVg L2BTSUZJVkVfVkVORE9SX0lEYC9gRVJSQVRBX1NJRklWRV9NQUxfOTA5MmA7CmB3YXJuX21pc3Nf ZXJyYXRhKClgIGNhbiB3YXJuIGF0IGJvb3QgaWYgS1ZNIGlzIG5vdCBidWlsdC1pbiBiZWNhdXNl IHRoZQpvbmx5IGFsdGVybmF0aXZlIHNpdGVzIGFyZSBpbiBLVk0uCgo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUEhBU0UgMzog R0lUIEhJU1RPUlkgSU5WRVNUSUdBVElPTgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqU3RlcCAzLjE6IEJMQU1FIFRIRSBD SEFOR0VEIExJTkVTKioKClJlY29yZDogSExWIG1hY3JvcyBjb21lIGZyb20gYDI2YjczZjE0OTMz ZTljYCAoMjAyMi0xMC0wMiwg4oCccmlzY3Y6IEtWTToKQXBwbHkgaW5zbi1kZWYgdG8gaGx2IGVu Y29kaW5nc+KAnSkuIFNpRml2ZSBlcnJhdGEgcHJvYmUvbGlzdCBmcm9tCmA4MDAxNDlhNzdjMmNi OGAgLyBgYmZmM2ZmNTI1NDYwYjRgICgyMDIxLCBDSVAtNDUzL0NJUC0xMjAwKS4gVGhlCmh5cGVy dmlzb3IgYWNjZXNzb3JzIGhhdmUgYmVlbiBpbiB0cmVlIGZvciB5ZWFyczsgdGhlIGVycmF0YSBp cyBuZXcKc2lsaWNvbiwgbm90IG5ldyBrZXJuZWwgY29kZS4KCioqU3RlcCAzLjI6IEZPTExPVyBU SEUgRklYRVM6IFRBRyoqCgpSZWNvcmQ6IE5vIGBGaXhlczpgIHRhZy4gVGhlIGRlZmVjdCBpcyBp biB0aGUgQ1BVLCBub3QgaW4gYSBwcmlvciBrZXJuZWwKY29tbWl0LiBOb3QgYXBwbGljYWJsZS4K CioqU3RlcCAzLjM6IENIRUNLIEZJTEUgSElTVE9SWSBGT1IgUkVMQVRFRCBDSEFOR0VTKioKClJl Y29yZDogUmVjZW50IGBhcmNoL3Jpc2N2YCBlcnJhdGEgd29yayBpcyBNSVBTIFA4NzAwLCBULUhl YWQKR0hPU1RXUklURSwgdmVuZG9yLWhlYWRlciBzcGxpdCAoYDE2ZDE4ZTNlYWYyOWJgKS4gTm9u ZSBvZiB0aG9zZSBpcyBhCnByZXJlcXVpc2l0ZSBmb3IgdGhpcyBwYXRjaC4gU3RhbmRhbG9uZSB2 MSwgbm90IHBhdGNoIFgvWS4KCioqU3RlcCAzLjQ6IENIRUNLIFRIRSBBVVRIT1InUyBPVEhFUiBD T01NSVRTKioKClJlY29yZDogWW9uZy1YdWFuIFdhbmcgaXMgYSBTaUZpdmUgY29udHJpYnV0b3Ig d2l0aCBSSVNDLVYgS1ZNIHdvcmsgaW4KdGhpcyBoaXN0b3J5IChBUExJQywgU3ZhZGUvU3ZhZHUp LiBTYW11ZWwgSG9sbGFuZCAoU2lGaXZlKSByZXZpZXdlZC4gTm90CnRoZSBhcmNoIG1haW50YWlu ZXI7IFBhdWwgV2FsbXNsZXkgcXVldWVkIGl0LgoKKipTdGVwIDMuNTogQ0hFQ0sgRk9SIERFUEVO REVOVC9QUkVSRVFVSVNJVEUgQ09NTUlUUyoqCgpSZWNvcmQ6IE5lZWRzIFJJU0MtViBhbHRlcm5h dGl2ZXMsIGBFUlJBVEFfU0lGSVZFYCwKYGVycmF0YV9saXN0X3ZlbmRvcnMuaGAsIGFuZCB0aGUg SExWIG1hY3Jvcy4gQWxsIGFyZSBhbmNlc3RvcnMgb2YKYHY2LjE4LjU3YCAoYGdpdCBtZXJnZS1i YXNlIC0taXMtYW5jZXN0b3JgIHN1Y2NlZWRlZCBmb3IgYDE2ZDE4ZTNlYWYyOWJgCmFuZCBgMjZi NzNmMTQ5MzNlOWNgKS4gQXBwbGllcyBzdGFuZGFsb25lLgoKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClBIQVNFIDQ6IE1BSUxJ TkcgTElTVCBBTkQgRVhURVJOQUwgUkVTRUFSQ0gKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKlN0ZXAgNC4xOiBGSU5EIFRI RSBPUklHSU5BTCBQQVRDSCBESVNDVVNTSU9OKioKClJlY29yZDoKLSBgYjQgZGlnIC1jIGYzNmVl YWFhZWNjMmNgIOKGkiBodHRwczovL3BhdGNoLm1zZ2lkLmxpbmsvMjAyNjA4MTctc2lmaXZlLQog IGVycmF0YS12MS0xLTZhODBmMWEyNzQzZEBzaWZpdmUuY29tCi0gYGI0IGRpZyAtYWA6ICoqdjEg b25seSoqICgyMDI2LTA4LTE3KS4gTm8gdjIvdjMuCi0gVGhyZWFkOiBwYXRjaCArIFBhdWwgV2Fs bXNsZXkg4oCcVGhhbmtzLCBxdWV1ZWQgZm9yIHY3LjMtcmMu4oCdIE5vIE5BS3MsCiAgbm8gc3Rh YmxlIG5vbWluYXRpb24sIG5vIHJldmlld2VyIHJpc2sgZmxhZ3MuCi0gbG9yZS5rZXJuZWwub3Jn IFdlYkZldGNoIHJldHVybmVkIDQwMzsgdGhyZWFkIHJlY292ZXJlZCB2aWEgYGI0IGRpZwogIC1t YCBtYm94LgoKKipTdGVwIDQuMjogQ0hFQ0sgV0hPIFJFVklFV0VEIFRIRSBQQVRDSCoqCgpSZWNv cmQ6IGBiNCBkaWcgLXdgIFRvL0NjOiBQYXVsIFdhbG1zbGV5LCBQYWxtZXIgRGFiYmVsdCwgQWxi ZXJ0IE91LApBbGV4YW5kcmUgR2hpdGksIFNhbXVlbCBIb2xsYW5kLCBvdGhlciBTaUZpdmUgZW5n aW5lZXJzLCBsaW51eC1yaXNjdiwKbGludXgta2VybmVsLiBBcHByb3ByaWF0ZSBSSVNDLVYgbWFp bnRhaW5lcnMgd2VyZSBvbiB0aGUgcGF0Y2guCgoqKlN0ZXAgNC4zOiBTRUFSQ0ggRk9SIFRIRSBC VUcgUkVQT1JUKioKClJlY29yZDogTm8gc3l6Ym90L2J1Z3ppbGxhL3VzZXIgY3Jhc2ggdGhyZWFk LiBUaGlzIGlzIGEgdmVuZG9yIGVycmF0YQpmcm9tIFNpRml2ZSwgbm90IGEgZnV6emVyIHJlcG9y dC4gUHVibGljIE1BTC05MDkyIGRvY3VtZW50YXRpb24gYmV5b25kCnRoZSBwYXRjaCB3YXMgbm90 IGZvdW5kLgoKKipTdGVwIDQuNDogQ0hFQ0sgRk9SIFJFTEFURUQgUEFUQ0hFUyBBTkQgU0VSSUVT KioKClJlY29yZDogU2luZ2xlIHN0YW5kYWxvbmUgcGF0Y2ggKGBbUEFUQ0hdYCwgbm90IGBbUEFU Q0ggMS9OXWApLiBObwpmb2xsb3ctdXBzIG9uIHRoZXNlIGZpbGVzIGFmdGVyIHRoaXMgY29tbWl0 IG9uIEhFQUQuCgoqKlN0ZXAgNC41OiBDSEVDSyBTVEFCTEUgTUFJTElORyBMSVNUIEhJU1RPUlkq KgoKUmVjb3JkOiBXZWIgc2VhcmNoIG9mIHN0YWJsZS9NQUwtOTA5MiBmb3VuZCBubyBzdGFibGUt bGlzdCBkaXNjdXNzaW9uCmFuZCBubyBzdGF0ZWQgcmVhc29uIHRvIGtlZXAgaXQgb3V0IG9mIHN0 YWJsZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQpQSEFTRSA1OiBDT0RFIFNFTUFOVElDIEFOQUxZU0lTCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKipT dGVwIDUuMTogSURFTlRJRlkgS0VZIEZVTkNUSU9OUyBJTiBUSEUgRElGRioqCgpSZWNvcmQ6IGBl cnJhdGFfbWFsXzkwOTJfY2hlY2tfZnVuY2AgKG5ldyk7IGBlcnJhdGFfbGlzdFtdYDsgbWFjcm9z CmBBTFRfU0lGSVZFX01BTF85MDkyX0ZFTkNFYCwgYEhMVlhfSFVgLCBgSExWX1dgLCBgSExWX0Rg LiBFeGlzdGluZwpgc2lmaXZlX2VycmF0YV9wcm9iZWAgLyBgc2lmaXZlX2VycmF0YV9wYXRjaF9m dW5jYCBwaWNrIGl0IHVwIHZpYQpgRVJSQVRBX1NJRklWRV9OVU1CRVJgLgoKKipTdGVwIDUuMjog VFJBQ0UgQ0FMTEVSUyoqCgpSZWNvcmQ6Ci0gYEhMVipgIHVzZWQgb25seSBpbiBgYXJjaC9yaXNj di9rdm0vdmNwdV9leGl0LmNgIOKGkgogIGBrdm1fcmlzY3ZfdmNwdV91bnByaXZfcmVhZCgpYAot IENhbGxlcnMgb2YgdGhhdDogYGt2bV9yaXNjdl92Y3B1X3ZpcnR1YWxfaW5zbigpYCBpbiBgdmNw dV9pbnNuLmNgCiAgKGd1ZXN0IGluc24gZmV0Y2ggd2hlbiBgc3R2YWxgIGlzIDAgLyAxNi1iaXQp OyBgdmNwdV9zYmlfdjAxLmNgIChTQkkKICAwLjEgU0VORF9JUEkgLyByZW1vdGUgZmVuY2UgaGFy dC1tYXNrIHJlYWRzKQotIENvbnRleHQ6IEtWTSBWTS1leGl0IGhhbmRsaW5nLCBub3QgSVJRLWVu dHJ5IGNvcmUuIFJlYWNoYWJsZSB3aGVuZXZlcgogIGEgZ3Vlc3QgdHJhcHMuCgoqKlN0ZXAgNS4z OiBUUkFDRSBDQUxMRUVTKioKClJlY29yZDogUHJvYmUgb25seSBjb21wYXJlcyBgYXJjaGlkYC9g aW1waWRgLiBQYXRjaGluZyB1c2VzCmBwYXRjaF90ZXh0X25vc3luY2AgdW5kZXIgYHRleHRfbXV0 ZXhgLCBzYW1lIGFzIENJUCBlcnJhdGEuIE1hY3JvcwpleHBhbmQgdG8gYEFMVEVSTkFUSVZFKCJu b3AiLCAiZmVuY2UgcncsIHJ3IiwgLi4uKWAuCgoqKlN0ZXAgNS40OiBGT0xMT1cgVEhFIENBTEwg Q0hBSU4qKgoKUmVjb3JkOiBVc2Vyc3BhY2UgUUVNVS9LVk0gb24gUklTQy1WIOKGkiBndWVzdCB0 cmFwIOKGkgpga3ZtX3Jpc2N2X3ZjcHVfdW5wcml2X3JlYWRgIOKGkiBITFYvSExWWC4gVW5wcml2 aWxlZ2VkIGd1ZXN0IGNvZGUgY2FuCmluZHVjZSB0aG9zZSBleGl0cy4gT25seSByZWxldmFudCB3 aXRoIGBDT05GSUdfS1ZNYCBvbiBtYXRjaGluZyBTaUZpdmUKY29yZXMuCgoqKlN0ZXAgNS41OiBT RUFSQ0ggRk9SIFNJTUlMQVIgUEFUVEVSTlMqKgoKUmVjb3JkOiBTYW1lIHBhdHRlcm4gYXMgQ0lQ LTQ1MyBhbmQgQ0lQLTEyMDAgaW4gdGhpcyB0cmVlLiBObyBIU1YgbWFjcm9zCmluIGBhcmNoL3Jp c2N2YCBhdCBgdjYuMTguNTdgIG9yIEhFQUQsIHNvIG5vdGhpbmcgZWxzZSB0byB3cmFwIGhlcmUu Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KUEhBU0UgNjogQ1JPU1MtUkVGRVJFTkNJTkcgQUdBSU5TVCBUSEUgTE9DQUwgVFJF RQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KCioqU3RlcCA2LjE6IERPRVMgVEhFIEJVR0dZIENPREUgRVhJU1QgSU4gVEhJUyBU UkVFPyoqCgpSZWNvcmQ6IFllcy4gTG9jYWwgdHJlZTogYGdpdCBkZXNjcmliZSBIRUFEYCA9CmB2 Ni4xOC41Ny0xNTUtZ2NkZjIzOWNhODg1YjJgLCBgbWFrZSBrZXJuZWx2ZXJzaW9uYCA9ICoqNi4x OC41NyoqLiBgZ2l0Cm1lcmdlLWJhc2UgLS1pcy1hbmNlc3RvciBmMzZlZWFhYWVjYzJjIHY2LjE4 LjU3YCBmYWlsZWQgKHdvcmthcm91bmQgbm90CmluIDYuMTguNTcpLiBgdjYuMTguNTdgIGFscmVh ZHkgaGFzIEhMViBtYWNyb3MgaW4gYGluc24tZGVmLmhgLCBLVk0KYHZjcHVfZXhpdC5jYCwgYW5k IFNpRml2ZSBlcnJhdGEgd2l0aCBgRVJSQVRBX1NJRklWRV9OVU1CRVIgMmAuIFRoZQpoYXJkd2Fy ZSBidWcgaXMgdGhlcmVmb3JlIGxpdmUgZm9yIG1hdGNoaW5nIENQVXMgcnVubmluZyB0aGlzIHNl cmllcy4KCioqU3RlcCA2LjI6IENIRUNLIEZPUiBCQUNLUE9SVCBDT01QTElDQVRJT05TKioKClJl Y29yZDogYGdpdCBkaWZmIC0tc3RhdCB2Ni4xOC41NyBmMzZlZWFhYWVjYzJjIC0tIDx0aGUgZm91 ciBmaWxlcz5gIGlzCmV4YWN0bHkgKzQ5Ly00LiBDbGVhbiBhcHBseS4gTm8gY29uZmxpY3Rpbmcg cmVmYWN0b3IgaW4gNi4xOC41NyB2cyB0aGlzCnBhdGNoLgoKKipTdGVwIDYuMzogQ0hFQ0sgSUYg UkVMQVRFRCBGSVhFUyBBUkUgQUxSRUFEWSBIRVJFKioKClJlY29yZDogYGdpdCBsb2cgLS1ncmVw PU1BTC05MDkyYCBvbmx5IGZpbmRzIHRoaXMgY2FuZGlkYXRlLiBObyBlYXJsaWVyCmVxdWl2YWxl bnQgd29ya2Fyb3VuZC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQpQSEFTRSA3OiBTVUJTWVNURU0gQU5EIE1BSU5UQUlORVIg Q09OVEVYVAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KCioqU3RlcCA3LjE6IElERU5USUZZIFRIRSBTVUJTWVNURU0gQU5EIElU UyBDUklUSUNBTElUWSoqCgpSZWNvcmQ6IFthcmNoL3Jpc2N2IGVycmF0YSArIEtWTSBndWVzdC1t ZW1vcnkgYWNjZXNzXSBbSU1QT1JUQU5ULCBub3QKQ09SRTogUklTQy1WLXNwZWNpZmljLCBhbmQg b25seSBsaXN0ZWQgU2lGaXZlIGNvcmVzIHdpdGggS1ZNXS4gV3JvbmcKZ3Vlc3QtbWVtb3J5IG9y ZGVyaW5nIGlzIHN0aWxsIGEgcmVhbCB2aXJ0IGNvcnJlY3RuZXNzIGlzc3VlIGZvciB0aG9zZQpz eXN0ZW1zLgoKKipTdGVwIDcuMjogQVNTRVNTIFNVQlNZU1RFTSBBQ1RJVklUWSoqCgpSZWNvcmQ6 IFJJU0MtViBlcnJhdGEgYW5kIEtWTSBhcmUgYWN0aXZlbHkgbWFpbnRhaW5lZC4gVGhpcyBpcyBu ZXctCnNpbGljb24gZXJyYXRhIG9uIGEgbWF0dXJlIEhMVi9LVk0gcGF0aCwgbm90IGEgcmV3cml0 ZSBvZiBhIGJyYW5kLW5ldwpzdWJzeXN0ZW0uCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUEhBU0UgODogSU1QQUNUIEFORCBS SVNLIEFTU0VTU01FTlQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CgoqKlN0ZXAgOC4xOiBERVRFUk1JTkUgV0hPIElTIEFGRkVD VEVEKioKClJlY29yZDogUklTQy1WICsgYENPTkZJR19FUlJBVEFfU0lGSVZFYCAoc2VsZWN0ZWQg YnkgYEFSQ0hfU0lGSVZFYCkgKwpgQ09ORklHXzY0QklUYCArIEtWTSArIGBtYXJjaGlkIDB4ODAw MDAwMDAwMDAwMDEwOWAgd2l0aCBvbmUgb2YgdGhyZWUKYG1pbXBpZGBzLiBEcml2ZXIvcGxhdGZv cm0tc3BlY2lmaWMsIG5vdCB1bml2ZXJzYWwuCgoqKlN0ZXAgOC4yOiBERVRFUk1JTkUgVEhFIFRS SUdHRVIgQ09ORElUSU9OUyoqCgpSZWNvcmQ6IFRyaWdnZXIgaXMgS1ZNIHVzaW5nIEhMVi9ITFZY IHRvIHJlYWQgZ3Vlc3QgbWVtb3J5IChpbnN0cnVjdGlvbgplbXVsYXRlLCBTQkkgMC4xIGhhcnQg bWFza3MpLiBDb21tb24gZm9yIGFueSBWTSBvbiB0aG9zZSBjb3Jlcy4gR3Vlc3QKKHR5cGljYWxs eSB1bnByaXZpbGVnZWQpIGNhbiBjYXVzZSB0aGUgVk0tZXhpdC4gTm90IGEgcmFyZSBlcnJvci1w YXRoLQpvbmx5IGJ1Zy4KCioqU3RlcCA4LjM6IERFVEVSTUlORSBUSEUgRkFJTFVSRSBNT0RFIFNF VkVSSVRZKioKClJlY29yZDogW0ZhaWx1cmUgbW9kZTogbWlzc2luZyBtZW1vcnkgZmVuY2Ug4oaS IHN0YWxlL3dyb25nIGd1ZXN0IGluc24gb3IKZGF0YSBpbiB0aGUgaHlwZXJ2aXNvcl0gW1NldmVy aXR5OiBISUdIIOKAlCBndWVzdCBjb3JydXB0aW9uIG9yIGluY29ycmVjdAplbXVsYXRpb247IG5v dCBhIGRvY3VtZW50ZWQgaG9zdCBwYW5pY10uIFNpbGVudCB3cm9uZ25lc3MgaXMgd29yc2UgdGhh bgphIFdBUk4uCgoqKlN0ZXAgOC40OiBDQUxDVUxBVEUgUklTSy1CRU5FRklUIFJBVElPKioKClJl Y29yZDoKLSBCZW5lZml0OiBISUdIIGZvciBLVk0gb24gdGhlIGxpc3RlZCBTaUZpdmUgY29yZXMg KGNvcnJlY3QgZ3Vlc3QtbWVtb3J5CiAgYWNjZXNzKS4KLSBSaXNrOiBMT1cg4oCUIH41MCBsaW5l cywgSUQtZ2F0ZWQgYWx0ZXJuYXRpdmVzLCBzYW1lIG1lY2hhbmlzbSBhcwogIENJUC0xMjAwIGFs cmVhZHkgaW4gNi4xOC41Ny4gVW5hZmZlY3RlZCBDUFVzIG9ubHkgZ2FpbiBub3BzLgotIFJhdGlv OiBiZW5lZml0IG91dHdlaWdocyByaXNrIGZvciB0aGlzIDYuMTgueSB0cmVlLgoKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClBI QVNFIDk6IEZJTkFMIFNZTlRIRVNJUwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqU3RlcCA5LjE6IENPTVBJTEUgVEhFIEVW SURFTkNFKioKCkZPUjoKLSBIYXJkd2FyZSBlcnJhdGEvcXVpcmssIHdoaWNoIHN0YWJsZSBleHBs aWNpdGx5IGFjY2VwdHMKLSBSZWFsIEtWTSBndWVzdC1tZW1vcnkgb3JkZXJpbmcgYnVnIG9uIHNo aXBwaW5nL3Nvb24tc2hpcHBpbmcgU2lGaXZlCiAgY29yZXMKLSBTbWFsbCAoKzQ5Ly00KSwgdXNl cyBleGlzdGluZyBhbHRlcm5hdGl2ZXMvZXJyYXRhIG1hY2hpbmVyeQotIEhMVi9LVk0vU2lGaXZl IGVycmF0YSBhbGwgcHJlc2VudCBpbiA2LjE4LjU3OyBhcHBsaWVzIGNsZWFubHkKLSBSZXZpZXdl ZCBieSBTaUZpdmUsIHF1ZXVlZCBieSBSSVNDLVYgYXJjaCBtYWludGFpbmVyLCBubyBOQUtzCi0g Q1BVLUlEIG1hdGNoIHNvIG90aGVyIFJJU0MtViBzeXN0ZW1zIGFyZSBub3QgZnVuY3Rpb25hbGx5 IGNoYW5nZWQKCkFHQUlOU1Q6Ci0gTmV3IEtjb25maWcgc3ltYm9sIChzdGFuZGFyZCBmb3IgUklT Qy1WIGVycmF0YSwgYGRlZmF1bHQgeWApCi0gTm8gZmllbGQgY3Jhc2gvc3l6Ym90IHJlcG9ydCAo dmVuZG9yIGVycmF0YSwgdHlwaWNhbCkKLSBQb3NzaWJsZSBgd2Fybl9taXNzX2VycmF0YWAgbm9p c2UgaWYgS1ZNIGlzIGRpc2FibGVkIG9uIGFuIGFmZmVjdGVkCiAgQ1BVCi0gSFNWIG1lbnRpb25l ZCBpbiB0ZXh0IGJ1dCBubyBIU1YgbWFjcm9zIGhlcmUgKG5vdCBhIGZ1bmN0aW9uYWwgZ2FwIGlu CiAgNi4xOC55KQoKVU5SRVNPTFZFRDoKLSBQdWJsaWMgTUFMLTkwOTIgZGF0YXNoZWV0IHRleHQg d2FzIG5vdCBmb3VuZCAob25seSB0aGUga2VybmVsIHBhdGNoKQotIGxvcmUua2VybmVsLm9yZyBI VFRQIDQwMzsgZGlzY3Vzc2lvbiByZWNvdmVyZWQgZnJvbSBiNCBtYm94IGluc3RlYWQKCioqU3Rl cCA5LjI6IEFQUExZIFRIRSBTVEFCTEUgUlVMRVMgQ0hFQ0tMSVNUKioKCjEuIE9idmlvdXNseSBj b3JyZWN0IGFuZCB0ZXN0ZWQ/ICoqUEFTUyoqIOKAlCBJRC1nYXRlZCBhbHRlcm5hdGl2ZSBmZW5j ZXM7CiAgIFNpRml2ZSByZXZpZXc7IG1haW50YWluZXIgcXVldWVkIGZvciA3LjMtcmMKMi4gRml4 ZXMgYSByZWFsIGJ1ZyB0aGF0IGFmZmVjdHMgdXNlcnM/ICoqUEFTUyoqIOKAlCBLVk0gZ3Vlc3Qt bWVtb3J5CiAgIG9yZGVyaW5nIG9uIGxpc3RlZCBjb3JlcwozLiBJbXBvcnRhbnQgaXNzdWU/ICoq UEFTUyoqIOKAlCBISUdIOiBpbmNvcnJlY3QgaHlwZXJ2aXNvciBndWVzdAogICBpbnN0cnVjdGlv bi9kYXRhIHJlYWRzIChjb3JydXB0aW9uIC8gYmFkIGVtdWxhdGlvbikKNC4gU21hbGwgYW5kIGNv bnRhaW5lZD8gKipQQVNTKiog4oCUIDQgZmlsZXMsICs0OS8tNAo1LiBObyBuZXcgZmVhdHVyZXMg b3IgQVBJcz8gKipQQVNTKiog4oCUIG5vIHVzZXJzcGFjZSBBQkk7IEtjb25maWcgaXMgdGhlCiAg IHVzdWFsIGVycmF0YSB0b2dnbGUKNi4gQ2FuIGFwcGx5IHRvIHRoZSBsb2NhbCB0cmVlPyAqKlBB U1MqKiDigJQgY2xlYW4gdnMgYHY2LjE4LjU3YAoKKipTdGVwIDkuMzogQ0hFQ0sgRk9SIEVYQ0VQ VElPTiBDQVRFR09SSUVTKioKClJlY29yZDogSGFyZHdhcmUgcXVpcmsvd29ya2Fyb3VuZCAoU2lG aXZlIENQVSBlcnJhdGEpLCBzYW1lIGNsYXNzIGFzClVTQi9QQ0kgcXVpcmtzIGFuZCBleGlzdGlu ZyBDSVAtNDUzL0NJUC0xMjAwLgoKKipTdGVwIDkuNDogREVDSVNJT04qKgoKVGhpcyBiZWxvbmdz IG9uICoqdGhpcyoqIDYuMTgueSB0cmVlLiBUaGUgSExWIHBhdGggaGFzIGJlZW4gaGVyZSBzaW5j ZQoyMDIyOyA2LjE4LjU3IGp1c3QgbGFja3MgdGhlIGZlbmNlIHdvcmthcm91bmQuIExUUyB1c2Vy cyB3aG8gcnVuIEtWTSBvbgp0aGVzZSBTaUZpdmUgY29yZXMgZ2V0IGEgY29udGFpbmVkLCBJRC1n YXRlZCBmaXggd2l0aCB0aGUgc2FtZSBzaGFwZSBhcwplcnJhdGEgYWxyZWFkeSBpbiB0aGUgc2Vy aWVzLgoKVmVyaWZpY2F0aW9uOgotIFtQaGFzZSAxXSBQYXJzZWQgdGFnczogUmV2aWV3ZWQtYnkg U2FtdWVsIEhvbGxhbmQ7IExpbmsgdG8gbXNnaWQKICAyMDI2MDgxNy1zaWZpdmUtZXJyYXRhLXYx LTE7IFNPQiBZb25nLVh1YW4gV2FuZyBhbmQgUGF1bCBXYWxtc2xleTsgbm8KICBGaXhlcy9SZXBv cnRlZC1ieS9DYzpzdGFibGUKLSBbUGhhc2UgMl0gRGlmZjogKzQ5Ly00IGFjcm9zcyBLY29uZmln LmVycmF0YSwgZXJyYXRhLmMsCiAgZXJyYXRhX2xpc3RfdmVuZG9ycy5oLCBpbnNuLWRlZi5oOyBB TFRFUk5BVElWRSBub3DihpJmZW5jZSBhcm91bmQKICBITFZYX0hVL0hMVl9XL0hMVl9ECi0gW1Bo YXNlIDNdIGdpdCBibGFtZSB2Ni4xOC41NyBpbnNuLWRlZi5oOiBITFYgbWFjcm9zIGZyb20KICAy NmI3M2YxNDkzM2U5YyAoMjAyMik7IGVycmF0YSBmcmFtZXdvcmsgZnJvbSAyMDIxIENJUCBjb21t aXRzCi0gW1BoYXNlIDNdIE5vIEZpeGVzOiB0YWc7IHN0YW5kYWxvbmUsIG5vdCBhIHNlcmllcwot IFtQaGFzZSAzXSBnaXQgbWVyZ2UtYmFzZSAtLWlzLWFuY2VzdG9yIDI2YjczZjE0OTMzZTljIHY2 LjE4LjU3IOKGkiB5ZXM7CiAgMTZkMThlM2VhZjI5YiB2Ni4xOC41NyDihpIgeWVzCi0gW1BoYXNl IDRdIGI0IGRpZyAtYyBmMzZlZWFhYWVjYzJjOiBsb3JlIFVSTCBmb3VuZDsgLWE6IHYxIG9ubHk7 IC13OgogIFJJU0MtViBtYWludGFpbmVycyBvbiBUby9DYzsgbWJveDogUGF1bCDigJxxdWV1ZWQg Zm9yIHY3LjMtcmPigJ07IG5vIE5BSwotIFtQaGFzZSA0XSBsb3JlIFdlYkZldGNoIDQwMzsgbWJv eCB1c2VkIGluc3RlYWQKLSBbUGhhc2UgNV0gSExWKiBvbmx5IHVzZWQgaW4ga3ZtL3ZjcHVfZXhp dC5jOyBjYWxsZXJzIHZjcHVfaW5zbi5jIGFuZAogIHZjcHVfc2JpX3YwMS5jOyBnaXQgZ3JlcCBI U1ZfIGluIGFyY2gvcmlzY3Y6IG5vbmUKLSBbUGhhc2UgNl0gZ2l0IGRlc2NyaWJlIEhFQUQ6IHY2 LjE4LjU3LTE1NS1nY2RmMjM5Y2E4ODViMjsKICBrZXJuZWx2ZXJzaW9uIDYuMTguNTcKLSBbUGhh c2UgNl0gZ2l0IG1lcmdlLWJhc2UgLS1pcy1hbmNlc3RvciBmMzZlZWFhYWVjYzJjIHY2LjE4LjU3 IOKGkiBub3QgaW4KICA2LjE4LjU3OyBnaXQgZ3JlcCBNQUwtOTA5MiB2Ni4xOC41NyDihpIgbm9u ZQotIFtQaGFzZSA2XSBnaXQgZGlmZiAtLXN0YXQgdjYuMTguNTcgZjM2ZWVhYWFlY2MyYyAtLSB0 aGUgZm91ciBmaWxlcyDihpIKICBleGFjdCBwYXRjaCwgY2xlYW4gYXBwbHkKLSBbUGhhc2UgN10g QVJDSF9TSUZJVkUgc2VsZWN0cyBFUlJBVEFfU0lGSVZFOyBLVk0gaXMKICBhcmNoL3Jpc2N2L2t2 bS9LY29uZmlnCi0gW1BoYXNlIDhdIEZhaWx1cmUgbW9kZTogbWlzc2luZyBmZW5jZSDihpIgd3Jv bmcgZ3Vlc3QgbWVtb3J5IGluIEtWTSwKICBzZXZlcml0eSBISUdICi0gVU5WRVJJRklFRDogZnVs bCBwdWJsaWMgTUFMLTkwOTIgc2lsaWNvbiBtYW51YWw7IGNvbXBpbGUgb2YKICB2Y3B1X2V4aXQu YyB3YXMgaW5mZXJyZWQgZnJvbSBpbmNsdWRlIG9yZGVyLCBub3QgYnkgYnVpbGRpbmcKClRoZSB3 b3JrYXJvdW5kIGlzIHNtYWxsLCBJRC1nYXRlZCwgYW5kIGZpeGVzIGEgcmVhbCBLVk0gbWVtb3J5 LW9yZGVyaW5nCmVycmF0dW0gb24gaGFyZHdhcmUgdGhhdCA2LjE4LnkgY2FuIGJvb3QuIEl0IG1l ZXRzIHRoZSBzdGFibGUgcnVsZXMgYW5kCnRoZSBoYXJkd2FyZS1xdWlyayBleGNlcHRpb24uCgoq KllFUyoqCgogYXJjaC9yaXNjdi9LY29uZmlnLmVycmF0YSAgICAgICAgICAgICAgICAgICAgfCAx NCArKysrKysrKysrKysrKwogYXJjaC9yaXNjdi9lcnJhdGEvc2lmaXZlL2VycmF0YS5jICAgICAg ICAgICAgfCAyMCArKysrKysrKysrKysrKysrKysrKwogYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9l cnJhdGFfbGlzdF92ZW5kb3JzLmggfCAgMyArKy0KIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vaW5z bi1kZWYuaCAgICAgICAgICAgIHwgMTYgKysrKysrKysrKysrKy0tLQogNCBmaWxlcyBjaGFuZ2Vk LCA0OSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gvcmlz Y3YvS2NvbmZpZy5lcnJhdGEgYi9hcmNoL3Jpc2N2L0tjb25maWcuZXJyYXRhCmluZGV4IDZmMjMw YWViZDQ5NjguLjY1ZDAwZmI5ZGI5ZDcgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvS2NvbmZpZy5l cnJhdGEKKysrIGIvYXJjaC9yaXNjdi9LY29uZmlnLmVycmF0YQpAQCAtOTUsNiArOTUsMjAgQEAg Y29uZmlnIEVSUkFUQV9TVEFSRklWRV9KSDcxMDAKIAkgIFNheSAiWSIgaWYgeW91IHdhbnQgdG8g c3VwcG9ydCB0aGUgQmVhZ2xlViBTdGFybGlnaHQgYW5kL29yCiAJICBTdGFyRml2ZSBWaXNpb25G aXZlIFYxIGJvYXJkcy4KIAorY29uZmlnIEVSUkFUQV9TSUZJVkVfTUFMXzkwOTIKKwlib29sICJB cHBseSBTaUZpdmUgSExWL0hMVlgvSFNWIGZlbmNlIGVycmF0YSIKKwlkZXBlbmRzIG9uIEVSUkFU QV9TSUZJVkUgJiYgNjRCSVQKKwlkZWZhdWx0IHkKKwloZWxwCisJICBUaGlzIHdpbGwgYXBwbHkg dGhlIFNpRml2ZSBNQUwtOTA5MiBlcnJhdGEgdG8gYWRkIGZlbmNlLnJ3CisJICBpbnN0cnVjdGlv bnMgYXJvdW5kIGFsbCBITFYvSExWWC9IU1YgaW5zdHJ1Y3Rpb25zLgorCisJICBOb3RlOiBIU1RB VFVTLkhVIGlzIGNsZWFyZWQgZHVyaW5nIEtWTSBpbml0aWFsaXphdGlvbi4gSWYgZnV0dXJlCisJ ICBjaGFuZ2VzIGVuYWJsZSBIU1RBVFVTLkhVIHRvIGFsbG93IGh5cGVydmlzb3IgaW5zdHJ1Y3Rp b25zIGluCisJICBVLW1vZGUsIGFkZGl0aW9uYWwgZXJyYXRhIGhhbmRsaW5nIG1heSBiZSByZXF1 aXJlZC4KKworCSAgSWYgeW91IGRvbid0IGtub3cgd2hhdCB0byBkbyBoZXJlLCBzYXkgIlkiLgor CiBjb25maWcgRVJSQVRBX1RIRUFECiAJYm9vbCAiVC1IRUFEIGVycmF0YSIKIAlkZXBlbmRzIG9u IFJJU0NWX0FMVEVSTkFUSVZFCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2VycmF0YS9zaWZpdmUv ZXJyYXRhLmMgYi9hcmNoL3Jpc2N2L2VycmF0YS9zaWZpdmUvZXJyYXRhLmMKaW5kZXggMzhhYWMy YzQ3ODQ1YS4uMzAyNWI5ZDY5NjZmOCAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9lcnJhdGEvc2lm aXZlL2VycmF0YS5jCisrKyBiL2FyY2gvcmlzY3YvZXJyYXRhL3NpZml2ZS9lcnJhdGEuYwpAQCAt NTEsNiArNTEsMjIgQEAgc3RhdGljIGJvb2wgZXJyYXRhX2NpcF8xMjAwX2NoZWNrX2Z1bmModW5z aWduZWQgbG9uZyAgYXJjaF9pZCwgdW5zaWduZWQgbG9uZyBpbXAKIAlyZXR1cm4gdHJ1ZTsKIH0K IAorc3RhdGljIGJvb2wgZXJyYXRhX21hbF85MDkyX2NoZWNrX2Z1bmModW5zaWduZWQgbG9uZyAg YXJjaF9pZCwgdW5zaWduZWQgbG9uZyBpbXBpZCkKK3sKKwkvKgorCSAqIEFmZmVjdGVkIGNvcmVz OgorCSAqIEFyY2hpdGVjdHVyZSBJRDogMHg4MDAwMDAwMDAwMDAwMTA5CisJICogSW1wbGVtZW50 YXRpb24gSUQ6IDB4MTkyNTEwMzEsIDB4MTkyNTEyMTcsIDB4MTkyNjAzMjAKKwkgKi8KKworCWlm IChhcmNoX2lkICE9IDB4ODAwMDAwMDAwMDAwMDEwOSkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChp bXBpZCAhPSAweDE5MjUxMDMxICYmIGltcGlkICE9IDB4MTkyNTEyMTcgJiYgaW1waWQgIT0gMHgx OTI2MDMyMCkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBz dHJ1Y3QgZXJyYXRhX2luZm9fdCBlcnJhdGFfbGlzdFtFUlJBVEFfU0lGSVZFX05VTUJFUl0gPSB7 CiAJewogCQkubmFtZSA9ICJjaXAtNDUzIiwKQEAgLTYwLDYgKzc2LDEwIEBAIHN0YXRpYyBzdHJ1 Y3QgZXJyYXRhX2luZm9fdCBlcnJhdGFfbGlzdFtFUlJBVEFfU0lGSVZFX05VTUJFUl0gPSB7CiAJ CS5uYW1lID0gImNpcC0xMjAwIiwKIAkJLmNoZWNrX2Z1bmMgPSBlcnJhdGFfY2lwXzEyMDBfY2hl Y2tfZnVuYwogCX0sCisJeworCQkubmFtZSA9ICJtYWwtOTA5MiIsCisJCS5jaGVja19mdW5jID0g ZXJyYXRhX21hbF85MDkyX2NoZWNrX2Z1bmMKKwl9LAogfTsKIAogc3RhdGljIHUzMiBfX2luaXRf b3JfbW9kdWxlIHNpZml2ZV9lcnJhdGFfcHJvYmUodW5zaWduZWQgbG9uZyBhcmNoaWQsCmRpZmYg LS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2VycmF0YV9saXN0X3ZlbmRvcnMuaCBiL2Fy Y2gvcmlzY3YvaW5jbHVkZS9hc20vZXJyYXRhX2xpc3RfdmVuZG9ycy5oCmluZGV4IGVjN2ViYTM3 MzQzNzEuLmM2MmE4MmY2MDQ2OGEgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20v ZXJyYXRhX2xpc3RfdmVuZG9ycy5oCisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZXJyYXRh X2xpc3RfdmVuZG9ycy5oCkBAIC0xMSw3ICsxMSw4IEBACiAjaWZkZWYgQ09ORklHX0VSUkFUQV9T SUZJVkUKICNkZWZpbmUJRVJSQVRBX1NJRklWRV9DSVBfNDUzIDAKICNkZWZpbmUJRVJSQVRBX1NJ RklWRV9DSVBfMTIwMCAxCi0jZGVmaW5lCUVSUkFUQV9TSUZJVkVfTlVNQkVSIDIKKyNkZWZpbmUJ RVJSQVRBX1NJRklWRV9NQUxfOTA5MiAyCisjZGVmaW5lCUVSUkFUQV9TSUZJVkVfTlVNQkVSIDMK ICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX0VSUkFUQV9USEVBRApkaWZmIC0tZ2l0IGEvYXJjaC9y aXNjdi9pbmNsdWRlL2FzbS9pbnNuLWRlZi5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9pbnNu LWRlZi5oCmluZGV4IGQyOWRhNmNjZDNkZDguLmIxYjk3ZWFiOTEwMDcgMTAwNjQ0Ci0tLSBhL2Fy Y2gvcmlzY3YvaW5jbHVkZS9hc20vaW5zbi1kZWYuaAorKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUv YXNtL2luc24tZGVmLmgKQEAgLTE5MSwxOCArMTkxLDI4IEBACiAJSU5TTl9SKE9QQ09ERV9TWVNU RU0sIEZVTkMzKDApLCBGVU5DNyg0OSksCQlcCiAJICAgICAgIF9fUkQoMCksIFJTMShnYWRkciks IFJTMih2bWlkKSkKIAorI2RlZmluZSBBTFRfU0lGSVZFX01BTF85MDkyX0ZFTkNFCQkJCQlcCitB TFRFUk5BVElWRSgibm9wIiwgImZlbmNlIHJ3LCBydyIsIFNJRklWRV9WRU5ET1JfSUQsCQkJXAor CSAgICBFUlJBVEFfU0lGSVZFX01BTF85MDkyLCBDT05GSUdfRVJSQVRBX1NJRklWRV9NQUxfOTA5 MikKKwogI2RlZmluZSBITFZYX0hVKGRlc3QsIGFkZHIpCQkJCQlcCisJQUxUX1NJRklWRV9NQUxf OTA5Ml9GRU5DRSAiXG4iCQkJCVwKIAlJTlNOX1IoT1BDT0RFX1NZU1RFTSwgRlVOQzMoNCksIEZV TkM3KDUwKSwJCVwKLQkgICAgICAgUkQoZGVzdCksIFJTMShhZGRyKSwgX19SUzIoMykpCisJICAg ICAgIFJEKGRlc3QpLCBSUzEoYWRkciksIF9fUlMyKDMpKSAiXG4iCQlcCisJQUxUX1NJRklWRV9N QUxfOTA5Ml9GRU5DRQogCiAjZGVmaW5lIEhMVl9XKGRlc3QsIGFkZHIpCQkJCQlcCisJQUxUX1NJ RklWRV9NQUxfOTA5Ml9GRU5DRSAiXG4iCQkJCVwKIAlJTlNOX1IoT1BDT0RFX1NZU1RFTSwgRlVO QzMoNCksIEZVTkM3KDUyKSwJCVwKLQkgICAgICAgUkQoZGVzdCksIFJTMShhZGRyKSwgX19SUzIo MCkpCisJICAgICAgIFJEKGRlc3QpLCBSUzEoYWRkciksIF9fUlMyKDApKSAiXG4iCQlcCisJQUxU X1NJRklWRV9NQUxfOTA5Ml9GRU5DRQogCiAjaWZkZWYgQ09ORklHXzY0QklUCiAjZGVmaW5lIEhM Vl9EKGRlc3QsIGFkZHIpCQkJCQlcCisJQUxUX1NJRklWRV9NQUxfOTA5Ml9GRU5DRSAiXG4iCQkJ CVwKIAlJTlNOX1IoT1BDT0RFX1NZU1RFTSwgRlVOQzMoNCksIEZVTkM3KDU0KSwJCVwKLQkgICAg ICAgUkQoZGVzdCksIFJTMShhZGRyKSwgX19SUzIoMCkpCisJICAgICAgIFJEKGRlc3QpLCBSUzEo YWRkciksIF9fUlMyKDApKSAiXG4iCQlcCisJQUxUX1NJRklWRV9NQUxfOTA5Ml9GRU5DRQogI2Vs c2UKICNkZWZpbmUgSExWX0QoZGVzdCwgYWRkcikJCQkJCVwKIAlfX0FTTV9TVFIoLmVycm9yICJo bHYuZCByZXF1aXJlcyA2NC1iaXQgc3VwcG9ydCIpCi0tIAoyLjUzLjAKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxp c3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==