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 8D6C1C433EF for ; Wed, 23 Mar 2022 15:49:39 +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:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=txg3WIrfj0i1Lk/CdaL9gHfWDi7Wcu8HmeZ6lk/Eg8Y=; b=m+N1kc9UQQIBgn BgNp/MaIQOA9jj8SGfQ/qz22kWLuhin+iRG0aW2eqpOaweoxMLq08s2AZ6EXBQOtsNzMZqrS6d6fr GsQGVpCEem6CQ9SFlgmRen6UaNwq6VFz97/8/pWW+XugDZRCLVf0wI8Y2OwwjDQMcbTt2Ce6ZtCDd U1VYzozkcqxZPDB7GX1Ve5AbIc0FmebU6Z6xlOkADzPHPOVeREXwc3U3a/8ctxBM6zsuHc00ZrUxW VtuiIpXcW8pB1jMpG8vjefKlnADsQUaEGLzvjNYn2YOmR8UCWBjXYWooDumLhOEImdc8Z55Pgf/XX KsIbCAeGiy6E069sqbIg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nX3DT-00EA33-QZ; Wed, 23 Mar 2022 15:48:07 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nX3DP-00EA1j-Cy for linux-arm-kernel@lists.infradead.org; Wed, 23 Mar 2022 15:48:05 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C3F93D6E; Wed, 23 Mar 2022 08:48:01 -0700 (PDT) Received: from monolith.localdoman (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 122723F73D; Wed, 23 Mar 2022 08:47:59 -0700 (PDT) Date: Wed, 23 Mar 2022 15:48:31 +0000 From: Alexandru Elisei To: Steven Price Cc: Vladimir Murzin , will@kernel.org, kvm@vger.kernel.org, julien.thierry.kdev@gmail.com, linux-arm-kernel@lists.infradead.org, catalin.marinas@arm.com Subject: Re: [kvmtool PATCH 2/2] aarch64: Add support for MTE Message-ID: References: <20220321152820.246700-1-alexandru.elisei@arm.com> <20220321152820.246700-3-alexandru.elisei@arm.com> <3cf3b621-5a07-5c06-cb9f-f9c776b6717d@arm.com> <7e5ebae0-db08-ad87-0fa9-26da048a9b72@arm.com> <00099507-c436-dd51-8714-d1a91431e4d0@arm.com> <4731158c-b197-aba9-de64-fc5130cc152d@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <4731158c-b197-aba9-de64-fc5130cc152d@arm.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220323_084803_566748_FE1B28D9 X-CRM114-Status: GOOD ( 58.70 ) 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 SGksCgpDYXRhbGluLCBTdGV2ZW4sIFZsYWRpbWlyLCB0aGFuayB5b3UgYWxsIGZvciB0aGUgZmVl ZGJhY2suIEknbGwgbWFrZSBNVEUKZW5hYmxlZCBieSBkZWZhdWx0IGluIHRoZSBuZXh0IGl0ZXJh dGlvbiBvZiB0aGlzIHNlcmllcy4KClRoYW5rcywKQWxleAoKT24gV2VkLCBNYXIgMjMsIDIwMjIg YXQgMDI6MTU6NTVQTSArMDAwMCwgU3RldmVuIFByaWNlIHdyb3RlOgo+IE9uIDIzLzAzLzIwMjIg MTM6NTcsIFZsYWRpbWlyIE11cnppbiB3cm90ZToKPiA+IEhpLAo+ID4gCj4gPiBPbiAzLzIzLzIy IDEyOjAzIFBNLCBBbGV4YW5kcnUgRWxpc2VpIHdyb3RlOgo+ID4+IEhpLAo+ID4+Cj4gPj4gT24g V2VkLCBNYXIgMjMsIDIwMjIgYXQgMTA6MzE6MTVBTSArMDAwMCwgVmxhZGltaXIgTXVyemluIHdy b3RlOgo+ID4+PiBPbiAzLzIxLzIyIDU6MDggUE0sIEFsZXhhbmRydSBFbGlzZWkgd3JvdGU6Cj4g Pj4+PiBIaSwKPiA+Pj4+Cj4gPj4+PiBPbiBNb24sIE1hciAyMSwgMjAyMiBhdCAwMzo0MDoxOFBN ICswMDAwLCBWbGFkaW1pciBNdXJ6aW4gd3JvdGU6Cj4gPj4+Pj4gSGkgQWxleGFuZHJ1LAo+ID4+ Pj4+Cj4gPj4+Pj4gT24gMy8yMS8yMiAzOjI4IFBNLCBBbGV4YW5kcnUgRWxpc2VpIHdyb3RlOgo+ ID4+Pj4+PiBNVEUgaGFzIGJlZW4gc3VwcG9ydGVkIGluIExpbnV4IHNpbmNlIGNvbW1pdCA2NzM2 MzhmNDM0ZWUgKCJLVk06Cj4gPj4+Pj4+IGFybTY0Ogo+ID4+Pj4+PiBFeHBvc2UgS1ZNX0FSTV9D QVBfTVRFIiksIGFkZCBzdXBwb3J0IGZvciBpdCBpbiBrdm10b29sLgo+ID4+Pj4+Pgo+ID4+Pj4+ PiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcnUgRWxpc2VpIDxhbGV4YW5kcnUuZWxpc2VpQGFybS5j b20+Cj4gPj4+Pj4+IC0tLQo+ID4+Pj4+PiDCoMKgIGFybS9hYXJjaDMyL2luY2x1ZGUva3ZtL2t2 bS1hcmNoLmjCoMKgwqDCoMKgwqDCoCB8wqAgMyArKysKPiA+Pj4+Pj4gwqDCoCBhcm0vYWFyY2g2 NC9pbmNsdWRlL2t2bS9rdm0tYXJjaC5owqDCoMKgwqDCoMKgwqAgfMKgIDEgKwo+ID4+Pj4+PiDC oMKgIGFybS9hYXJjaDY0L2luY2x1ZGUva3ZtL2t2bS1jb25maWctYXJjaC5oIHzCoCAyICsrCj4g Pj4+Pj4+IMKgwqAgYXJtL2FhcmNoNjQva3ZtLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAxMyArKysrKysrKysrKysrCj4gPj4+Pj4+IMKgwqAgYXJt L2luY2x1ZGUvYXJtLWNvbW1vbi9rdm0tY29uZmlnLWFyY2guaMKgIHzCoCAxICsKPiA+Pj4+Pj4g wqDCoCBhcm0va3ZtLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAzICsrKwo+ID4+Pj4+PiDCoMKgIDYgZmlsZXMgY2hh bmdlZCwgMjMgaW5zZXJ0aW9ucygrKQo+ID4+Pj4+Pgo+ID4+Pj4+PiBkaWZmIC0tZ2l0IGEvYXJt L2FhcmNoMzIvaW5jbHVkZS9rdm0va3ZtLWFyY2guaAo+ID4+Pj4+PiBiL2FybS9hYXJjaDMyL2lu Y2x1ZGUva3ZtL2t2bS1hcmNoLmgKPiA+Pj4+Pj4gaW5kZXggYmVlMmZjMjU1YTgyLi41NjE2YjI3 ZTI1N2UgMTAwNjQ0Cj4gPj4+Pj4+IC0tLSBhL2FybS9hYXJjaDMyL2luY2x1ZGUva3ZtL2t2bS1h cmNoLmgKPiA+Pj4+Pj4gKysrIGIvYXJtL2FhcmNoMzIvaW5jbHVkZS9rdm0va3ZtLWFyY2guaAo+ ID4+Pj4+PiBAQCAtNSw2ICs1LDkgQEAKPiA+Pj4+Pj4gwqDCoCAjZGVmaW5lIGt2bV9fYXJjaF9n ZXRfa2Vybl9vZmZzZXQoLi4uKcKgwqDCoCAweDgwMDAKPiA+Pj4+Pj4gK3N0cnVjdCBrdm07Cj4g Pj4+Pj4+ICtzdGF0aWMgaW5saW5lIHZvaWQga3ZtX19hcmNoX2VuYWJsZV9tdGUoc3RydWN0IGt2 bSAqa3ZtKSB7fQo+ID4+Pj4+PiArCj4gPj4+Pj4+IMKgwqAgI2RlZmluZSBBUk1fTUFYX01FTU9S WSguLi4pwqDCoMKgIEFSTV9MT01BUF9NQVhfTUVNT1JZCj4gPj4+Pj4+IMKgwqAgI2RlZmluZSBN QVhfUEFHRV9TSVpFwqDCoMKgIFNaXzRLCj4gPj4+Pj4+IGRpZmYgLS1naXQgYS9hcm0vYWFyY2g2 NC9pbmNsdWRlL2t2bS9rdm0tYXJjaC5oCj4gPj4+Pj4+IGIvYXJtL2FhcmNoNjQvaW5jbHVkZS9r dm0va3ZtLWFyY2guaAo+ID4+Pj4+PiBpbmRleCA1ZTVlZTQxMjExZWQuLjkxMjRmNjkxOWQwZiAx MDA2NDQKPiA+Pj4+Pj4gLS0tIGEvYXJtL2FhcmNoNjQvaW5jbHVkZS9rdm0va3ZtLWFyY2guaAo+ ID4+Pj4+PiArKysgYi9hcm0vYWFyY2g2NC9pbmNsdWRlL2t2bS9rdm0tYXJjaC5oCj4gPj4+Pj4+ IEBAIC02LDYgKzYsNyBAQAo+ID4+Pj4+PiDCoMKgIHN0cnVjdCBrdm07Cj4gPj4+Pj4+IMKgwqAg dW5zaWduZWQgbG9uZyBsb25nIGt2bV9fYXJjaF9nZXRfa2Vybl9vZmZzZXQoc3RydWN0IGt2bSAq a3ZtLAo+ID4+Pj4+PiBpbnQgZmQpOwo+ID4+Pj4+PiDCoMKgIGludCBrdm1fX2FyY2hfZ2V0X2lw YV9saW1pdChzdHJ1Y3Qga3ZtICprdm0pOwo+ID4+Pj4+PiArdm9pZCBrdm1fX2FyY2hfZW5hYmxl X210ZShzdHJ1Y3Qga3ZtICprdm0pOwo+ID4+Pj4+PiDCoMKgICNkZWZpbmUgQVJNX01BWF9NRU1P Ulkoa3ZtKcKgwqDCoCAoe8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwK PiA+Pj4+Pj4gwqDCoMKgwqDCoMKgIHU2NCBtYXhfcmFtO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gPj4+Pj4+IGRpZmYgLS1naXQgYS9h cm0vYWFyY2g2NC9pbmNsdWRlL2t2bS9rdm0tY29uZmlnLWFyY2guaAo+ID4+Pj4+PiBiL2FybS9h YXJjaDY0L2luY2x1ZGUva3ZtL2t2bS1jb25maWctYXJjaC5oCj4gPj4+Pj4+IGluZGV4IDA0YmU0 M2RmYTliMi4uMTEyNTAzNjVkOGQ1IDEwMDY0NAo+ID4+Pj4+PiAtLS0gYS9hcm0vYWFyY2g2NC9p bmNsdWRlL2t2bS9rdm0tY29uZmlnLWFyY2guaAo+ID4+Pj4+PiArKysgYi9hcm0vYWFyY2g2NC9p bmNsdWRlL2t2bS9rdm0tY29uZmlnLWFyY2guaAo+ID4+Pj4+PiBAQCAtNiw2ICs2LDggQEAKPiA+ Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiUnVuIEFBcmNoMzIgZ3Vlc3QiKSzC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ID4+Pj4+PiDCoMKgwqDCoMKgwqAgT1BU X0JPT0xFQU4oJ1wwJywgInBtdSIsICYoY2ZnKS0+aGFzX3BtdXYzLMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgXAo+ID4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJDcmVhdGUgUE1V djMgZGV2aWNlIikswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiA+Pj4+Pj4gK8Kg wqDCoCBPUFRfQk9PTEVBTignXDAnLCAibXRlIiwgJihjZmcpLT5oYXNfbXRlLMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgXAo+ID4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiRW5hYmxlIG1l bW9yeSB0YWdnaW5nIGV4dGVuc2lvbiIpLMKgwqDCoMKgwqDCoMKgIFwKPiA+Pj4+Pj4gwqDCoMKg wqDCoMKgIE9QVF9VNjQoJ1wwJywgImthc2xyLXNlZWQiLCAmKGNmZyktPmthc2xyX3NlZWQswqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gPj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgIlNwZWNpZnkgcmFuZG9tIHNlZWQgZm9yIEtlcm5lbCBBZGRyZXNzIFNwYWNlICLCoMKgwqAg XAo+ID4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJMYXlvdXQgUmFuZG9taXph dGlvbiAoS0FTTFIpIiksCj4gPj4+Pj4+IGRpZmYgLS1naXQgYS9hcm0vYWFyY2g2NC9rdm0uYyBi L2FybS9hYXJjaDY0L2t2bS5jCj4gPj4+Pj4+IGluZGV4IDU2YTBhZWRjMjYzZC4uNDY1NDhmOGVl OTZlIDEwMDY0NAo+ID4+Pj4+PiAtLS0gYS9hcm0vYWFyY2g2NC9rdm0uYwo+ID4+Pj4+PiArKysg Yi9hcm0vYWFyY2g2NC9rdm0uYwo+ID4+Pj4+PiBAQCAtODEsMyArODEsMTYgQEAgaW50IGt2bV9f Z2V0X3ZtX3R5cGUoc3RydWN0IGt2bSAqa3ZtKQo+ID4+Pj4+PiDCoMKgwqDCoMKgwqAgcmV0dXJu IEtWTV9WTV9UWVBFX0FSTV9JUEFfU0laRShpcGFfYml0cyk7Cj4gPj4+Pj4+IMKgwqAgfQo+ID4+ Pj4+PiArCj4gPj4+Pj4+ICt2b2lkIGt2bV9fYXJjaF9lbmFibGVfbXRlKHN0cnVjdCBrdm0gKmt2 bSkKPiA+Pj4+Pj4gK3sKPiA+Pj4+Pj4gK8KgwqDCoCBzdHJ1Y3Qga3ZtX2VuYWJsZV9jYXAgY2Fw ID0gewo+ID4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgLmNhcCA9IEtWTV9DQVBfQVJNX01URSwKPiA+ Pj4+Pj4gK8KgwqDCoCB9Owo+ID4+Pj4+PiArCj4gPj4+Pj4+ICvCoMKgwqAgaWYgKCFrdm1fX3N1 cHBvcnRzX2V4dGVuc2lvbihrdm0sIEtWTV9DQVBfQVJNX01URSkpCj4gPj4+Pj4+ICvCoMKgwqDC oMKgwqDCoCBkaWUoIk1URSBjYXBhYmlsaXR5IGlzIG5vdCBzdXBwb3J0ZWQiKTsKPiA+Pj4+Pj4g Kwo+ID4+Pj4+PiArwqDCoMKgIGlmIChpb2N0bChrdm0tPnZtX2ZkLCBLVk1fRU5BQkxFX0NBUCwg JmNhcCkpCj4gPj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBkaWVfcGVycm9yKCJLVk1fRU5BQkxFX0NB UChLVk1fQ0FQX0FSTV9NVEUpIik7Cj4gPj4+Pj4+ICt9Cj4gPj4+Pj4+IGRpZmYgLS1naXQgYS9h cm0vaW5jbHVkZS9hcm0tY29tbW9uL2t2bS1jb25maWctYXJjaC5oCj4gPj4+Pj4+IGIvYXJtL2lu Y2x1ZGUvYXJtLWNvbW1vbi9rdm0tY29uZmlnLWFyY2guaAo+ID4+Pj4+PiBpbmRleCA1NzM0YzQ2 YWI5ZTYuLjE2ZThkNTAwYTcxYiAxMDA2NDQKPiA+Pj4+Pj4gLS0tIGEvYXJtL2luY2x1ZGUvYXJt LWNvbW1vbi9rdm0tY29uZmlnLWFyY2guaAo+ID4+Pj4+PiArKysgYi9hcm0vaW5jbHVkZS9hcm0t Y29tbW9uL2t2bS1jb25maWctYXJjaC5oCj4gPj4+Pj4+IEBAIC05LDYgKzksNyBAQCBzdHJ1Y3Qg a3ZtX2NvbmZpZ19hcmNoIHsKPiA+Pj4+Pj4gwqDCoMKgwqDCoMKgIGJvb2zCoMKgwqDCoMKgwqDC oCB2aXJ0aW9fdHJhbnNfcGNpOwo+ID4+Pj4+PiDCoMKgwqDCoMKgwqAgYm9vbMKgwqDCoMKgwqDC oMKgIGFhcmNoMzJfZ3Vlc3Q7Cj4gPj4+Pj4+IMKgwqDCoMKgwqDCoCBib29swqDCoMKgwqDCoMKg wqAgaGFzX3BtdXYzOwo+ID4+Pj4+PiArwqDCoMKgIGJvb2zCoMKgwqDCoMKgwqDCoCBoYXNfbXRl Owo+ID4+Pj4+PiDCoMKgwqDCoMKgwqAgdTY0wqDCoMKgwqDCoMKgwqAga2FzbHJfc2VlZDsKPiA+ Pj4+Pj4gwqDCoMKgwqDCoMKgIGVudW0gaXJxY2hpcF90eXBlIGlycWNoaXA7Cj4gPj4+Pj4+IMKg wqDCoMKgwqDCoCB1NjTCoMKgwqDCoMKgwqDCoCBmd19hZGRyOwo+ID4+Pj4+PiBkaWZmIC0tZ2l0 IGEvYXJtL2t2bS5jIGIvYXJtL2t2bS5jCj4gPj4+Pj4+IGluZGV4IDgwZDIzM2YxM2QwYi4uZjJk YjkzOTUzNzc4IDEwMDY0NAo+ID4+Pj4+PiAtLS0gYS9hcm0va3ZtLmMKPiA+Pj4+Pj4gKysrIGIv YXJtL2t2bS5jCj4gPj4+Pj4+IEBAIC04Niw2ICs4Niw5IEBAIHZvaWQga3ZtX19hcmNoX2luaXQo c3RydWN0IGt2bSAqa3ZtLCBjb25zdCBjaGFyCj4gPj4+Pj4+ICpodWdldGxiZnNfcGF0aCwgdTY0 IHJhbV9zaXplKQo+ID4+Pj4+PiDCoMKgwqDCoMKgwqAgLyogQ3JlYXRlIHRoZSB2aXJ0dWFsIEdJ Qy4gKi8KPiA+Pj4+Pj4gwqDCoMKgwqDCoMKgIGlmIChnaWNfX2NyZWF0ZShrdm0sIGt2bS0+Y2Zn LmFyY2guaXJxY2hpcCkpCj4gPj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRpZSgiRmFpbGVk IHRvIGNyZWF0ZSB2aXJ0dWFsIEdJQyIpOwo+ID4+Pj4+PiArCj4gPj4+Pj4+ICvCoMKgwqAgaWYg KGt2bS0+Y2ZnLmFyY2guaGFzX210ZSkKPiA+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGt2bV9fYXJj aF9lbmFibGVfbXRlKGt2bSk7Cj4gPj4+Pj4+IMKgwqAgfQo+ID4+Pj4+Cj4gPj4+Pj4gQ2FuIHdl IGVuYWJsZSBpdCB1bmNvbmRpdGlvbmFsbHkgaWYgS1ZNX0NBUF9BUk1fTVRFIGlzIHN1cHBvcnRl ZAo+ID4+Pj4+IGxpa2Ugd2UgZG8gZm9yCj4gPj4+Pj4gUEFDIGFuZCBTVkU/Cj4gPj4+Pgo+ID4+ Pj4gSSB0aG91Z2h0IGFib3V0IHRoYXQsIHRoZSByZWFzb24gSSBjaG9zZSB0byBlbmFibGUgaXQg YmFzZWQgYSBrdm10b29sCj4gPj4+PiBjb21tYW5kIGxpbmUgb3B0aW9uLCBpbnN0ZWFkIG9mIGFs d2F5cyBiZWluZyBlbmFibGVkIGlmIGF2YWlsYWJsZSwgaXMKPiA+Pj4+IGJlY2F1c2Ugb2YgdGhl IG92ZXJoZWFkIG9mIHNhbml0aXNpbmcgdGhlIE1URSB0YWdzIG9uIGVhY2ggc3RhZ2UgMiBkYXRh Cj4gPj4+PiBhYm9ydC4gU3RldmVuLCBhbSBJIG92ZXJyZWFjdGluZyBhbmQgdGhhdCBvdmVyaGVh ZCBpcyBuZWdsaWdpYmxlPwo+ID4+Pj4KPiA+Pj4+IEFsc28sIGFzIGZhciBhcyBJIGtub3csIFBB QyBhbmQgU1ZFIGluY3VyIGJhc2ljYWxseSBubyBvdmVyaGVhZCBpbiBLVk0KPiA+Pj4+IHVudGls IHRoZSBndWVzdCBzdGFydHMgdG8gdXNlIHRob3NlIGZlYXR1cmVzLgo+ID4+Pj4KPiA+Pj4+IERv IHlvdSBoYXZlIGEgc3BlY2lmaWMgcmVhc29uIGZvciB3YW50aW5nIE1URSB0byBhbHdheXMgYmUg ZW5hYmxlZCBpZgo+ID4+Pj4gYXZhaWxhYmxlPyBJJ20gaGFwcHkgdG8gYmUgY29udmluY2VkIHRv IG1ha2UgTVRFIGVuYWJsZWQgYnkgZGVmYXVsdCwgSQo+ID4+Pj4gZG9uJ3QgaGF2ZSBwcmVmZXJl bmNlIGVpdGhlciB3YXkuCj4gPj4+Cj4gPj4+IFdlbGwsIGF1dG9tYXRpY2FsbHkgZW5hYmxpbmcg aWYgYXZhaWxhYmxlIHdvdWxkIGFsaWduIHdpdGggd2hhdCB3ZSBkbwo+ID4+PiBmb3IKPiA+Pj4g b3RoZXIgZmVhdHVyZXMgaW4ga3ZtdG9vbCBhbmQgTGludXggaXRzZWxmIC0gd2UgdGVuZCB0byBk ZWZhdWx0IHkgZm9yCj4gPj4+IG5ldwo+ID4+PiBmZWF0dXJlcywgZXZlbiBNVEUsIHRodXMgaW1w cm92aW5nIGNoYW5jZXMgdG8gZ2V0IHJlcG9ydHMgYmFjayBlYXJseSBpZgo+ID4+PiBzb21ldGhp bmcgKGV2ZW4gcGVyZm9ybWFuY2UpIGdvZXMgd3JvbmcuIEp1c3QgbXkgMnAuCj4gPj4KPiA+PiBB Y2NvcmRpbmcgdG8gU3RldmVuLCBmb3IgZWFjaCA0ayBwYWdlIHRoZSBrZXJuZWwgdXNlcyBhbiAx MjggYnl0ZQo+ID4+IGJ1ZmZlciB0bwo+ID4+IHN0b3JlIHRoZSB0YWdzLCBhbmQgdGhlbiBzb21l IGV4dHJhIG1lbW9yeSBpcyB1c2VkIHRvIGtlZXAgdHJhY2sgb2YgdGhlCj4gPj4gYnVmZmVycy4g TGV0J3MgdGFrZSB0aGUgY2FzZSBvZiBhIFZNIHdpdGggMUdCIG9mIG1lbW9yeSwgYW5kIGJlCj4g Pj4gY29uc2VydmF0aXZlIGFuZCBvbmx5IGFjY291bnQgZm9yIHRoZSB0YWcgYnVmZmVyLiBJbiB0 aGlzIGNhc2UsIHRoZSB0YWcKPiA+PiBidWZmZXJzIGFsb25lIHdpbGwgYmUgMzJNQi4KPiA+IAo+ ID4gUmlnaHQsIElJVUMsIHRoYXQgbWVtb3J5IGlzIGFsbG9jYXRlZCBvbiBkZW1hbmQgd2hlbiB3 ZSBhYm91dCB0byBzd2FwCj4gPiB0aGUgcGFnZQo+ID4gb3V0IG9yIHBlcmZvcm0gaGliZXJuYXRp b24sIHNvIHRoZXJlIGlzIG5vIHJlc2VydmF0aW9uIGRvbmUgdXBmcm9udCBvciBJJ20KPiA+IG1p c3Npbmcgc29tZXRoaW5nPwo+IAo+IFRoYXQncyBjb3JyZWN0LCBzb3JyeSBpZiBJIGRpZG4ndCBt YWtlIHRoYXQgY2xlYXIgZWFybGllci4gVGhlIGhvc3QKPiBtZW1vcnkgaXMgb25seSBhbGxvY2F0 ZWQgd2hlbiB0aGUgTVRFLWVuYWJsZWQgZ3Vlc3QncyBwYWdlcyBhcmUgc3dhcHBlZAo+IG91dC4g U28gaWYgdGhleSBhcmUgbmV2ZXIgc3dhcHBlZCBvdXQgdGhlcmUncyBubyBtZW1vcnkgb3Zlcmhl YWQuCj4gCj4gPj4KPiA+PiBGb3IgYSBWTSB3aXRoIDFHQiBvZiBtZW1vcnkgY3JlYXRlZCB3aXRo IGt2bXRvb2wgYnVpbHQgZnJvbSBjdXJyZW50Cj4gPj4gbWFzdGVyCj4gPj4gKGNvbW1pdCBmYWFl ODMzYTc0NmYpLCBwbWFwIHNob3dzIGEgdG90YWwgbWVtb3J5IHVzYWdlIG9mIDEyNjgzODhLLgo+ ID4+IFN1YnRyYWN0aW5nIHRoZSBtZW1vcnkgb2YgdGhlIFZNLCB3ZSBhcmUgbGVmdCB3aXRoIDIx NE1CIG9mIG1lbW9yeQo+ID4+IGNvbnN1bWVkCj4gPj4gYnkga3ZtdG9vbC4gSGF2aW5nIE1URSBl bmFibGVkIHdvdWxkIGluY3JlYXNlIHRoZSBtZW1vcnkgb3ZlcmhlYWQgb2YKPiA+PiBrdm10b29s IGJ5IDMyLzIxNCoxMDAgPSAxNSUuCj4gPj4KPiA+IAo+ID4gSSBhZG1pdCwgSSBtaWdodCBiZSBt aXNzaW5nIHNvbWV0aGluZywgYnV0IGdpdmVuIHRoYXQgZXh0cmEgdGFnIHN0b3JhZ2UKPiA+IGFs bG9jYXRlZCBmb3Igc3dhcC9oaWJlcm5hdGlvbiBvdmVyaGVhZCBjYW4gYmUgYXBwbGllZCB0byBh bnkgcHJvY2VzcyB3aGljaAo+ID4gdXNlcyBNVEUsIG5vPwo+IAo+IE9uZSBkaWZmZXJlbmNlIGlz IHRoYXQgdGhlIGVudGlyZSBWTSBpcyBjb25zaWRlcmVkIE1URSBtZW1vcnksIHdoZXJlYXMKPiBp biBhIG5vcm1hbCBhcHBsaWNhdGlvbiBvbmx5IHRob3NlIHBhZ2VzIG1hcHBlZCB3aXRoIFBST1Rf TVRFIHRha2UgdGhlCj4gb3ZlcmhlYWQuIFNvIHRoZSBtZW1vcnkgb3ZlcmhlYWQgb2YgYXBwbGlj YXRpb25zIHJ1bm5pbmcgaW4gdGhlIFZNIGlzCj4gaGlnaGVyIHRoYW4gdGhlIHNhbWUgYXBwbGlj YXRpb24gb3V0c2lkZSBvZiB0aGUgVk0gKGFzc3VtaW5nIHRoZSBtZW1vcnkKPiBpcyBzd2FwcGVk IG91dCBieSB0aGUgaG9zdCkuCj4gCj4gPj4gT2YgY291cnNlLCB0aGlzIG1lbW9yeSBvdmVyaGVh ZCBzY2FsZXMgd2l0aCB0aGUgYW1vdW50IG9mIG1lbW9yeSB0aGUgVk0KPiA+PiBoYXMuIFRoZSBi dWZmZXIgc2l6ZSB0aGF0IEtWTSB1c2VzIG1pZ2h0IGNoYW5nZSBpbiB0aGUgZnV0dXJlLCBidXQK PiA+PiBzaW5jZSB3ZQo+ID4+IGNhbm5vdCBwcmVkaWN0IHRoZSBmdXR1cmUgKG1pZ2h0IGJlY29t ZSBsYXJnZXIgb3Igc21hbGxlciksIEknbSB3b3JraW5nCj4gPj4gd2l0aCB3aGF0IGlzIGltcGxl bWVudCB0b2RheS4KPiA+Pgo+ID4gCj4gPiBGYWlyIGVub3VnaC4gSU1PLCB3ZSB3aWxsIHNlZSBt b3JlIE1URSBjYXBhYmxlIGhhcmR3YXJlLCBPVE9ILCBtZW1vcnkKPiA+IG92ZXJoZWFkCj4gPiB3 b24ndCBtYWdpY2FsbHkgZGlzYXBwZWFyLCBzbyBzaG91bGQgd2Ugc3RhcnQgdGhpbmtpbmcgaG93 IHRvIHJlZHVjZSBpdD8KPiA+IEkgbm90aWNlZCB0aGF0IGNvZGUgc2F2ZXMgdGFncyBvbmUgdG8g b25lLCBzbyBmb3IgZ3Vlc3Qgd2hpY2ggZG9lc24ndAo+ID4gYWN0aXZlbHkgdXNlIE1URSB3aG9s ZSBwYWdlIHdvdWxkIGJlIHRhZ2dlZCB3aXRoIHplcm8sIGNhbm5vdCB0aGF0IGNhc2UgYmUKPiA+ IG9wdGltaXplZD8gb3IgbWF5YmUgYmUgZ28gZnVydGhlciBhbmQgY29tcHJlc3MgdGFncz8KPiAK PiBDb21wcmVzc2luZyB0YWdzIGlzIGNlcnRhaW5seSBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBj b25zaWRlcmVkIChhbgo+IGVhcmx5IHJldmlzaW9uIG9mIHRoZSBNVEUgc3dhcCBkaWQgb3B0aW1p c2UgdGhlIHplcm8gY2FzZSkuCj4gCj4gSG93ZXZlciBMaW51eCBpcyBsYXp5IHdpdGggdGhlIHRh Z3MgLSBpZiBhbiBhcHBsaWNhdGlvbiBuZWVkcyBtZW1vcnkgYnV0Cj4gZG9lc24ndCB1c2UgdGhl IHRhZ3MgdGhlbiBvbmx5IHRoZSBkYXRhIHBvcnRpb24gd2lsbCBiZSB6ZXJvZWQgYW5kIHRoZQo+ IHRhZ3Mgd2lsbCBiZSBsZWZ0IHdpdGggd2hhdGV2ZXIgdmFsdWUgdGhleSBoYWQgcHJldmlvdXNs eSAoYXMgdGhleSBhcmUKPiBub3QgYWNjZXNzaWJsZSBieSB0aGUgYXBwbGljYXRpb24pLiBUaGlz IGNvdWxkIG1lYW4gdGhhdCBhIE1URS1lbmFibGVkCj4gZ3Vlc3QgZW5kcyB3aXRoIHdpdGggcmVt YXJrYWJseSBmZXcgcGFnZXMgd2l0aCB6ZXJvZWQgdGFncyBhZnRlciBpdCBoYXMKPiBiZWVuIHJ1 bm5pbmcgZm9yIGEgd2hpbGUuCj4gCj4gRnJvbSB0aGUgaG9zdCBpdCdzIG5vdCBwb3NzaWJsZSB0 byBkZXRlcm1pbmUgd2hldGhlciB0aGUgdGFncyBhcmUgdXNlZnVsCj4gb3Igbm90IHNvIHRoZXkg aGF2ZSB0byBiZSBzYXZlZCByZWdhcmRsZXNzLgo+IAo+IFRoYXQgc2FpZCBJIGRvbid0IGhhdmUg YSBzdHJvbmcgb3BpbmlvbiBvbiB0aGUgZGVmYXVsdCwgYXMgbG9uZyBhcwo+IHRoZXJlJ3MgYW4g b3B0aW9uIHRvIGRpc2FibGUgTVRFIHRoZW4gaGF2aW5nIHRoZSBkZWZhdWx0IHdpdGggaXQgdHVy bmVkCj4gb24gaXMgZmluZSBieSBtZS4KPiAKPiA+PiBUaGUga2VybmVsIGRvY3VtZW50YXRpb24g Zm9yIE1URSBzdWdnZXN0cyB0aGF0IGluIG9yZGVyIHRvIHRha2UgYWR2YW50YWdlCj4gPj4gb2Yg aXQsIHNvZnR3YXJlIG11c3QgYmUgbW9kaWZpZWQgYW5kIHJlY29tcGlsZWQuIFRoYXQgbWVhbnMg dGhhdCB1c2Vycwo+ID4+IHRoYXQKPiA+PiBkb24ndCB3YW50IHRvIHVzZSBNVEUgd29uJ3QgZ2V0 IHRvIGV4ZXJjaXNlIE1URSBiZWNhdXNlIHRoZXkgd29uJ3QgYmUKPiA+PiB1c2luZwo+ID4+IE1U RSBlbmFibGVkIHNvZnR3YXJlLCBidXQgdGhleSB3aWxsIHBheSB0aGUgb3ZlcmhlYWQgcmVnYXJk bGVzcy4gVGhpcyBvZgo+ID4+IGNvdXJzZSBhc3N1bWVzIHRoYXQgZ29pbmcgZm9yd2FyZCBzb2Z0 d2FyZSB3b24ndCBiZSB1c2luZyBNVEUgYnkgZGVmYXVsdC4KPiA+Pgo+ID4+IGt2bXRvb2wgaXMg c3VwcG9zZWQgdG8gYmUgc2ltcGxlLCBmYXN0IGFuZCBsZXNzIHJlc291cmNlIGludGVuc2l2ZSB0 aGFuCj4gPj4gb3RoZXIgaHlwZXJ2aXNvcnMsIHRoYXQncyB3aHkgSSB0aGluayBoYXZpbmcgTVRF IGRpc2FibGVkIGJ5IGRlZmF1bHQKPiA+PiBpcyB0aGUKPiA+PiBiZXN0IHdheSB0byBpbXBsZW1l bnQgdGhlIGNhcGFiaWxpdHkuCj4gPiAKPiA+IEkgc2VlIGt2bXRvb2wgYXMgYmxlZWRpbmcgZWRn ZSBoYWNraW5nIHRvb2wsIHNvIGNsb3NlciBpdCB0byB0aGUgZWRnZSBpcwo+ID4gYmV0dGVyIDop Cj4gCj4gSSBoYXZlIHRvIGFkbWl0IEkgbGlrZSB0aGUgImp1c3Qgd29ya3MiIGFwcHJvYWNoIHRo YXQgdGhlIGRlZmF1bHRzIGdpdmUKPiB5b3UgKGUuZy4gcDkgZmlsZXN5c3RlbSBmcm9tIGhvc3Qs IG5vIG5lZWQgdG8gY29uZmlndXJlIHJvb3QgZmlsZXN5c3RlbXMKPiBldGMpLCBzbyB0aGVyZSdz IGRlZmluaXRlbHkgc29tZXRoaW5nIHRvIGJlIHNhaWQgZm9yIE1URSAianVzdCB3b3JraW5nIgo+ IGluIGt2bXRvb2wgdG9vLgo+IAo+IFN0ZXZlCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1h cm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcv bWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==