From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 744EDA04B1; Wed, 30 Sep 2020 04:48:24 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1D2461DA97; Wed, 30 Sep 2020 04:48:23 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 2BFCA1DA70 for ; Wed, 30 Sep 2020 04:48:20 +0200 (CEST) IronPort-SDR: WUJA9HafvRQRangaRYUFuOjbNkhorgBvRoOd8VgNqpQ/Bn0l+bfa6ohT3FBxdBDyZN4tH71xsq tunM0tgXgs5Q== X-IronPort-AV: E=McAfee;i="6000,8403,9759"; a="159728382" X-IronPort-AV: E=Sophos;i="5.77,320,1596524400"; d="scan'208";a="159728382" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2020 19:48:18 -0700 IronPort-SDR: DNq/bpF5Zu2v8oM5GEW8oJK7DAHvQocYEWVknCZ3AEW89Kp6rri7ZZHMWkH3SvLdk2Z1xLuNKg j2N0oWDtTJpg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,320,1596524400"; d="scan'208";a="341061862" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by orsmga008.jf.intel.com with ESMTP; 29 Sep 2020 19:48:17 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 29 Sep 2020 19:48:17 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) 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.1713.5; Tue, 29 Sep 2020 19:48:16 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 29 Sep 2020 19:48:16 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.108) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Tue, 29 Sep 2020 19:48:14 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h7v2wnCcG6LdrvMi8nKIoWDA61AuDzRBNXw4pj16ZFxuTFaAUWrgw9kZiHiJv4trn6CiCwQD3zIXAP2qv1vR76GPiVnYgT8/VQm+JZSEj4VzgguNwlIjfpq74IInP7hVN9JXhT6QCJgSXVQrW1J1us3/sZeCpEA4/Wdm034KwB01EE5Vp86aI2v0jyWpWRQmzkDvYd0UwSSWo+t8e3RBjhRWaU8aUHmz+a3YkcOr9Q/Y6Ptrco9v/qBWO2VGanDwZAu3UuKJxsxS56OQR/RFwmj7+J27dEu9EQJWW4JF4PpOZPk8Lltvqz3fiYEo6L5Vs/hXAeLBnK5tmGW2fyEtgw== 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=MXJWjKRYkTq8THhgWXyljxXDV1lrv7Q90I2270+3P4w=; b=MyX/jGjMHqJd/y1sUZHQlsGQQ6jb1UP9lUiYO+qVqWR+tkAtra3lJuXxHhTsj47CsnuefeQlDTjBZPg4Sd8p+n1mwz/2mjTJqvwlCMrDFOYvVDM1dEUBrVXBksVQCM/JsZkH27++Ns1bnyuzwIp3jFdn/ZNBM1ME2bjlKBFB9uE+yaTJPSY6Yu3aoFSVn1HezjPHuoftDQ4V3Myoa1cpluLlupbiCFjlzw/Smff/t7kUYtHCGJEJXSAphyh43Ts7fsdAgVKZr7Z+s4MInzaRM0iohBZx64Xp27cKjHsqIQ4/35cLHi0LmD4MicitpyITr3LaRDUXj1IPcbWFeEYREg== 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=MXJWjKRYkTq8THhgWXyljxXDV1lrv7Q90I2270+3P4w=; b=uVZL/R/qzKcNUYHSw9yzp6leqL/WkpmzJgbK1HpMERZn12xo3erVxOk0lzt7SWWBR0PNvquUBKB7rXYmBY/d/ritvFGpir0k26dI9zA0Y7V5eOAkd7T3xQYGaBOl7wN6k9FQziBET1lLoWtmUPgsSFoEOnB/c44utRzBNFuALk0= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3743.namprd11.prod.outlook.com (2603:10b6:208:f4::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3412.28; Wed, 30 Sep 2020 02:48:09 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::1dc7:9f52:91c1:52da]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::1dc7:9f52:91c1:52da%3]) with mapi id 15.20.3412.029; Wed, 30 Sep 2020 02:48:09 +0000 From: "Xia, Chenbo" To: "Zhang, Roy Fan" , Maxime Coquelin , "Liu, Changpeng" , "dev@dpdk.org" CC: "matan@mellanox.com" , "Zawadzki, Tomasz" , "Yigit, Ferruh" Thread-Topic: [dpdk-dev] [PATCH] vhost: return ready when at least 1 vring is configured Thread-Index: AQHWlmoBpavvu3CEOkuiSBPUJwwUHKl/7CWAgACLbaA= Date: Wed, 30 Sep 2020 02:48:09 +0000 Message-ID: References: <1598944057-32690-1-git-send-email-changpeng.liu@intel.com> <8e0e8343-4e85-71f3-8c85-07eb1cff6079@redhat.com> <06542643-cc20-5e3e-26ae-7100005dc97d@redhat.com> <24b547af-2cda-36db-cb66-e5523d169556@redhat.com> <0f8b9daf-3ed7-0ede-8c0c-f2a1bcef9ca4@redhat.com> In-Reply-To: Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.38] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5c6c1112-e5ec-432e-c368-08d864eb43fc x-ms-traffictypediagnostic: MN2PR11MB3743: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MCu+/CJENoEfj/AF4FBy0bP2El6BGh91wWbRT7M5T41r4AunJs+ttDtjxOd77FTCJMGmbSH8Ma0kPtkH5QuxFA+r4sO5gSl7DAl8C7JZHQzPH2bgLJs2I9blkGb2bI+iVm/wDTbSUDFi6f2NrqOC3tlkAV/lCLULA6RWGOnrJIThxSaEGxcXQUuaCJr1e5zVSEuANXRhPOR7yRvV6ZSE2d6we50vL5cDgSd8tSIt47uWT0/SuHBceD4lOK/nGL26HS7ZFu8IVLQrvTemdecv1FgaIya38nXT1cssw5UCYWCgw/5YdzNbdJIR+vZaQhH68dzDDGMAsxokydIKyJ8PE15PRccloNohcv8zgtRCgJ9qGz/mBZsaBvYtgCQxfGfi x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(366004)(376002)(136003)(396003)(346002)(186003)(9686003)(6506007)(83380400001)(478600001)(8936002)(53546011)(66946007)(71200400001)(316002)(8676002)(55016002)(54906003)(26005)(66446008)(64756008)(4326008)(33656002)(5660300002)(110136005)(66556008)(66476007)(76116006)(2906002)(7696005)(86362001)(52536014)(107886003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: TAnExEX79JJezu4NtXOMmkbFHrpaCuR8ANOLUHwFqhUONyiJ/S/qahUPkIkffDSI30lnZAp5iehF4FWE8AodGv0xrI0XAiW7+orY2CFrmYAZU/tK61YN4VC0FCtW5pLCemaPP6hXOV4rw7/rtI1gXas/Wg+TRer1tFfn4clziqAemopI3/gSFddLwGDrW+Hd31mxpu3dw4bmPDC9sgGNnRRKAYRWLi3QjRhKvL86zRjQf6zLhJBcyWkmOU7QQFvkiOfw7K+oAAcNvYz3gxRK/jZD/MpvSf2UMmIYIC9Q0dCWy0tP5Mpc57uEBavSXUptOPf9LeY6UjGaHndvUjbT+2x5s1J6P4myMVXmXVF8pKW7oVN7dSvdv7tRM2zlxduzE/0sqqbLO3Kuao9UKVD4Y3gYuHzafYh1PYTD5rIqwBuleBKFHixkOJRjezbGf02Hxkx8ceh8poR0gTK3K6B/JrDyljFPaKNvmcG4K2ZVLsmR2Yvf8DBk8+Qew1SITPdknPSw207eaE5GGEftVhgN7zLp0XxvgwSbJuKvhsZwEgpL74fge/fdAw0ATUczmxMiWEimR8xTg/3aVJVFtq6R8RgDn3YdF+gd7FhFPG0FpbkhNq0UBaaQYzCRSQfjFYN/4PTefsOrsNiXlYNv0cdo9w== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4063.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5c6c1112-e5ec-432e-c368-08d864eb43fc X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Sep 2020 02:48:09.1147 (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: Kq7kJ2JTU/MwKjnvW7EyGdDCj3CxmAwr4NuXEry1AoQ5k77cpHjnuGHw1XwSO094bm8BTYLH+FLABBIuNygzWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3743 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] vhost: return ready when at least 1 vring is configured X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgRmFuICYgTWF4aW1lLA0KDQpJIGFtIHRoaW5raW5nIHRoYXQgc2hvdWxkIHdlIG1vdmUgc2V0 X2ZlYXR1cmVzIG91dHNpZGUgb2YgbmV3X2RldmljZSBjYWxsYmFjaw0KZm9yIGNyeXB0byBkZXZp Y2U/IEkgc2VlIHRoYXQgbmV0IGFuZCBibGsgZGV2aWNlcyBib3RoIHNldCBmZWF0dXJlcyBiZXR3 ZWVuIHJlZ2lzdGVyDQphbmQgc3RhcnQsIGFuZCBwZXJzb25hbGx5IEkgdGhpbmsgdGhpcyBtYWtl cyBzZW5zZSB0aGF0IGRldmljZSBmZWF0dXJlcyBhcmUgc2V0DQpiZWZvcmUgZGV2aWNlIHN0YXJ0 IGFuZCByZWFkeS4gSG93IGRvIHlvdSB0aGluayDwn5iKPw0KDQpUaGFua3MsDQpDaGVuYm8NCg0K PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBaaGFuZywgUm95IEZhbiA8cm95 LmZhbi56aGFuZ0BpbnRlbC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDMwLCAy MDIwIDI6MTUgQU0NCj4gVG86IE1heGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhh dC5jb20+OyBMaXUsIENoYW5ncGVuZw0KPiA8Y2hhbmdwZW5nLmxpdUBpbnRlbC5jb20+OyBkZXZA ZHBkay5vcmcNCj4gQ2M6IG1hdGFuQG1lbGxhbm94LmNvbTsgWGlhLCBDaGVuYm8gPGNoZW5iby54 aWFAaW50ZWwuY29tPjsgWmF3YWR6a2ksDQo+IFRvbWFzeiA8dG9tYXN6Lnphd2FkemtpQGludGVs LmNvbT47IFlpZ2l0LCBGZXJydWggPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+DQo+IFN1YmplY3Q6 IFJFOiBbZHBkay1kZXZdIFtQQVRDSF0gdmhvc3Q6IHJldHVybiByZWFkeSB3aGVuIGF0IGxlYXN0 IDEgdnJpbmcNCj4gaXMgY29uZmlndXJlZA0KPiANCj4gSGkgTWF4aW1lLA0KPiANCj4gVGhhbmtz IGZvciB0ZWxsaW5nIG1lIHRoYXQgYnV0IHZob3N0X2NyeXB0byBpcyBzdGlsbCBicmVha2luZy4N Cj4gDQo+IFZpcnRpby1jcnlwdG8gKGJvdGggTEtDRiB2aXJ0aW8tY3J5cHQgZHJpdmVyIGFuZCBE UERLIHZpcnRpby1jcnlwdG8gUE1EKQ0KPiB3b24ndCBjcmVhdGUgZGV2aWNlIHF1ZXVlIHVudGls IHRoZSBjcnlwdG8gc2Vzc2lvbiBpcyByZXF1aXJlZCB0byBiZQ0KPiBjcmVhdGVkLiBUaHVzIHZx X2lzX3JlYWR5KCkgd2lsbCBuZXZlciByZXR1cm4gdHJ1ZSBkdXJpbmcgaW5pdGlhbGl6YXRpb24g LQ0KPiBoZW5jZSBuZXdfZGV2aWNlKCkgaW4gdmhvc3RfY3J5cHRvIHNhbXBsZSBhcHAgd2lsbCBu ZXZlciBiZSB0cmlnZ2VyZWQuDQo+IEFsc28gc2luY2UgcnRlX3Zob3N0X2RyaXZlcl9zZXRfZmVh dHVyZXMoKSBpcyBjYWxsZWQgaW5zaWRlDQo+IHJ0ZV92aG9zdF9jcnlwdG9fY3JlYXRlKCksIHdo aWNoIGlzIHRyaWdnZXJlZCBieSBuZXdfZGV2aWNlKCkgaGFuZGxlciwgd2UNCj4gY2Fubm90IHVw ZGF0ZSB0aGUgZGV2LT5mbGFncyB0byBieXBhc3MgdGhlICJpZiAoZGV2LT5mbGFncyAmDQo+IFZJ UlRJT19ERVZfQlVJTFRJTl9WSVJUSU9fTkVUKSIgY2hlY2sgYmVmb3JlIG5ld19kZXZpY2UoKSBp cyBjYWxsZWQuDQo+IHdoYXQgdGhlIG5ldyBsb2dpYyB2aXJ0aW9faXNfcmVhZHkoKSByZXF1aXJl bWVudCB3aWxsIG5ldmVyIG1lZXQgZm9yDQo+IHZob3N0X2NyeXB0by4NCj4gDQo+IEEgd2F5IHRv IGZpeCBpdCBpcyB3aXRoIHRoZSBmb2xsb3dpbmcgY2hhbmdlIC0NCj4gDQo+IGRpZmYgLS1naXQg YS9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3Rf dXNlci5jDQo+IGluZGV4IGIwMGUxZjkxZC4uZTUyNjNhMzYwIDEwMDY0NA0KPiAtLS0gYS9saWIv bGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiArKysgYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0 X3VzZXIuYw0KPiBAQCAtMTkzNyw2ICsxOTM3LDE0IEBAIHZob3N0X3VzZXJfc2V0X3ZyaW5nX2tp Y2soc3RydWN0IHZpcnRpb19uZXQgKipwZGV2LA0KPiBzdHJ1Y3QgVmhvc3RVc2VyTXNnICptc2cs DQo+ICAgICAgICAgICAgICAgICB9DQo+ICAgICAgICAgfQ0KPiANCj4gKyAgICAgICAvKiB2aXJ0 aW8tY3J5cHRvIHZxIGlzIG5vdCByZWFkeSB1bnRpbCBzZXNzaW9uIGlzIGNyZWF0ZWQuIENoZWNr DQo+ICsgICAgICAgICogaGVyZSBpZiB3ZSBuZWVkIHRvIGluaXRpYWxpemUgZGV2aWNlIGFnYWlu DQo+ICsgICAgICAgICovDQo+ICsgICAgICAgaWYgKCEoZGV2LT5mbGFncyAmIFZJUlRJT19ERVZf UlVOTklORykpIHsNCj4gKyAgICAgICAgICAgICAgIGlmIChkZXYtPm5vdGlmeV9vcHMtPm5ld19k ZXZpY2UoZGV2LT52aWQpID09IDApDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGRldi0+Zmxh Z3MgfD0gVklSVElPX0RFVl9SVU5OSU5HOw0KPiArICAgICAgIH0NCj4gKw0KPiAgICAgICAgIHJl dHVybiBSVEVfVkhPU1RfTVNHX1JFU1VMVF9PSzsNCj4gIH0NCj4gDQo+IGJ1dCBJIGNhbm5vdCBh ZGQgdmlydGlvX2lzX3JlYWR5KCkgaW5zaWRlIHRoZSAiIGlmICghKGRldi0+ZmxhZ3MgJg0KPiBW SVJUSU9fREVWX1JVTk5JTkcpKSIgY2hlY2ssIHNpbmNlIHdlIG5lZWQgbmV3X2RldmljZSgpIGlz IGNhbGxlZCB0byBzZXQNCj4gdGhlIGZlYXR1cmUgZmxhZ3MgLSBpZiB0byBzZXQgdGhlIGZlYXR1 cmUgZmxhZ3MgaW4gdGhlIGV4YW1wbGUgaW5zdGVhZCwNCj4gdGhlIGxvZ2ljIHdpbGwgbm90IHJp Z2h0LCBzaW5jZSB2aXJ0aW8tbmV0IGRvZXMgbm90IHJlcXVpcmUgdGhlIHVzZXIgdG8NCj4gc2V0 IHRoZSBmbGFncyB0aGVtc2VsdmVzIGVpdGhlci4NCj4gDQo+IFJlZ2FyZHMsDQo+IEZhbg0KPiAN Cj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBNYXhpbWUgQ29x dWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiA+IFNlbnQ6IFR1ZXNkYXksIFNl cHRlbWJlciAyOSwgMjAyMCAzOjA2IFBNDQo+ID4gVG86IFpoYW5nLCBSb3kgRmFuIDxyb3kuZmFu LnpoYW5nQGludGVsLmNvbT47IExpdSwgQ2hhbmdwZW5nDQo+ID4gPGNoYW5ncGVuZy5saXVAaW50 ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4gQ2M6IG1hdGFuQG1lbGxhbm94LmNvbTsgWGlhLCBD aGVuYm8gPGNoZW5iby54aWFAaW50ZWwuY29tPjsgWmF3YWR6a2ksDQo+ID4gVG9tYXN6IDx0b21h c3ouemF3YWR6a2lAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRD SF0gdmhvc3Q6IHJldHVybiByZWFkeSB3aGVuIGF0IGxlYXN0IDENCj4gdnJpbmcgaXMNCj4gPiBj b25maWd1cmVkDQo+ID4NCj4gPiBIaSBGYW4sDQo+ID4NCj4gPiBUaGUgcGF0Y2ggaXMgYWxyZWFk eSBtZXJnZWQgaW4gbWFpbiBicmFuY2g6DQo+ID4NCj4gPiBjb21taXQgMDk0MjRjM2Y3NDMxMTU1 NWMzM2QzZDRjZGMyY2EzNjU0Y2UxM2IxYw0KPiA+IEF1dGhvcjogTWF4aW1lIENvcXVlbGluIDxt YXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gPiBEYXRlOiAgIFdlZCBTZXAgMjMgMTE6NDk6 MDIgMjAyMCArMDIwMA0KPiA+DQo+ID4gICAgIHZob3N0OiBmaXggZXh0ZXJuYWwgYmFja2VuZHMg cmVhZGluZXNzDQo+ID4NCj4gPiAgICAgQ29tbWl0IGQwZmNjMzhmNWZhNCAoInZob3N0OiBpbXBy b3ZlIGRldmljZSByZWFkaW5lc3Mgbm90aWZpY2F0aW9ucyIpDQo+ID4gICAgIG1ha2VzIHRoZSBh c3N1bXB0aW9uIHRoYXQgZXZlcnkgVmlydGlvIGRldmljZXMgYXJlIGNvbnNpZGVyZWQNCj4gPiAg ICAgcmVhZHkgZm9yIHByZW9jZXNzaW5nIGFzIHNvb24gYXMgZmlyc3QgcXVldWUgcGFpciBpcyBj b25maWd1cmVkDQo+ID4gICAgIGFuZCBlbmFibGVkLg0KPiA+DQo+ID4gICAgIFdoaWxlIHRoaXMg aXMgdHJ1ZSBmb3IgVmlydGlvLW5ldCwgaXQgaXNuJ3QgZm9yIFZpcnRpby1zY3NpDQo+ID4gICAg IGFuZCBWaXJ0aW8tYmxrLg0KPiA+DQo+ID4gICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBv bmx5IG1ha2luZyB0aGlzIGFzc3VtcHRpb24gZm9yDQo+ID4gICAgIHRoZSBidWlsdGluIFZpcnRp by1uZXQgYmFja2VuZCwgYW5kIHJlc3RvcmVzIGJhY2sgdG8gcHJldmlvdXMNCj4gPiAgICAgYmVo YXZpb3VyIGZvciBvdGhlciBiYWNrZW5kcy4NCj4gPg0KPiA+ICAgICBGaXhlczogZDBmY2MzOGY1 ZmE0ICgidmhvc3Q6IGltcHJvdmUgZGV2aWNlIHJlYWRpbmVzcyBub3RpZmljYXRpb25zIikNCj4g Pg0KPiA+ICAgICBSZXBvcnRlZC1ieTogQ2hhbmdwZW5nIExpdSA8Y2hhbmdwZW5nLmxpdUBpbnRl bC5jb20+DQo+ID4gICAgIFNpZ25lZC1vZmYtYnk6IE1heGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNv cXVlbGluQHJlZGhhdC5jb20+DQo+ID4gICAgIFNpZ25lZC1vZmYtYnk6IENoYW5ncGVuZyBMaXUg PGNoYW5ncGVuZy5saXVAaW50ZWwuY29tPg0KPiA+ICAgICBSZXZpZXdlZC1ieTogQ2hlbmJvIFhp YSA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+DQo+ID4NCj4gPg0KPiA+IFJlZ2FyZHMsDQo+ID4gTWF4 aW1lDQo+ID4NCj4gPiBPbiA5LzI5LzIwIDM6NTQgUE0sIFpoYW5nLCBSb3kgRmFuIHdyb3RlOg0K PiA+ID4gSGkgTWF4aW1lLA0KPiA+ID4NCj4gPiA+IFZob3N0LWNyeXB0byBoYXMgZXhhY3RseSB0 aGUgc2FtZSBpc3N1ZS4gQ2hhbmdwZW5nJ3MgcGF0Y2ggZml4ZWQgaXQuDQo+ID4gPiBDb3VsZCB5 b3UgZ2l2ZSBtZSBhIHNob3V0IHdoZW4geW91ciBwYXRjaCBpcyBvdXQsIHNvIEkgY2FuIGhhdmUg YSB0ZXN0Pw0KPiA+ID4NCj4gPiA+IFJlZ2FyZHMsDQo+ID4gPiBGYW4NCj4gPiA+DQo+ID4gPj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+PiBGcm9tOiBkZXYgPGRldi1ib3VuY2Vz QGRwZGsub3JnPiBPbiBCZWhhbGYgT2YgTWF4aW1lIENvcXVlbGluDQo+ID4gPj4gU2VudDogV2Vk bmVzZGF5LCBTZXB0ZW1iZXIgMjMsIDIwMjAgOTowNSBBTQ0KPiA+ID4+IFRvOiBMaXUsIENoYW5n cGVuZyA8Y2hhbmdwZW5nLmxpdUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPiA+PiBDYzog bWF0YW5AbWVsbGFub3guY29tOyBYaWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+Ow0K PiA+IFphd2FkemtpLA0KPiA+ID4+IFRvbWFzeiA8dG9tYXN6Lnphd2FkemtpQGludGVsLmNvbT4N Cj4gPiA+PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0hdIHZob3N0OiByZXR1cm4gcmVh ZHkgd2hlbiBhdCBsZWFzdCAxDQo+IHZyaW5nDQo+ID4gaXMNCj4gPiA+PiBjb25maWd1cmVkDQo+ ID4gPj4NCj4gPiA+PiBIaSBDaGFuZ3BlbmcsDQo+ID4gPj4NCj4gPiA+PiBPbiA5LzIyLzIwIDk6 MjIgQU0sIExpdSwgQ2hhbmdwZW5nIHdyb3RlOg0KPiA+ID4+PiBIaSBNYXhpbWUsDQo+ID4gPj4+ DQo+ID4gPj4+IFRoZSBjb2RlIHlvdSB3cm90ZSBzdGlsbCBuZWVkIHRvIGNoZWNrIG5yX3ZyaW5n IGlzIDAgb3Igbm90LCBzZWUgdGhlDQo+IGV4dHJhDQo+ID4gMg0KPiA+ID4+IGxpbmVzIGFkZGVk IGJlbG93LCB0aGVuIGl0IGNhbiB3b3JrIHdpdGggbXkgdGVzdHMgZm9yIG5vdywgY291bGQgeW91 DQo+ID4gc3VibWl0DQo+ID4gPj4gYSBwYXRjaCB0byBEUERLIHRvIGFwcGx5IHRoZSBwYXRjaD8g VGhhbmtzLg0KPiA+ID4+DQo+ID4gPj4gVGhhbmtzISBZb3UgYXJlIHJpZ2h0Lg0KPiA+ID4+DQo+ ID4gPj4gSSdsbCBzZW5kIHRoZSBwYXRjaCBub3cgaW5jbHVkaW5nIHlvdXIgZml4Lg0KPiA+ID4+ DQo+ID4gPj4+IEJUVywgZHBkayB2aG9zdCBsaWJyYXJ5IHN0aWxsIGhhcyBhbiBpc3N1ZSwgaXQn cyBub3QgcmVsYXRlZCB3aXRoDQo+IGNvbW1pdA0KPiA+ID4+IGQwZmNjMzhmLCB0aGUgR3Vlc3Qg ZHJpdmVyIG1heSBvbmx5IGtpY2sgMSB2cmluZyBldmVuIGl0IHNlbmRzDQo+ID4gTlVNX1FVRVVF Uw0KPiA+ID4+IHdpdGggYSBiaWdnZXIgdmFsdWUsDQo+ID4gPj4+IHRoaXMgaXMgcXVpdGUgY29t bW9uIGluIHNlYWJpb3MsIGUuZzogdmlydGlvX2JsayB3aWxsIG9ubHkgdXNlIDENCj4gdnJpbmcg aW4NCj4gPiA+PiBzZWFiaW9zLCB0aGlzIG1lYW5zIHRoZSBiYWNrZW5kIHdpbGwgbmV2ZXIgZ2V0 IHN0YXJ0ZWQgaW4gQklPUy4NCj4gPiA+Pj4NCj4gPiA+Pg0KPiA+ID4+IElmIEkgdW5kZXJzdGFu ZCBjb3JyZWN0bHksIHRoaXMgaXMgbm90IGEgcmVncmVzc2lvbiBidXQgaGFzIGFsd2F5cw0KPiBi ZWVuDQo+ID4gPj4gaGVyZT8NCj4gPiA+Pg0KPiA+ID4+IFdlIHNob3VsZCB3b3JrIG9uIGZpeGlu ZyBpdCBhbnl3YXksIGJ1dCBJJ20gbm90IHN1cmUgdG8gaGF2ZSB0aGUgdGltZQ0KPiA+ID4+IGZv ciB2MjAuMTEuMC4gSXQgd291bGQgYmUgZ3JlYXQgaWYgeW91IGNvdWxkIHByb3ZpZGUgc3RlcHMg dG8NCj4gcmVwcm9kdWNlDQo+ID4gPj4gaXQuIE1heWJlIGZpbGUgYSBidWcgaW4gRFBESyB0cmFj a2VyPw0KPiA+ID4+DQo+ID4gPj4gVGhhbmtzLA0KPiA+ID4+IE1heGltZQ0KPiA+ID4+DQo+ID4g Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+Pj4gRnJvbTogTWF4aW1lIENv cXVlbGluIDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gPiA+Pj4+IFNlbnQ6IE1vbmRh eSwgU2VwdGVtYmVyIDIxLCAyMDIwIDY6MjAgUE0NCj4gPiA+Pj4+IFRvOiBMaXUsIENoYW5ncGVu ZyA8Y2hhbmdwZW5nLmxpdUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPiA+Pj4+IENjOiBt YXRhbkBtZWxsYW5veC5jb207IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT47DQo+ ID4gPj4gWmF3YWR6a2ksDQo+ID4gPj4+PiBUb21hc3ogPHRvbWFzei56YXdhZHpraUBpbnRlbC5j b20+DQo+ID4gPj4+PiBTdWJqZWN0OiBSZTogW1BBVENIXSB2aG9zdDogcmV0dXJuIHJlYWR5IHdo ZW4gYXQgbGVhc3QgMSB2cmluZyBpcw0KPiA+ID4+IGNvbmZpZ3VyZWQNCj4gPiA+Pj4+DQo+ID4g Pj4+Pg0KPiA+ID4+Pj4NCj4gPiA+Pj4+IE9uIDkvMjEvMjAgNzowMyBBTSwgTGl1LCBDaGFuZ3Bl bmcgd3JvdGU6DQo+ID4gPj4+Pj4gSGkgTWF4aW1lLA0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPj4+Pj4+IEZyb206IE1heGltZSBDb3F1ZWxp biA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+ID4gPj4+Pj4+IFNlbnQ6IEZyaWRheSwg U2VwdGVtYmVyIDE4LCAyMDIwIDU6NTQgUE0NCj4gPiA+Pj4+Pj4gVG86IExpdSwgQ2hhbmdwZW5n IDxjaGFuZ3BlbmcubGl1QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+ID4+Pj4+PiBDYzog bWF0YW5AbWVsbGFub3guY29tOyBYaWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+Ow0K PiA+ID4+IFphd2FkemtpLA0KPiA+ID4+Pj4+PiBUb21hc3ogPHRvbWFzei56YXdhZHpraUBpbnRl bC5jb20+DQo+ID4gPj4+Pj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIHZob3N0OiByZXR1cm4gcmVh ZHkgd2hlbiBhdCBsZWFzdCAxIHZyaW5nIGlzDQo+ID4gPj4gY29uZmlndXJlZA0KPiA+ID4+Pj4+ Pg0KPiA+ID4+Pj4+PiBIaSBDaGFuZ3BlbmcsDQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IE9uIDkv MS8yMCA5OjA3IEFNLCBDaGFuZ3BlbmcgTGl1IHdyb3RlOg0KPiA+ID4+Pj4+Pj4gQ29tbWl0IGQw ZmNjMzhmICJ2aG9zdDogaW1wcm92ZSBkZXZpY2UgcmVhZGluZXNzIG5vdGlmaWNhdGlvbnMiDQo+ ID4gPj4+Pj4+PiBuZWVkcyBhdCBsZWFzdCAyIHZyaW5ncyBiZWZvcmUgY2hhbmdpbmcgdGhlIGRl dmljZSBzdGF0ZSB0bw0KPiA+ID4+Pj4+Pj4gcmVhZHksIHRoaXMgaXMgZmluZSBmb3IgTkVUIGRl dmljZSBidXQgbm90IGNvcnJlY3QgZm9yIEJMSw0KPiA+ID4+Pj4+Pj4gZGV2aWNlLg0KPiA+ID4+ Pj4+Pj4NCj4gPiA+Pj4+Pj4+IFRoZSBudW1iZXIgb2YgdnJpbmcgcmVxdWlyZWQgc2hvdWxkIGJl IGJhc2VkIG9uIHRoZSBkZXZpY2UNCj4gPiA+Pj4+Pj4+IHR5cGUsIGUuZy4gdmlydGlvX3Njc2kg ZGV2aWNlIG5lZWRzIGF0IGxlYXN0IDMgdnJpbmdzLCBhbmQNCj4gPiA+Pj4+Pj4+IHZpcnRpb19u ZXQgbmVlZHMgYXQgbGVhc3QgMiB2cmluZ3MsIHZpcnRpb19ibGsgbmVlZHMgYXQgbGVhc3QNCj4g PiA+Pj4+Pj4+IDEgdnJpbmcuIFNvIGluc3RlYWQgb2YgZG9pbmcgaXQgaW4gdmhvc3QgbGlicmFy eSBpdCdzIGJldHRlcg0KPiA+ID4+Pj4+Pj4gdGhhdCB0aGUgYXBwbGljYXRpb24gd2hvIHVzZXMg dGhpcyBsaWJyYXJ5IGRvIHRoaXMgY2hlY2suDQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4gU2ln bmVkLW9mZi1ieTogQ2hhbmdwZW5nIExpdSA8Y2hhbmdwZW5nLmxpdUBpbnRlbC5jb20+DQo+ID4g Pj4+Pj4+PiAtLS0NCj4gPiA+Pj4+Pj4+ICBsaWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYyB8 IDIgKy0NCj4gPiA+Pj4+Pj4+ICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkNCj4gPiA+Pj4+Pj4+DQo+ID4gPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0 ZV92aG9zdC92aG9zdF91c2VyLmMNCj4gPiA+PiBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNl ci5jDQo+ID4gPj4+Pj4+PiBpbmRleCBjM2M5MjRmLi40ZDE4ODNjIDEwMDY0NA0KPiA+ID4+Pj4+ Pj4gLS0tIGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMNCj4gPiA+Pj4+Pj4+ICsrKyBi L2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4gPj4+Pj4+PiBAQCAtMTM0Myw3ICsx MzQzLDcgQEANCj4gPiA+Pj4+Pj4+ICAJICAgICAgIHZxLT5lbmFibGVkOw0KPiA+ID4+Pj4+Pj4g IH0NCj4gPiA+Pj4+Pj4+DQo+ID4gPj4+Pj4+PiAtI2RlZmluZSBWSVJUSU9fREVWX05VTV9WUVNf VE9fQkVfUkVBRFkgMnUNCj4gPiA+Pj4+Pj4+ICsjZGVmaW5lIFZJUlRJT19ERVZfTlVNX1ZRU19U T19CRV9SRUFEWSAxdQ0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiBJIHRoaW5rIGl0IHdvdWxkIGJl IGJldHRlciB0byByZWx5IG9uDQo+ID4gVklSVElPX0RFVl9CVUlMVElOX1ZJUlRJT19ORVQNCj4g PiA+PiB0bw0KPiA+ID4+Pj4+PiBrbm93IHdoZXRoZXIgaXQgc2hvdWxkIHdhaXQgZm9yIDEgb3Ig MiBxdWV1ZXMgdG8gZGV0ZXJtaW5lIGlmDQo+IHJlYWR5Lg0KPiA+ID4+Pj4+IHZpcnRpb19zY3Np IG5lZWRzIGF0IGxlYXN0IDMgdnJpbmdzLCBzbyBib3RoIDEgYW5kIDIgY2FuJ3Qgd29yaw0KPiBm b3INCj4gPiA+PiB2aXJ0aW9fc2NzaQ0KPiA+ID4+Pj4gZGV2aWNlLg0KPiA+ID4+Pj4+IENhbiB3 ZSBleHBvc2UgYW4gQVBJIHRvIGxldCB0aGUgY2FsbGVyIHRvIHNldCB0aGUgbWluaW11bSBudW1i ZXINCj4gb2YNCj4gPiA+PiB2cmluZ3MNCj4gPiA+Pj4+IHJlcXVpcmVkIGJ5DQo+ID4gPj4+Pj4g dmlydGlvIGRldmljZT8NCj4gPiA+Pj4+DQo+ID4gPj4+PiBPSywgdGhhbmtzIGZvciBwb2ludGlu ZyB0aGlzIG91dCwgSSBtaXNzZWQgaXQuDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gSSdtIG5vdCBpbiBm YXZvciBvZiBpbnRyb2R1Y2luZyBhbiBuZXcgQVBJIGZvciB0aGlzLg0KPiA+ID4+Pj4gSSBwcm9w b3NlIHRvIHJlc3RyaWN0IGNoYW5nZSBpbnRyb2R1Y2VkIGluIGNvbW1pdCBkMGZjYzM4ZiB0byB0 aGUNCj4gPiA+Pj4+IGJ1aWx0aW4gbmV0IGJhY2tlbmQuIENhbiB5b3UgaGF2ZSBhIHRyeSB3aXRo IGJlbG93IHBhdGNoPw0KPiA+ID4+Pj4NCj4gPiA+Pj4+IFRoYW5rcyBpbiBhZHZhbmNlLA0KPiA+ ID4+Pj4gTWF4aW1lDQo+ID4gPj4+Pg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+ Pj4gIHN0YXRpYyBpbnQNCj4gPiA+Pj4+Pj4+ICB2aXJ0aW9faXNfcmVhZHkoc3RydWN0IHZpcnRp b19uZXQgKmRldikNCj4gPiA+Pj4+Pj4+DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+PiBk aWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMNCj4gPiBiL2xpYi9saWJy dGVfdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4gPj4+PiBpbmRleCA1MDEyMThlMTkyLi5mNTcxZWY5 M2ZjIDEwMDY0NA0KPiA+ID4+Pj4gLS0tIGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMN Cj4gPiA+Pj4+ICsrKyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4gPj4+PiBA QCAtMTM0MywyMSArMTM0MywyNSBAQCB2cV9pc19yZWFkeShzdHJ1Y3QgdmlydGlvX25ldCAqZGV2 LCBzdHJ1Y3QNCj4gPiA+Pj4+IHZob3N0X3ZpcnRxdWV1ZSAqdnEpDQo+ID4gPj4+PiAgICAgICAg ICAgICAgICB2cS0+ZW5hYmxlZDsNCj4gPiA+Pj4+ICB9DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gLSNk ZWZpbmUgVklSVElPX0RFVl9OVU1fVlFTX1RPX0JFX1JFQURZIDJ1DQo+ID4gPj4+PiArI2RlZmlu ZSBWSVJUSU9fQlVJTFRJTl9OVU1fVlFTX1RPX0JFX1JFQURZIDJ1DQo+ID4gPj4+Pg0KPiA+ID4+ Pj4gIHN0YXRpYyBpbnQNCj4gPiA+Pj4+ICB2aXJ0aW9faXNfcmVhZHkoc3RydWN0IHZpcnRpb19u ZXQgKmRldikNCj4gPiA+Pj4+ICB7DQo+ID4gPj4+PiAgICAgICAgIHN0cnVjdCB2aG9zdF92aXJ0 cXVldWUgKnZxOw0KPiA+ID4+Pj4gLSAgICAgICB1aW50MzJfdCBpOw0KPiA+ID4+Pj4gKyAgICAg ICB1aW50MzJfdCBpLCBucl92cmluZyA9IGRldi0+bnJfdnJpbmc7DQo+ID4gPj4+Pg0KPiA+ID4+ Pj4gICAgICAgICBpZiAoZGV2LT5mbGFncyAmIFZJUlRJT19ERVZfUkVBRFkpDQo+ID4gPj4+PiAg ICAgICAgICAgICAgICAgcmV0dXJuIDE7DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gLSAgICAgICBpZiAo ZGV2LT5ucl92cmluZyA8IFZJUlRJT19ERVZfTlVNX1ZRU19UT19CRV9SRUFEWSkNCj4gPiA+Pj4+ IC0gICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiA+Pj4+ICsgICAgICAgaWYgKGRldi0+Zmxh Z3MgJiBWSVJUSU9fREVWX0JVSUxUSU5fVklSVElPX05FVCkgew0KPiA+ID4+Pj4gKyAgICAgICAg ICAgICAgIG5yX3ZyaW5nID0gVklSVElPX0JVSUxUSU5fTlVNX1ZRU19UT19CRV9SRUFEWTsNCj4g PiA+Pj4+ICsNCj4gPiA+Pj4+ICsgICAgICAgICAgICAgICBpZiAoZGV2LT5ucl92cmluZyA8IG5y X3ZyaW5nKQ0KPiA+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4g Pj4+PiArICAgICAgIH0NCj4gPiA+Pj4NCj4gPiA+Pj4gICAgKyAgICAgICAgIGlmKCFucl92cmlu ZykNCj4gPiA+Pj4gICAgKyAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiA+Pj4+DQo+ID4gPj4+ PiAtICAgICAgIGZvciAoaSA9IDA7IGkgPCBWSVJUSU9fREVWX05VTV9WUVNfVE9fQkVfUkVBRFk7 IGkrKykgew0KPiA+ID4+Pj4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnJfdnJpbmc7IGkrKykg ew0KPiA+ID4+Pj4gICAgICAgICAgICAgICAgIHZxID0gZGV2LT52aXJ0cXVldWVbaV07DQo+ID4g Pj4+Pg0KPiA+ID4+Pj4gICAgICAgICAgICAgICAgIGlmICghdnFfaXNfcmVhZHkoZGV2LCB2cSkp DQo+ID4gPj4+DQo+ID4gPg0KDQo=