Received: by 10.213.65.68 with SMTP id h4csp3568951imn; Tue, 10 Apr 2018 00:43:02 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/9snwJKnM1kz5Dcnk/5q9l9gQH3z6RjU5ED5HxY2uGOYDBMnPugbmuILCkz0CJ+aSycwr8 X-Received: by 2002:a17:902:3204:: with SMTP id y4-v6mr42126563plb.226.1523346182511; Tue, 10 Apr 2018 00:43:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523346182; cv=none; d=google.com; s=arc-20160816; b=LTBbYXA+QSBYT5dlKWGiodRtWVRS/qsdoEZIj4Hssere3s+FfKsLl4e2rQd6DQgAO+ wESnoi3+8+XoO6AltJjJOqkHd5FRk3mdq6GhxKJ5jdRcpQFcr2IPcFOa/c5J6wb9B7aS 0jT1Ap1HiGZReLe98H11Cr9VeIKZ/f1hYZ4ShUVcoRKtA5VGkZ/bLItrz84BtcNEO8S1 KiOxGxuxtFzN5HSgQLgjgjz/WZd89AubbnBuMptnEjF1FTsL9BReCVDX1KuE48jvgQzn hGWRR72kyjuCc5Z/lukEvngreV/Tb3hyn9sSjiQjZT/dNR7NkdabkmsTDC7k94HixRTM N89g== 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:mime-version :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=+N7wOwXnI0GB4p5EVfOFtCe9hG8MsL1RrU5CBlftqdg=; b=IKJ9UPMOkwbz6k8ExrFgWVyH02qEoFQdfdZ3bpzLsdTctR4WYQXrXUwrsCyjsbg0vO DBAaq8+9LSckuPMmwLMs8NrnXavN9GTPTt60AiajEfNYHH1RQUXJD1FTrtnY8zZhhtWp eNn6uFU0R1pBLDLG+6itGVl1md0oEDKlXIdBPK5/0K7Dm6ALwFG+gW5yAoXP3sTst2ew MLCJ7nukLdjExd438kwO2+xHoi9YHtwW594CGOyooRBhqjFXlx9mRgOZ83qgpnjn4If7 q8zFqoOWuI0bI4wJUa6Lbl6MzeWdl7ZriTMGBC4Ho4j4WVRdI/Osu95HevE0kcxDuCnj vM0g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amazon.de header.s=amazon201209 header.b=i8E6VRkw; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.de Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q10si1373252pgf.524.2018.04.10.00.42.25; Tue, 10 Apr 2018 00:43:02 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@amazon.de header.s=amazon201209 header.b=i8E6VRkw; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752551AbeDJHh1 (ORCPT + 99 others); Tue, 10 Apr 2018 03:37:27 -0400 Received: from smtp-fw-33001.amazon.com ([207.171.190.10]:23404 "EHLO smtp-fw-33001.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752460AbeDJHhY (ORCPT ); Tue, 10 Apr 2018 03:37:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.de; i=@amazon.de; q=dns/txt; s=amazon201209; t=1523345844; x=1554881844; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:mime-version: content-transfer-encoding; bh=+N7wOwXnI0GB4p5EVfOFtCe9hG8MsL1RrU5CBlftqdg=; b=i8E6VRkwfbPYyqTKi6WwfHGwKhcVXm9ypBoHFTIj+1+lHplSm/aJwutj zyQhQdltAvpE6YUnCVo7GgVk6HN0ZKnnXeE5VTCP4NpuuPgX9Q8z7qnxp xgjSUDl7fuoC71br9qr+pCx/0Nyar8TFOZ63q/liqVGk3FHklWHHngrDH c=; X-IronPort-AV: E=Sophos;i="5.48,431,1517875200"; d="scan'208";a="725378616" Received: from sea3-co-svc-lb6-vlan2.sea.amazon.com (HELO email-inbound-relay-1d-9ec21598.us-east-1.amazon.com) ([10.47.22.34]) by smtp-border-fw-out-33001.sea14.amazon.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 10 Apr 2018 07:37:21 +0000 Received: from EX13MTAUEA001.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan2.iad.amazon.com [10.40.159.162]) by email-inbound-relay-1d-9ec21598.us-east-1.amazon.com (8.14.7/8.14.7) with ESMTP id w3A7bHI0089303 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 10 Apr 2018 07:37:18 GMT Received: from EX13D01EUB004.ant.amazon.com (10.43.166.180) by EX13MTAUEA001.ant.amazon.com (10.43.61.82) with Microsoft SMTP Server (TLS) id 15.0.1236.3; Tue, 10 Apr 2018 07:37:14 +0000 Received: from EX13D01EUB003.ant.amazon.com (10.43.166.248) by EX13D01EUB004.ant.amazon.com (10.43.166.180) with Microsoft SMTP Server (TLS) id 15.0.1236.3; Tue, 10 Apr 2018 07:37:13 +0000 Received: from EX13D01EUB003.ant.amazon.com ([10.43.166.248]) by EX13D01EUB003.ant.amazon.com ([10.43.166.248]) with mapi id 15.00.1236.000; Tue, 10 Apr 2018 07:37:13 +0000 From: "Raslan, KarimAllah" To: "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" , "david@redhat.com" CC: "jmattson@google.com" , "tglx@linutronix.de" , "rkrcmar@redhat.com" , "hpa@zytor.com" , "pbonzini@redhat.com" , "mingo@redhat.com" , "x86@kernel.org" Subject: Re: [PATCH v2] kvm: nVMX: Introduce KVM_CAP_STATE Thread-Topic: [PATCH v2] kvm: nVMX: Introduce KVM_CAP_STATE Thread-Index: AQHTz94H5aEcX8JiNUeIeNpvvjdXzqP4S3UAgAFSSoA= Date: Tue, 10 Apr 2018 07:37:13 +0000 Message-ID: <1523345833.5178.5.camel@amazon.de> References: <1523263049-31993-1-git-send-email-karahmed@amazon.de> <4c04756b-d72c-1ff3-5ede-e70fa83d20e5@redhat.com> In-Reply-To: <4c04756b-d72c-1ff3-5ede-e70fa83d20e5@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.43.166.193] Content-Type: text/plain; charset="utf-8" Content-ID: MIME-Version: 1.0 Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gTW9uLCAyMDE4LTA0LTA5IGF0IDEzOjI2ICswMjAwLCBEYXZpZCBIaWxkZW5icmFuZCB3cm90 ZToNCj4gT24gMDkuMDQuMjAxOCAxMDozNywgS2FyaW1BbGxhaCBBaG1lZCB3cm90ZToNCj4gPiAN Cj4gPiBGcm9tOiBKaW0gTWF0dHNvbiA8am1hdHRzb25AZ29vZ2xlLmNvbT4NCj4gPiANCj4gPiBG b3IgbmVzdGVkIHZpcnR1YWxpemF0aW9uIEwwIEtWTSBpcyBtYW5hZ2luZyBhIGJpdCBvZiBzdGF0 ZSBmb3IgTDIgZ3Vlc3RzLA0KPiA+IHRoaXMgc3RhdGUgY2FuIG5vdCBiZSBjYXB0dXJlZCB0aHJv dWdoIHRoZSBjdXJyZW50bHkgYXZhaWxhYmxlIElPQ1RMcy4gSW4NCj4gPiBmYWN0IHRoZSBzdGF0 ZSBjYXB0dXJlZCB0aHJvdWdoIGFsbCBvZiB0aGVzZSBJT0NUTHMgaXMgdXN1YWxseSBhIG1peCBv ZiBMMQ0KPiA+IGFuZCBMMiBzdGF0ZS4gSXQgaXMgYWxzbyBkZXBlbmRlbnQgb24gd2hldGhlciB0 aGUgTDIgZ3Vlc3Qgd2FzIHJ1bm5pbmcgYXQNCj4gPiB0aGUgbW9tZW50IHdoZW4gdGhlIHByb2Nl c3Mgd2FzIGludGVycnVwdGVkIHRvIHNhdmUgaXRzIHN0YXRlLg0KPiA+IA0KPiA+IFdpdGggdGhp cyBjYXBhYmlsaXR5LCB0aGVyZSBhcmUgdHdvIG5ldyB2Y3B1IGlvY3RsczogS1ZNX0dFVF9WTVhf U1RBVEUgYW5kDQo+ID4gS1ZNX1NFVF9WTVhfU1RBVEUuIFRoZXNlIGNhbiBiZSB1c2VkIGZvciBz YXZpbmcgYW5kIHJlc3RvcmluZyBhIFZNIHRoYXQgaXMNCj4gPiBpbiBWTVggb3BlcmF0aW9uLg0K PiA+IA0KPiANCj4gVmVyeSBuaWNlIHdvcmshDQo+IA0KPiA+IA0KPiA+ICANCj4gPiArc3RhdGlj IGludCBnZXRfdm1jc19jYWNoZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsDQo+ID4gKwkJCSAgc3Ry dWN0IGt2bV9zdGF0ZSBfX3VzZXIgKnVzZXJfa3ZtX3N0YXRlKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1 Y3QgdmNwdV92bXggKnZteCA9IHRvX3ZteCh2Y3B1KTsNCj4gPiArCXN0cnVjdCB2bWNzMTIgKnZt Y3MxMiA9IGdldF92bWNzMTIodmNwdSk7DQo+ID4gKw0KPiA+ICsJLyoNCj4gPiArCSAqIFdoZW4g cnVubmluZyBMMiwgdGhlIGF1dGhvcml0YXRpdmUgdm1jczEyIHN0YXRlIGlzIGluIHRoZQ0KPiA+ ICsJICogdm1jczAyLiBXaGVuIHJ1bm5pbmcgTDEsIHRoZSBhdXRob3JpdGF0aXZlIHZtY3MxMiBz dGF0ZSBpcw0KPiA+ICsJICogaW4gdGhlIHNoYWRvdyB2bWNzIGxpbmtlZCB0byB2bWNzMDEsIHVu bGVzcw0KPiA+ICsJICogc3luY19zaGFkb3dfdm1jcyBpcyBzZXQsIGluIHdoaWNoIGNhc2UsIHRo ZSBhdXRob3JpdGF0aXZlDQo+ID4gKwkgKiB2bWNzMTIgc3RhdGUgaXMgaW4gdGhlIHZtY3MxMiBh bHJlYWR5Lg0KPiA+ICsJICovDQo+ID4gKwlpZiAoaXNfZ3Vlc3RfbW9kZSh2Y3B1KSkNCj4gPiAr CQlzeW5jX3ZtY3MxMih2Y3B1LCB2bWNzMTIpOw0KPiA+ICsJZWxzZSBpZiAoZW5hYmxlX3NoYWRv d192bWNzICYmICF2bXgtPm5lc3RlZC5zeW5jX3NoYWRvd192bWNzKQ0KPiA+ICsJCWNvcHlfc2hh ZG93X3RvX3ZtY3MxMih2bXgpOw0KPiA+ICsNCj4gPiArCWlmIChjb3B5X3RvX3VzZXIodXNlcl9r dm1fc3RhdGUtPmRhdGEsIHZtY3MxMiwgc2l6ZW9mKCp2bWNzMTIpKSkNCj4gPiArCQlyZXR1cm4g LUVGQVVMVDsNCj4gPiArDQo+ID4gKwkvKg0KPiA+ICsJICogRm9yY2UgYSBuZXN0ZWQgZXhpdCB0 aGF0IGd1YXJhbnRlZXMgdGhhdCBhbnkgc3RhdGUgY2FwdHVyZQ0KPiA+ICsJICogYWZ0ZXJ3YXJk cyBieSBhbnkgSU9DVExzIChNU1JzLCBldGMpIHdpbGwgbm90IGNhcHR1cmUgYSBtaXggb2YgTDEN Cj4gPiArCSAqIGFuZCBMMiBzdGF0ZS4+ICsJICoNCj4gDQo+IEkgdG90YWxseSB1bmRlcnN0YW5k IHdoeSB0aGlzIGlzIG5pY2UsIEkgYW0gd29ycmllZCBhYm91dCB0aGUNCj4gaW1wbGljYXRpb25z LiBMZXQncyBhc3N1bWUgbWlncmF0aW9uIGZhaWxzIGFuZCB3ZSB3YW50IHRvIGNvbnRpbnVlDQo+ IHJ1bm5pbmcgdGhlIGd1ZXN0IG9uIHRoZSBzb3VyY2UuIFdlIHdvdWxkIG5vdyBoYXZlIGEgImJh ZCIgc3RhdGUuDQo+IA0KPiBIb3cgaXMgdGhpcyB0byBiZSBoYW5kbGVkIChlLmcuIGlzIGEgU0VU X1NUQVRFIG5lY2Vzc2FyeT8pPyBJIHRoaW5rIHRoaXMNCj4gaW1wbGljYXRpb24gc2hvdWxkIGJl IGRvY3VtZW50ZWQgZm9yIEtWTV9HRVRfU1RBVEUuDQoNCll1cCwgSSBTRVRfU1RBVEUgd2lsbCBi ZSBuZWVkZWQuIFRoYXQgYmVpbmcgc2FpZCwgSSBndWVzcyBJIHdpbGwgZG/CoA0Kd2hhdCBKaW0g bWVudGlvbmVkIGFuZCBqdXN0IGZpeCB0aGUgaXNzdWUgb3V0bGluZWQgaGVyZSBhbmQgdGhlbiBJ IGNhbsKgDQpyZW1vdmUgdGhpcyBWTUV4aXQuDQoNCj4gPiANCj4gPiArCSAqIE9uZSBleGFtcGxl IHdoZXJlIHRoYXQgd291bGQgbGVhZCB0byBhbiBpc3N1ZSBpcyB0aGUgVFNDIERFQURMSU5FDQo+ ID4gKwkgKiBNU1IgdnMgdGhlIGd1ZXN0IFRTQy4gSWYgdGhlIEwyIGd1ZXN0IGlzIHJ1bm5pbmcs IHRoZSBndWVzdCBUU0Mgd2lsbA0KPiA+ICsJICogYmUgdGhlIEwyIFRTQyB3aGlsZSB0aGUgVFND IGRlYWRsaW5lIE1TUiB3aWxsIGNvbnRhaW4gdGhlIEwxIFRTQw0KPiA+ICsJICogZGVhZGxpbmUg TVNSLiBUaGF0IHdvdWxkIGxlYWQgdG8gYSB2ZXJ5IGxhcmdlIChhbmQgd3JvbmcpICJleHBpcmUi DQo+ID4gKwkgKiBkaWZmIHdoZW4gTEFQSUMgaXMgaW5pdGlhbGl6ZWQgZHVyaW5nIGluc3RhbmNl IHJlc3RvcmUgKGkuZS4gdGhlDQo+ID4gKwkgKiBpbnN0YW5jZSB3aWxsIGFwcGVhciB0byBoYXZl IGhhbmdlZCEpLg0KPiA+ICsJICovDQo+ID4gKwlpZiAoaXNfZ3Vlc3RfbW9kZSh2Y3B1KSkNCj4g PiArCQluZXN0ZWRfdm14X3ZtZXhpdCh2Y3B1LCAtMSwgMCwgMCk7DQo+ID4gKw0KPiA+ICsJcmV0 dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgZ2V0X3ZteF9zdGF0ZShzdHJ1 Y3Qga3ZtX3ZjcHUgKnZjcHUsDQo+ID4gKwkJCSBzdHJ1Y3Qga3ZtX3N0YXRlIF9fdXNlciAqdXNl cl9rdm1fc3RhdGUpDQo+ID4gK3sNCj4gPiArCXUzMiB1c2VyX2RhdGFfc2l6ZTsNCj4gPiArCXN0 cnVjdCB2Y3B1X3ZteCAqdm14ID0gdG9fdm14KHZjcHUpOw0KPiA+ICsJc3RydWN0IGt2bV9zdGF0 ZSBrdm1fc3RhdGUgPSB7DQo+ID4gKwkJLmZsYWdzID0gMCwNCj4gPiArCQkuZm9ybWF0ID0gMCwN Cj4gPiArCQkuc2l6ZSA9IHNpemVvZihrdm1fc3RhdGUpLA0KPiA+ICsJCS52bXgudm14b25fcGEg PSAtMXVsbCwNCj4gPiArCQkudm14LnZtY3NfcGEgPSAtMXVsbCwNCj4gPiArCX07DQo+ID4gKw0K PiA+ICsJaWYgKGNvcHlfZnJvbV91c2VyKCZ1c2VyX2RhdGFfc2l6ZSwgJnVzZXJfa3ZtX3N0YXRl LT5zaXplLA0KPiA+ICsJCQkgICBzaXplb2YodXNlcl9kYXRhX3NpemUpKSkNCj4gPiArCQlyZXR1 cm4gLUVGQVVMVDsNCj4gPiArDQo+ID4gKwlpZiAobmVzdGVkX3ZteF9hbGxvd2VkKHZjcHUpICYm IHZteC0+bmVzdGVkLnZteG9uKSB7DQo+ID4gKwkJa3ZtX3N0YXRlLnZteC52bXhvbl9wYSA9IHZt eC0+bmVzdGVkLnZteG9uX3B0cjsNCj4gPiArCQlrdm1fc3RhdGUudm14LnZtY3NfcGEgPSB2bXgt Pm5lc3RlZC5jdXJyZW50X3ZtcHRyOw0KPiA+ICsNCj4gPiArCQlpZiAodm14LT5uZXN0ZWQuY3Vy cmVudF92bXB0ciAhPSAtMXVsbCkNCj4gPiArCQkJa3ZtX3N0YXRlLnNpemUgKz0gVk1DUzEyX1NJ WkU7DQo+ID4gKw0KPiA+ICsJCWlmIChpc19ndWVzdF9tb2RlKHZjcHUpKSB7DQo+ID4gKwkJCWt2 bV9zdGF0ZS5mbGFncyB8PSBLVk1fU1RBVEVfR1VFU1RfTU9ERTsNCj4gPiArDQo+ID4gKwkJCWlm ICh2bXgtPm5lc3RlZC5uZXN0ZWRfcnVuX3BlbmRpbmcpDQo+ID4gKwkJCQlrdm1fc3RhdGUuZmxh Z3MgfD0gS1ZNX1NUQVRFX1JVTl9QRU5ESU5HOw0KPiA+ICsJCX0NCj4gPiArCX0NCj4gPiArDQo+ ID4gKwlpZiAodXNlcl9kYXRhX3NpemUgPCBrdm1fc3RhdGUuc2l6ZSkgew0KPiA+ICsJCWlmIChj b3B5X3RvX3VzZXIoJnVzZXJfa3ZtX3N0YXRlLT5zaXplLCAma3ZtX3N0YXRlLnNpemUsDQo+ID4g KwkJCQkgc2l6ZW9mKGt2bV9zdGF0ZS5zaXplKSkpDQo+ID4gKwkJCXJldHVybiAtRUZBVUxUOw0K PiA+ICsJCXJldHVybiAtRTJCSUc7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJaWYgKGNvcHlfdG9f dXNlcih1c2VyX2t2bV9zdGF0ZSwgJmt2bV9zdGF0ZSwgc2l6ZW9mKGt2bV9zdGF0ZSkpKQ0KPiA+ ICsJCXJldHVybiAtRUZBVUxUOw0KPiA+ICsNCj4gPiArCWlmICh2bXgtPm5lc3RlZC5jdXJyZW50 X3ZtcHRyID09IC0xdWxsKQ0KPiA+ICsJCXJldHVybiAwOw0KPiA+ICsNCj4gPiArCXJldHVybiBn ZXRfdm1jc19jYWNoZSh2Y3B1LCB1c2VyX2t2bV9zdGF0ZSk7DQo+ID4gK30NCj4gPiArDQo+ID4g K3N0YXRpYyBpbnQgc2V0X3ZtY3NfY2FjaGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LA0KPiA+ICsJ CQkgIHN0cnVjdCBrdm1fc3RhdGUgX191c2VyICp1c2VyX2t2bV9zdGF0ZSwNCj4gPiArCQkJICBz dHJ1Y3Qga3ZtX3N0YXRlICprdm1fc3RhdGUpDQo+ID4gKw0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3Qg dmNwdV92bXggKnZteCA9IHRvX3ZteCh2Y3B1KTsNCj4gPiArCXN0cnVjdCB2bWNzMTIgKnZtY3Mx MiA9IGdldF92bWNzMTIodmNwdSk7DQo+ID4gKwl1MzIgZXhpdF9xdWFsOw0KPiA+ICsJaW50IHJl dDsNCj4gPiArDQo+ID4gKwlpZiAoKGt2bV9zdGF0ZS0+c2l6ZSA8IChzaXplb2YoKnZtY3MxMikg KyBzaXplb2YoKmt2bV9zdGF0ZSkpKSB8fA0KPiA+ICsJICAgIGt2bV9zdGF0ZS0+dm14LnZtY3Nf cGEgPT0ga3ZtX3N0YXRlLT52bXgudm14b25fcGEgfHwNCj4gPiArCSAgICAhcGFnZV9hZGRyZXNz X3ZhbGlkKHZjcHUsIGt2bV9zdGF0ZS0+dm14LnZtY3NfcGEpKQ0KPiA+ICsJCXJldHVybiAtRUlO VkFMOw0KPiA+ICsNCj4gPiArCWlmIChjb3B5X2Zyb21fdXNlcih2bWNzMTIsIHVzZXJfa3ZtX3N0 YXRlLT5kYXRhLCBzaXplb2YoKnZtY3MxMikpKQ0KPiA+ICsJCXJldHVybiAtRUZBVUxUOw0KPiA+ ICsNCj4gPiArCWlmICh2bWNzMTItPnJldmlzaW9uX2lkICE9IFZNQ1MxMl9SRVZJU0lPTikNCj4g PiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiArDQo+ID4gKwlzZXRfY3VycmVudF92bXB0cih2bXgs IGt2bV9zdGF0ZS0+dm14LnZtY3NfcGEpOw0KPiA+ICsNCj4gPiArCWlmICghKGt2bV9zdGF0ZS0+ ZmxhZ3MgJiBLVk1fU1RBVEVfR1VFU1RfTU9ERSkpDQo+ID4gKwkJcmV0dXJuIDA7DQo+ID4gKw0K PiA+ICsJaWYgKGNoZWNrX3ZtZW50cnlfcHJlcmVxcyh2Y3B1LCB2bWNzMTIpIHx8DQo+ID4gKwkg ICAgY2hlY2tfdm1lbnRyeV9wb3N0cmVxcyh2Y3B1LCB2bWNzMTIsICZleGl0X3F1YWwpKQ0KPiA+ ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsNCj4gPiArCXJldCA9IGVudGVyX3ZteF9ub25fcm9v dF9tb2RlKHZjcHUsIHRydWUpOw0KPiA+ICsJaWYgKHJldCkNCj4gPiArCQlyZXR1cm4gcmV0Ow0K PiA+ICsNCj4gPiArCS8qDQo+ID4gKwkgKiBUaGlzIHJlcXVlc3Qgd2lsbCByZXN1bHQgaW4gYSBj YWxsIHRvDQo+ID4gKwkgKiBuZXN0ZWRfZ2V0X3ZtY3MxMl9wYWdlcyBiZWZvcmUgdGhlIG5leHQg Vk0tZW50cnkuDQo+ID4gKwkgKi8NCj4gPiArCWt2bV9tYWtlX3JlcXVlc3QoS1ZNX1JFUV9HRVRf Vk1DUzEyX1BBR0VTLCB2Y3B1KTsNCj4gDQo+IENhbiB5b3UgZWxhYm9yYXRlICgrZG9jdW1lbnQp IHdoeSB0aGlzIGlzIG5lZWRlZCBpbnN0ZWFkIG9mIHRyeWluZyB0bw0KPiBnZXQgdGhlIHBhZ2Ug cmlnaHQgYXdheT8NCg0KQmVjYXVzZSBhdCB0aGlzIHBvaW50LCB0aGUgTU1VIGlzIG5vdCBpbml0 aWFsaXplZCB0byBwb2ludCBhdCB0aGUNCnJpZ2h0IGVudGl0aWVzIHlldCBhbmQgImdldCBwYWdl cyIgd291bGQgbmVlZCB0byByZWFkIGRhdGEgZnJvbSB0aGXCoA0KZ3Vlc3QgKGkuZS4gd2Ugd2ls bCBuZWVkIHRvIHBlcmZvcm1hbmNlIGdwYSB0byBocGEgdHJhbnNsYXRpb24pLg0KDQpBY2shIHdp bGwgdXBkYXRlIHRoZSBjb21tZW50IGluIHYzLg0KDQpUaGFuayB5b3UhDQoNCj4gDQo+IFRoYW5r cyENCj4gDQpBbWF6b24gRGV2ZWxvcG1lbnQgQ2VudGVyIEdlcm1hbnkgR21iSApCZXJsaW4gLSBE cmVzZGVuIC0gQWFjaGVuCm1haW4gb2ZmaWNlOiBLcmF1c2Vuc3RyLiAzOCwgMTAxMTcgQmVybGlu Ckdlc2NoYWVmdHNmdWVocmVyOiBEci4gUmFsZiBIZXJicmljaCwgQ2hyaXN0aWFuIFNjaGxhZWdl cgpVc3QtSUQ6IERFMjg5MjM3ODc5CkVpbmdldHJhZ2VuIGFtIEFtdHNnZXJpY2h0IENoYXJsb3R0 ZW5idXJnIEhSQiAxNDkxNzMgQgo=