From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web12.27835.1590721459084321709 for ; Thu, 28 May 2020 20:04:19 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=HgQzmROa; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: liming.gao@intel.com) IronPort-SDR: IUCqinQN97/xi47ZMVCqbHGhzwlUZETFjY5MIOVwSzHai1IT019btH7YQlDakVynhp+waxd43H fxn6o7i28LTA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 May 2020 20:04:18 -0700 IronPort-SDR: GoJ6tAyEoRJ+epEnug3MIqVoPeFySlFc1HQTm44cgSUwRJgcWnsIjpXUe9tA0OGTDmqPA3DHWf KeCrug4Xjn6g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,447,1583222400"; d="scan'208";a="469362715" Received: from orsmsx110.amr.corp.intel.com ([10.22.240.8]) by fmsmga006.fm.intel.com with ESMTP; 28 May 2020 20:04:17 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by ORSMSX110.amr.corp.intel.com (10.22.240.8) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 28 May 2020 20:04:16 -0700 Received: from NAM04-BN3-obe.outbound.protection.outlook.com (104.47.46.50) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 28 May 2020 20:04:16 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FGQ/XdWKFo9SDNY8R6GvUw3Z8hnPjkp1dLuNj0cv/p9vYxUjCT65Qb6f6JZNnrCEX/fY4F0a37mq53W8jmQ/eEYg7Om17XxE5jFhUwJUlqkJI5dbJ0KPPw7xMbXKsC9ZFuewLj7+8fHLZsCE+NhNSnHNOxAphIWQQ+y9ll3ePccb3V24LpFABAaXBt7kyR8jkACbc+V9eNaMK1fobWX5c3VTLrEhmCk8qhy6fpvTGksEDN31YzqJlRjdOZfjuFUtwsptH39/5Ja0vjOg67mRNyBRUAgnKkUqF6tk3ovna6oFOusNgQ4VFPFKgEBJf4UiC0tvqmWqFSCAQW+yra75ag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ukywGCatmp4MvVgEo0JlmDDNNypXp9wI6INraqSBWxc=; b=Adh2Y5rIBjACZX1nXgP1KCSdZwRSzy3+WUjTZ+9NZ5HuSaBBpGc4/HRKX43I0sNiZqLihhNZm96ytCYbKa3wS1mHXwX7Ig0i6xJ32+2vGW9/hB51mKyZ6VHZLUL49nORz+ob6aeWJewaSfYVhMOPLl1+8arPhBNJWj7Y1kAu3qyMssATmu7QXbGSsU+6TJV+bxW1K0XHFYmTPJoR6E8NDFU1NHe2+S8Zajtpqd3hTHLLYTf+vtsAkgPf1Sa38AnjltkSC9P7h/x4M9Tsc6uzN0RwsjgyxlnNeo/qG0+3Ts9+ytWHJOrPqXMIoiFSQ8d7c1AV4fksNgoIphX0Hq6OBg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ukywGCatmp4MvVgEo0JlmDDNNypXp9wI6INraqSBWxc=; b=HgQzmROaE0Eyl+2bWemnsRqq3C39VDuERuPpBme3XpZviZ3lGicR7aCckiTmuVYYjJwBAdZUhS8ueuDhQlXN67yD7KcJUR1XkQgblY3wHQsu4FckZPYvFVrGR6mc39lO+AvGsYfK361wr0IXwIa2kYKhY0QmDNsu4piDX/L6bpM= Received: from SN6PR11MB3197.namprd11.prod.outlook.com (2603:10b6:805:c5::23) by SN6PR11MB2573.namprd11.prod.outlook.com (2603:10b6:805:53::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.19; Fri, 29 May 2020 03:04:14 +0000 Received: from SN6PR11MB3197.namprd11.prod.outlook.com ([fe80::a551:8867:924a:7217]) by SN6PR11MB3197.namprd11.prod.outlook.com ([fe80::a551:8867:924a:7217%5]) with mapi id 15.20.3045.018; Fri, 29 May 2020 03:04:14 +0000 From: "Liming Gao" To: "devel@edk2.groups.io" , "lersek@redhat.com" , Leif Lindholm , Gary Lin , "afish@apple.com" , "Kinney, Michael D" CC: "ard.biesheuvel@arm.com" Subject: Re: [edk2-devel] [PATCH v2] ArmPkg/CompilerIntrinsicsLib: provide atomics intrinsics Thread-Topic: [edk2-devel] [PATCH v2] ArmPkg/CompilerIntrinsicsLib: provide atomics intrinsics Thread-Index: AQHWLpwsjn/uVTdvX0qkys69nPSvV6i8w52AgACJlwCAAGEp0IAATC+AgABzJ4A= Date: Fri, 29 May 2020 03:04:14 +0000 Message-ID: References: <20200520114448.26104-1-ard.biesheuvel@arm.com> <20200528013633.GF24379@GaryWorkstation> <20200528094900.GB1923@vanye> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.55.52.217] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4dc89afc-fbe5-4ee5-89fb-08d8037cf7fe x-ms-traffictypediagnostic: SN6PR11MB2573: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219; x-forefront-prvs: 04180B6720 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HXi68BibROYewoUWJxD1cOZJz2+xhkTxL1SyQblvZ1n2nnO8vH3tgLTorEgr+Ckk0EMNEIiqMFKzPkUeiAS3uAlZ8KNfBr3dDu/xdd804RbDbAJLB+mDGDcrlwfC/HGRXAIWAFVX4aEGSuaWP2b2t7tUl6684uQhOP3d+ufOdyykknaMOmS3m9OpCnjtKeBMtdNhMgiDdAXQvGntuU+ZdMUcNhtyliWQnfDQcXdTluSwp741okfsUOWAXPAasoFZMYfojl5CLvGAuZG7FSvUeutc1idVe6S2HJT1Y0ITh1TzBa6IdtdJ0bexcHe9t69e93o2aQWbxzZJZTH6Y/fOyTd6a0dnxK723jGK/WnsdoNUbtFBAJPKscApEIKP4FuPvsfNfkIaNb1EGnHS/5+nlNEBTY9GieVPJn+SKJQ17biSZ4u0DekLQgwv8kbnRcUxHUL4KoM980tigLeF5Dcaew== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB3197.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(396003)(136003)(346002)(366004)(376002)(39860400002)(26005)(55016002)(9686003)(8936002)(966005)(7696005)(186003)(6506007)(5660300002)(478600001)(8676002)(53546011)(33656002)(2906002)(86362001)(66946007)(64756008)(66446008)(76116006)(66556008)(66476007)(71200400001)(316002)(83380400001)(110136005)(52536014)(6636002)(4326008)(357404004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: udZzqb4ZmaACwC5D6gZmrEyjokP5W2NChjR9yZzXwfj+zQs3gOmG8TQ5s1oUrIgv4wPkqaCUuNFXuJ9eJDLrPi/eQFSvHZNPnVqNM7UI9V7NwLCgi0W8+ORofoDed32svMtfU98mdUXa2QASG8qN3wLYmYUaucRNStgQmxFqAzcA5ePCp9fcavIBpf43vBSbGOi46QnY0fDouJG6Rx+Wc6SPcGUNo78DVSX213Y0M/lsmFhcXpLwKHasy3rkxsW7EB4gFBM1cW92mY2ezdqa8ieqaT7AWxqfYXhCWJMVz72KfB0Ez9yCqCVwxPqF+rbvvAHxuVIYdaD62Jngd7Ugd1TVMjuBHuQg/8lzotRI2fgZSpNP7l3hJc44JFlbkSIZg+AQUZX1WLZROfs+U+1RNY5dCpPwTdif5zk0+Jxi6Cpi6Fy/KJl3reAxbyULFgKr9ZdHsOCtXPfTxWJd/BADmdlr7Lnuxl+C4JTHFuDMKShSHdc9/0IEg1cRDI273a51 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 4dc89afc-fbe5-4ee5-89fb-08d8037cf7fe X-MS-Exchange-CrossTenant-originalarrivaltime: 29 May 2020 03:04:14.3217 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ltJAD6uwAfXSTvQuzjWUuytqSy62yYFpvAzT5cNmMijf8N47H1l9NTmi6fl9V11TObIUnAYjf++2sUXd7z67uA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2573 Return-Path: liming.gao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGFzemxvOg0KIEkgYWdyZWUgdGhlIHByb3Bvc2FsIHRvIGRlbGF5IGZldyBkYXlzIHRvIGNvbGxl Y3QgbW9yZSBmZWVkYmFja3MuIEkganVzdCBzZW5kIHRoZSBtYWlsIHRvIGhpZ2hsaWdodCB0aGlz IHJlcXVlc3QgaW4gSGFyZCBGZWF0dXJlIEZyZWV6ZSBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cv ZGV2ZWwvbWVzc2FnZS82MDQyMS4gDQoNClRoYW5rcw0KTGltaW5nDQotLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBz LmlvPiBPbiBCZWhhbGYgT2YgTGFzemxvIEVyc2VrDQpTZW50OiAyMDIw5bm0NeaciDI55pelIDQ6 MDkNClRvOiBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBMZWlmIExpbmRob2xt IDxsZWlmQG51dmlhaW5jLmNvbT47IEdhcnkgTGluIDxnbGluQHN1c2UuY29tPjsgYWZpc2hAYXBw bGUuY29tOyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQpD YzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IGFyZC5iaWVzaGV1dmVsQGFybS5jb20NClN1YmplY3Q6 IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyXSBBcm1Qa2cvQ29tcGlsZXJJbnRyaW5zaWNzTGli OiBwcm92aWRlIGF0b21pY3MgaW50cmluc2ljcw0KDQpPbiAwNS8yOC8yMCAxNzo0OCwgR2FvLCBM aW1pbmcgd3JvdGU6DQo+IExlaWY6DQo+ICAgQlogMjcyMyBpcyBhIHRpYW5vIGZlYXR1cmUgcmVx dWVzdC4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIG5ldyBHQ0MxMC4gSSBhZ3JlZSB3aXRo IExhc3psbyB0aGF0IHRoaXMgY2hhbmdlIGlzIGxpa2UgdGhlIGVuaGFuY2VtZW50IGluc3RlYWQg b2YgdGhlIGNyaXRpY2FsIGJ1ZyBmaXguIFNvLCBJIHN1Z2dlc3QgdG8gZGVsYXkgaXQgYWZ0ZXIg dGhpcyBzdGFibGUgdGFnLiANCg0KSW4gPGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9z aG93X2J1Zy5jZ2k/aWQ9MjcyMyNjMjI+IEkgbWVudGlvbmVkICJJZiB0aGVyZSdzIHN0cm9uZyBk aXNhZ3JlZW1lbnQsIHdlIGNhbiByZXZlcnQgdGhlc2UgQlogZmllbGQgY2hhbmdlcyIsIGFuZCBp biBhbm90aGVyIG1haWxpbmcgbGlzdCB0aHJlYWQgTGVpZiBwb2ludGVkIG91dCB0aGF0IHRoZSBw YXRjaCBvbmx5IGFmZmVjdHMgYnVpbGRzIHRoYXQgd291bGQgb3RoZXJ3aXNlIGZhaWwuDQoNClNv IGF0IHRoZSBtb21lbnQgSSdtIG5ldXRyYWwgb24gdGhpcyB3b3JrOyBJJ20gZmluZSBlaXRoZXIg d2F5IChtZXJnZWQgb3IgcG9zdHBvbmVkKS4NCg0KTGltaW5nOiB3b3VsZCB5b3UgY29uc2lkZXIg bWVyZ2luZyBpZiB3ZSBkZWxheWVkIHRoZSBzdGFibGUgdGFnIGJ5IGEgZmV3IGRheXMgKG1pZCBu ZXh0IHdlZWspPw0KDQpBbnl3YXksIGxldCBtZSBmYWRlIGludG8gdGhlIGJhY2tncm91bmQgb24g dGhpcyB0b3BpYy4NCg0KVGhhbmtzDQpMYXN6bG8NCg0KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4+IEZyb206IExlaWYgTGluZGhvbG0gPGxlaWZAbnV2aWFpbmMuY29tPg0KPj4gU2Vu dDogVGh1cnNkYXksIE1heSAyOCwgMjAyMCA1OjQ5IFBNDQo+PiBUbzogR2FyeSBMaW4gPGdsaW5A c3VzZS5jb20+DQo+PiBDYzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IGFyZC5iaWVzaGV1dmVsQGFy bS5jb207IGxlcnNla0ByZWRoYXQuY29tOyANCj4+IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGlu dGVsLmNvbT4NCj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyXSBBcm1Qa2cv Q29tcGlsZXJJbnRyaW5zaWNzTGliOiANCj4+IHByb3ZpZGUgYXRvbWljcyBpbnRyaW5zaWNzDQo+ Pg0KPj4gT24gVGh1LCBNYXkgMjgsIDIwMjAgYXQgMDk6MzY6MzMgKzA4MDAsIEdhcnkgTGluIHdy b3RlOg0KPj4+IE9uIFdlZCwgTWF5IDIwLCAyMDIwIGF0IDAxOjQ0OjQ4UE0gKzAyMDAsIEFyZCBC aWVzaGV1dmVsIHdyb3RlOg0KPj4+PiBHYXJ5IHJlcG9ydHMgdGhlIEdDQyAxMCB3aWxsIGVtaXQg Y2FsbHMgdG8gYXRvbWljcyBpbnRyaW5zaWNzIA0KPj4+PiByb3V0aW5lcyB1bmxlc3MgLW1uby1v dXRsaW5lLWF0b21pY3MgaXMgc3BlY2lmaWVkLiBUaGlzIG1lYW5zIA0KPj4+PiBHQ0MtMTAgaW50 cm9kdWNlcyBuZXcgaW50cmluc2ljcywgYW5kIGV2ZW4gdGhvdWdoIGl0IHdvdWxkIGJlIA0KPj4+ PiBwb3NzaWJsZSB0byB3b3JrIGFyb3VuZCB0aGlzIGJ5IHNwZWNpZnlpbmcgdGhlIGNvbW1hbmQg bGluZSBvcHRpb24sIA0KPj4+PiB0aGlzIHdvdWxkIHJlcXVpcmUgYSBuZXcgR0NDMTAgdG9vbGNo YWluIHByb2ZpbGUgdG8gYmUgY3JlYXRlZCwgd2hpY2ggd2UgcHJlZmVyIHRvIGF2b2lkLg0KPj4+ Pg0KPj4+PiBTbyBpbnN0ZWFkLCBhZGQgdGhlIG5ldyBpbnRyaW5zaWNzIHRvIG91ciBsaWJyYXJ5 IHNvIHRoZXkgYXJlIA0KPj4+PiBwcm92aWRlZCB3aGVuIG5lY2Vzc2FyeS4NCj4+Pj4NCj4+Pj4g U2lnbmVkLW9mZi1ieTogQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGFybS5jb20+DQo+ Pj4gQWZ0ZXIgYXBwbHlpbmcgdGhpcyBwYXRjaCwgZ2NjIDEwIGNhbiBidWlsZCBBcm1WaXJ0UGtn IHdpdGhvdXQgdGhlIA0KPj4+IGxpbmtpbmcgZXJyb3IuDQo+Pj4NCj4+PiBUZXN0ZWQtYnk6IEdh cnkgTGluIDxnbGluQHN1c2UuY29tPg0KPj4NCj4+IFRoYW5rcyBHYXJ5Lg0KPj4NCj4+IExpbWlu ZywgY2FuIHdlIGNvbnNpZGVyIHRoaXMgcGF0Y2ggZm9yIHN0YWJsZSB0YWcgcGxlYXNlPw0KPj4N Cj4+IFdpdGggYW4gYWRkZWQgbGluayB0bw0KPj4gaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUu b3JnL3Nob3dfYnVnLmNnaT9pZD0yNzIzIGluIHRoZSBjb21taXQgbWVzc2FnZToNCj4+IFJldmll d2VkLWJ5OiBMZWlmIExpbmRob2xtIDxsZWlmQG51dmlhaW5jLmNvbT4NCj4+DQo+PiAvDQo+PiAg ICAgTGVpZg0KPj4NCj4+Pj4gLS0tDQo+Pj4+IHYyOg0KPj4+PiAtIGFkZCBtaXNzaW5nIC5nbG9i bCB0byBleHBvcnQgdGhlIGZ1bmN0aW9ucyBmcm9tIHRoZSBvYmplY3QgZmlsZQ0KPj4+PiAtIGFk ZCBmdW5jdGlvbiBlbmQgbWFya2VycyBzbyB0aGUgc2l6ZSBvZiBlYWNoIGlzIHZpc2libGUgaW4g dGhlIA0KPj4+PiBFTEYgbWV0YWRhdGENCj4+Pj4gLSBhZGQgc29tZSBjb21tZW50cyB0byBkZXNj cmliZSB3aGF0IGlzIGdvaW5nIG9uDQo+Pj4+DQo+Pj4+ICBBcm1Qa2cvTGlicmFyeS9Db21waWxl ckludHJpbnNpY3NMaWIvQ29tcGlsZXJJbnRyaW5zaWNzTGliLmluZiB8ICAgMyArDQo+Pj4+ICBB cm1Qa2cvTGlicmFyeS9Db21waWxlckludHJpbnNpY3NMaWIvQUFyY2g2NC9BdG9taWNzLlMgICAg ICAgICB8IDE0MiArKysrKysrKysrKysrKysrKysrKw0KPj4+PiAgMiBmaWxlcyBjaGFuZ2VkLCAx NDUgaW5zZXJ0aW9ucygrKQ0KPj4+Pg0KPj4+PiBkaWZmIC0tZ2l0IA0KPj4+PiBhL0FybVBrZy9M aWJyYXJ5L0NvbXBpbGVySW50cmluc2ljc0xpYi9Db21waWxlckludHJpbnNpY3NMaWIuaW5mDQo+ PiBiL0FybVBrZy9MaWJyYXJ5L0NvbXBpbGVySW50cmluc2ljc0xpYi9Db21waWxlckludHJpbnNp Y3NMaWIuaW5mDQo+Pj4+IGluZGV4IGQ1YmFkOTQ2Nzc1OC4uZmNmNDhjNjc4MTE5IDEwMDY0NA0K Pj4+PiAtLS0gDQo+Pj4+IGEvQXJtUGtnL0xpYnJhcnkvQ29tcGlsZXJJbnRyaW5zaWNzTGliL0Nv bXBpbGVySW50cmluc2ljc0xpYi5pbmYNCj4+Pj4gKysrIGIvQXJtUGtnL0xpYnJhcnkvQ29tcGls ZXJJbnRyaW5zaWNzTGliL0NvbXBpbGVySW50cmluc2ljc0xpYi5pbg0KPj4+PiArKysgZg0KPj4+ PiBAQCAtNzksNiArNzksOSBAQCBbU291cmNlcy5BUk1dDQo+Pj4+ICAgIEFybS9sZGl2bW9kLmFz bSAgICAgIHwgTVNGVA0KPj4+PiAgICBBcm0vbGxzci5hc20gICAgICAgICB8IE1TRlQNCj4+Pj4N Cj4+Pj4gK1tTb3VyY2VzLkFBUkNINjRdDQo+Pj4+ICsgIEFBcmNoNjQvQXRvbWljcy5TICAgIHwg R0NDDQo+Pj4+ICsNCj4+Pj4gIFtQYWNrYWdlc10NCj4+Pj4gICAgTWRlUGtnL01kZVBrZy5kZWMN Cj4+Pj4gICAgQXJtUGtnL0FybVBrZy5kZWMNCj4+Pj4gZGlmZiAtLWdpdCBhL0FybVBrZy9MaWJy YXJ5L0NvbXBpbGVySW50cmluc2ljc0xpYi9BQXJjaDY0L0F0b21pY3MuUyANCj4+Pj4gYi9Bcm1Q a2cvTGlicmFyeS9Db21waWxlckludHJpbnNpY3NMaWIvQUFyY2g2NC9BdG9taWNzLlMNCj4+Pj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+Pj4gaW5kZXggMDAwMDAwMDAwMDAwLi5kYzYxZDZiYjhl NTINCj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+PiArKysgYi9Bcm1Qa2cvTGlicmFyeS9Db21waWxl ckludHJpbnNpY3NMaWIvQUFyY2g2NC9BdG9taWNzLlMNCj4+Pj4gQEAgLTAsMCArMSwxNDIgQEAN Cj4+Pj4gKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPj4+PiArLS0tLS0tLS0tLS0tLQ0KPj4+PiArIw0KPj4+PiArIyBD b3B5cmlnaHQgKGMpIDIwMjAsIEFybSwgTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ ICMgIyANCj4+Pj4gK1NQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 ICMNCj4+Pj4gKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+PiArLS0tLS0tLS0tLS0tLQ0KPj4+PiArDQo+Pj4+ICsJ LyoNCj4+Pj4gKwkgKiBQcm92aWRlIHRoZSBHQ0MgaW50cmluc2ljcyB0aGF0IGFyZSByZXF1aXJl ZCB3aGVuIHVzaW5nIEdDQyA5IG9yDQo+Pj4+ICsJICogbGF0ZXIgd2l0aCB0aGUgLW1vdXRsaW5l LWF0b21pY3Mgb3B0aW9ucyAod2hpY2ggYmVjYW1lIHRoZSBkZWZhdWx0DQo+Pj4+ICsJICogaW4g R0NDIDEwKQ0KPj4+PiArCSAqLw0KPj4+PiArCS5hcmNoIGFybXY4LWENCj4+Pj4gKw0KPj4+PiAr CS5tYWNybwkJcmVnX2FsaWFzLCBwZngsIHN6DQo+Pj4+ICsJcjBfXHN6CQkucmVxCVxwZnhcKCkw DQo+Pj4+ICsJcjFfXHN6CQkucmVxCVxwZnhcKCkxDQo+Pj4+ICsJdG1wMF9cc3oJLnJlcQlccGZ4 XCgpMTYNCj4+Pj4gKwl0bXAxX1xzegkucmVxCVxwZnhcKCkxNw0KPj4+PiArCS5lbmRtDQo+Pj4+ ICsNCj4+Pj4gKwkvKg0KPj4+PiArCSAqIERlZmluZSByZWdpc3RlciBhbGlhc2VzIG9mIHRoZSBy aWdodCB0eXBlIGZvciBlYWNoIHNpemUNCj4+Pj4gKwkgKiAoeE4gZm9yIDggYnl0ZXMsIHdOIGZv ciBldmVyeXRoaW5nIHNtYWxsZXIpDQo+Pj4+ICsJICovDQo+Pj4+ICsJcmVnX2FsaWFzCXcsIDEN Cj4+Pj4gKwlyZWdfYWxpYXMJdywgMg0KPj4+PiArCXJlZ19hbGlhcwl3LCA0DQo+Pj4+ICsJcmVn X2FsaWFzCXgsIDgNCj4+Pj4gKw0KPj4+PiArCS5tYWNybwkJZm5fc3RhcnQsIG5hbWU6cmVxDQo+ Pj4+ICsJLnNlY3Rpb24JLnRleHQuXG5hbWUNCj4+Pj4gKwkuZ2xvYmwJCVxuYW1lDQo+Pj4+ICsJ LnR5cGUJCVxuYW1lLCAlZnVuY3Rpb24NCj4+Pj4gK1xuYW1lXCgpOg0KPj4+PiArCS5lbmRtDQo+ Pj4+ICsNCj4+Pj4gKwkubWFjcm8JCWZuX2VuZCwgbmFtZTpyZXENCj4+Pj4gKwkuc2l6ZQkJXG5h bWUsIC4gLSBcbmFtZQ0KPj4+PiArCS5lbmRtDQo+Pj4+ICsNCj4+Pj4gKwkvKg0KPj4+PiArCSAq IEVtaXQgYW4gYXRvbWljIGhlbHBlciBmb3IgXG1vZGVsIHdpdGggb3BlcmFuZHMgb2Ygc2l6ZSBc c3osIHVzaW5nDQo+Pj4+ICsJICogdGhlIG9wZXJhdGlvbiBzcGVjaWZpZWQgYnkgXGluc24gKHdo aWNoIGlzIHRoZSBMU0UgbmFtZSksIGFuZCB3aGljaA0KPj4+PiArCSAqIGNhbiBiZSBpbXBsZW1l bnRlZCB1c2luZyB0aGUgZ2VuZXJpYyBsb2FkLWxvY2tlZC9zdG9yZS1jb25kaXRpb25hbA0KPj4+ PiArCSAqIChMTC9TQykgc2VxdWVuY2UgYmVsb3csIHVzaW5nIHRoZSBhcml0aG1ldGljIG9wZXJh dGlvbiBnaXZlbiBieQ0KPj4+PiArCSAqIFxvcGMuDQo+Pj4+ICsJICovDQo+Pj4+ICsJLm1hY3Jv IAkJZW1pdF9sZF9zeiwgc3o6cmVxLCBpbnNuOnJlcSwgb3BjOnJlcSwgbW9kZWw6cmVxLCBzLCBh LCBsDQo+Pj4+ICsJZm5fc3RhcnQJX19hYXJjaDY0X1xpbnNuXCgpXHN6XCgpXG1vZGVsDQo+Pj4+ ICsJbW92CQl0bXAwX1xzeiwgcjBfXHN6DQo+Pj4+ICswOglsZFxhXCgpeHJccwlyMF9cc3osIFt4 MV0NCj4+Pj4gKwkuaWZuYwkJXGluc24sIHN3cA0KPj4+PiArCVxvcGMJCXRtcDFfXHN6LCByMF9c c3osIHRtcDBfXHN6DQo+Pj4+ICsJLmVsc2UNCj4+Pj4gKwlcb3BjCQl0bXAxX1xzeiwgdG1wMF9c c3oNCj4+Pj4gKwkuZW5kaWYNCj4+Pj4gKwlzdFxsXCgpeHJccwl3MTUsIHRtcDFfXHN6LCBbeDFd DQo+Pj4+ICsJY2JuegkJdzE1LCAwYg0KPj4+PiArCXJldA0KPj4+PiArCWZuX2VuZAkJX19hYXJj aDY0X1xpbnNuXCgpXHN6XCgpXG1vZGVsDQo+Pj4+ICsJLmVuZG0NCj4+Pj4gKw0KPj4+PiArCS8q DQo+Pj4+ICsJICogRW1pdCBhdG9taWMgaGVscGVycyBmb3IgXG1vZGVsIGZvciBvcGVyYW5kIHNp emVzIGluIHRoZQ0KPj4+PiArCSAqIHNldCB7MSwgMiwgNCwgOH0sIGZvciB0aGUgaW5zdHJ1Y3Rp b24gcGF0dGVybiBnaXZlbiBieQ0KPj4+PiArCSAqIFxpbnNuLiAoVGhpcyBpcyB0aGUgTFNFIG5h bWUsIGJ1dCB0aGlzIGltcGxlbWVudGF0aW9uIHVzZXMNCj4+Pj4gKwkgKiB0aGUgZ2VuZXJpYyBM TC9TQyBzZXF1ZW5jZSB1c2luZyBcb3BjIGFzIHRoZSBhcml0aG1ldGljDQo+Pj4+ICsJICogb3Bl cmF0aW9uIG9uIHRoZSB0YXJnZXQuKQ0KPj4+PiArCSAqLw0KPj4+PiArCS5tYWNybwkJZW1pdF9s ZCwgaW5zbjpyZXEsIG9wYzpyZXEsIG1vZGVsOnJlcSwgYSwgbA0KPj4+PiArCWVtaXRfbGRfc3oJ MSwgXGluc24sIFxvcGMsIFxtb2RlbCwgYiwgXGEsIFxsDQo+Pj4+ICsJZW1pdF9sZF9zegkyLCBc aW5zbiwgXG9wYywgXG1vZGVsLCBoLCBcYSwgXGwNCj4+Pj4gKwllbWl0X2xkX3N6CTQsIFxpbnNu LCBcb3BjLCBcbW9kZWwsICAsIFxhLCBcbA0KPj4+PiArCWVtaXRfbGRfc3oJOCwgXGluc24sIFxv cGMsIFxtb2RlbCwgICwgXGEsIFxsDQo+Pj4+ICsJLmVuZG0NCj4+Pj4gKw0KPj4+PiArCS8qDQo+ Pj4+ICsJICogRW1pdCB0aGUgY29tcGFyZSBhbmQgc3dhcCBoZWxwZXIgZm9yIFxtb2RlbCBhbmQg c2l6ZSBcc3oNCj4+Pj4gKwkgKiB1c2luZyBMTC9TQyBpbnN0cnVjdGlvbnMuDQo+Pj4+ICsJICov DQo+Pj4+ICsJLm1hY3JvIAkJZW1pdF9jYXNfc3osIHN6OnJlcSwgbW9kZWw6cmVxLCB1eHQ6cmVx LCBzLCBhLCBsDQo+Pj4+ICsJZm5fc3RhcnQJX19hYXJjaDY0X2Nhc1xzelwoKVxtb2RlbA0KPj4+ PiArCVx1eHQJCXRtcDBfXHN6LCByMF9cc3oNCj4+Pj4gKzA6CWxkXGFcKCl4clxzCXIwX1xzeiwg W3gyXQ0KPj4+PiArCWNtcAkJcjBfXHN6LCB0bXAwX1xzeg0KPj4+PiArCWJuZQkJMWYNCj4+Pj4g KwlzdFxsXCgpeHJccwl3MTUsIHIxX1xzeiwgW3gyXQ0KPj4+PiArCWNibnoJCXcxNSwgMGINCj4+ Pj4gKzE6CXJldA0KPj4+PiArCWZuX2VuZAkJX19hYXJjaDY0X2Nhc1xzelwoKVxtb2RlbA0KPj4+ PiArCS5lbmRtDQo+Pj4+ICsNCj4+Pj4gKwkvKg0KPj4+PiArCSAqIEVtaXQgY29tcGFyZS1hbmQt c3dhcCBoZWxwZXJzIGZvciBcbW9kZWwgZm9yIG9wZXJhbmQgc2l6ZXMgaW4gdGhlDQo+Pj4+ICsJ ICogc2V0IHsxLCAyLCA0LCA4LCAxNn0uDQo+Pj4+ICsJICovDQo+Pj4+ICsJLm1hY3JvCQllbWl0 X2NhcywgbW9kZWw6cmVxLCBhLCBsDQo+Pj4+ICsJZW1pdF9jYXNfc3oJMSwgXG1vZGVsLCB1eHRi LCBiLCBcYSwgXGwNCj4+Pj4gKwllbWl0X2Nhc19zegkyLCBcbW9kZWwsIHV4dGgsIGgsIFxhLCBc bA0KPj4+PiArCWVtaXRfY2FzX3N6CTQsIFxtb2RlbCwgbW92ICwgICwgXGEsIFxsDQo+Pj4+ICsJ ZW1pdF9jYXNfc3oJOCwgXG1vZGVsLCBtb3YgLCAgLCBcYSwgXGwNCj4+Pj4gKw0KPj4+PiArCS8q DQo+Pj4+ICsJICogV2UgY2Fubm90IHVzZSB0aGUgcGFyYW1ldGVyaXplZCBzZXF1ZW5jZSBmb3Ig MTYgYnl0ZSBDQVMsIHNvIHdlDQo+Pj4+ICsJICogbmVlZCB0byBkZWZpbmUgaXQgZXhwbGljaXRs eS4NCj4+Pj4gKwkgKi8NCj4+Pj4gKwlmbl9zdGFydAlfX2FhcmNoNjRfY2FzMTZcbW9kZWwNCj4+ Pj4gKwltb3YJCXgxNiwgeDANCj4+Pj4gKwltb3YJCXgxNywgeDENCj4+Pj4gKzA6CWxkXGFcKCl4 cAl4MCwgeDEsIFt4NF0NCj4+Pj4gKwljbXAJCXgwLCB4MTYNCj4+Pj4gKwljY21wCQl4MSwgeDE3 LCAjMCwgZXENCj4+Pj4gKwlibmUJCTFmDQo+Pj4+ICsJc3RcbFwoKXhwCXcxNSwgeDE2LCB4MTcs IFt4NF0NCj4+Pj4gKwljYm56CQl3MTUsIDBiDQo+Pj4+ICsxOglyZXQNCj4+Pj4gKwlmbl9lbmQJ CV9fYWFyY2g2NF9jYXMxNlxtb2RlbA0KPj4+PiArCS5lbmRtDQo+Pj4+ICsNCj4+Pj4gKwkvKg0K Pj4+PiArCSAqIEVtaXQgdGhlIHNldCBvZiBHQ0Mgb3V0bGluZSBhdG9taWMgaGVscGVyIGZ1bmN0 aW9ucyBmb3INCj4+Pj4gKwkgKiB0aGUgbWVtb3J5IG9yZGVyaW5nIG1vZGVsIGdpdmVuIGJ5IFxt b2RlbDoNCj4+Pj4gKwkgKiAtIHJlbGF4CXVub3JkZXJlZCBsb2FkcyBhbmQgc3RvcmVzDQo+Pj4+ ICsJICogLSBhY3EJbG9hZC1hY3F1aXJlLCB1bm9yZGVyZWQgc3RvcmUNCj4+Pj4gKwkgKiAtIHJl bAl1bm9yZGVyZWQgbG9hZCwgc3RvcmUtcmVsZWFzZQ0KPj4+PiArCSAqIC0gYWNxX3JlbAlsb2Fk LWFjcXVpcmUsIHN0b3JlLXJlbGVhc2UNCj4+Pj4gKwkgKi8NCj4+Pj4gKwkubWFjcm8JCWVtaXRf bW9kZWwsIG1vZGVsOnJlcSwgYSwgbA0KPj4+PiArCWVtaXRfbGQJCWxkYWRkLCBhZGQsIFxtb2Rl bCwgXGEsIFxsDQo+Pj4+ICsJZW1pdF9sZAkJbGRjbHIsIGJpYywgXG1vZGVsLCBcYSwgXGwNCj4+ Pj4gKwllbWl0X2xkCQlsZGVvciwgZW9yLCBcbW9kZWwsIFxhLCBcbA0KPj4+PiArCWVtaXRfbGQJ CWxkc2V0LCBvcnIsIFxtb2RlbCwgXGEsIFxsDQo+Pj4+ICsJZW1pdF9sZAkJc3dwLCAgIG1vdiwg XG1vZGVsLCBcYSwgXGwNCj4+Pj4gKwllbWl0X2NhcwlcbW9kZWwsIFxhLCBcbA0KPj4+PiArCS5l bmRtDQo+Pj4+ICsNCj4+Pj4gKwllbWl0X21vZGVsCV9yZWxheA0KPj4+PiArCWVtaXRfbW9kZWwJ X2FjcSwgYQ0KPj4+PiArCWVtaXRfbW9kZWwJX3JlbCwsIGwNCj4+Pj4gKwllbWl0X21vZGVsCV9h Y3FfcmVsLCBhLCBsDQo+Pj4+IC0tDQo+Pj4+IDIuMTcuMQ0KPj4+Pg0KPj4+Pg0KPj4+PiANCj4+ Pj4NCj4gDQoNCg0KDQoNCg==