Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp1818025ybk; Mon, 11 May 2020 05:09:14 -0700 (PDT) X-Google-Smtp-Source: APiQypKxLjDC1MPJT3qYkH0HE0G1/qWQu9ZVe4vroy+BUjlo81Nd/qeWnWHyU2EmZYb1yDUq2ifF X-Received: by 2002:a17:906:168f:: with SMTP id s15mr13407730ejd.17.1589198953824; Mon, 11 May 2020 05:09:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589198953; cv=none; d=google.com; s=arc-20160816; b=kSjAMJCJEiHWepFixnMV3CG/qwojhv/89VLOj6W9JABncE1i4Wa3BalzJphyRxlzlH ePcIhrwZzOO3NdCiELkPTKbJbAlXW8jcXS3lyPoCjm2zXrBUSkTyl6l9FGbY7IPuNddU MMmbOqYk/gajqD5Ku1SxQi+QLOil1V1VaodpzvmjHlchOZq13sWS69Kl7pN7kHpacY1U mLZGfvgYyrvQWWhHx1MGcaGogSQfGt33b1foeXmAOReWJ/lLX9TDzXChX3KY5lAiFjrI 1ESWAmIpkh3xHPoLfFFJfta6YWeezC6N87dx144q6BFLb06Q1gXywPk/Bhtmm/9HmMVg qONA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:ironport-sdr :dkim-signature; bh=b0C14p1QB3HxGFoJisefUNvD+vYrfqa/3Bqjwq/q9bE=; b=YWGNiOngt8vopIRFuBFHzzBt8Yuk+XeWhX1KbXpQQPTjChKhzEooB6odz7nrTdATO2 XqlyQp1uyNYX0ZW+6x9vWolGltGAFDWuGN3rJkDzE+rrMtodO+MWnDvVCl25w1BKm3yj lhhvVgPOAOw+0Ii1WR+cRUwZt01o+6AOIGMaI/MP16gPGbJOVYy7Dxbdx7JbfIWuYPUH FZgdb5iMLNNrK+hV2RPJ7wCePIWr/N+BMUnt89aHTabxF+l2MstdCHzYEfnuno1+xAik Lg9SwoMkKb0c3armufMOYuhMKBYfjMbvK+abEe16CCJHvm60oSe8sFcy2aBvqKhB0IMw zsyg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b=EDPtwbSN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f3si1166558edm.510.2020.05.11.05.08.49; Mon, 11 May 2020 05:09:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b=EDPtwbSN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729944AbgEKMFo (ORCPT + 99 others); Mon, 11 May 2020 08:05:44 -0400 Received: from smtp-fw-2101.amazon.com ([72.21.196.25]:24650 "EHLO smtp-fw-2101.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729728AbgEKMFn (ORCPT ); Mon, 11 May 2020 08:05:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1589198742; x=1620734742; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=b0C14p1QB3HxGFoJisefUNvD+vYrfqa/3Bqjwq/q9bE=; b=EDPtwbSN3wyXpHgA/svh+sQT3B4p/ABJbrrTsuQx6Io9vdPJJ4P/MRbD O8SwNiBnzj7TYAIi5aLFBQJO7WIVwnj+LJTb7oOG0+GpHY8TGGux3zga8 3xWEqYsg/Fi7qmttjOyDdINT5HI33T5DHVotAbG8Ya6CTWDMcEOr3M4gX E=; IronPort-SDR: QtTziGq/XMnnp+O8ONwXwnVh1BIA6ErBBHBEkHkn90Yibl6r10DskjgXrYRgRhn++QrOqbnHRq ybVCDluaJBYg== X-IronPort-AV: E=Sophos;i="5.73,379,1583193600"; d="scan'208";a="29795244" Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-1d-9ec21598.us-east-1.amazon.com) ([10.43.8.2]) by smtp-border-fw-out-2101.iad2.amazon.com with ESMTP; 11 May 2020 12:05:30 +0000 Received: from EX13MTAUEA002.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan3.iad.amazon.com [10.40.159.166]) by email-inbound-relay-1d-9ec21598.us-east-1.amazon.com (Postfix) with ESMTPS id C16A3A1BD7; Mon, 11 May 2020 12:05:28 +0000 (UTC) Received: from EX13D16EUB001.ant.amazon.com (10.43.166.28) by EX13MTAUEA002.ant.amazon.com (10.43.61.77) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 11 May 2020 12:05:27 +0000 Received: from 38f9d34ed3b1.ant.amazon.com (10.43.162.200) by EX13D16EUB001.ant.amazon.com (10.43.166.28) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 11 May 2020 12:05:20 +0000 Subject: Re: [PATCH v1 00/15] Add support for Nitro Enclaves To: Li Qiang CC: "Tian, Kevin" , Paolo Bonzini , "linux-kernel@vger.kernel.org" , "Anthony Liguori" , Benjamin Herrenschmidt , Colm MacCarthaigh , Bjoern Doebel , David Woodhouse , Frank van der Linden , Alexander Graf , Martin Pohlack , Matt Wilson , Balbir Singh , Stewart Smith , Uwe Dannowski , "kvm@vger.kernel.org" , "ne-devel-upstream@amazon.com" References: <20200421184150.68011-1-andraprs@amazon.com> <18406322-dc58-9b59-3f94-88e6b638fe65@redhat.com> From: "Paraschiv, Andra-Irina" Message-ID: Date: Mon, 11 May 2020 15:05:15 +0300 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-Originating-IP: [10.43.162.200] X-ClientProxiedBy: EX13D24UWB001.ant.amazon.com (10.43.161.93) To EX13D16EUB001.ant.amazon.com (10.43.166.28) Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org CgpPbiAxMC8wNS8yMDIwIDEyOjU3LCBMaSBRaWFuZyB3cm90ZToKPgo+Cj4gUGFyYXNjaGl2LCBB bmRyYS1JcmluYSA8YW5kcmFwcnNAYW1hem9uLmNvbSAKPiA8bWFpbHRvOmFuZHJhcHJzQGFtYXpv bi5jb20+PiDkuo4yMDIw5bm0NOaciDI05pel5ZGo5LqUIOS4i+WNiDEwOjAz5YaZ6YGT77yaCj4K Pgo+Cj4gICAgIE9uIDI0LzA0LzIwMjAgMTI6NTksIFRpYW4sIEtldmluIHdyb3RlOgo+ICAgICA+ Cj4gICAgID4+IEZyb206IFBhcmFzY2hpdiwgQW5kcmEtSXJpbmEKPiAgICAgPj4gU2VudDogVGh1 cnNkYXksIEFwcmlsIDIzLCAyMDIwIDk6MjAgUE0KPiAgICAgPj4KPiAgICAgPj4gT24gMjIvMDQv MjAyMCAwMDo0NiwgUGFvbG8gQm9uemluaSB3cm90ZToKPiAgICAgPj4+IE9uIDIxLzA0LzIwIDIw OjQxLCBBbmRyYSBQYXJhc2NoaXYgd3JvdGU6Cj4gICAgID4+Pj4gQW4gZW5jbGF2ZSBjb21tdW5p Y2F0ZXMgd2l0aCB0aGUgcHJpbWFyeSBWTSB2aWEgYSBsb2NhbAo+ICAgICBjb21tdW5pY2F0aW9u Cj4gICAgID4+IGNoYW5uZWwsCj4gICAgID4+Pj4gdXNpbmcgdmlydGlvLXZzb2NrIFsyXS4gQW4g ZW5jbGF2ZSBkb2VzIG5vdCBoYXZlIGEgZGlzayBvciBhCj4gICAgIG5ldHdvcmsgZGV2aWNlCj4g ICAgID4+Pj4gYXR0YWNoZWQuCj4gICAgID4+PiBJcyBpdCBwb3NzaWJsZSB0byBoYXZlIGEgc2Ft cGxlIG9mIHRoaXMgaW4gdGhlIHNhbXBsZXMvIGRpcmVjdG9yeT8KPiAgICAgPj4gSSBjYW4gYWRk IGluIHYyIGEgc2FtcGxlIGZpbGUgaW5jbHVkaW5nIHRoZSBiYXNpYyBmbG93IG9mIGhvdwo+ICAg ICB0byB1c2UgdGhlCj4gICAgID4+IGlvY3RsIGludGVyZmFjZSB0byBjcmVhdGUgLyB0ZXJtaW5h dGUgYW4gZW5jbGF2ZS4KPiAgICAgPj4KPiAgICAgPj4gVGhlbiB3ZSBjYW4gdXBkYXRlIC8gYnVp bGQgb24gdG9wIGl0IGJhc2VkIG9uIHRoZSBvbmdvaW5nCj4gICAgIGRpc2N1c3Npb25zIG9uCj4g ICAgID4+IHRoZSBwYXRjaCBzZXJpZXMgYW5kIHRoZSByZWNlaXZlZCBmZWVkYmFjay4KPiAgICAg Pj4KPiAgICAgPj4+IEkgYW0gaW50ZXJlc3RlZCBlc3BlY2lhbGx5IGluOgo+ICAgICA+Pj4KPiAg ICAgPj4+IC0gdGhlIGluaXRpYWwgQ1BVIHN0YXRlOiBDUEwwIHZzLiBDUEwzLCBpbml0aWFsIHBy b2dyYW0KPiAgICAgY291bnRlciwgZXRjLgo+ICAgICA+Pj4KPiAgICAgPj4+IC0gdGhlIGNvbW11 bmljYXRpb24gY2hhbm5lbDsgZG9lcyB0aGUgZW5jbGF2ZSBzZWUgdGhlIHVzdWFsCj4gICAgIGxv Y2FsIEFQSUMKPiAgICAgPj4+IGFuZCBJT0FQSUMgaW50ZXJmYWNlcyBpbiBvcmRlciB0byBnZXQg aW50ZXJydXB0cyBmcm9tCj4gICAgIHZpcnRpby12c29jaywgYW5kCj4gICAgID4+PiB3aGVyZSBp cyB0aGUgdmlydGlvLXZzb2NrIGRldmljZSAodmlydGlvLW1taW8gSSBzdXBwb3NlKQo+ICAgICBw bGFjZWQgaW4gbWVtb3J5Pwo+ICAgICA+Pj4KPiAgICAgPj4+IC0gd2hhdCB0aGUgZW5jbGF2ZSBp cyBhbGxvd2VkIHRvIGRvOiBjYW4gaXQgY2hhbmdlIHByaXZpbGVnZQo+ICAgICBsZXZlbHMsCj4g ICAgID4+PiB3aGF0IGhhcHBlbnMgaWYgdGhlIGVuY2xhdmUgcGVyZm9ybXMgYW4gYWNjZXNzIHRv IG5vbmV4aXN0ZW50Cj4gICAgIG1lbW9yeSwKPiAgICAgPj4gZXRjLgo+ICAgICA+Pj4gLSB3aGV0 aGVyIHRoZXJlIGFyZSBzcGVjaWFsIGh5cGVyY2FsbCBpbnRlcmZhY2VzIGZvciB0aGUgZW5jbGF2 ZQo+ICAgICA+PiBBbiBlbmNsYXZlIGlzIGEgVk0sIHJ1bm5pbmcgb24gdGhlIHNhbWUgaG9zdCBh cyB0aGUgcHJpbWFyeSBWTSwKPiAgICAgdGhhdAo+ICAgICA+PiBsYXVuY2hlZCB0aGUgZW5jbGF2 ZS4gVGhleSBhcmUgc2libGluZ3MuCj4gICAgID4+Cj4gICAgID4+IEhlcmUgd2UgbmVlZCB0byB0 aGluayBvZiB0d28gY29tcG9uZW50czoKPiAgICAgPj4KPiAgICAgPj4gMS4gQW4gZW5jbGF2ZSBh YnN0cmFjdGlvbiBwcm9jZXNzIC0gYSBwcm9jZXNzIHJ1bm5pbmcgaW4gdGhlCj4gICAgIHByaW1h cnkgVk0KPiAgICAgPj4gZ3Vlc3QsIHRoYXQgdXNlcyB0aGUgcHJvdmlkZWQgaW9jdGwgaW50ZXJm YWNlIG9mIHRoZSBOaXRybyBFbmNsYXZlcwo+ICAgICA+PiBrZXJuZWwgZHJpdmVyIHRvIHNwYXdu IGFuIGVuY2xhdmUgVk0gKHRoYXQncyAyIGJlbG93KS4KPiAgICAgPj4KPiAgICAgPj4gSG93IGRv ZXMgYWxsIGdldHMgdG8gYW4gZW5jbGF2ZSBWTSBydW5uaW5nIG9uIHRoZSBob3N0Pwo+ICAgICA+ Pgo+ICAgICA+PiBUaGVyZSBpcyBhIE5pdHJvIEVuY2xhdmVzIGVtdWxhdGVkIFBDSSBkZXZpY2Ug ZXhwb3NlZCB0byB0aGUKPiAgICAgcHJpbWFyeSBWTS4KPiAgICAgPj4gVGhlIGRyaXZlciBmb3Ig dGhpcyBuZXcgUENJIGRldmljZSBpcyBpbmNsdWRlZCBpbiB0aGUgY3VycmVudAo+ICAgICBwYXRj aCBzZXJpZXMuCj4gICAgID4+Cj4gICAgID4+IFRoZSBpb2N0bCBsb2dpYyBpcyBtYXBwZWQgdG8g UENJIGRldmljZSBjb21tYW5kcyBlLmcuIHRoZQo+ICAgICA+PiBORV9FTkNMQVZFX1NUQVJUIGlv Y3RsIG1hcHMgdG8gYW4gZW5jbGF2ZSBzdGFydCBQQ0kgY29tbWFuZCBvciB0aGUKPiAgICAgPj4g S1ZNX1NFVF9VU0VSX01FTU9SWV9SRUdJT04gbWFwcyB0byBhbiBhZGQgbWVtb3J5IFBDSSBjb21t YW5kLgo+ICAgICA+PiBUaGUgUENJCj4gICAgID4+IGRldmljZSBjb21tYW5kcyBhcmUgdGhlbiB0 cmFuc2xhdGVkIGludG8gYWN0aW9ucyB0YWtlbiBvbiB0aGUKPiAgICAgaHlwZXJ2aXNvcgo+ICAg ICA+PiBzaWRlOyB0aGF0J3MgdGhlIE5pdHJvIGh5cGVydmlzb3IgcnVubmluZyBvbiB0aGUgaG9z dCB3aGVyZSB0aGUKPiAgICAgcHJpbWFyeQo+ICAgICA+PiBWTSBpcyBydW5uaW5nLgo+ICAgICA+ Pgo+ICAgICA+PiAyLiBUaGUgZW5jbGF2ZSBpdHNlbGYgLSBhIFZNIHJ1bm5pbmcgb24gdGhlIHNh bWUgaG9zdCBhcyB0aGUKPiAgICAgcHJpbWFyeSBWTQo+ICAgICA+PiB0aGF0IHNwYXduZWQgaXQu Cj4gICAgID4+Cj4gICAgID4+IFRoZSBlbmNsYXZlIFZNIGhhcyBubyBwZXJzaXN0ZW50IHN0b3Jh Z2Ugb3IgbmV0d29yayBpbnRlcmZhY2UKPiAgICAgYXR0YWNoZWQsCj4gICAgID4+IGl0IHVzZXMg aXRzIG93biBtZW1vcnkgYW5kIENQVXMgKyBpdHMgdmlydGlvLXZzb2NrIGVtdWxhdGVkCj4gICAg IGRldmljZSBmb3IKPiAgICAgPj4gY29tbXVuaWNhdGlvbiB3aXRoIHRoZSBwcmltYXJ5IFZNLgo+ ICAgICA+IHNvdW5kcyBsaWtlIGEgZmlyZWNyYWNrZXIgVk0/Cj4KPiAgICAgSXQncyBhIFZNIGNy YWZ0ZWQgZm9yIGVuY2xhdmUgbmVlZHMuCj4KPiAgICAgPgo+ICAgICA+PiBUaGUgbWVtb3J5IGFu ZCBDUFVzIGFyZSBjYXJ2ZWQgb3V0IG9mIHRoZSBwcmltYXJ5IFZNLCB0aGV5IGFyZQo+ICAgICBk ZWRpY2F0ZWQKPiAgICAgPj4gZm9yIHRoZSBlbmNsYXZlLiBUaGUgTml0cm8gaHlwZXJ2aXNvciBy dW5uaW5nIG9uIHRoZSBob3N0Cj4gICAgIGVuc3VyZXMgbWVtb3J5Cj4gICAgID4+IGFuZCBDUFUg aXNvbGF0aW9uIGJldHdlZW4gdGhlIHByaW1hcnkgVk0gYW5kIHRoZSBlbmNsYXZlIFZNLgo+ICAg ICA+IEluIGxhc3QgcGFyYWdyYXBoLCB5b3Ugc2FpZCB0aGF0IHRoZSBlbmNsYXZlIFZNIHVzZXMg aXRzIG93bgo+ICAgICBtZW1vcnkgYW5kCj4gICAgID4gQ1BVcy4gVGhlbiBoZXJlLCB5b3Ugc2Fp ZCB0aGUgbWVtb3J5L0NQVXMgYXJlIGNhcnZlZCBvdXQgYW5kCj4gICAgIGRlZGljYXRlZAo+ICAg ICA+IGZyb20gdGhlIHByaW1hcnkgVk0uIENhbiB5b3UgZWxhYm9yYXRlIHdoaWNoIG9uZSBpcyBh Y2N1cmF0ZT8gb3IKPiAgICAgYSBtaXhlZAo+ICAgICA+IG1vZGVsPwo+Cj4gICAgIE1lbW9yeSBh bmQgQ1BVcyBhcmUgY2FydmVkIG91dCBvZiB0aGUgcHJpbWFyeSBWTSBhbmQgYXJlIGRlZGljYXRl ZAo+ICAgICBmb3IKPiAgICAgdGhlIGVuY2xhdmUgVk0uIEkgbWVudGlvbmVkIGFib3ZlIGFzICJp dHMgb3duIiBpbiB0aGUgc2Vuc2UgdGhhdCB0aGUKPiAgICAgcHJpbWFyeSBWTSBkb2Vzbid0IHVz ZSB0aGVzZSBjYXJ2ZWQgb3V0IHJlc291cmNlcyB3aGlsZSB0aGUKPiAgICAgZW5jbGF2ZSBpcwo+ ICAgICBydW5uaW5nLCBhcyB0aGV5IGFyZSBkZWRpY2F0ZWQgdG8gdGhlIGVuY2xhdmUuCj4KPiAg ICAgSG9wZSB0aGF0IG5vdyBpdCdzIG1vcmUgY2xlYXIuCj4KPiAgICAgPgo+ICAgICA+Pgo+ICAg ICA+PiBUaGVzZSB0d28gY29tcG9uZW50cyBuZWVkIHRvIHJlZmxlY3QgdGhlIHNhbWUgc3RhdGUg ZS5nLiB3aGVuIHRoZQo+ICAgICA+PiBlbmNsYXZlIGFic3RyYWN0aW9uIHByb2Nlc3MgKDEpIGlz IHRlcm1pbmF0ZWQsIHRoZSBlbmNsYXZlIFZNCj4gICAgICgyKSBpcwo+ICAgICA+PiB0ZXJtaW5h dGVkIGFzIHdlbGwuCj4gICAgID4+Cj4gICAgID4+IFdpdGggcmVnYXJkIHRvIHRoZSBjb21tdW5p Y2F0aW9uIGNoYW5uZWwsIHRoZSBwcmltYXJ5IFZNIGhhcwo+ICAgICBpdHMgb3duCj4gICAgID4+ IGVtdWxhdGVkIHZpcnRpby12c29jayBQQ0kgZGV2aWNlLiBUaGUgZW5jbGF2ZSBWTSBoYXMgaXRz IG93bgo+ICAgICBlbXVsYXRlZAo+ICAgICA+PiB2aXJ0aW8tdnNvY2sgZGV2aWNlIGFzIHdlbGwu IFRoaXMgY2hhbm5lbCBpcyB1c2VkLCBmb3IgZXhhbXBsZSwKPiAgICAgdG8gZmV0Y2gKPiAgICAg Pj4gZGF0YSBpbiB0aGUgZW5jbGF2ZSBhbmQgdGhlbiBwcm9jZXNzIGl0LiBBbiBhcHBsaWNhdGlv biB0aGF0Cj4gICAgIHNldHMgdXAgdGhlCj4gICAgID4+IHZzb2NrIHNvY2tldCBhbmQgY29ubmVj dHMgb3IgbGlzdGVucywgZGVwZW5kaW5nIG9uIHRoZSB1c2UKPiAgICAgY2FzZSwgaXMgdGhlbgo+ ICAgICA+PiBkZXZlbG9wZWQgdG8gdXNlIHRoaXMgY2hhbm5lbDsgdGhpcyBoYXBwZW5zIG9uIGJv dGggZW5kcyAtCj4gICAgIHByaW1hcnkgVk0KPiAgICAgPj4gYW5kIGVuY2xhdmUgVk0uCj4gICAg ID4gSG93IGRvZXMgdGhlIGFwcGxpY2F0aW9uIGluIHRoZSBwcmltYXJ5IFZNIGFzc2lnbiB0YXNr IHRvIGJlCj4gICAgIGV4ZWN1dGVkCj4gICAgID4gaW4gdGhlIGVuY2xhdmUgVk0/IEkgZGlkbid0 IHNlZSBzdWNoIGNvbW1hbmQgaW4gdGhpcyBzZXJpZXMsIHNvCj4gICAgIHN1cHBvc2UKPiAgICAg PiBpdCBpcyBhbHNvIGNvbW11bmljYXRlZCB0aHJvdWdoIHZpcnRpby12c29jaz8KPgo+ICAgICBU aGUgYXBwbGljYXRpb24gdGhhdCBydW5zIGluIHRoZSBlbmNsYXZlIG5lZWRzIHRvIGJlIHBhY2th Z2VkIGluIGFuCj4gICAgIGVuY2xhdmUgaW1hZ2UgdG9nZXRoZXIgd2l0aCB0aGUgT1MgKCBlLmcu IGtlcm5lbCwgcmFtZGlzaywgaW5pdCApCj4gICAgIHRoYXQKPiAgICAgd2lsbCBydW4gaW4gdGhl IGVuY2xhdmUgVk0uCj4KPiAgICAgVGhlbiB0aGUgZW5jbGF2ZSBpbWFnZSBpcyBsb2FkZWQgaW4g bWVtb3J5LiBBZnRlciBib290aW5nIGlzCj4gICAgIGZpbmlzaGVkLAo+ICAgICB0aGUgYXBwbGlj YXRpb24gc3RhcnRzLiBOb3csIGRlcGVuZGluZyBvbiB0aGUgYXBwIGltcGxlbWVudGF0aW9uCj4g ICAgIGFuZCB1c2UKPiAgICAgY2FzZSwgb25lIGV4YW1wbGUgY2FuIGJlIHRoYXQgdGhlIGFwcCBp biB0aGUgZW5jbGF2ZSB3YWl0cyBmb3IKPiAgICAgZGF0YSB0bwo+ICAgICBiZSBmZXRjaGVkIGlu IHZpYSB0aGUgdnNvY2sgY2hhbm5lbC4KPgo+Cj4gSGnCoFBhcmFzY2hpdiwKPgo+IFNvIGhlcmUg dGhlIGN1c3RvbSdzIGFwcGxpY2F0aW9uIHNob3VsZCBiZSBwcm9ncmFtbWVkIHRvIHJlc3BlY3Qg dGhlIAo+IGVuY2xhdmUgVk0gc3BlYywKPiBhbmQgY2FuJ3QgYmUgYW55IGJpbmFyeSwgcmlnaHQ/ IEFuZCBhbHNvIHRoZSBhcHBsaWNhdGlvbiBpbiBlbmNsYXZlIAo+IGNhbid0IHVzZSBhbnkgb3Ro ZXIgSU8KPiBleGNlcHQgdGhlIHZzb2NrPwoKSGksCgpUaGUgYXBwbGljYXRpb24gcnVubmluZyBp biB0aGUgZW5jbGF2ZSBzaG91bGQgYmUgYnVpbHQgc28gdGhhdCBpdCB1c2VzIAp0aGUgYXZhaWxh YmxlIGV4cG9zZWQgZnVuY3Rpb25hbGl0eSBlLmcuIHRoZSB2c29jayBjb21tIGNoYW5uZWwuCgpX aXRoIHJlZ2FyZCB0byBJL08sIHZzb2NrIGlzIHRoZSBtZWFucyB0byBpbnRlcmFjdCB3aXRoIHRo ZSBwcmltYXJ5IC8gCnBhcmVudCBWTS4gVGhlIGVuY2xhdmUgVk0gZG9lc24ndCBoYXZlIGEgbmV0 d29yayBpbnRlcmZhY2UgYXR0YWNoZWQgb3IgCnBlcnNpc3RlbnQgc3RvcmFnZS4KClRoZXJlIGlz IGFsc28gYW4gZXhwb3NlZCBkZXZpY2UgaW4gdGhlIGVuY2xhdmUsIGZvciB0aGUgYXR0ZXN0YXRp b24gZmxvdyAKZS5nLiB0byBnZXQgdGhlIHNpZ25lZCBhdHRlc3RhdGlvbiBkb2N1bWVudCBnZW5l cmF0ZWQgYnkgdGhlIE5pdHJvIApIeXBlcnZpc29yIG9uIHRoZSBob3N0IHdoZXJlIHRoZSBwcmlt YXJ5IFZNIGFuZCB0aGUgZW5jbGF2ZSBWTSBydW4uCgogRnJvbSBhIHByZXZpb3VzIG1haWwgdGhy ZWFkIG9uIExLTUwsIHdoZXJlIEkgYWRkZWQgYSBjb3VwbGUgb2YgCmNsYXJpZmljYXRpb25zIG9u IHRoZSBhdHRlc3RhdGlvbiBmbG93OgoKIgoKSGFzaCB2YWx1ZXMgYXJlIGNvbXB1dGVkIGZvciB0 aGUgZW50aXJlIGVuY2xhdmUgaW1hZ2UgKEVJRiksIHRoZSBrZXJuZWwKYW5kIHJhbWRpc2socyku IFRoYXQncyB1c2VkLCBmb3IgZXhhbXBsZSwgdG8gY2hlY2sgdGhhdCB0aGUgZW5jbGF2ZSBpbWFn ZQp0aGF0IGlzIGxvYWRlZCBpbiB0aGUgZW5jbGF2ZSBWTSBpcyB0aGUgb25lIHRoYXQgd2FzIGlu dGVuZGVkIHRvIGJlIHJ1bi4KClRoZXNlIGNyeXB0byBtZWFzdXJlbWVudHMgYXJlIGluY2x1ZGVk IGluIGEgc2lnbmVkIGF0dGVzdGF0aW9uIGRvY3VtZW50CmdlbmVyYXRlZCBieSB0aGUgTml0cm8g SHlwZXJ2aXNvciBhbmQgZnVydGhlciB1c2VkIHRvIHByb3ZlIHRoZSBpZGVudGl0eQpvZiB0aGUg ZW5jbGF2ZS4gS01TIGlzIGFuIGV4YW1wbGUgb2Ygc2VydmljZSB0aGF0IE5FIGlzIGludGVncmF0 ZWQgd2l0aAphbmQgdGhhdCBjaGVja3MgdGhlIGF0dGVzdGF0aW9uIGRvYy4KCiIKCgpUaGFua3Ms CkFuZHJhCgo+Cj4gICAgID4KPiAgICAgPj4gTGV0IG1lIGtub3cgaWYgZnVydGhlciBjbGFyaWZp Y2F0aW9ucyBhcmUgbmVlZGVkLgo+ICAgICA+Pgo+ICAgICA+Pj4+IFRoZSBwcm9wb3NlZCBzb2x1 dGlvbiBpcyBmb2xsb3dpbmcgdGhlIEtWTSBtb2RlbCBhbmQgdXNlcyB0aGUKPiAgICAgS1ZNIEFQ SQo+ICAgICA+PiB0byBiZSBhYmxlCj4gICAgID4+Pj4gdG8gY3JlYXRlIGFuZCBzZXQgcmVzb3Vy Y2VzIGZvciBlbmNsYXZlcy4gQW4gYWRkaXRpb25hbCBpb2N0bAo+ICAgICBjb21tYW5kLAo+ICAg ICA+PiBiZXNpZGVzCj4gICAgID4+Pj4gdGhlIG9uZXMgcHJvdmlkZWQgYnkgS1ZNLCBpcyB1c2Vk IHRvIHN0YXJ0IGFuIGVuY2xhdmUgYW5kCj4gICAgIHNldHVwIHRoZQo+ICAgICA+PiBhZGRyZXNz aW5nCj4gICAgID4+Pj4gZm9yIHRoZSBjb21tdW5pY2F0aW9uIGNoYW5uZWwgYW5kIGFuIGVuY2xh dmUgdW5pcXVlIGlkLgo+ICAgICA+Pj4gUmV1c2luZyBzb21lIEtWTSBpb2N0bHMgaXMgZGVmaW5p dGVseSBhIGdvb2QgaWRlYSwgYnV0IEkKPiAgICAgd291bGRuJ3QgcmVhbGx5Cj4gICAgID4+PiBz YXkgaXQncyB0aGUgS1ZNIEFQSSBzaW5jZSB0aGUgVkNQVSBmaWxlIGRlc2NyaXB0b3IgaXMKPiAg ICAgYmFzaWNhbGx5IG5vbgo+ICAgICA+Pj4gZnVuY3Rpb25hbCAod2l0aG91dCBLVk1fUlVOIGFu ZCBtbWFwIGl0J3Mgbm90IHJlYWxseSB0aGUgS1ZNIEFQSSkuCj4gICAgID4+IEl0IHVzZXMgcGFy dCBvZiB0aGUgS1ZNIEFQSSBvciBhIHNldCBvZiBLVk0gaW9jdGxzIHRvIG1vZGVsIHRoZQo+ICAg ICB3YXkgYSBWTQo+ICAgICA+PiBpcyBjcmVhdGVkIC8gdGVybWluYXRlZC4gVGhhdCdzIHRydWUs IEtWTV9SVU4gYW5kIG1tYXAtaW5nIHRoZQo+ICAgICB2Y3B1IGZkCj4gICAgID4+IGFyZSBub3Qg aW5jbHVkZWQuCj4gICAgID4+Cj4gICAgID4+IFRoYW5rcyBmb3IgdGhlIGZlZWRiYWNrIHJlZ2Fy ZGluZyB0aGUgcmV1c2Ugb2YgS1ZNIGlvY3Rscy4KPiAgICAgPj4KPiAgICAgPj4gQW5kcmEKPiAg ICAgPj4KPiAgICAgPiBUaGFua3MKPiAgICAgPiBLZXZpbgo+Cj4KPgo+Cj4gICAgIEFtYXpvbiBE ZXZlbG9wbWVudCBDZW50ZXIgKFJvbWFuaWEpIFMuUi5MLiByZWdpc3RlcmVkIG9mZmljZTogMjdB Cj4gICAgIFNmLiBMYXphciBTdHJlZXQsIFVCQzUsIGZsb29yIDIsIElhc2ksIElhc2kgQ291bnR5 LCA3MDAwNDUsCj4gICAgIFJvbWFuaWEuIFJlZ2lzdGVyZWQgaW4gUm9tYW5pYS4gUmVnaXN0cmF0 aW9uIG51bWJlciBKMjIvMjYyMS8yMDA1Lgo+CgoKCgpBbWF6b24gRGV2ZWxvcG1lbnQgQ2VudGVy IChSb21hbmlhKSBTLlIuTC4gcmVnaXN0ZXJlZCBvZmZpY2U6IDI3QSBTZi4gTGF6YXIgU3RyZWV0 LCBVQkM1LCBmbG9vciAyLCBJYXNpLCBJYXNpIENvdW50eSwgNzAwMDQ1LCBSb21hbmlhLiBSZWdp c3RlcmVkIGluIFJvbWFuaWEuIFJlZ2lzdHJhdGlvbiBudW1iZXIgSjIyLzI2MjEvMjAwNS4K