Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1577087imu; Wed, 28 Nov 2018 11:36:00 -0800 (PST) X-Google-Smtp-Source: AFSGD/V7JA/UQZ17INmHXKX2nBhhmKHe/KPpTWyEmdJQQ7MRVLvYX9QRnCJHqQSFHZD4EXCyigcv X-Received: by 2002:a63:cf56:: with SMTP id b22mr32449289pgj.336.1543433760692; Wed, 28 Nov 2018 11:36:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543433760; cv=none; d=google.com; s=arc-20160816; b=O0azC9byhw2fxlSxRQnypWl6inDPf/0Mp9BoR0pID7DD+GwOCjIlIyHlkxGFjgUvaa C+lY/TNNu1WWJvoGBSzIw34y4FVmR7VUzqwagCBWLpDblEZvrSvlc6d+EI127CUofw3O KhRlaNcv3krApuXJmigBub8wj94pJsU690R57mKJ51WuFDtpMwHlLq4W4f5G9QyBLPuI mxfIStim06qjYtUbyiohJxT0TCACtXavvALykHkNSFmCjNmSMkepGCFI4+GsSBn0yevo csouibWwvV3ecCZLmNST+6LQrobvkxANA7P7X5YzzFAFMeJFWzdcrJjJIj+xgmQgdDlX A/tg== 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 :content-id:spamdiagnosticmetadata:spamdiagnosticoutput :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=CkaycE3bW8CEXbPxIKabXmF3mfe7PyETci7AwgkJ7LY=; b=eCkCNIVuQ/Ae3NYDKtxqnf4PHNYWSh+0LKJ7pTfjCQPTDQpYYdi38tNzD30uJmt+t1 fwfLHW+ISgyEo2tY43q3H34zyU1Gc97bxtKBejWK90KFwkQLcXbcfSuUjlQYmlvjdwM/ lo1ICSWHiiLZET55QnP7XdDb5eZ1pBcbs6ePKmp15kyhdxwnvcvcDemkscgSngHgofFd CSCx8KaTWmSz938FpacykJO9LDve2KPiONitxcR5eM1+RPsNPUNLGwnd5af1jKgGAE3Q 4j+0NVee0jGzNS4KLXx0VuZzmCz4/z2NNabrKR4zt9hn7L82r8m9hfpWRVry43jbmO3y bN4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@vmware.com header.s=selector1 header.b=DiqWDpHu; 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=NONE sp=NONE dis=NONE) header.from=vmware.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g21si8076602plo.435.2018.11.28.11.35.45; Wed, 28 Nov 2018 11:36:00 -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; dkim=pass header.i=@vmware.com header.s=selector1 header.b=DiqWDpHu; 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=NONE sp=NONE dis=NONE) header.from=vmware.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728873AbeK2Ghp (ORCPT + 99 others); Thu, 29 Nov 2018 01:37:45 -0500 Received: from mail-eopbgr760070.outbound.protection.outlook.com ([40.107.76.70]:3232 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725870AbeK2Gho (ORCPT ); Thu, 29 Nov 2018 01:37:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CkaycE3bW8CEXbPxIKabXmF3mfe7PyETci7AwgkJ7LY=; b=DiqWDpHuI+K8UpruyrgZvFbqLz2RoVry9Mu7c8JVgLll00dvb9cD5+cuROojY4giVgSFwA5Yym89cGHPo78t5v0W2W2AQTmg4ED5i5IMFLpNEdZEdQz+UVP1xCYo87RGNCiutExUM59go1ULNOI/zBjLlVDZMhte7v5kLng/Bz8= Received: from BYAPR05MB4776.namprd05.prod.outlook.com (52.135.233.146) by BYAPR05MB4950.namprd05.prod.outlook.com (20.177.228.224) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1382.14; Wed, 28 Nov 2018 19:34:53 +0000 Received: from BYAPR05MB4776.namprd05.prod.outlook.com ([fe80::a1b8:a948:4c8c:747d]) by BYAPR05MB4776.namprd05.prod.outlook.com ([fe80::a1b8:a948:4c8c:747d%4]) with mapi id 15.20.1404.008; Wed, 28 Nov 2018 19:34:53 +0000 From: Nadav Amit To: Josh Poimboeuf CC: Ingo Molnar , Andy Lutomirski , Peter Zijlstra , "H . Peter Anvin" , Thomas Gleixner , "linux-kernel@vger.kernel.org" , "x86@kernel.org" , Borislav Petkov , David Woodhouse Subject: Re: [RFC PATCH 0/5] x86: dynamic indirect call promotion Thread-Topic: [RFC PATCH 0/5] x86: dynamic indirect call promotion Thread-Index: AQHUZn1la/DbvW2wT0Gh22Ko/9s6YqVlnFCAgAA5kgA= Date: Wed, 28 Nov 2018 19:34:52 +0000 Message-ID: <9EACED43-EC21-41FB-BFAC-4E98C3842FD9@vmware.com> References: <20181018005420.82993-1-namit@vmware.com> <20181128160849.epmoto4o5jaxxxol@treble> In-Reply-To: <20181128160849.epmoto4o5jaxxxol@treble> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=namit@vmware.com; x-originating-ip: [208.91.2.1] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;BYAPR05MB4950;20:C1Sn/fBZvUkxA2vdyb7vyw14MuCzh7aMnBpA1aMxt0OgBwWWrfq8fl1UWrX8x7HdBx3BHb2GJlCIS7qFVgmdpsEXSGmgW6XhBewJKMMTywhAjKBzMIBnR4Z0c36wP85No6dTPgWAgEnr1l4/GEteKdhRp51ODLE6b5qygNAJKzE= x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: bccdf7da-639e-4f1a-caa0-08d6556891de x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390098)(7020095)(4652040)(8989299)(5600074)(711020)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020);SRVR:BYAPR05MB4950; x-ms-traffictypediagnostic: BYAPR05MB4950: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(3231443)(999002)(944501410)(52105112)(93006095)(93001095)(148016)(149066)(150057)(6041310)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123564045)(201708071742011)(7699051)(76991095);SRVR:BYAPR05MB4950;BCL:0;PCL:0;RULEID:;SRVR:BYAPR05MB4950; x-forefront-prvs: 0870212862 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(396003)(136003)(346002)(376002)(366004)(199004)(189003)(478684002)(53546011)(5660300001)(316002)(66066001)(8936002)(54906003)(6486002)(8676002)(81156014)(6246003)(14454004)(7416002)(81166006)(305945005)(7736002)(33656002)(68736007)(6916009)(229853002)(105586002)(97736004)(478600001)(4326008)(256004)(26005)(2906002)(476003)(11346002)(106356001)(446003)(83716004)(2616005)(486006)(186003)(6116002)(14444005)(82746002)(217873002)(71190400001)(71200400001)(36756003)(76176011)(102836004)(86362001)(53936002)(25786009)(6512007)(6506007)(6436002)(3846002)(99286004);DIR:OUT;SFP:1101;SCL:1;SRVR:BYAPR05MB4950;H:BYAPR05MB4776.namprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: vmware.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: f95y/b5wbh2orfWKcHQTuMu6rC3QSMu0M8u190+CNvgh9gSL9Wj1VzS5WIn7lV/cWRiaDA3YZ+JxIQwpMXyqXwIIZwogZ19SsEu+HcJZgdQsYApTsnbQ4o61vtD9L+/GbufZqCYkzgc0Ucl6tYB5qSGt+J5Yw7H7i+i/TpMUC0JmV40T41limez2Jfv6Tv6xq/5ufiC1M8cDHKGQPdB9NB/xsf8b8Qx0KjOKuvLICJZ8DEXSAmLjSO12TQz8cpIdhVu5LaSI9ymMQNpIxitiXbnFAZiYwyEwcqQx2nYY1YURU/VliEWlx9bY+oeQdBmmSCEoJzeHFxugInBQUF6yCf0EowMCxQwU+mvfUCyI2eU= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-Network-Message-Id: bccdf7da-639e-4f1a-caa0-08d6556891de X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Nov 2018 19:34:52.9999 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR05MB4950 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiBPbiBOb3YgMjgsIDIwMTgsIGF0IDg6MDggQU0sIEpvc2ggUG9pbWJvZXVmIDxqcG9pbWJvZUBy ZWRoYXQuY29tPiB3cm90ZToNCj4gDQo+IE9uIFdlZCwgT2N0IDE3LCAyMDE4IGF0IDA1OjU0OjE1 UE0gLTA3MDAsIE5hZGF2IEFtaXQgd3JvdGU6DQo+PiBUaGlzIFJGQyBpbnRyb2R1Y2VzIGluZGly ZWN0IGNhbGwgcHJvbW90aW9uIGluIHJ1bnRpbWUsIHdoaWNoIGZvciB0aGUNCj4+IG1hdHRlciBv ZiBzaW1wbGlmaWNhdGlvbiAoYW5kIGJyYW5kaW5nKSB3aWxsIGJlIGNhbGxlZCBoZXJlICJyZWxw b2xpbmVzIg0KPj4gKHJlbGF0aXZlIGNhbGwgKyB0cmFtcG9saW5lKS4gUmVscG9saW5lcyBhcmUg bWFpbmx5IGludGVuZGVkIGFzIGEgd2F5DQo+PiBvZiByZWR1Y2luZyByZXRwb2xpbmUgb3Zlcmhl YWRzIGR1ZSB0byBTcGVjdHJlIHYyLg0KPj4gDQo+PiBVbmxpa2UgaW5kaXJlY3QgY2FsbCBwcm9t b3Rpb24gdGhyb3VnaCBwcm9maWxlIGd1aWRlZCBvcHRpbWl6YXRpb24sIHRoZQ0KPj4gcHJvcG9z ZWQgYXBwcm9hY2ggZG9lcyBub3QgcmVxdWlyZSBhIHByb2ZpbGluZyBzdGFnZSwgd29ya3Mgd2Vs bCB3aXRoDQo+PiBtb2R1bGVzIHdob3NlIGFkZHJlc3MgaXMgdW5rbm93biBhbmQgY2FuIGFkYXB0 IHRvIGNoYW5naW5nIHdvcmtsb2Fkcy4NCj4+IA0KPj4gVGhlIG1haW4gaWRlYSBpcyBzaW1wbGU6 IGZvciBldmVyeSBpbmRpcmVjdCBjYWxsLCB3ZSBpbmplY3QgYSBwaWVjZSBvZg0KPj4gY29kZSB3 aXRoIGZhc3QtIGFuZCBzbG93LXBhdGggY2FsbHMuIFRoZSBmYXN0IHBhdGggaXMgdXNlZCBpZiB0 aGUgdGFyZ2V0DQo+PiBtYXRjaGVzIHRoZSBleHBlY3RlZCAoaG90KSB0YXJnZXQuIFRoZSBzbG93 LXBhdGggdXNlcyBhIHJldHBvbGluZS4NCj4+IER1cmluZyB0cmFpbmluZywgdGhlIHNsb3ctcGF0 aCBpcyBzZXQgdG8gY2FsbCBhIGZ1bmN0aW9uIHRoYXQgc2F2ZXMgdGhlDQo+PiBjYWxsIHNvdXJj ZSBhbmQgdGFyZ2V0IGluIGEgaGFzaC10YWJsZSBhbmQga2VlcCBjb3VudCBmb3IgY2FsbA0KPj4g ZnJlcXVlbmN5LiBUaGUgbW9zdCBjb21tb24gdGFyZ2V0IGlzIHRoZW4gcGF0Y2hlZCBpbnRvIHRo ZSBob3QgcGF0aC4NCj4+IA0KPj4gVGhlIHBhdGNoaW5nIGlzIGRvbmUgb24tdGhlLWZseSBieSBw YXRjaGluZyB0aGUgY29uZGl0aW9uYWwgYnJhbmNoDQo+PiAob3Bjb2RlIGFuZCBvZmZzZXQpIHRo YXQgaXMgdXNlZCB0byBjb21wYXJlIHRoZSB0YXJnZXQgdG8gdGhlIGhvdA0KPj4gdGFyZ2V0LiBU aGlzIGFsbG93cyB0byBkaXJlY3QgYWxsIGNvcmVzIHRvIHRoZSBmYXN0LXBhdGgsIHdoaWxlIHBh dGNoaW5nDQo+PiB0aGUgc2xvdy1wYXRoIGFuZCB2aWNlLXZlcnNhLiBQYXRjaGluZyBmb2xsb3dz IDIgbW9yZSBydWxlczogKDEpIE9ubHkNCj4+IHBhdGNoIGEgc2luZ2xlIGJ5dGUgd2hlbiB0aGUg Y29kZSBtaWdodCBiZSBleGVjdXRlZCBieSBhbnkgY29yZS4gKDIpDQo+PiBXaGVuIHBhdGNoaW5n IG1vcmUgdGhhbiBvbmUgYnl0ZSwgZW5zdXJlIHRoYXQgYWxsIGNvcmVzIGRvIG5vdCBydW4gdGhl DQo+PiB0by1iZS1wYXRjaGVkLWNvZGUgYnkgcHJldmVudGluZyB0aGlzIGNvZGUgZnJvbSBiZWlu ZyBwcmVlbXB0ZWQsIGFuZA0KPj4gdXNpbmcgc3luY2hyb25pemVfc2NoZWQoKSBhZnRlciBwYXRj aGluZyB0aGUgYnJhbmNoIHRoYXQganVtcHMgb3ZlciB0aGlzDQo+PiBjb2RlLg0KPj4gDQo+PiBD aGFuZ2luZyBhbGwgdGhlIGluZGlyZWN0IGNhbGxzIHRvIHVzZSByZWxwb2xpbmVzIGlzIGRvbmUg dXNpbmcgYXNzZW1ibHkNCj4+IG1hY3JvIG1hZ2ljLiBUaGVyZSBhcmUgYWx0ZXJuYXRpdmUgc29s dXRpb25zLCBidXQgdGhpcyBvbmUgaXMNCj4+IHJlbGF0aXZlbHkgc2ltcGxlIGFuZCB0cmFuc3Bh cmVudC4gVGhlcmUgaXMgYWxzbyBsb2dpYyB0byByZXRyYWluIHRoZQ0KPj4gc29mdHdhcmUgcHJl ZGljdG9yLCBidXQgdGhlIHBvbGljeSBpdCB1c2VzIG1heSBuZWVkIHRvIGJlIHJlZmluZWQuDQo+ PiANCj4+IEV2ZW50dWFsbHkgdGhlIHJlc3VsdHMgYXJlIG5vdCBiYWQgKDIgVkNQVSBWTSwgdGhy b3VnaHB1dCByZXBvcnRlZCk6DQo+PiANCj4+IAkJYmFzZQkJcmVscG9saW5lDQo+PiAJCS0tLS0J CS0tLS0tLS0tLQ0KPj4gbmdpbnggCTIyODk4IAkJMjUxNzggKCsxMCUpDQo+PiByZWRpcy15Y3Ni CTI0NTIzCQkyNTQ4NiAoKzQlKQ0KPj4gZGJlbmNoCTIxNDQJCTIxMDMgKCsyJSkNCj4+IA0KPj4g V2hlbiByZXRwb2xpbmVzIGFyZSBkaXNhYmxlZCwgYW5kIGlmIHJldHJhaW5pbmcgaXMgb2ZmLCBw ZXJmb3JtYW5jZQ0KPj4gYmVuZWZpdHMgYXJlIHVwIHRvIDIlIChuZ2lueCksIGJ1dCBhcmUgbXVj aCBsZXNzIGltcHJlc3NpdmUuDQo+IA0KPiBIaSBOYWRhdiwNCj4gDQo+IFBldGVyIHBvaW50ZWQg bWUgdG8gdGhlc2UgcGF0Y2hlcyBkdXJpbmcgYSBkaXNjdXNzaW9uIGFib3V0IHJldHBvbGluZQ0K PiBwcm9maWxpbmcuICBQZXJzb25hbGx5LCBJIHRoaW5rIHRoaXMgaXMgYnJpbGxpYW50LiAgVGhp cyBjb3VsZCBoZWxwDQo+IG5ldHdvcmtpbmcgYW5kIGZpbGVzeXN0ZW0gaW50ZW5zaXZlIHdvcmts b2FkcyBhIGxvdC4NCg0KVGhhbmtzISBJIHdhcyBhIGJpdCBoZWxkLWJhY2sgYnkgdGhlIHJlbGF0 aXZlbHkgbGltaXRlZCBudW1iZXIgb2YgcmVzcG9uc2VzLg0KSSBmaW5pc2hlZCBhbm90aGVyIHZl cnNpb24gdHdvIHdlZWtzIGFnbywgYW5kIGV2ZXJ5IGRheSBJIHRoaW5rOiAic2hvdWxkIGl0DQpi ZSBSRkN2MiBvciB2MeKAnSwgZW5kaW5nIHVwIG5vdCBzZW5kaW5nIGl04oCmDQoNClRoZXJlIGlz IG9uZSBpc3N1ZSB0aGF0IEkgcmVhbGl6ZWQgd2hpbGUgd29ya2luZyBvbiB0aGUgbmV3IHZlcnNp b246IEnigJltIG5vdA0Kc3VyZSBpdCBpcyB3ZWxsLWRlZmluZWQgd2hhdCBhbiBvdXRsaW5lIHJl dHBvbGluZSBpcyBhbGxvd2VkIHRvIGRvLiBUaGUNCmluZGlyZWN0IGJyYW5jaCBwcm9tb3Rpb24g Y29kZSBjYW4gY2hhbmdlIHJmbGFncywgd2hpY2ggbWlnaHQgY2F1c2UNCmNvcnJlY3Rpb24gaXNz dWVzLiBJbiBwcmFjdGljZSwgdXNpbmcgZ2NjLCBpdCBpcyBub3QgYSBwcm9ibGVtLg0KDQo+IFNv bWUgaGlnaC1sZXZlbCBjb21tZW50czoNCj4gDQo+IC0gIlJlbHBvbGluZSIgbG9va3MgY29uZnVz aW5nbHkgYSBsb3QgbGlrZSAicmV0cG9saW5lIi4gIEhvdyBhYm91dA0KPiAgIm9wdHBvbGluZSI/ ICBUbyBhdm9pZCBjb25mdXNpbmcgbXlzZWxmIEkgd2lsbCBoZXJlYWZ0ZXIgcmVmZXIgdG8gaXQN Cj4gIGFzIHN1Y2ggOi0pDQoNClN1cmUuIEZvciB0aGUgYWNhZGVtaWMgcGFwZXIgd2Ugc3VibWl0 dGVkLCB3ZSB1c2VkIGEgbXVjaCB3b3JzZSBuYW1lIHRoYXQgbXkNCmNvbGxlYWd1ZSBjYW1lIHVw IHdpdGguIEnigJltIG9rIHdpdGggYW55dGhpbmcgb3RoZXIgdGhhbiB0aGF0IG5hbWUgKG5vdA0K bWVudGlvbmVkIHRvIHByZXZlbnQgZG91YmxlLWJsaW5kaW5nIHZpb2xhdGlvbnMpLiBJ4oCZbGwg Z28gd2l0aCB5b3VyIG5hbWUuDQoNCj4gLSBJbnN0ZWFkIG9mIHBhdGNoaW5nIG9uZSBieXRlIGF0 IGEgdGltZSwgaXMgdGhlcmUgYSByZWFzb24gd2h5DQo+ICB0ZXh0X3Bva2VfYnAoKSBjYW4ndCBi ZSB1c2VkPyAgVGhhdCB3b3VsZCBncmVhdGx5IHNpbXBsaWZ5IHRoZQ0KPiAgcGF0Y2hpbmcgcHJv Y2VzcywgYXMgZXZlcnl0aGluZyBjb3VsZCBiZSBwYXRjaGVkIGluIGEgc2luZ2xlIHN0ZXAuDQoN CkkgdGhvdWdodCBvZiBpdCBhbmQgbWF5YmUgaXQgaXMgc29tZWhvdyBwb3NzaWJsZSwgYnV0IHRo ZXJlIGFyZSBzZXZlcmFsDQpwcm9ibGVtcywgZm9yIHdoaWNoIEkgZGlkbuKAmXQgZmluZCBhIHNp bXBsZSBzb2x1dGlvbjoNCg0KMS4gQW4gaW5kaXJlY3QgYnJhbmNoIGluc2lkZSB0aGUgQlAgaGFu ZGxlciBtaWdodCBiZSB0aGUgb25lIHdlIHBhdGNoDQoNCjIuIEFuIGluZGlyZWN0IGJyYW5jaCBp bnNpZGUgYW4gaW50ZXJydXB0IG9yIE5NSSBoYW5kbGVyIG1pZ2h0IGJlIHRoZQ0KICAgb25lIHdl IHBhdGNoDQoNCjMuIE92ZXJhbGwsIHdlIG5lZWQgdG8gcGF0Y2ggbW9yZSB0aGFuIGEgc2luZ2xl IGluc3RydWN0aW9uLCBhbmQNCiAgIHRleHRfcG9rZV9icCgpIGlzIG5vdCBzdWl0YWJsZQ0KDQo+ IC0gSW4gbWFueSBjYXNlcywgYSBzaW5nbGUgZGlyZWN0IGNhbGwgbWF5IG5vdCBiZSBzdWZmaWNp ZW50LCBhcyB0aGVyZQ0KPiAgY291bGQgYmUgZm9yIGV4YW1wbGUgbXVsdGlwbGUgdGFza3MgdXNp bmcgZGlmZmVyZW50IG5ldHdvcmsgcHJvdG9jb2xzDQo+ICB3aGljaCBuZWVkIGRpZmZlcmVudCBj YWxsYmFja3MgZm9yIHRoZSBzYW1lIGNhbGwgc2l0ZS4NCg0KV2Ugd2FudCB0byBrbm93IGR1cmlu ZyBjb21waWxhdGlvbiBob3cgbWFueSB0YXJnZXRzIHRvIHVzZS4gSXQgaXMgbm90DQpzdXBlci1z aW1wbGUgdG8gc3VwcG9ydCBtdWx0aXBsZSBpbmxpbmVkIHRhcmdldHMsIGJ1dCBpdCBpcyBmZWFz aWJsZSBpZiB5b3UNCmFyZSB3aWxsaW5nIHRvIGFubm90YXRlIHdoZW4gbXVsdGlwbGUgdGFyZ2V0 cyBhcmUgbmVlZGVkLiBXZSBoYXZlIGEgdmVyc2lvbg0Kd2hpY2ggdXNlcyBvdXRsaW5lZCBpbmRp cmVjdCBicmFuY2ggcHJvbW90aW9uIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlDQp0YXJnZXRzLCBi dXQgaXTigJlzIG5vdCByZWFkeSBmb3IgcHJpbWUgdGltZSwgYW5kIHRoZSBjb2RlLWNhY2hlIG1p c3NlcyBjYW4NCmluZHVjZSBzb21lIG92ZXJoZWFkcy4NCg0KPiAtIEknbSBub3Qgc3VyZSBhYm91 dCB0aGUgcGVyaW9kaWMgcmV0cmFpbmluZyBsb2dpYywgaXQgc2VlbXMgYSBiaXQNCj4gIG5vbmRl dGVybWluaXN0aWMgYW5kIGJ1cnN0eS4NCg0KSSBhZ3JlZS4gSXQgY2FuIGJlIGxpbWl0ZWQgdG8g Y2FzZXMgaW4gd2hpY2ggbW9kdWxlcyBhcmUgbG9hZGVkL3JlbW92ZWQsDQpvciB3aGVuIHRoZSB1 c2VyIGV4cGxpY2l0bHkgYXNrcyBmb3IgaXQgdG8gdGFrZSBwbGFjZS4NCg0KPiANCj4gU28gSSdk IHByb3Bvc2UgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOg0KPiANCj4gLSBJbiB0aGUgb3B0cG9saW5l LCByZXNlcnZlIHNwYWNlIGZvciBtdWx0aXBsZSAoNSBvciBzbykgY29tcGFyaXNvbnMgYW5kDQo+ ICBkaXJlY3QgY2FsbHMuICBNYXliZSB0aGUgbnVtYmVyIG9mIHJlc2VydmVkIGNtcC9qbmUvY2Fs bCBzbG90cyBjYW4gYmUNCj4gIHR3ZWFrZWQgYnkgdGhlIGNhbGxlciBzb21laG93LiAgT3IgbWF5 YmUgaXQgY291bGQgZ3JvdyBhcyBuZWVkZWQuDQo+ICBTdGFydGluZyBvdXQsIHRoZXkgd291bGQg anVzdCBiZSBOT1BzLg0KPiANCj4gLSBJbnN0ZWFkIG9mIHRoZSB0ZW1wb3JhcnkgbGVhcm5pbmcg bW9kZSwgYWRkIHBlcm1hbmVudCB0cmFja2luZyB0bw0KPiAgZGV0ZWN0IGEgZGlyZWN0IGNhbGwg Im1pc3MiIC0tIGkuZS4sIHdoZW4gbm9uZSBvZiB0aGUgZXhpc3RpbmcgZGlyZWN0DQo+ICBjYWxs cyBhcmUgYXBwbGljYWJsZSBhbmQgdGhlIHJldHBvbGluZSB3aWxsIGJlIHVzZWQuDQo+IA0KPiAt IEluIHRoZSBjYXNlIG9mIGEgbWlzcyAob3IgTiBtaXNzZXMpLCBpdCBjb3VsZCB0cmlnZ2VyIGEg ZGlyZWN0IGNhbGwNCj4gIHBhdGNoaW5nIG9wZXJhdGlvbiB0byBiZSBydW4gbGF0ZXIgKHdvcmtx dWV1ZSBvciBzeXNjYWxsIGV4aXQpLiAgSWYNCj4gIGFsbCB0aGUgZGlyZWN0IGNhbGwgc2xvdHMg YXJlIGZ1bGwsIGl0IGNvdWxkIHBhdGNoIHRoZSBsZWFzdCByZWNlbnRseQ0KPiAgbW9kaWZpZWQg b25lLiAgSWYgdGhpcyBjYXVzZXMgdGhyYXNoaW5nICg+eCBjaGFuZ2VzIG92ZXIgeSB0aW1lKSwg aXQNCj4gIGNvdWxkIGluY3JlYXNlIHRoZSBudW1iZXIgb2YgZGlyZWN0IGNhbGwgc2xvdHMgdXNp bmcgYSB0cmFtcG9saW5lLg0KPiAgRXZlbiBpZiB0aGVyZSB3ZXJlIHNldmVyYWwgc2xvdHMsIENQ VSBicmFuY2ggcHJlZGljdGlvbiB3b3VsZA0KPiAgcHJlc3VtYWJseSBoZWxwIG1ha2UgaXQgbXVj aCBmYXN0ZXIgdGhhbiBhIGJhc2ljIHJldHBvbGluZS4NCj4gDQo+IFRob3VnaHRzPw0KDQpJ4oCZ bSBvayB3aXRoIHRoZXNlIGNoYW5nZXMgaW4gZ2VuZXJhbCwgYWx0aG91Z2ggaGF2aW5nIG11bHRp cGxlIGlubGluZQ0KdGFyZ2V0cyBpcyBub3Qgc3VwZXItc2ltcGxlLiBIb3dldmVyLCB0aGVyZSBh cmUgYSBmZXcgaXNzdWVzOg0KDQotIFRoZXJlIGlzIHBvdGVudGlhbGx5IGEgbmVnYXRpdmUgaW1w YWN0IGR1ZSB0byBjb2RlLXNpemUgaW5jcmVhc2Ugd2hpY2gNCiAgSSB3YXMgd29ycmllZCBhYm91 dC4NCg0KLSBJIHNlZSBubyByZWFzb24gbm90IHRvIHVzZSBhbGwgdGhlIGF2YWlsYWJsZSBzbG90 cyBpbW1lZGlhdGVseSB3aGVuDQogIHdlIGVuY291bnRlciBhIG1pc3MuDQoNCi0gVGhlIG9yZGVy IG9mIHRoZSBicmFuY2hlcyBtaWdodCBiZSDigJx3cm9uZ+KAnSAodW5vcHRpbWl6ZWQpIGlmIHdl IGRvIG5vdA0KICBkbyBhbnkgcmVsZWFybmluZy4NCg0KLSBUaGUgbWFpbiBxdWVzdGlvbiBpcyB3 aGF0IHRvIGRvIGlmIHdlIHJ1biBvdXQgb2Ygc2xvdHMgYW5kIHN0aWxsIGdldA0KICAobWFueT8p IG1pc3Nlcy4gSSBwcmVzdW1lIHRoZSByaWdodCB0aGluZyBpcyB0byBkaXNhYmxlIHRoZSBvcHRw b2xpbmUNCiAgYW5kIGp1bXAgb3ZlciBpdCB0byB0aGUgcmV0cG9saW5lLg0KDQpUaGFua3MgYWdh aW4gZm9yIHRoZSBmZWVkYmFjaywgYW5kIHBsZWFzZSBsZXQgbWUga25vdyB3aGF0IHlvdSB0aGlu ayBhYm91dA0KbXkgY29uY2VybnMu