From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web10.10410.1682558875050032459 for ; Wed, 26 Apr 2023 18:27:55 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=mEtWuJkZ; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: hao.a.wu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1682558875; x=1714094875; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=TwnF45uRQmyEjzaTK1xs171FiME75Y4bOYlSh6GSfwA=; b=mEtWuJkZs5vpUKd6NbI/C8RZ3vw8PLdcdMLsnzjERIpfcju/xlShqfy2 r3x4fV9JarrEYebhWv/D0Xl5wbfpu1T7fUXGNTficvoaspzzS4rp7oGMG KXJKqv59/zkoQXyZOfSGqWzkpLXQJhs7tqOcJdvPsesnOax7eo+P4onOP AAn06rsbbbWLQDeVUPYqxf0d487BVD7era4waqzz6+Yoiie4slzRd+sy/ SQG4AKvxzVd6w3X6qKG5U6QG1BDJURZPPIZjkIHqeIqhhsRHjp+kYXPZP CQ777cowFOmpCR6eAWplADaJvW6gYrnbrxDJrVQ7lElLOETGyGrROzLLw Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10692"; a="350123453" X-IronPort-AV: E=Sophos;i="5.99,229,1677571200"; d="scan'208";a="350123453" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2023 18:27:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10692"; a="724672352" X-IronPort-AV: E=Sophos;i="5.99,229,1677571200"; d="scan'208";a="724672352" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga008.jf.intel.com with ESMTP; 26 Apr 2023 18:27:54 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 26 Apr 2023 18:27:54 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 26 Apr 2023 18:27:53 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Wed, 26 Apr 2023 18:27:53 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.177) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 26 Apr 2023 18:27:53 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nhAlh4hi/ofrF8vzESttd4A4V6bp6f6DzuHPKd18JR6WTkBFMhRCZjZmz8k8CO5hRHUwhiyCRRAe/WG0V4dC5kDU5P+GTAvAN6bAqW+a+pNCowXXoUQKfluP7oumd340t29gmpfhNHMU6sj4shULjbKHlyN0aS/YchWcIun3zGPmxUnWzuYJpCbUi9vbO6f11ctOaphSPhWdLl90CcTPUrBVxPc01SEtTPhR9BhWGOobMvEg1k7KLJWUAagl9cuyVCQY0rTZAOLQbiGDDv6FDllHr58gZetPLDlL2yPLhdrb+KQcf1MFoy1GcaooyTQnepDzcNUab36IoHEv/hFzWw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TwnF45uRQmyEjzaTK1xs171FiME75Y4bOYlSh6GSfwA=; b=UD0GdZhYcEaI1pUysFbqyk6cSzgXBMbzioTIWIzMkPo5sa5oaBuk5G035BhUf+VQP8aFTqbFGPeKFygo5PYSC7k+aRAxOPWkXxuN7vQjy58DL0KtNJ9skH/bFS09AMj/FqTkbTO9/NXq7Xgbw52ob88XBW75xkgyZu3HOkdQLTpp0qYTIZ/nof/l9vCR3D1O7xpItbQ3HCvH1CxpHZbPUJJtQRSDePv4Ihv+BqcD4ptsj6yfS5TV8ZWBHV3DOGoocDuk1u/6XsEdjzUYZcfDF27gj7oX4PuUEhZvyI39QzRlVJPIQdymnmEyWd0vUBhIIITDfI65DEyQtPqMflsgoA== 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 Received: from DM6PR11MB4025.namprd11.prod.outlook.com (2603:10b6:5:197::31) by CH3PR11MB8342.namprd11.prod.outlook.com (2603:10b6:610:167::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.20; Thu, 27 Apr 2023 01:27:50 +0000 Received: from DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::1b49:874e:7c04:1e00]) by DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::1b49:874e:7c04:1e00%5]) with mapi id 15.20.6340.021; Thu, 27 Apr 2023 01:27:50 +0000 From: "Wu, Hao A" To: Oliver Smith-Denny , "devel@edk2.groups.io" , "Ni, Ray" CC: "Wang, Jian J" , "Gao, Liming" , Michael Kubacki , Sean Brogan Subject: Re: [edk2-devel] [PATCH v1 1/2] Add the volatile keyword to NvmExpressDxe's Passthru CQs and SQs. Thread-Topic: [edk2-devel] [PATCH v1 1/2] Add the volatile keyword to NvmExpressDxe's Passthru CQs and SQs. Thread-Index: AQHZc5+W4SlRMzO9fU+dU5BXoZFj3a89JruQgAD4EoCAAEguQA== Date: Thu, 27 Apr 2023 01:27:50 +0000 Message-ID: References: <20230419234108.10243-1-osde@linux.microsoft.com> <20230419234108.10243-2-osde@linux.microsoft.com> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR11MB4025:EE_|CH3PR11MB8342:EE_ x-ms-office365-filtering-correlation-id: f125ff86-03d0-44f7-1ae6-08db46be9d6b x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QHkEFtpVVuTAiuhRNP2T35Hz8SPZSuP5yeUUM2z+fC3pFlBZmWZlW6kmEaJ5xMpOy743JotJNafCpPhBq05Is1NmoPizuwJ0bUfEvcMmc5HaPcULzE/m/cY1+augFn8qNHgimP1InIeItUAiHIXC974YkiABWYAG007KnsFccwcNSseVV9vdplnGDOPino5A4oTYA8KEgWw8X9gIVoMPFj2TeMxqk9ULjtghleicL0oEFZsqyVcW4+sHoc9JbYoq62nevLDE1my82KGOeSTgy5WlgJyLoDXrDCf6gyigpNvW4P5PWuVzQsTdyo59USwPCAQmJIvJvwYAaVXyzfjXmsNPboQrUAMIRHUoMotWjjxn/EL1Movwu5z3anaBiLnyLJYl1LdaK+p3KxJPkS98E8Gtmf98muYoWQLG1waGNKklm6CAEuUFNRg6LGtD7A90mlFsqk3xq/qwc+ose3rdm94tBSdMOYpmimgnhlnc5ymMPHldDUUWiD6D3lJJEBVFB+tYNL9n8pTfX+h2a81gFmXoh+t35NowPrkbcdLvZd54aMVcBuudW+n88cQDiZfXZdmW1dgQM3qLidmSD71qGOrdI73vp8SAKqVHgnnTP5pC9WFQVQKyLcD8tyacY0NJGSzYN+wU/huh0sfPHj67xA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4025.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(346002)(366004)(136003)(396003)(39860400002)(451199021)(186003)(966005)(122000001)(41300700001)(7696005)(83380400001)(71200400001)(9686003)(6506007)(53546011)(66899021)(478600001)(110136005)(54906003)(45080400002)(66556008)(76116006)(6636002)(82960400001)(66946007)(66446008)(55016003)(316002)(64756008)(66476007)(52536014)(5660300002)(4326008)(86362001)(8936002)(8676002)(38070700005)(2906002)(38100700002)(33656002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Ni9VeHA4RUVnNW1IOGNpZjlEMHVuQTZxNnFqSUhPTEFkdnZpOWZ5NVZRUU05?= =?utf-8?B?MmlQNFFESFhzeGQ4amlHd01UNGV2T2ltSm9kM25NM0x4bml3aWV1aHdHcU1x?= =?utf-8?B?MlN5WGxOakRiVExWVEVIVmU1cE0xbWQ1VUxBbFVvazcxdDFiZEprZDNwTGtq?= =?utf-8?B?QmxKb1ZQM0NYVzI3VjRMeVhjYVNzeGtEQnFqS2c0Y1JjMEtDRG0yUXoyYzdV?= =?utf-8?B?ME1HK3ZHRGFRajFkSUhNRTFJMlZub043bjAwaDcweDZyamRKdHI4bHYyVkJj?= =?utf-8?B?Y1czQ3dlODdOVEVwOUdJNHZ2MFNQMm1HbjhuWlNHYi9Sb2VmdGhJQ0g1UUpG?= =?utf-8?B?L3pZWVFSQm5oZDVUa0crTVVOTThkVFBGZzBLY20vVVg0TGFxL015eTEzNWtp?= =?utf-8?B?eW82VHNEM0UyZ1M3dDc5ZXByM1BjM1BQV2NzODZ1OEFFS0t0dEJJN0JHT0Jo?= =?utf-8?B?WC85dDY5dzZ6NENtbUtDOE8rZENNWHdwSWdEU0lLUjcyMmM4ekF4RlptRVNL?= =?utf-8?B?Q0NSWFR2SjcvL1pqTzJROWw1TjdSM2p1RGpiWStta0l0eVRwM29NYUVUUWhz?= =?utf-8?B?TitZWXRBenYvQU5GSjEvME4vUU9GTk9sVUFGZEdJTDFhZG4vdXNzbTZFVk93?= =?utf-8?B?NHFXY2MwUXN3SFZHdjFReEJvdlkvc0ZPbm1OQ0lKTWJ3clB1dWUzNmc5OGVO?= =?utf-8?B?NGlhMEJ1U21xRCtZRENReVZaa0hKM0JMQkFDQTFXYS9qUkxoRXprdkpNME9k?= =?utf-8?B?aC9mUnBWL0Jwa1E2YVlHa1k4QWhncW9WOFo1eC9oL1Jhc2hXUUNBaW80SGJh?= =?utf-8?B?WmdmQVo2MGIrNTRXL0MrTXVnVStKQXZ5TG9TQ1FXemN6eWJjM24yNC8zb3RX?= =?utf-8?B?V3MwZmNMWE11LzJUNW9jdm9QOHBKci9VeEd0L1V1b0lFZ09WYm15RGw2bHRL?= =?utf-8?B?Ui9zZjRiMDVEdlpKL1E2THlNWU0vOUp6NXBMbG85SFA0YklueDRUb3Q3bEVs?= =?utf-8?B?RG1GeXZ4V0g5Z01CYzdPeHhheGpSOGtLOEFqem5hYjBjSkJYVksvQXF2WW00?= =?utf-8?B?Tk40RzF2T0tWV2pnSSt2Tjd6M2NVM1dJQTJ5cmpqZGpicW80eDJibHpkMzg0?= =?utf-8?B?NHRLUHc2eGg2YVZwR21xTTlzSDYrZDlCaUxmclRSL3VqVHdIK0ZLRlJRUlBk?= =?utf-8?B?VmhJZ1FsbTNwaHFVUlk0VENmWHBVU0puWktNS1JqeXdGa3VBelVXeFN0eHpW?= =?utf-8?B?Rjh5V054cVJFbUUvWTd5MWVoVnozeUxiampWbWxtd3lPdzBUMk9XNlFUSHdX?= =?utf-8?B?OUlEY3dvUTdWS1FPSFBPdUo4dS8yQnkwWFp0a3pZZlRrbHoxLytWYzNWRVpZ?= =?utf-8?B?L1dTYjcza0pKQWtwdDJwbHY4S0NiUVFhSXBDSXBMVzdJbHdUbFJHYjEzN0dI?= =?utf-8?B?MlJUOXBQaFcwbThwQUU5c3R3N3V6R3BZQzNncURTUzJlQmV6Wlg3Z2tLdGpU?= =?utf-8?B?bWJzSXA1MEh3akVqTmxBVThtRzZOV3BHSmRJL0R2ZkxuR25JMHU4K2doRVNL?= =?utf-8?B?OGh6ejQzR0dUYnVPRTlQYTBrYTJNN1B4UkV3SUZYYjJtYXhQWjU0KzJxa0ZY?= =?utf-8?B?bEZlYzJVYjlSbmlwRXdCS0pRcU5kZWVEZFFOVnZ1WUNLclYwZG9KSHhqSHhP?= =?utf-8?B?SFBEQ0FTYnRPcXN4Qitzci9iTGV1RVR2anVKZUtTOVJFbE5ZeVhsNHFjY05i?= =?utf-8?B?L3prOEorYXg0d29HMDhnZ3hnS0xiZlJuSHBmMHBPTzIzbDF1UmozV0JBZ25o?= =?utf-8?B?K2pQeFIzeHphNTJTMDZodTZJSGc5NUhWZW5yWGZrQWljRWdITlBpaVRreVlm?= =?utf-8?B?d0N1Nys1a0dCS0pzNzdidDI1Q3JIT0hkMGgzUHRlc2p4dlZvNzdIVkZDRU1j?= =?utf-8?B?bEkxb3N4cXhEUW5zd1VmTDNHZVBXYWp0MUlsU3dPZ2k1MlpteEJQbU9HeEI2?= =?utf-8?B?U3lhMjNvSVVUUEREL1c3aHF5UHduclJpaHpta0k3c3dQUmRYd0c2ZkNNNWYv?= =?utf-8?B?TTYyT042S1pTeWo5NVdkS3BKSDZ3eFR0VUxFZz09?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4025.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f125ff86-03d0-44f7-1ae6-08db46be9d6b X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Apr 2023 01:27:50.1541 (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: 4E79s823mn39mnMgOKDOGRYMCCQmWeZxn+mkTkZdPX3xPruz1dTLcSnHPpoiVCbRH6EUPBsCxqagLdIhgppBOQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB8342 Return-Path: hao.a.wu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIE9saXZlciwNCg0KQWdyZWUgd2l0aCB5b3VyIHBvaW50cy4gTGV0J3Mga2VlcCAiU3Ei IGFzIGlzIGFuZCBtYXJrICJDcSIgYXMgdm9sYXRpbGUuDQoNCkJlc3QgUmVnYXJkcywNCkhhbyBX dQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE9saXZlciBTbWl0aC1E ZW5ueSA8b3NkZUBsaW51eC5taWNyb3NvZnQuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgQXByaWwg MjcsIDIwMjMgNTowNyBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IFd1LCBIYW8gQSA8 aGFvLmEud3VAaW50ZWwuY29tPjsgTmksIFJheQ0KPiA8cmF5Lm5pQGludGVsLmNvbT4NCj4gQ2M6 IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcNCj4gPGdh b2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IE1pY2hhZWwgS3ViYWNraQ0KPiA8bWlrdWJhY2tAbGlu dXgubWljcm9zb2Z0LmNvbT47IFNlYW4gQnJvZ2FuIDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29t Pg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2MSAxLzJdIEFkZCB0aGUgdm9s YXRpbGUga2V5d29yZCB0bw0KPiBOdm1FeHByZXNzRHhlJ3MgUGFzc3RocnUgQ1FzIGFuZCBTUXMu DQo+IA0KPiBIaSBIYW8sDQo+IA0KPiBUaGFua3MgZm9yIHRoZSByZXZpZXchIEZvciB0aGUgU3Es IEkgYWdyZWUsIGN1cnJlbnRseSBzb21lIG1ldGFkYXRhIGlzIHJlYWQNCj4gZnJvbSB0aGUgcXVl dWUsIGJ1dCBpdCBpcyBub3QgZmllbGRzIHRoYXQgYXJlIGdvaW5nIHRvIGNoYW5nZSAoc3VjaCBh cyBTR0wgdXNhZ2UpLg0KPiBUaGUgdGhvdWdodCBwcm9jZXNzIHRoZXJlIHdhcyBpbiBjYXNlIHdl IGludGVyYWN0IHdpdGggdGhlIEhXIHF1ZXVlDQo+IGRpZmZlcmVudGx5IGluIHRoZSBmdXR1cmUu IEkgd2lsbCBkcm9wIHRoZSBTcSBjaGFuZ2UgaW4gdjIgb2YgdGhpcyBwYXRjaC4NCj4gDQo+IEZv ciB0aGUgQ3EsIEkgdGhpbmsgdGhlIHNhZmVyIG9wdGlvbiBpcyB0byBtYXJrIHRoZSB3aG9sZSBz dHJ1Y3R1cmUgYXMgdm9sYXRpbGUsDQo+IGJlY2F1c2UgdGhlcmUgYXJlIG90aGVyIGJpdHMgdGhh dCB3ZSByZWFkIG91dCBvZiB0aGVyZSB0aGF0IHRoZSBIVyB1cGRhdGVzLCBmb3INCj4gZXhhbXBs ZSB0aGUgc3RhdHVzIGNvZGUgaGVyZToNCj4gDQo+IA0KPiAgICAvLw0KPiAgICAvLyBDaGVjayB0 aGUgTlZNZSBjbWQgZXhlY3V0aW9uIHJlc3VsdA0KPiAgICAvLw0KPiAgICBpZiAoU3RhdHVzICE9 IEVGSV9USU1FT1VUKSB7DQo+ICAgICAgaWYgKChDcS0+U2N0ID09IDApICYmIChDcS0+U2MgPT0g MCkpIHsNCj4gICAgICAgIFN0YXR1cyA9IEVGSV9TVUNDRVNTOw0KPiANCj4gDQo+IFdpdGhvdXQg dGhlIHN0cnVjdHVyZSBtYXJrZWQgYXMgdm9sYXRpbGUsIEkgYmVsaWV2ZSB0aGUgY29tcGlsZXIg Y291bGQgb3B0aW1pemUNCj4gdGhlIGNvZGUgc3VjaCB0aGF0IGl0IG9ubHkgcmVhZHMgdGhlc2Ug bWV0YWRhdGEgZmllbGRzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhpcw0KPiBmdW5jdGlvbiwgcG90 ZW50aWFsbHkgYmVmb3JlIHRoZXkgYXJlIHNldCBieSB0aGUgSFcuDQo+IA0KPiBJIGRvIG5vdCBi ZWxpZXZlIHRoZXJlIGlzIG11Y2ggb2YgYSBwZXJmb3JtYW5jZSBkb3duc2lkZSB0byBtYXJraW5n IHRoZQ0KPiBzdHJ1Y3R1cmUgdnMgaW5kaXZpZHVhbCBmaWVsZHMuIEkgYW0gY3VyaW91cyB0byBn ZXQgeW91ciBmZWVkYmFjayBoZXJlLCBhcyB3ZWxsLg0KPiBNeSBnb2FsIHdvdWxkIGJlIHRvIGhh dmUgYSByb2J1c3Qgc29sdXRpb24gaGVyZSBzbyB3ZSBkb24ndCBwbGF5IHdoYWNrIGEgbW9sZQ0K PiBhcyBkaWZmZXJlbnQgY29tcGlsZXJzIG1ha2UgZGlmZmVyZW50IGNob2ljZXMsIGJ1dCBvYnZp b3VzbHkgd2l0aG91dCB0b28gbXVjaA0KPiBvdmVyaGVhZCA6KQ0KPiANCj4gVGhhbmtzLA0KPiBP bGl2ZXINCj4gDQo+IA0KPiBPbiA0LzI1LzIwMjMgMTE6MzIgUE0sIFd1LCBIYW8gQSB3cm90ZToN Cj4gPiBUaGFua3MgT2xpdmVyLA0KPiA+DQo+ID4gRm9yIHRoZSBTdWJtaXNzaW9uIFF1ZXVlIHBv aW50ZXIgIlNxIiwgSSB0aGluayBpdCBpcyBiZWluZyB1c2VkIHRvIGZvcm1hdCB0aGUNCj4gY29t bWFuZCB0aGF0IHdpbGwgYmUgc2VudCB0byB0aGUgTlZNRSBjb250cm9sbGVyLg0KPiA+IE52bUV4 cHJlc3NQYXNzVGhydSgpIGRvZXMgbm90IHJlYWQgYmFjayBpdHMgY29udGVudCBmb3IgY2hlY2tp bmcgYWZ0ZXIgdGhlDQo+IGNvbW1hbmQgZ2V0cyBzdWJtaXR0ZWQuDQo+ID4gTXkgb3BpbmlvbiBp cyB0aGF0IGl0IG1pZ2h0IGJlIG5vdCBuZWNlc3NhcnkgdG8gYWRkIHZvbGF0aWxlIGF0dHJpYnV0 ZSBmb3IgaXQuDQo+ID4NCj4gPiBGb3IgdGhlIENvbXBsZXRpb24gUXVldWUgcG9pbnRlciAiQ3Ei LCBJIGFtIG5vdCBzdXJlIHdoaWNoIG9mIHRoZSBmb2xsb3dpbmcNCj4gaXMgYmV0dGVyOg0KPiA+ IGEpIEludHJvZHVjZSBhIHZvbGF0aWxlIHBvaW50ZXIgdG8gIkNxLT5QdCIsIG9yDQo+ID4gYikg TWFyayAiQ3EiIGFzIHZvbGF0aWxlDQo+ID4gV291bGQgbGlrZSB0byBnZXQgeW91ciBmZWVkYmFj ayBvbiB0aGlzLiBUaGFua3MuDQo+ID4NCj4gPiBCZXN0IFJlZ2FyZHMsDQo+ID4gSGFvIFd1DQo+ ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogZGV2ZWxAZWRr Mi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgT2xpdmVyDQo+ ID4+IFNtaXRoLURlbm55DQo+ID4+IFNlbnQ6IFRodXJzZGF5LCBBcHJpbCAyMCwgMjAyMyAxMTo0 OCBQTQ0KPiA+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IE5pLCBSYXkgPHJheS5uaUBpbnRl bC5jb20+DQo+ID4+IENjOiBXdSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT47IFdhbmcsIEpp YW4gSg0KPiA+PiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGdhb2xpbWlu Z0BieW9zb2Z0LmNvbS5jbj47DQo+ID4+IE1pY2hhZWwgS3ViYWNraSA8bWlrdWJhY2tAbGludXgu bWljcm9zb2Z0LmNvbT47IFNlYW4gQnJvZ2FuDQo+ID4+IDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQu Y29tPg0KPiA+PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2MSAxLzJdIEFkZCB0 aGUgdm9sYXRpbGUga2V5d29yZCB0bw0KPiA+PiBOdm1FeHByZXNzRHhlJ3MgUGFzc3RocnUgQ1Fz IGFuZCBTUXMuDQo+ID4+DQo+ID4+IEhpIFJheSwNCj4gPj4NCj4gPj4gVGhpcyBpcyBub3QgYSBw dXJlIGNvcHkgZnJvbSBIVyB0byBTVyBtZW1vcnksIHdlIGFyZSBhbHNvIHBvbGxpbmcgdGhlDQo+ ID4+IENRIHRvIHNlZSBpZiBhIHRyYW5zYWN0aW9uIGhhcyBjb21wbGV0ZWQ6DQo+ID4+DQo+ID4+ ICAgICAvLw0KPiA+PiAgICAgLy8gV2FpdCBmb3IgY29tcGxldGlvbiBxdWV1ZSB0byBnZXQgZmls bGVkIGluLg0KPiA+PiAgICAgLy8NCj4gPj4gICAgIFN0YXR1cyA9IEVGSV9USU1FT1VUOw0KPiA+ PiAgICAgd2hpbGUgKEVGSV9FUlJPUiAoZ0JTLT5DaGVja0V2ZW50IChUaW1lckV2ZW50KSkpIHsN Cj4gPj4gICAgICAgaWYgKENxLT5QdCAhPSBQcml2YXRlLT5QdFtRdWV1ZUlkXSkgew0KPiA+PiAg ICAgICAgIFN0YXR1cyA9IEVGSV9TVUNDRVNTOw0KPiA+PiAgICAgICAgIGJyZWFrOw0KPiA+PiAg ICAgICB9DQo+ID4+ICAgICB9DQo+ID4+DQo+ID4+DQo+ID4+IFdoYXQgd2UgaGF2ZSBzZWVuIGhh cHBlbiBpcyB0aGF0IHdpdGhvdXQgdGhlIHZvbGF0aWxlIGtleXdvcmQsIHRoZQ0KPiA+PiBjb21w aWxlciBjYW4gbW92ZSB0aGUgQ3EtPlB0IHJlYWQgb3V0c2lkZSBvZiB0aGUgbG9vcCBhbmQgb25s eSBkbw0KPiA+PiByZWdpc3RlciBjb21wYXJlcyBpbnNpZGUgdGhlIGxvb3AsIGkuZS4gd2UgZW5k IHVwIGdvaW5nIHRoZSBmdWxsDQo+ID4+IHRpbWVvdXQgZXZlbiBpZiB0aGUgQ1EgcmVwb3J0cyBp dCBpcyBmaW5pc2hlZC4NCj4gPj4NCj4gPj4gSGVyZSBpcyB0aGUgaXNzdWUgdGhhdCB3YXMgZmls ZWQgb24gdGhlIHByb2plY3QgTXUgc2lkZToNCj4gPj4gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jv c29mdC9tdV9iYXNlY29yZS9pc3N1ZXMvMzI0Lg0KPiA+Pg0KPiA+PiBUaGFua3MsDQo+ID4+IE9s aXZlcg0KPiA+Pg0KPiA+PiBPbiA0LzE5LzIwMjMgNTo0OCBQTSwgTmksIFJheSB3cm90ZToNCj4g Pj4+IElmIGl0J3MgdG8gY29weSBmcm9tIGh3IHRvIHN3IG1lbW9yeSwgd2h5IGRvIHdlIG5lZWQg dm9sYXRpbGU/DQo+ID4+Pg0KPiA+Pj4gVGhhbmtzLA0KPiA+Pj4gUmF5DQo+ID4+Pg0KPiA+Pj4+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91 cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gPj4+PiBPbGl2ZXIg U21pdGgtRGVubnkNCj4gPj4+PiBTZW50OiBUaHVyc2RheSwgQXByaWwgMjAsIDIwMjMgNzo0MSBB TQ0KPiA+Pj4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+Pj4+IENjOiBXdSwgSGFvIEEg PGhhby5hLnd1QGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+Ow0KPiA+Pj4+ IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcNCj4gPj4+ PiA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgTWljaGFlbCBLdWJhY2tpDQo+ID4+Pj4gPG1p a3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20+OyBTZWFuIEJyb2dhbg0KPiA+Pj4+IDxzZWFuLmJy b2dhbkBtaWNyb3NvZnQuY29tPg0KPiA+Pj4+IFN1YmplY3Q6IFtlZGsyLWRldmVsXVtQQVRDSCB2 MSAxLzJdIEFkZCB0aGUgdm9sYXRpbGUga2V5d29yZCB0bw0KPiA+Pj4+IE52bUV4cHJlc3NEeGUn cyBQYXNzdGhydSBDUXMgYW5kIFNRcy4NCj4gPj4+Pg0KPiA+Pj4+IFRoaXMgdXBkYXRlcyB0aGUg cmVsZXZhbnQgZnVuY3Rpb25zIHRoYXQgZXhwZWN0IGEgbm9uLXZvbGF0aWxlDQo+ID4+Pj4NCj4g Pj4+PiBzdHJ1Y3R1cmUgdG8gYmUgcGFzc2VkIHRvIHRoZW0gdG8gdGFrZSBjYXN0cyBvZiB0aGUg Q1EgYW5kIFNRLA0KPiA+Pj4+DQo+ID4+Pj4gbm93IHRoYXQgdGhleSBhcmUgdm9sYXRpbGUuDQo+ ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4gQ2M6IEhhbyBBIFd1IDxoYW8uYS53dUBpbnRl bC5jb20+DQo+ID4+Pj4NCj4gPj4+PiBDYzogUmF5IE5pIDxyYXkubmlAaW50ZWwuY29tPg0KPiA+ Pj4+DQo+ID4+Pj4gQ2M6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4+ Pj4NCj4gPj4+PiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiA+ Pj4+DQo+ID4+Pj4gQ2M6IE1pY2hhZWwgS3ViYWNraSA8bWlrdWJhY2tAbGludXgubWljcm9zb2Z0 LmNvbT4NCj4gPj4+Pg0KPiA+Pj4+IENjOiBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9z b2Z0LmNvbT4NCj4gPj4+Pg0KPiA+Pj4+IFNpZ25lZC1vZmYtYnk6IE9saXZlciBTbWl0aC1EZW5u eSA8b3NkZUBsaW51eC5taWNyb3NvZnQuY29tPg0KPiA+Pj4+DQo+ID4+Pj4gLS0tDQo+ID4+Pj4N Cj4gPj4+PiAgICBNZGVNb2R1bGVQa2cvQnVzL1BjaS9Odm1FeHByZXNzRHhlL052bUV4cHJlc3NQ YXNzdGhydS5jIHwgMTANCj4gPj4+PiArKysrKy0tLS0tDQo+ID4+Pj4NCj4gPj4+PiAgICAxIGZp bGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KPiA+Pj4+DQo+ID4+ Pj4NCj4gPj4+Pg0KPiA+Pj4+IGRpZmYgLS1naXQNCj4gPj4+PiBhL01kZU1vZHVsZVBrZy9CdXMv UGNpL052bUV4cHJlc3NEeGUvTnZtRXhwcmVzc1Bhc3N0aHJ1LmMNCj4gPj4+PiBiL01kZU1vZHVs ZVBrZy9CdXMvUGNpL052bUV4cHJlc3NEeGUvTnZtRXhwcmVzc1Bhc3N0aHJ1LmMNCj4gPj4+Pg0K PiA+Pj4+IGluZGV4IGYzN2JhYTYyNmExNi4uMWE3ZTM5NTAwYWMwIDEwMDY0NA0KPiA+Pj4+DQo+ ID4+Pj4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvTnZtRXhwcmVzc0R4ZS9Odm1FeHByZXNz UGFzc3RocnUuYw0KPiA+Pj4+DQo+ID4+Pj4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvTnZt RXhwcmVzc0R4ZS9Odm1FeHByZXNzUGFzc3RocnUuYw0KPiA+Pj4+DQo+ID4+Pj4gQEAgLTQ1OSw4 ICs0NTksOCBAQCBOdm1FeHByZXNzUGFzc1RocnUgKA0KPiA+Pj4+DQo+ID4+Pj4gICAgICBFRklf U1RBVFVTICAgICAgICAgICAgICAgICAgICAgU3RhdHVzOw0KPiA+Pj4+DQo+ID4+Pj4gICAgICBF RklfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgUHJldmlvdXNTdGF0dXM7DQo+ID4+Pj4NCj4g Pj4+PiAgICAgIEVGSV9QQ0lfSU9fUFJPVE9DT0wgICAgICAgICAgICAqUGNpSW87DQo+ID4+Pj4N Cj4gPj4+PiAtICBOVk1FX1NRICAgICAgICAgICAgICAgICAgICAgICAgKlNxOw0KPiA+Pj4+DQo+ ID4+Pj4gLSAgTlZNRV9DUSAgICAgICAgICAgICAgICAgICAgICAgICpDcTsNCj4gPj4+Pg0KPiA+ Pj4+ICsgIHZvbGF0aWxlIE5WTUVfU1EgICAgICAgICAgICAgICAqU3E7DQo+ID4+Pj4NCj4gPj4+ PiArICB2b2xhdGlsZSBOVk1FX0NRICAgICAgICAgICAgICAgKkNxOw0KPiA+Pj4+DQo+ID4+Pj4g ICAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJZDsNCj4gPj4+Pg0KPiA+ Pj4+ICAgICAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlU2l6ZTsNCj4gPj4+ Pg0KPiA+Pj4+ICAgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGVzOw0KPiA+ Pj4+DQo+ID4+Pj4gQEAgLTU4MSw3ICs1ODEsNyBAQCBOdm1FeHByZXNzUGFzc1RocnUgKA0KPiA+ Pj4+DQo+ID4+Pj4gICAgICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ID4+Pj4N Cj4gPj4+PiAgICAgIH0NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+PiAtICBaZXJvTWVt IChTcSwgc2l6ZW9mIChOVk1FX1NRKSk7DQo+ID4+Pj4NCj4gPj4+PiArICBaZXJvTWVtICgoVk9J RCAqKVNxLCBzaXplb2YgKE5WTUVfU1EpKTsNCj4gPj4+Pg0KPiA+Pj4+ICAgICAgU3EtPk9wYyAg PSAoVUlOVDgpUGFja2V0LT5Odm1lQ21kLT5DZHcwLk9wY29kZTsNCj4gPj4+Pg0KPiA+Pj4+ICAg ICAgU3EtPkZ1c2UgPSAoVUlOVDgpUGFja2V0LT5Odm1lQ21kLT5DZHcwLkZ1c2VkT3BlcmF0aW9u Ow0KPiA+Pj4+DQo+ID4+Pj4gICAgICBTcS0+Q2lkICA9IFByaXZhdGUtPkNpZFtRdWV1ZUlkXSsr Ow0KPiA+Pj4+DQo+ID4+Pj4gQEAgLTgxNSwxNCArODE1LDE0IEBAIE52bUV4cHJlc3NQYXNzVGhy dSAoDQo+ID4+Pj4NCj4gPj4+PiAgICAgICAgICAvLyBEdW1wIGV2ZXJ5IGNvbXBsZXRpb24gZW50 cnkgc3RhdHVzIGZvciBkZWJ1Z2dpbmcuDQo+ID4+Pj4NCj4gPj4+PiAgICAgICAgICAvLw0KPiA+ Pj4+DQo+ID4+Pj4gICAgICAgICAgREVCVUdfQ09ERV9CRUdJTiAoKTsNCj4gPj4+Pg0KPiA+Pj4+ IC0gICAgICBOdm1lRHVtcFN0YXR1cyAoQ3EpOw0KPiA+Pj4+DQo+ID4+Pj4gKyAgICAgIE52bWVE dW1wU3RhdHVzICgoTlZNRV9DUSAqKUNxKTsNCj4gPj4+Pg0KPiA+Pj4+ICAgICAgICAgIERFQlVH X0NPREVfRU5EICgpOw0KPiA+Pj4+DQo+ID4+Pj4gICAgICAgIH0NCj4gPj4+Pg0KPiA+Pj4+DQo+ ID4+Pj4NCj4gPj4+PiAgICAgICAgLy8NCj4gPj4+Pg0KPiA+Pj4+ICAgICAgICAvLyBDb3B5IHRo ZSBSZXNwb3NlIFF1ZXVlIGVudHJ5IGZvciB0aGlzIGNvbW1hbmQgdG8gdGhlDQo+ID4+Pj4gY2Fs bGVycyByZXNwb25zZSBidWZmZXINCj4gPj4+Pg0KPiA+Pj4+ICAgICAgICAvLw0KPiA+Pj4+DQo+ ID4+Pj4gLSAgICBDb3B5TWVtIChQYWNrZXQtPk52bWVDb21wbGV0aW9uLCBDcSwgc2l6ZW9mDQo+ ID4+Pj4gKEVGSV9OVk1fRVhQUkVTU19DT01QTEVUSU9OKSk7DQo+ID4+Pj4NCj4gPj4+PiArICAg IENvcHlNZW0gKFBhY2tldC0+TnZtZUNvbXBsZXRpb24sIChWT0lEICopQ3EsIHNpemVvZg0KPiA+ Pj4+IChFRklfTlZNX0VYUFJFU1NfQ09NUExFVElPTikpOw0KPiA+Pj4+DQo+ID4+Pj4gICAgICB9 IGVsc2Ugew0KPiA+Pj4+DQo+ID4+Pj4gICAgICAgIC8vDQo+ID4+Pj4NCj4gPj4+PiAgICAgICAg Ly8gVGltZW91dCBvY2N1cnMgZm9yIGFuIE5WTWUgY29tbWFuZC4gUmVzZXQgdGhlIGNvbnRyb2xs ZXINCj4gPj4+PiB0byBhYm9ydCB0aGUNCj4gPj4+Pg0KPiA+Pj4+IC0tDQo+ID4+Pj4NCj4gPj4+ PiAyLjM5LjINCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4g LT0tPS09LT0tPS09DQo+ID4+Pj4gR3JvdXBzLmlvIExpbmtzOiBZb3UgcmVjZWl2ZSBhbGwgbWVz c2FnZXMgc2VudCB0byB0aGlzIGdyb3VwLg0KPiA+Pj4+IFZpZXcvUmVwbHkgT25saW5lICgjMTAz MjYzKToNCj4gPj4+PiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMDMy NjMNCj4gPj4+PiBNdXRlIFRoaXMgVG9waWM6IGh0dHBzOi8vZ3JvdXBzLmlvL210Lzk4Mzc4OTQ4 LzE3MTI5MzcNCj4gPj4+PiBHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8N Cj4gPj4+PiBVbnN1YnNjcmliZTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3Vuc3Vi DQo+ID4+Pj4gW3JheS5uaUBpbnRlbC5jb21dIC09LT0tPS09LT0tPQ0KPiA+Pj4+DQo+ID4+Pg0K PiA+Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4NCj4gPj4NCj4gPj4NCj4gPj4NCj4gPj4NCj4gPg0K PiA+DQo+ID4NCj4gPiANCj4gPg0KPiA+DQo=