Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp2007101imj; Fri, 8 Feb 2019 10:53:04 -0800 (PST) X-Google-Smtp-Source: AHgI3IY0AS+GKHsLHzVOkOlY+NbIkDf1HyCQSFNaRiaSSQUYigO6yft5zgjv+HFOY2YUkKw8OqB4 X-Received: by 2002:a63:f844:: with SMTP id v4mr16818124pgj.82.1549651984013; Fri, 08 Feb 2019 10:53:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549651984; cv=none; d=google.com; s=arc-20160816; b=ccps/4yjxdqUo6ivaMBJlIW5jHxGQnAvfXXgDPuBh7/Ic5xdwFKpqBQjXrefOTwPlF bic3soL8bzGmMDPcxxtpxUNWyXJZUXY5sOAXj4oXc82SVjbuHEeRRrYaiW4AhOf2Rqtk jtu3N2SSvwZGeJxqCBHQf0PNqtrgUCHxStUa398L8NgZm0PKRcTI7gCDxpKjOxwxrrV5 TFKFHzv9tjHA7KFGNJDHRRVP2Y5Djgsw2BD7S1qOwVGiKw720C/29IycaUSNVBlD6agE jHJ/VcC6euioXC+VvSLw7ePOYGY8EvmRUOEcIlY/mE8RxGKxt014fI5w9do1xs/TG9LE Cz6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :dlp-reaction:dlp-version:dlp-product:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from; bh=gc8WSBbaXWhUAsfE9U1BQSW7DMqDexaPxn2kNEYHd7w=; b=fOXOJVdU47f/7WF92PoeEOP+jPK/57ipN+6IiCwaG4D+jDVghFgeEN1CJ0ZJhq5gDG eLF7iqzwX4UPOf+dRpqUGM47zktQxDN/rrZ2F0cGVvIT85kCJNmWiR+1Oel3Uvdogt1C USM7fnEBMi0dvr6zk8WPEbur12E0sWN6nL3H2WOjdU/MW4b1V8jU2HH6H49XSU7I/SaY 7rx/a+zfTg0E3l74jwJ6tUDQ4X7iveqOQ/QM8ZJAvaT/lYJUQcBjAPBE5J0TLESpmFwY XpHyq212JG9Z00Zf1WhY/dSX0e/+AIN550E8SyKD3jM0Ygu8TkmwOmbBkuo3a7VCaC4/ jWfw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m15si638367pgb.425.2019.02.08.10.52.47; Fri, 08 Feb 2019 10:53:03 -0800 (PST) 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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726975AbfBHSvX (ORCPT + 99 others); Fri, 8 Feb 2019 13:51:23 -0500 Received: from mga12.intel.com ([192.55.52.136]:32653 "EHLO mga12.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726020AbfBHSvX (ORCPT ); Fri, 8 Feb 2019 13:51:23 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Feb 2019 10:51:22 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,348,1544515200"; d="scan'208";a="317456904" Received: from orsmsx104.amr.corp.intel.com ([10.22.225.131]) by fmsmga006.fm.intel.com with ESMTP; 08 Feb 2019 10:51:22 -0800 Received: from orsmsx106.amr.corp.intel.com ([169.254.1.180]) by ORSMSX104.amr.corp.intel.com ([169.254.4.6]) with mapi id 14.03.0415.000; Fri, 8 Feb 2019 10:51:21 -0800 From: "Yu, Fenghua" To: Andrew Cooper , Andy Lutomirski CC: Thomas Gleixner , Borislav Petkov , "Ingo Molnar" , H Peter Anvin , "Raj, Ashok" , "Shankar, Ravi V" , linux-kernel , x86 Subject: RE: [PATCH v2 3/3] x86/umwait: Control umwait maximum time Thread-Topic: [PATCH v2 3/3] x86/umwait: Control umwait maximum time Thread-Index: AQHUreHhBUgO7GlyZkW7QVyIVWj7GaWzGaiAgAX4zoCAHU4mwA== Date: Fri, 8 Feb 2019 18:51:20 +0000 Message-ID: <3E5A0FA7E9CA944F9D5414FEC6C712209D86201B@ORSMSX106.amr.corp.intel.com> References: <1547673522-226408-1-git-send-email-fenghua.yu@intel.com> <1547673522-226408-4-git-send-email-fenghua.yu@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNDhiOTEzMDMtNzIyNi00NDQ5LWE4MzYtNjllZGE3YzdjZDhmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiR0JOUWloVmF0T1ZxVjFLVXFZSzZSTFwvUno4Nnc2VDZ1alJ3UVpjeE44bjJLSnJ3UG9ISGFNZXIrXC81Y3Vhb1RcLyJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.22.254.140] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiBGcm9tOiBBbmRyZXcgQ29vcGVyIFttYWlsdG86YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbV0N Cj4gT24gMTcvMDEvMjAxOSAwMDowMCwgQW5keSBMdXRvbWlyc2tpIHdyb3RlOg0KPiA+IE9uIFdl ZCwgSmFuIDE2LCAyMDE5IGF0IDE6MjQgUE0gRmVuZ2h1YSBZdSA8ZmVuZ2h1YS55dUBpbnRlbC5j b20+DQo+IHdyb3RlOg0KPiA+PiBJQTMyX1VNV0FJVF9DT05UUk9MWzMxOjJdIGRldGVybWluZXMg dGhlIG1heGltdW0gdGltZSBpbiBUU0MtDQo+IHF1YW50YQ0KPiA+PiB0aGF0IHByb2Nlc3NvciBj YW4gc3RheSBpbiBDMC4xIG9yIEMwLjIuDQo+ID4+DQo+ID4+IFRoZSBtYXhpbXVtIHRpbWUgdmFs dWUgaW4gSUEzMl9VTVdBSVRfQ09OVFJPTFszMS0yXSBpcyBzZXQgYXMgemVybw0KPiA+PiB3aGlj aCBtZWFucyB0aGVyZSBpcyBubyBnbG9iYWwgdGltZSBsaW1pdCBmb3IgVU1XQUlUIGFuZCBUUEFV U0UNCj4gaW5zdHJ1Y3Rpb25zLg0KPiA+PiBFYWNoIHByb2Nlc3Mgc2V0cyBpdHMgb3duIHVtd2Fp dCBtYXhpbXVtIHRpbWUgYXMgdGhlIGluc3RydWN0aW9ucw0KPiBvcGVyYW5kLg0KPiA+Pg0KPiA+ PiBVc2VyIGNhbiBzcGVjaWZ5IGdsb2JhbCB1bXdhaXQgbWF4aW11bSB0aW1lIHRocm91Z2ggaW50 ZXJmYWNlOg0KPiA+PiAvc3lzL2RldmljZXMvc3lzdGVtL2NwdS91bXdhaXRfY29udHJvbC91bXdh aXRfbWF4X3RpbWUNCj4gPj4gVGhlIHZhbHVlIGluIHRoZSBpbnRlcmZhY2UgaXMgaW4gZGVjaW1h bCBpbiBUU0MtcXVhbnRhLiBCaXRzWzE6MF0gYXJlDQo+ID4+IGNsZWFyZWQgd2hlbiB0aGUgdmFs dWUgaXMgc3RvcmVkLg0KPiA+Pg0KPiA+PiBTaWduZWQtb2ZmLWJ5OiBGZW5naHVhIFl1IDxmZW5n aHVhLnl1QGludGVsLmNvbT4NCj4gPj4gLS0tDQo+ID4+ICBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9t c3ItaW5kZXguaCB8ICAyICsrDQo+ID4+ICBhcmNoL3g4Ni9wb3dlci91bXdhaXQuYyAgICAgICAg ICB8IDQyDQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystDQo+ID4+ICAyIGZpbGVz IGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gPj4NCj4gPj4gZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci1pbmRleC5oDQo+ID4+IGIvYXJjaC94 ODYvaW5jbHVkZS9hc20vbXNyLWluZGV4LmgNCj4gPj4gaW5kZXggYjU2YmZlY2FlMGRlLi40MmI5 MTA0ZmMxNWIgMTAwNjQ0DQo+ID4+IC0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci1pbmRl eC5oDQo+ID4+ICsrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL21zci1pbmRleC5oDQo+ID4+IEBA IC02Miw2ICs2Miw4IEBADQo+ID4+ICAjZGVmaW5lIE1TUl9JQTMyX1VNV0FJVF9DT05UUk9MICAg ICAgICAgICAgICAgIDB4ZTENCj4gPj4gICNkZWZpbmUgVU1XQUlUX0NPTlRST0xfQzAyX0JJVCAg ICAgICAgIDB4MA0KPiA+PiAgI2RlZmluZSBVTVdBSVRfQ09OVFJPTF9DMDJfTUFTSyAgICAgICAg ICAgICAgICAweDAwMDAwMDAxDQo+ID4+ICsjZGVmaW5lIFVNV0FJVF9DT05UUk9MX01BWF9USU1F X0JJVCAgICAweDINCj4gPj4gKyNkZWZpbmUgVU1XQUlUX0NPTlRST0xfTUFYX1RJTUVfTUFTSyAg IDB4ZmZmZmZmZmMNCj4gPj4NCj4gPj4gICNkZWZpbmUgTVNSX1BLR19DU1RfQ09ORklHX0NPTlRS T0wgICAgIDB4MDAwMDAwZTINCj4gPj4gICNkZWZpbmUgTkhNX0MzX0FVVE9fREVNT1RFICAgICAg ICAgICAgICgxVUwgPDwgMjUpDQo+ID4+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wb3dlci91bXdh aXQuYyBiL2FyY2gveDg2L3Bvd2VyL3Vtd2FpdC5jIGluZGV4DQo+ID4+IDk1YjM4NjdhYWMxZS4u NGExYTUwN2QzYmI3IDEwMDY0NA0KPiA+PiAtLS0gYS9hcmNoL3g4Ni9wb3dlci91bXdhaXQuYw0K PiA+PiArKysgYi9hcmNoL3g4Ni9wb3dlci91bXdhaXQuYw0KPiA+PiBAQCAtMTAsNiArMTAsNyBA QA0KPiA+PiAgI2luY2x1ZGUgPGFzbS9tc3IuaD4NCj4gPj4NCj4gPj4gIHN0YXRpYyBpbnQgdW13 YWl0X2VuYWJsZV9jMF8yID0gMTsgLyogMDogZGlzYWJsZSBDMC4yLiAxOiBlbmFibGUNCj4gPj4g QzAuMi4gKi8NCj4gPj4gK3N0YXRpYyB1MzIgdW13YWl0X21heF90aW1lOyAvKiBJbiBUU0MtcXVh bnRhLiBPbmx5IGJpdHMgWzMxOjJdIGFyZQ0KPiA+PiArdXNlZC4gKi8NCj4gPj4gIHN0YXRpYyBE RUZJTkVfTVVURVgodW13YWl0X2xvY2spOw0KPiA+Pg0KPiA+PiAgLyogUmV0dXJuIHZhbHVlIHRo YXQgd2lsbCBiZSB1c2VkIHRvIHNldCB1bXdhaXQgY29udHJvbCBNU1IgKi8gQEANCj4gPj4gLTIw LDcgKzIxLDggQEAgc3RhdGljIGlubGluZSB1MzIgdW13YWl0X2NvbnRyb2xfdmFsKHZvaWQpDQo+ ID4+ICAgICAgICAgICogV2hlbiBiaXQgMCBpcyAxLCBDMC4yIGlzIGRpc2FibGVkLiBPdGhlcndp c2UsIEMwLjIgaXMgZW5hYmxlZC4NCj4gPj4gICAgICAgICAgKiBTbyB2YWx1ZSBpbiBiaXQgMCBp cyBvcHBvc2l0ZSBvZiB1bXdhaXRfZW5hYmxlX2MwXzIuDQo+ID4+ICAgICAgICAgICovDQo+ID4+ IC0gICAgICAgcmV0dXJuIH51bXdhaXRfZW5hYmxlX2MwXzIgJiBVTVdBSVRfQ09OVFJPTF9DMDJf TUFTSzsNCj4gPj4gKyAgICAgICByZXR1cm4gKH51bXdhaXRfZW5hYmxlX2MwXzIgJiBVTVdBSVRf Q09OVFJPTF9DMDJfTUFTSykgfA0KPiA+PiArICAgICAgICAgICAgICB1bXdhaXRfbWF4X3RpbWU7 DQo+ID4+ICB9DQo+ID4+DQo+ID4+ICBzdGF0aWMgc3NpemVfdCB1bXdhaXRfZW5hYmxlX2MwXzJf c2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIEBAIC02MSw4DQo+ID4+ICs2Myw0NiBAQCBzdGF0aWMg c3NpemVfdCB1bXdhaXRfZW5hYmxlX2MwXzJfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LA0KPiA+ Pg0KPiA+PiAgc3RhdGljIERFVklDRV9BVFRSX1JXKHVtd2FpdF9lbmFibGVfYzBfMik7DQo+ID4+ DQo+ID4+ICtzdGF0aWMgc3NpemVfdCB1bXdhaXRfbWF4X3RpbWVfc2hvdyhzdHJ1Y3QgZGV2aWNl ICprb2JqLA0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg ZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwNCj4gPj4gK2NoYXIgKmJ1Zikgew0KPiA+PiArICAgICAg IHJldHVybiBzcHJpbnRmKGJ1ZiwgIiV1XG4iLCB1bXdhaXRfbWF4X3RpbWUpOyB9DQo+ID4+ICsN Cj4gPj4gK3N0YXRpYyBzc2l6ZV90IHVtd2FpdF9tYXhfdGltZV9zdG9yZShzdHJ1Y3QgZGV2aWNl ICprb2JqLA0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkgew0KPiA+PiArICAgICAg IHUzMiBtc3JfdmFsLCBtYXhfdGltZTsNCj4gPj4gKyAgICAgICBpbnQgY3B1LCByZXQ7DQo+ID4+ ICsNCj4gPj4gKyAgICAgICByZXQgPSBrc3RydG91MzIoYnVmLCAxMCwgJm1heF90aW1lKTsNCj4g Pj4gKyAgICAgICBpZiAocmV0KQ0KPiA+PiArICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4g Pj4gKw0KPiA+PiArICAgICAgIG11dGV4X2xvY2soJnVtd2FpdF9sb2NrKTsNCj4gPj4gKw0KPiA+ PiArICAgICAgIC8qIE9ubHkgZ2V0IG1heCB0aW1lIHZhbHVlIGZyb20gYml0cyBbMzE6Ml0gKi8N Cj4gPj4gKyAgICAgICBtYXhfdGltZSAmPSBVTVdBSVRfQ09OVFJPTF9NQVhfVElNRV9NQVNLOw0K PiA+PiArICAgICAgIC8qIFVwZGF0ZSB0aGUgbWF4IHRpbWUgdmFsdWUgaW4gbWVtb3J5ICovDQo+ ID4+ICsgICAgICAgdW13YWl0X21heF90aW1lID0gbWF4X3RpbWU7DQo+ID4+ICsgICAgICAgbXNy X3ZhbCA9IHVtd2FpdF9jb250cm9sX3ZhbCgpOw0KPiA+PiArICAgICAgIGdldF9vbmxpbmVfY3B1 cygpOw0KPiA+PiArICAgICAgIC8qIEFsbCBDUFVzIGhhdmUgc2FtZSB1bXdhaXQgbWF4IHRpbWUg Ki8NCj4gPj4gKyAgICAgICBmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkNCj4gPj4gKyAgICAgICAg ICAgICAgIHdybXNyX29uX2NwdShjcHUsIE1TUl9JQTMyX1VNV0FJVF9DT05UUk9MLCBtc3JfdmFs LA0KPiAwKTsNCj4gPj4gKyAgICAgICBwdXRfb25saW5lX2NwdXMoKTsNCj4gPj4gKw0KPiA+PiAr ICAgICAgIG11dGV4X3VubG9jaygmdW13YWl0X2xvY2spOw0KPiA+PiArDQo+ID4+ICsgICAgICAg cmV0dXJuIGNvdW50Ow0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ICtzdGF0aWMgREVWSUNFX0FUVFJf UlcodW13YWl0X21heF90aW1lKTsNCj4gPj4gKw0KPiA+PiAgc3RhdGljIHN0cnVjdCBhdHRyaWJ1 dGUgKnVtd2FpdF9hdHRyc1tdID0gew0KPiA+PiAgICAgICAgICZkZXZfYXR0cl91bXdhaXRfZW5h YmxlX2MwXzIuYXR0ciwNCj4gPj4gKyAgICAgICAmZGV2X2F0dHJfdW13YWl0X21heF90aW1lLmF0 dHIsDQo+ID4+ICAgICAgICAgTlVMTA0KPiA+PiAgfTsNCj4gPiBZb3UgbmVlZCBzb21ldGhpbmcg dG8gbWFrZSBzdXJlIHRoYXQgbmV3bHkgb25saW5lZCBDUFVzIGdldCB0aGUgcmlnaHQNCj4gPiB2 YWx1ZSBpbiB0aGUgTVNSLiAgWW91IGFsc28gbmVlZCB0byBtYWtlIHN1cmUgeW91IHJlc3RvcmUg aXQgb24gcmVzdW1lDQo+ID4gZnJvbSBzdXNwZW5kLiAgU29tZXRoaW5nIGxpa2UgY3B1X2luaXQo KSBtaWdodCBiZSB0aGUgcmlnaHQgcGxhY2UuDQo+ID4NCj4gPiBBbHNvLCBhcyBwcmV2aW91c2x5 IGRpc2N1c3NlZCwgSSB0aGluayB3ZSBzaG91bGQgc2V0IHRoZSBkZWZhdWx0IHRvDQo+ID4gc29t ZXRoaW5nIHF1aXRlIHNtYWxsLCBtYXliZSAxMDAgbWljcm9zZWNvbmRzLiAgSU1PIHRoZSBnb2Fs IGlzIHRvDQo+ID4gcGljayBhIHZhbHVlIHRoYXQgaXMgYSBoaWdoIGVub3VnaCBtdWx0aXBsZSBv ZiB0aGUgQzAuMiBlbnRyeStleGl0DQo+ID4gbGF0ZW5jeSB0aGF0IHdlIGdldCBtb3N0IG9mIHRo ZSBwb3dlciBhbmQgU01UIHJlc291cmNlIHNhdmluZ3Mgd2hpbGUNCj4gPiBiZWluZyBzbWFsbCBl bm91Z2ggdGhhdCBubyBvbmUgdGhpbmdzIHRoYXQgVU1XQUlUIGlzIG1vcmUgdGhhbiBhDQo+ID4g Z2xvcmlmaWVkLCBzbGlnaHRseSBpbXByb3ZlZCwgYW5kIGZhciBtb3JlIG1pc2xlYWRpbmcgdmVy c2lvbiBvZiBSRVANCj4gPiBOT1AuDQo+ID4NCj4gPiBBbmRyZXcsIHdvdWxkIGhhdmluZyBMaW51 eCBkZWZhdWx0IHRvIGEgc21hbGwgdmFsdWUgZG8gbXVjaCB0bw0KPiA+IG1pdGlnYXRlIHlvdXIg Y29uY2VybnMgdGhhdCBVTVdBSVQgaXMgcHJvYmxlbWF0aWMgZm9yIGh5cGVydmlzb3JzPw0KPiAN Cj4gU2FkbHkgbm8gLSBub3QgcmVhbGx5Lg0KPiANCj4gQmVpbmcgYW4gTVNSLCB0aGVyZSBpcyBu byB3YXkgdGhlIGd1ZXN0IGtlcm5lbCBpcyBoYXZpbmcgdW5maWx0ZXJlZCBhY2Nlc3MsDQo+IHNv IHRoZSBoeXBlcnZpc29yIGNhbiBzZXQgd2hhdGV2ZXIgYm91bmQgaXQgd2lzaGVzLg0KPiANCj4g Rm9yIGFueSBub24tdHJpdmlhbCB3YWl0IHBlcmlvZCwgaXQgd291bGQgYmUgYmV0dGVyIGZvciB0 aGUgc3lzdGVtIGFzIGEgd2hvbGUNCj4gdG8gc3dpdGNoIHRvIGEgZGlmZmVyZW50IHZjcHUsIGJ1 dCB0aGUgc2VtYW50aWNzIGRvbid0IGFsbG93IGZvcg0KPiB0aGF0LsKgIFNob3J0ZW5pbmcgdGhl IHRpbWVvdXQganVzdCByZXN1bHRzIGluIHVzZXJzcGFjZSB0YWtpbmcgb3ZlciBhZ2FpbiwNCj4g YW5kIG1vc3QgbGlrZWx5IGNvbmNsdWRpbmcgdGhhdCB0aGVyZSB3YXMgYW4gZWFybHkgd2FrZXVw IGFuZCBnb2luZyBiYWNrDQo+IHRvIHNsZWVwLg0KPiANCj4gTW9yZSB1c2VmdWwgc2VtYW50aWNz IHdvdWxkIGJlIHNvbWV0aGluZyBzaW1pbGFyIHRvIHBhdXNlLWxvb3AtZXhpdGluZyBzbw0KPiB3 ZSBjYW4gc3dhcCBjb250ZXh0cyB3aGlsZSB0aGUgcHJvY2Vzc29yIGlzIGxvZ2ljYWxseSBpZGxl IGluIHVzZXJzcGFjZS4NCg0KU28gZG8gd2Ugc3RpbGwga2VlcCB0aGUgdW13YWl0IG1heCB0aW1l IG91dCB2YWx1ZSBhcyAwIHdoaWNoIG1lYW5zIHRoZXJlIGlzIG5vIGdsb2JhbCB0aW1lIG91dCBm b3IgdW13YWl0Pw0KU3lzIGFkbWluIGNhbiBhbHdheXMgY2hhbmdlIGl0IHRvIGRpZmZlcmVudCB0 aW1lIG91dCBiYXNlZCBvbiB1c2FnZS4NCg0KQlRXLCBsYXRlbmN5IGV4aXRpbmcgZnJvbSB1bXdh aXQvdHBhdXNlIHZhcmllcyBkZXBlbmRpbmcgb24gc2xlZXBpbmcgaW4gQzAuMSBvciBDMC4yIHN0 YXRlcy4NCk9uIG1hY2hpbmUsIGl0IHNob3dzIGEgZmV3IGN5Y2xlcyB0byBodW5kcmVkcyBjeWNs ZXMuIEJ1dCBJIGd1ZXNzIGl0IGNvdWxkIGJlIGRpZmZlcmVudCBvbiBkaWZmZXJlbnQgbWFjaGlu ZSBhcyB3ZWxsLiBTbyBJIGd1ZXNzIGl0J3MgaGFyZCB0byBnZXQgYSB1bmlmb3JtIGxhdGVuY3kg dmFsdWUgYW5kIHVzZSBpdC4NCg0KVGhhbmtzLg0KDQotRmVuZ2h1YQ0KDQoNCg==