From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 017A8CA0ED3 for ; Tue, 12 Sep 2023 09:10:22 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qfzOV-0008Cf-24; Tue, 12 Sep 2023 05:09:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qfzOQ-0008CC-3t for qemu-devel@nongnu.org; Tue, 12 Sep 2023 05:09:10 -0400 Received: from frasgout.his.huawei.com ([185.176.79.56]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qfzOK-0000RE-Km for qemu-devel@nongnu.org; Tue, 12 Sep 2023 05:09:08 -0400 Received: from lhrpeml500006.china.huawei.com (unknown [172.18.147.226]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4RlHlZ1bdkz6D8cq; Tue, 12 Sep 2023 17:07:06 +0800 (CST) Received: from lhrpeml500001.china.huawei.com (7.191.163.213) by lhrpeml500006.china.huawei.com (7.191.161.198) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.31; Tue, 12 Sep 2023 10:08:45 +0100 Received: from lhrpeml500001.china.huawei.com ([7.191.163.213]) by lhrpeml500001.china.huawei.com ([7.191.163.213]) with mapi id 15.01.2507.031; Tue, 12 Sep 2023 10:08:45 +0100 To: xianglai li , "qemu-devel@nongnu.org" CC: Salil Mehta , Salil Mehta , Xiaojuan Yang , Song Gao , "Michael S. Tsirkin" , Igor Mammedov , Ani Sinha , Paolo Bonzini , Richard Henderson , Eduardo Habkost , Marcel Apfelbaum , =?utf-8?B?UGhpbGlwcGUgTWF0aGlldS1EYXVkw6k=?= , "wangyanan (Y)" , =?utf-8?B?RGFuaWVsIFAuIEJlcnJhbmfDqQ==?= , Peter Xu , David Hildenbrand , Bibo Mao Subject: RE: [PATCH v2 00/10] Adds CPU hot-plug support to Loongarch Thread-Topic: [PATCH v2 00/10] Adds CPU hot-plug support to Loongarch Thread-Index: AQHZ5R7Fy4isJA4aik6SXUbXhPAogbAW4pIQ Date: Tue, 12 Sep 2023 09:08:45 +0000 Message-ID: <823e8dbc2db64190ac75b6b0ffa7c003@huawei.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.195.247.147] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected Received-SPF: pass client-ip=185.176.79.56; envelope-from=salil.mehta@huawei.com; helo=frasgout.his.huawei.com X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Salil Mehta From: Salil Mehta via Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org SGkgWGlhbmdsYWksDQoNCj4gRnJvbTogcWVtdS1kZXZlbC1ib3VuY2VzK3NhbGlsLm1laHRhPWh1 YXdlaS5jb21Abm9uZ251Lm9yZyA8cWVtdS1kZXZlbC0NCj4gYm91bmNlcytzYWxpbC5tZWh0YT1o dWF3ZWkuY29tQG5vbmdudS5vcmc+IE9uIEJlaGFsZiBPZiB4aWFuZ2xhaSBsaQ0KPiBTZW50OiBU dWVzZGF5LCBTZXB0ZW1iZXIgMTIsIDIwMjMgMzoxMiBBTQ0KPiBUbzogcWVtdS1kZXZlbEBub25n bnUub3JnDQo+IENjOiBTYWxpbCBNZWh0YSA8c2FsaWwubWVodGFAb3Buc3JjLm5ldD47IFhpYW9q dWFuIFlhbmcNCj4gPHlhbmd4aWFvanVhbkBsb29uZ3Nvbi5jbj47IFNvbmcgR2FvIDxnYW9zb25n QGxvb25nc29uLmNuPjsgTWljaGFlbCBTLg0KPiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT47IEln b3IgTWFtbWVkb3YgPGltYW1tZWRvQHJlZGhhdC5jb20+OyBBbmkgU2luaGENCj4gPGFuaXNpbmhh QHJlZGhhdC5jb20+OyBQYW9sbyBCb256aW5pIDxwYm9uemluaUByZWRoYXQuY29tPjsgUmljaGFy ZA0KPiBIZW5kZXJzb24gPHJpY2hhcmQuaGVuZGVyc29uQGxpbmFyby5vcmc+OyBFZHVhcmRvIEhh Ymtvc3QNCj4gPGVkdWFyZG9AaGFia29zdC5uZXQ+OyBNYXJjZWwgQXBmZWxiYXVtIDxtYXJjZWwu YXBmZWxiYXVtQGdtYWlsLmNvbT47DQo+IFBoaWxpcHBlIE1hdGhpZXUtRGF1ZMOpIDxwaGlsbWRA bGluYXJvLm9yZz47IHdhbmd5YW5hbiAoWSkNCj4gPHdhbmd5YW5hbjU1QGh1YXdlaS5jb20+OyBE YW5pZWwgUC4gQmVycmFuZ8OpIDxiZXJyYW5nZUByZWRoYXQuY29tPjsgUGV0ZXINCj4gWHUgPHBl dGVyeEByZWRoYXQuY29tPjsgRGF2aWQgSGlsZGVuYnJhbmQgPGRhdmlkQHJlZGhhdC5jb20+OyBC aWJvIE1hbw0KPiA8bWFvYmlib0Bsb29uZ3Nvbi5jbj47IFhpYW5nbGFpIGxpIDxsaXhpYW5nbGFp QGxvb25nc29uLmNuPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjIgMDAvMTBdIEFkZHMgQ1BVIGhvdC1w bHVnIHN1cHBvcnQgdG8gTG9vbmdhcmNoDQo+IA0KPiBIZWxsbyBldmVyeW9uZSwgV2UgcmVmZXIg dG8gdGhlIGltcGxlbWVudGF0aW9uIG9mIEFSTSBDUFUNCj4gSG90LVBsdWcgdG8gYWRkIEdFRC1i YXNlZCBDUFUgSG90LVBsdWcgc3VwcG9ydCB0byBMb29uZ2FyY2guDQo+IA0KPiBUaGUgZmlyc3Qg NCBwYXRjaGVzIGFyZSBjaGFuZ2VzIHRvIHRoZSBRRU1VIGNvbW1vbiBjb2RlLA0KPiBpbmNsdWRp bmcgYWRkaW5nIEdFRCBzdXBwb3J0IGZvciBDUFUgSG90LVBsdWcsIHVwZGF0aW5nDQo+IHRoZSBB Q1BJIHRhYmxlIGNyZWF0aW9uIHByb2Nlc3MsIGFuZCBhZGRpbmcgcWRldl9kaXNjb25uZWN0X2dw aW9fb3V0X25hbWVkDQo+IGFuZCBjcHVfYWRkcmVzc19zcGFjZV9kZXN0cm95IGludGVyZmFjZXMg dG8gcmVsZWFzZSByZXNvdXJjZXMNCj4gd2hlbiBDUFUgdW4tcGx1Zy4NCj4gDQo+IEZvciB0aGUg bW9kaWZpY2F0aW9uIG9mIHRoZSBwdWJsaWMgcGFydCBvZiB0aGUgY29kZSwgd2UgcmVmZXIgdG8g dGhlDQo+IGFybS1yZWxhdGVkIHBhdGNoLCBhbmQgdGhlIGxpbmsgYWRkcmVzcyBvZiB0aGUgY29y cmVzcG9uZGluZyBwYXRjaCBpcw0KPiBhcyBmb2xsb3dzOg0KPiBodHRwczovL2xvcmUua2VybmVs Lm9yZy9hbGwvMjAyMDA2MTMyMTM2MjkuMjE5ODQtMS1zYWxpbC5tZWh0YUBodWF3ZWkuY29tLw0K PiANCj4gSW4gb3JkZXIgdG8gcmVzcGVjdCB0aGUgd29yayBvZiAiU2FsaWwgTWVodGEiLCB3ZSB3 aWxsIHJlYmFzZSB0aGUgZmlyc3QNCj4gNCBwYXRjaGVzIGluIHRoZSBmaW5hbCBwYXRjaCwgd2hp Y2ggYXJlIHJlZmVyZW5jZWQgaGVyZSB0byBlbnN1cmUgdGhhdA0KPiB0aGUgbG9vbmdhcmNoIGNw dSBob3RwbHVnIGNhbiB3b3JrIHByb3Blcmx5Lg0KDQoNCkp1c3QgdG8gbGV0IHlvdSBrbm93IFJG QyBWMiBmb3IgYWJvdmUgbGluayBpcyB1bmRlcmdvaW5nIGludGVybmFsIHJldmlldw0KcHJvY2Vz cyBhbmQgSSB3aWxsIGJlIHBvc3RpbmcgdGhlIHBhdGNoZXMgdG8gY29tbXVuaXR5IHNvb24uDQoN CkFsc28sIEkgYW0gcGxhbm5pbmcgdG8gcG9zdCBSRkMgVjIgYXMgb25lIGNvbXBsZXRlIHBhdGNo LXNldCBpbml0aWFsbHkuDQooVGhpcyBpcyByZXF1aXJlZCB0byByZWZsZWN0IHRoZSBjbGVhciBj aGFuZ2UgZnJvbSBSRkMgVjEpDQpUaGlzIHdpbGwgaGF2ZSBwYXRjaGVzIHdoaWNoIGFyZSBBUk0g c3BlY2lmaWMgYW5kIGFyY2hpdGVjdHVyZSBjb21tb24uDQpMYXRlciBwYXRjaGVzIGNhbiBiZSBj aGVycnkgcGlja2VkIGFuZCBjb21waWxlZCBpbmRlcGVuZGVudGx5Lg0KDQpBZnRlciBSRkMgVjIg aGFzIGJlZW4gcG9zdGVkLCBhbmQgeW91IGhhdmUgY29uZmlybWVkIHRoYXQgYXJjaGl0ZWN0dXJl DQpjb21tb24gcGF0Y2hlcyB3b3JrcyB3ZWxsIHdpdGggeW91ciBjaGFuZ2VzLCBJIHdpbGwgc3Bs aXQgdGhlIFJGQyBWMg0KZnVydGhlciBpbnRvIDIgcGF0Y2gtc2V0cywNCjEuIEFyY2hpdGVjdHVy ZSBjb21tb24gcGF0Y2gtc2V0IChUaGlzIHdpbGwgY29tZSB3aXRoIG5vIFJGQykgDQoyLiBBUk0g c3BlY2lmaWMgcGF0Y2gtc2V0ICAoVGhpcyB3aWxsIGNvbnRpbnVlIGFzIFJGQyBWMykNCg0KVGhp cyB3aWxsIGhlbHAgcGF0Y2gtc2V0IDEgZ2V0dGluZyBhYnNvcmJlZCBlYXJsaWVyIGluIHRoaXMg UWVtdQ0KY3ljbGUgaWYgZXZlcnl0aGluZyBnb2VzIHdlbGwuDQoNCg0KVGhhbmtzDQpTYWxpbC4N Cg0KDQo+IA0KPiBUaGUgbGFzdCA2IHBhdGNoZXMgYXJlIExvb25nYXJjaCBhcmNoaXRlY3R1cmUt cmVsYXRlZCwNCj4gYW5kIHRoZSBtb2RpZmljYXRpb25zIGluY2x1ZGUgdGhlIGRlZmluaXRpb24g b2YgdGhlIGhvb2sNCj4gZnVuY3Rpb24gcmVsYXRlZCB0byB0aGUgQ1BVIEhvdC0oVU4pUGx1Zywg dGhlIGFsbG9jYXRpb24NCj4gYW5kIHJlbGVhc2Ugb2YgQ1BVIHJlc291cmNlcyB3aGVuIENQVSBI b3QtKFVOKVBsdWcsDQo+IHRoZSBjcmVhdGlvbiBwcm9jZXNzIG9mIHVwZGF0aW5nIHRoZSBBQ1BJ IHRhYmxlLA0KPiBhbmQgZmluYWxseSB0aGUgY3VzdG9tIHN3aXRjaCBmb3IgdGhlIENQVSBIb3Qt UGx1Zy4NCj4gDQo+IFYyOg0KPiAtIEZpeCBmb3JtYXR0aW5nIGFuZCBzcGVsbGluZyBlcnJvcnMN Cj4gLSBTcGxpdCBsYXJnZSBwYXRjaGVzIGludG8gc21hbGxlciBwYXRjaGVzDQo+ICAgLSBTcGxp dCB0aGUgb3JpZ2luYWwgcGF0Y2gNCj4gICAgIDw8QWRkIGJhc2ljIENQVSBob3QtKHVuKXBsdWcg c3VwcG9ydCBmb3IgTG9vbmdhcmNoPj4gaW50bw0KPiAgICAgPDxBZGRlZCBDUFUgdG9wb2xvZ3kg c3VwcG9ydCBmb3IgTG9vbmdhcmNoPj4NCj4gICAgIDw8T3B0aW1pemUgbG9vbmdhcmNoX2lycV9p bml0IGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uID4+DQo+ICAgICA8PEFkZCBiYXNpYyBDUFUgaG90 LSh1bilwbHVnIHN1cHBvcnQgZm9yIExvb25nYXJjaD4+Lg0KPiAgIC0gU3BsaXQgdGhlIG9yaWdp bmFsIHBhdGNoDQo+ICAgICA8PFVwZGF0ZSB0aGUgQUNQSSB0YWJsZSBmb3IgdGhlIExvb25nYXJj aCBDUFU+PiBpbnRvDQo+ICAgICA8PEFkZCBnZW5lcmljIGV2ZW50IGRldmljZSBmb3IgTG9vbmdh cmNoPj4NCj4gICAgIDw8VXBkYXRlIHRoZSBBQ1BJIHRhYmxlIGZvciB0aGUgTG9vbmdhcmNoIENQ VT4+DQo+IC0gQWRkZWQgbG9vbmdhcmNoIGNwdSB0b3BvbG9neSBjYWxjdWxhdGlvbiBtZXRob2Qu DQo+IC0gQ2hhbmdlIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3B1IHRvcG9sb2d5IHBhdGNoLg0KPiAt IENoYW5nZSB1bnJlYXNvbmFibGUgdmFyaWFibGUgYW5kIGZ1bmN0aW9uIG5hbWVzLg0KPiANCj4g DQo+IA0KPiB4aWFuZ2xhaSBsaSAoMTApOg0KPiAgIFVwZGF0ZSBBQ1BJIEdFRCBmcmFtZXdvcmsg dG8gc3VwcG9ydCB2Y3B1IGhvdC0odW4pcGx1Zw0KPiAgIFVwZGF0ZSBDUFVzIEFNTCB3aXRoIGNw dS0oY3RybClkZXYgY2hhbmdlDQo+ICAgbWFrZSBxZGV2X2Rpc2Nvbm5lY3RfZ3Bpb19vdXRfbmFt ZWQoKSBwdWJsaWMNCj4gICBJbnRyb2R1Y2UgdGhlIENQVSBhZGRyZXNzIHNwYWNlIGRlc3RydWN0 aW9uIGZ1bmN0aW9uDQo+ICAgQWRkZWQgQ1BVIHRvcG9sb2d5IHN1cHBvcnQgZm9yIExvb25nYXJj aA0KPiAgIE9wdGltaXplIGxvb25nYXJjaF9pcnFfaW5pdCBmdW5jdGlvbiBpbXBsZW1lbnRhdGlv bg0KPiAgIEFkZCBiYXNpYyBDUFUgaG90LSh1bilwbHVnIHN1cHBvcnQgZm9yIExvb25nYXJjaA0K PiAgIEFkZCBzdXBwb3J0IG9mICp1bnJlYWxpemUqIGZvciBMb29uZ2FyY2ggY3B1DQo+ICAgQWRk IGdlbmVyaWMgZXZlbnQgZGV2aWNlIGZvciBMb29uZ2FyY2gNCj4gICBVcGRhdGUgdGhlIEFDUEkg dGFibGUgZm9yIHRoZSBMb29uZ2FyY2ggQ1BVDQo+IA0KPiAgLi4uL2RldmljZXMvbG9vbmdhcmNo NjQtc29mdG1tdS9kZWZhdWx0Lm1hayAgIHwgICAxICsNCj4gIGRvY3Mvc3lzdGVtL2xvb25nYXJj aC92aXJ0LnJzdCAgICAgICAgICAgICAgICB8ICAzMSArKw0KPiAgaHcvYWNwaS9hY3BpLWNwdS1o b3RwbHVnLXN0dWIuYyAgICAgICAgICAgICAgIHwgIDE1ICsNCj4gIGh3L2FjcGkvY3B1LmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNyArLQ0KPiAgaHcvYWNwaS9nZW5lcmlj X2V2ZW50X2RldmljZS5jICAgICAgICAgICAgICAgIHwgIDMzICsrDQo+ICBody9jb3JlL2dwaW8u YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0NCj4gIGh3L2kzODYvYWNw aS1idWlsZC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQ0KPiAgaHcvbG9vbmdh cmNoL2FjcGktYnVpbGQuYyAgICAgICAgICAgICAgICAgICAgIHwgIDMzICstDQo+ICBody9sb29u Z2FyY2gvZ2VuZXJpY19ldmVudF9kZXZpY2VfbG9vbmdhcmNoLmMgfCAgMzYgKysNCj4gIGh3L2xv b25nYXJjaC9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQ0KPiAgaHcv bG9vbmdhcmNoL3ZpcnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDI0ICsrKysrKysr KysrKysrKy0tLQ0KPiAgaW5jbHVkZS9leGVjL2NwdS1jb21tb24uaCAgICAgICAgICAgICAgICAg ICAgIHwgICA4ICsNCj4gIGluY2x1ZGUvaHcvYWNwaS9jcHUuaCAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgNSArLQ0KPiAgaW5jbHVkZS9ody9hY3BpL2NwdV9ob3RwbHVnLmggICAgICAgICAg ICAgICAgIHwgIDEwICsNCj4gIGluY2x1ZGUvaHcvYWNwaS9nZW5lcmljX2V2ZW50X2RldmljZS5o ICAgICAgICB8ICAgNiArDQo+ICBpbmNsdWRlL2h3L2NvcmUvY3B1LmggICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDEgKw0KPiAgaW5jbHVkZS9ody9sb29uZ2FyY2gvdmlydC5oICAgICAgICAg ICAgICAgICAgIHwgIDEwICstDQo+ICBpbmNsdWRlL2h3L3FkZXYtY29yZS5oICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKw0KPiAgc29mdG1tdS9waHlzbWVtLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDI0ICsNCj4gIHRhcmdldC9sb29uZ2FyY2gvY3B1LmMgICAgICAgICAg ICAgICAgICAgICAgICB8ICAzNSArLQ0KPiAgdGFyZ2V0L2xvb25nYXJjaC9jcHUuaCAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDEzICstDQo+ICAyMSBmaWxlcyBjaGFuZ2VkLCA2MzUgaW5zZXJ0 aW9ucygrKSwgODcgZGVsZXRpb25zKC0pDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgaHcvbG9vbmdh cmNoL2dlbmVyaWNfZXZlbnRfZGV2aWNlX2xvb25nYXJjaC5jDQo+IA0KPiBDYzogIlNhbGlsIE1l aHRhIiA8c2FsaWwubWVodGFAb3Buc3JjLm5ldD4NCj4gQ2M6IFhpYW9qdWFuIFlhbmcgPHlhbmd4 aWFvanVhbkBsb29uZ3Nvbi5jbj4NCj4gQ2M6IFNvbmcgR2FvIDxnYW9zb25nQGxvb25nc29uLmNu Pg0KPiBDYzogIk1pY2hhZWwgUy4gVHNpcmtpbiIgPG1zdEByZWRoYXQuY29tPg0KPiBDYzogSWdv ciBNYW1tZWRvdiA8aW1hbW1lZG9AcmVkaGF0LmNvbT4NCj4gQ2M6IEFuaSBTaW5oYSA8YW5pc2lu aGFAcmVkaGF0LmNvbT4NCj4gQ2M6IFBhb2xvIEJvbnppbmkgPHBib256aW5pQHJlZGhhdC5jb20+ DQo+IENjOiBSaWNoYXJkIEhlbmRlcnNvbiA8cmljaGFyZC5oZW5kZXJzb25AbGluYXJvLm9yZz4N Cj4gQ2M6IEVkdWFyZG8gSGFia29zdCA8ZWR1YXJkb0BoYWJrb3N0Lm5ldD4NCj4gQ2M6IE1hcmNl bCBBcGZlbGJhdW0gPG1hcmNlbC5hcGZlbGJhdW1AZ21haWwuY29tPg0KPiBDYzogIlBoaWxpcHBl IE1hdGhpZXUtRGF1ZMOpIiA8cGhpbG1kQGxpbmFyby5vcmc+DQo+IENjOiBZYW5hbiBXYW5nIDx3 YW5neWFuYW41NUBodWF3ZWkuY29tPg0KPiBDYzogIkRhbmllbCBQLiBCZXJyYW5nw6kiIDxiZXJy YW5nZUByZWRoYXQuY29tPg0KPiBDYzogUGV0ZXIgWHUgPHBldGVyeEByZWRoYXQuY29tPg0KPiBD YzogRGF2aWQgSGlsZGVuYnJhbmQgPGRhdmlkQHJlZGhhdC5jb20+DQo+IENjOiBCaWJvIE1hbyA8 bWFvYmlib0Bsb29uZ3Nvbi5jbj4NCj4gQ2M6IFhpYW5nbGFpIGxpIDxsaXhpYW5nbGFpQGxvb25n c29uLmNuPg0KPiAtLQ0KPiAyLjM5LjENCj4gDQo+IA0KDQo=