From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.24; helo=mga09.intel.com; envelope-from=eric.dong@intel.com; receiver=edk2-devel@lists.01.org Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 1EDA621180F30 for ; Thu, 8 Nov 2018 21:33:40 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Nov 2018 21:33:39 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,482,1534834800"; d="scan'208";a="279624914" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga006.fm.intel.com with ESMTP; 08 Nov 2018 21:33:39 -0800 Received: from fmsmsx156.amr.corp.intel.com (10.18.116.74) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 8 Nov 2018 21:33:39 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx156.amr.corp.intel.com (10.18.116.74) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 8 Nov 2018 21:33:38 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.84]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.102]) with mapi id 14.03.0415.000; Fri, 9 Nov 2018 13:33:36 +0800 From: "Dong, Eric" To: Laszlo Ersek , "edk2-devel@lists.01.org" CC: "Ni, Ruiyu" Thread-Topic: [edk2] [Patch 2/2] UefiCpuPkg/PiSmmCpuDxeSmm: Separate semaphore container. Thread-Index: AQHUd2et6C9TggJFI0+kNjlpmUQwPqVFom6AgAFJYkA= Date: Fri, 9 Nov 2018 05:33:35 +0000 Message-ID: References: <20181108025800.12112-1-eric.dong@intel.com> <20181108025800.12112-3-eric.dong@intel.com> <2ba7ee0f-b3e9-a2a4-28f5-7317cdf9fa5b@redhat.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch 2/2] UefiCpuPkg/PiSmmCpuDxeSmm: Separate semaphore container. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Nov 2018 05:33:40 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvLA0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGFz emxvIEVyc2VrIFttYWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+IFNlbnQ6IEZyaWRheSwgTm92 ZW1iZXIgOSwgMjAxOCAxOjUxIEFNDQo+IFRvOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwu Y29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gQ2M6IE5pLCBSdWl5dSA8cnVpeXUubmlA aW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQYXRjaCAyLzJdIFVlZmlDcHVQa2cv UGlTbW1DcHVEeGVTbW06IFNlcGFyYXRlDQo+IHNlbWFwaG9yZSBjb250YWluZXIuDQo+IA0KPiBP biAxMS8wOC8xOCAxNDozMywgTGFzemxvIEVyc2VrIHdyb3RlOg0KPiA+IE9uIDExLzA4LzE4IDAz OjU4LCBFcmljIERvbmcgd3JvdGU6DQo+ID4+IEluIGN1cnJlbnQgaW1wbGVtZW50YXRpb24sIGNv cmUgbGV2ZWwgc2VtYXBob3JlIHVzZSBzYW1lIGNvbnRhaW5lcg0KPiA+PiB3aXRoIHBhY2thZ2Ug bGV2ZWwgc2VtYXBob3JlLiBUaGlzIGRlc2lnbiB3aWxsIGxldCB0aGUgY29yZSBsZXZlbA0KPiA+ PiBzZW1hcGhvcmUgbm90IHdvcmtzIGFzIGV4cGVjdGVkIGluIGJlbG93IGNhc2U6DQo+ID4+IDEu IEZlYXR1cmUgQSBoYXMgQ1BVX0ZFQVRVUkVfQ09SRV9CRUZPUkUgZGVwZW5kZW5jZSB3aXRoIEZl YXR1cmUNCj4gQi4NCj4gPj4gMi4gRmVhdHVyZSBDIGhhcyBDUFVfRkVBVFVSRV9QQUNLQUdFX0FG VEVSIGRlcGVuZGVuY2Ugd2l0aA0KPiBGZWF0dXJlIEIuDQo+ID4+IGluIHRoaXMgY2FzZSBhbiBj b3JlIGxldmVsIHNlbWFwaG9yZSB3aWxsIGJlIGFkZCBiZXR3ZWVuIEEgYW5kIEIsIGFuZA0KPiA+ PiBhbiBwYWNrYWdlIGxldmVsIHNlbWFwaG9yZSB3aWxsIGJlIGFkZCBiZXR3ZWVuIEIgYW5kIEMu DQo+ID4+DQo+ID4+IEZvciBhIENQVSBoYXMgb25lIHBhY2thZ2UsIHR3byBjb3JlcyBhbmQgNCB0 aHJlYWRzLiBFeGVjdXRlIGxpa2UgYmVsb3c6DQo+ID4+DQo+ID4+ICAgVGhyZWFkIDEgICAgICAg ICAgVGhyZWFkIDIgICAgLi4uLi4gICAgIFRocmVhZCA0DQo+ID4+IFJlbGVhc2VTZW1hcGgoMSwy KSAgLXwNCj4gPj4gV2FpdEZvclNlbWFwaCgxKDIpKSAtfDwtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LVRoZXNlIHR3byBhcmUgQ29yZSBTZW1hcGgNCj4gPj4gICAgICAgICAgICAgICAgICAgUmVsZWFz ZVNlbWFwaCgxLDIpIC18DQo+ID4+ICAgICAgICAgICAgICAgICAgIFdhaXRGb3JTZW1hcGgoMikg ICAtfCA8LS0tICBDb3JlIFNlbWFwaA0KPiA+Pg0KPiA+PiBSZWxlYXNlU2VtYXBoICgxLDIsMyw0 KSAtfA0KPiA+PiBXYWl0Rm9yU2VtYXBoICgxKDQpKSAgICAtfCA8LS0tLS0tLS0tLS0tLS0tLSAg UGFja2FnZSBTZW1hcGgNCj4gPj4NCj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZWxlYXNlU2VtYXBoKDMsNCkNCj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBXYWl0Rm9yU2VtYXBoKDQoMikpIDwtIENvcmUNCj4gPj4gU2VtYXBoDQo+ ID4+DQo+ID4+IEluIGFib3ZlIGNhc2UsIGZvciB0aHJlYWQgNCwgd2hlbiBpdCBleGVjdXRlcyBh IGNvcmUgc2VtYXBob3JlLCBpDQo+ID4+IHdpbGwgZm91bmQgV2FpdEZvclNlbWFwaCg0KDIpKSBp cyBtZXQgYmVjYXVzZSBUaHJlYWQgMSBoYXMgZXhlY3V0ZSBhDQo+ID4+IHBhY2thZ2Ugc2VtYXBo b3JlIGFuZCBSZWxlYXNlU2VtYXBoKDQpIGZvciBpdCBiZWZvcmUuIFRoaXMgaXMgbm90IGFuDQo+ ID4+IGV4cGVjdCBiZWhhdmlvci4gVGhyZWFkIDQgc2hvdWxkIHdhaXQgZm9yIHRocmVhZCAzIHRv IGRvIHRoaXMuDQo+ID4+DQo+ID4+IEZpeCB0aGlzIGlzc3VlIGJ5IHNlcGFyYXRlIHRoZSBzZW1h cGhvcmUgY29udGFpbmVyIGZvciBjb3JlIGxldmVsIGFuZA0KPiA+PiBwYWNrYWdlIGxldmVsLg0K PiA+Pg0KPiA+PiBDYzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPj4gQ2M6 IFJ1aXl1IE5pIDxydWl5dS5uaUBpbnRlbC5jb20+DQo+ID4+IENvbnRyaWJ1dGVkLXVuZGVyOiBU aWFub0NvcmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAxLjENCj4gPj4gU2lnbmVkLW9mZi1ieTog RXJpYyBEb25nIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiA+PiAtLS0NCj4gPj4gIFVlZmlDcHVQ a2cvUGlTbW1DcHVEeGVTbW0vQ3B1UzMuYyB8IDIxICsrKysrKysrKysrKysrLS0tLS0tLQ0KPiA+ PiAgMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pDQo+ID4+ DQo+ID4+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0NwdVMzLmMNCj4g Pj4gYi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0NwdVMzLmMNCj4gPj4gaW5kZXggYTQ1ZTJk ZDNkNy4uNjU0NjE0ODVhNCAxMDA2NDQNCj4gPj4gLS0tIGEvVWVmaUNwdVBrZy9QaVNtbUNwdUR4 ZVNtbS9DcHVTMy5jDQo+ID4+ICsrKyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vQ3B1UzMu Yw0KPiA+PiBAQCAtNDEsOSArNDEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+PiAgLy8gRmxh Z3MgdXNlZCB3aGVuIHByb2dyYW0gdGhlIHJlZ2lzdGVyLg0KPiA+PiAgLy8NCj4gPj4gIHR5cGVk ZWYgc3RydWN0IHsNCj4gPj4gLSAgdm9sYXRpbGUgVUlOVE4gICAgICAgICAgIENvbnNvbGVMb2dM b2NrOyAgICAgICAvLyBTcGlubG9jayB1c2VkIHRvIGNvbnRyb2wNCj4gY29uc29sZS4NCj4gPj4g LSAgdm9sYXRpbGUgVUlOVE4gICAgICAgICAgIE1lbW9yeU1hcHBlZExvY2s7ICAgICAvLyBTcGlu bG9jayB1c2VkIHRvDQo+IHByb2dyYW0gbW1pbw0KPiA+PiAtICB2b2xhdGlsZSBVSU5UMzIgICAg ICAgICAgKlNlbWFwaG9yZUNvdW50OyAgICAgIC8vIFNlbWFwaG9yZSB1c2VkIHRvDQo+IHByb2dy YW0gc2VtYXBob3JlLg0KPiA+PiArICB2b2xhdGlsZSBVSU5UTiAgICAgICAgICAgQ29uc29sZUxv Z0xvY2s7ICAgICAgICAgIC8vIFNwaW5sb2NrIHVzZWQgdG8gY29udHJvbA0KPiBjb25zb2xlLg0K PiA+PiArICB2b2xhdGlsZSBVSU5UTiAgICAgICAgICAgTWVtb3J5TWFwcGVkTG9jazsgICAgICAg IC8vIFNwaW5sb2NrIHVzZWQgdG8NCj4gcHJvZ3JhbSBtbWlvDQo+ID4+ICsgIHZvbGF0aWxlIFVJ TlQzMiAgICAgICAgICAqQ29yZVNlbWFwaG9yZUNvdW50OyAgICAgLy8gU2VtYXBob3JlIHVzZWQg dG8NCj4gcHJvZ3JhbSBzZW1hcGhvcmUuDQo+ID4+ICsgIHZvbGF0aWxlIFVJTlQzMiAgICAgICAg ICAqUGFja2FnZVNlbWFwaG9yZUNvdW50OyAgLy8gU2VtYXBob3JlIHVzZWQgdG8NCj4gcHJvZ3Jh bSBzZW1hcGhvcmUuDQo+ID4+ICB9IFBST0dSQU1fQ1BVX1JFR0lTVEVSX0ZMQUdTOw0KPiA+Pg0K PiA+PiAgLy8NCj4gPj4gQEAgLTM0OCwxMSArMzQ5LDEyIEBAIFByb2dyYW1Qcm9jZXNzb3JSZWdp c3RlciAoDQo+ID4+ICAgICAgICBBU1NFUlQgKA0KPiA+PiAgICAgICAgICAoQXBMb2NhdGlvbiAh PSBOVUxMKSAmJg0KPiA+PiAgICAgICAgICAoQ3B1U3RhdHVzLT5WYWxpZENvcmVDb3VudFBlclBh Y2thZ2UgIT0gMCkgJiYNCj4gPj4gLSAgICAgICAgKENwdUZsYWdzLT5TZW1hcGhvcmVDb3VudCkg IT0gTlVMTA0KPiA+PiArICAgICAgICAoQ3B1RmxhZ3MtPkNvcmVTZW1hcGhvcmVDb3VudCAhPSBO VUxMKSAmJg0KPiA+PiArICAgICAgICAoQ3B1RmxhZ3MtPlBhY2thZ2VTZW1hcGhvcmVDb3VudCAh PSBOVUxMKQ0KPiA+PiAgICAgICAgICApOw0KPiA+PiAtICAgICAgU2VtYXBob3JlUHRyID0gQ3B1 RmxhZ3MtPlNlbWFwaG9yZUNvdW50Ow0KPiA+PiAgICAgICAgc3dpdGNoIChSZWdpc3RlclRhYmxl RW50cnktPlZhbHVlKSB7DQo+ID4+ICAgICAgICBjYXNlIENvcmVEZXBUeXBlOg0KPiA+PiArICAg ICAgICBTZW1hcGhvcmVQdHIgPSBDcHVGbGFncy0+Q29yZVNlbWFwaG9yZUNvdW50Ow0KPiA+PiAg ICAgICAgICAvLw0KPiA+PiAgICAgICAgICAvLyBHZXQgT2Zmc2V0IGluZm8gZm9yIHRoZSBmaXJz dCB0aHJlYWQgaW4gdGhlIGNvcmUgd2hpY2ggY3VycmVudCB0aHJlYWQNCj4gYmVsb25ncyB0by4N Cj4gPj4gICAgICAgICAgLy8NCj4gPj4gQEAgLTM3Myw2ICszNzUsNyBAQCBQcm9ncmFtUHJvY2Vz c29yUmVnaXN0ZXIgKA0KPiA+PiAgICAgICAgICBicmVhazsNCj4gPj4NCj4gPj4gICAgICAgIGNh c2UgUGFja2FnZURlcFR5cGU6DQo+ID4+ICsgICAgICAgIFNlbWFwaG9yZVB0ciA9IENwdUZsYWdz LT5QYWNrYWdlU2VtYXBob3JlQ291bnQ7DQo+ID4+ICAgICAgICAgIFZhbGlkQ29yZUNvdW50UGVy UGFja2FnZSA9IChVSU5UMzIgKikoVUlOVE4pQ3B1U3RhdHVzLQ0KPiA+VmFsaWRDb3JlQ291bnRQ ZXJQYWNrYWdlOw0KPiA+PiAgICAgICAgICAvLw0KPiA+PiAgICAgICAgICAvLyBHZXQgT2Zmc2V0 IGluZm8gZm9yIHRoZSBmaXJzdCB0aHJlYWQgaW4gdGhlIHBhY2thZ2Ugd2hpY2ggY3VycmVudA0K PiB0aHJlYWQgYmVsb25ncyB0by4NCj4gPj4gQEAgLTEwMzcsMTAgKzEwNDAsMTQgQEAgR2V0QWNw aUNwdURhdGEgKA0KPiA+PiAgICAgIEFTU0VSVCAobUFjcGlDcHVEYXRhLkFwTG9jYXRpb24gIT0g MCk7DQo+ID4+ICAgIH0NCj4gPj4gICAgaWYgKENwdVN0YXR1cy0+UGFja2FnZUNvdW50ICE9IDAp IHsNCj4gPj4gLSAgICBtQ3B1RmxhZ3MuU2VtYXBob3JlQ291bnQgPSBBbGxvY2F0ZVplcm9Qb29s ICgNCj4gPj4gKyAgICBtQ3B1RmxhZ3MuQ29yZVNlbWFwaG9yZUNvdW50ID0gQWxsb2NhdGVaZXJv UG9vbCAoDQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKFVJ TlQzMikgKiBDcHVTdGF0dXMtPlBhY2thZ2VDb3VudCAqDQo+ID4+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDcHVTdGF0dXMtPk1heENvcmVDb3VudCAqIENwdVN0YXR1cy0NCj4g Pk1heFRocmVhZENvdW50KTsNCj4gPj4gLSAgICBBU1NFUlQgKG1DcHVGbGFncy5TZW1hcGhvcmVD b3VudCAhPSBOVUxMKTsNCj4gPj4gKyAgICBBU1NFUlQgKG1DcHVGbGFncy5Db3JlU2VtYXBob3Jl Q291bnQgIT0gTlVMTCk7DQo+ID4+ICsgICAgbUNwdUZsYWdzLlBhY2thZ2VTZW1hcGhvcmVDb3Vu dCA9IEFsbG9jYXRlWmVyb1Bvb2wgKA0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mIChVSU5UMzIpICogQ3B1U3RhdHVzLT5QYWNrYWdlQ291bnQgKg0KPiA+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3B1U3RhdHVzLT5NYXhDb3JlQ291bnQg KiBDcHVTdGF0dXMtDQo+ID5NYXhUaHJlYWRDb3VudCk7DQo+ID4+ICsgICAgQVNTRVJUIChtQ3B1 RmxhZ3MuUGFja2FnZVNlbWFwaG9yZUNvdW50ICE9IE5VTEwpOw0KPiA+PiAgICB9DQo+ID4+ICAg IEluaXRpYWxpemVTcGluTG9jaygoU1BJTl9MT0NLKikgJm1DcHVGbGFncy5NZW1vcnlNYXBwZWRM b2NrKTsNCj4gPj4gICAgSW5pdGlhbGl6ZVNwaW5Mb2NrKChTUElOX0xPQ0sqKSAmbUNwdUZsYWdz LkNvbnNvbGVMb2dMb2NrKTsNCj4gPj4NCj4gPg0KPiA+IFRoZSBwYXRjaCBsb29rcyBPSywgc3Vw ZXJmaWNpYWxseSBzcGVha2luZy4NCj4gPg0KPiA+IEFsc28gdGhpcyBsb29rcyBsaWtlIGEgYnVn Zml4IHRvIGEgbmV3IGZlYXR1cmUgYWxyZWFkeSBjb21taXR0ZWQgaW4NCj4gPiB0aGlzIGRldmVs b3BtZW50IGN5Y2xlLCBzbyBJIHRoaW5rIGl0IG1heSBnbyBpbiBkdXJpbmcgdGhlIGhhcmQgZmVh dHVyZQ0KPiBmcmVlemUuDQo+ID4NCj4gPiBJIGhhdmUgc29tZSByZXF1ZXN0cyAobm8gbmVlZCB0 byByZXBvc3QpOg0KPiA+DQo+ID4gKDEpIFBsZWFzZSBtYWtlIHN1cmUgdGhlcmUgaXMgYSBUaWFu b0NvcmUgQlogZm9yIHRoaXMgaXNzdWUuDQo+ID4NCj4gPiAoMikgUGxlYXNlIHJlZmVyZW5jZSBz YWlkIEJaIGluIHRoZSBjb21taXQgbWVzc2FnZS4NCg0KQnVneiBsaW5rOiBodHRwczovL2J1Z3pp bGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTENCldpbGwgaW5jbHVkZSBpdCB3 aGVuIEkgcHVzaCB0aGUgY2hhbmdlLg0KDQo+ID4NCj4gPiAoRm9yIGV4YW1wbGUsIGNvbW1pdCBj NjBkMzZiNGQxLCBmb3INCj4gPiA8aHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3df YnVnLmNnaT9pZD0xMzA3PiBtaXNzZWQgdGhlDQo+ID4gcmVmZXJlbmNlIHRvIEJaIzEzMDcuKQ0K PiA+DQo+ID4gKDMpIEJlZm9yZSBwdXNoaW5nLCBwbGVhc2UgZml4IHVwIHRoZSBpbmRlbnRhdGlv biBvZiB0aGUNCj4gPiBBbGxvY2F0ZVplcm9Qb29sKCkgYXJndW1lbnRzIChib3RoIGNhbGxzKS4N Cg0KV2lsbCBhZGp1c3QgaXQgd2hlbiBJIHB1c2ggdGhlIGNoYW5nZS4NCg0KPiA+DQo+ID4gKDQp IENhbiB5b3UgcGxlYXNlIGZpbGUgdGhlIGJ1Z3ppbGxhIG5vdyBhYm91dCB1bmlmeWluZyB0aGUN Cj4gPiBpbXBsZW1lbnRhdGlvbiBiZXR3ZWVuIFJlZ2lzdGVyQ3B1RmVhdHVyZXNMaWIgYW5kIFBp U21tQ3B1RHhlU21tPw0KPiA+DQoNCkZpbGUgQnVneiBmb3IgaXQsIGxpbms6IGh0dHBzOi8vYnVn emlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxMw0KDQpUaGFua3MsDQpFcmlj DQo+ID4gKFRoYXQncyBmb3IgdGhlIG5leHQgZGV2ZWxvcG1lbnQgY3ljbGUsIGJ1dCB3ZSBzaG91 bGQgcmVwb3J0IHRoZSBCWg0KPiA+IGZvciBpdCBhdCB0aGlzIHBvaW50LCBJIGJlbGlldmUuKQ0K PiANCj4gT2gsIHNvcnJ5LCBJIHRob3VnaHQgSSBoYWQgYWRkZWQgbXkgQUNLLCBidXQgaXQgdHVy bnMgb3V0IEkgZm9yZ290IGFib3V0IGl0LiBTbywNCj4gd2l0aCB0aGUgYWJvdmUgcG9pbnRzLA0K PiANCj4gQWNrZWQtYnk6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+IA0KPiBU aGFua3MNCj4gTGFzemxvDQo=