From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-eopbgr820040.outbound.protection.outlook.com [40.107.82.40]) by gabe.freedesktop.org (Postfix) with ESMTPS id A652989149 for ; Tue, 9 Apr 2019 13:32:57 +0000 (UTC) From: "Li, Sun peng (Leo)" Date: Tue, 9 Apr 2019 13:32:55 +0000 Message-ID: <14121ee0-66c4-fdfa-df3d-48eb32efe1fc@amd.com> References: <20190402174522.19695-1-nicholas.kazlauskas@amd.com> In-Reply-To: <20190402174522.19695-1-nicholas.kazlauskas@amd.com> Content-Language: en-US Content-ID: <5E081D43E909864A945E1D323B6ECA8E@namprd12.prod.outlook.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t] lib/igt_fb: Create AMD YUV buffers with AMD GEM IOCTL List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: "Kazlauskas, Nicholas" , "igt-dev@lists.freedesktop.org" List-ID: DQoNCk9uIDIwMTktMDQtMDIgMTo0NSBwLm0uLCBOaWNob2xhcyBLYXpsYXVza2FzIHdyb3RlOg0K PiBUaGUga21zdGVzdF9kdW1iX2NyZWF0ZSBBUEkgaXNuJ3Qgc3VpdGFibGUgZm9yIGNyZWF0aW5n IG11bHRpLXBsYW5hcg0KPiBidWZmZXJzIHNpbmNlIGl0IHRyaWVzIHRvIGNhbGN1bGF0ZSB0aGUg c2l6ZSBiYXNlZCBvbiB0aGUgZmlyc3QgcGxhbmUncw0KPiBwaXRjaCBvbmx5Lg0KPiANCj4gQU1E R1BVIHJlcXVpcmVzIHRoYXQgdGhlIGx1bWEgcGl0Y2ggYmUgYWxpZ25lZCB0byAyNTYgZm9yIFlV ViBidWZmZXJzDQo+IHdoaWNoIHJlc3VsdHMgaW4gY3Jhc2hlcyBvbiBrbXNfcGxhbmVAcGl4ZWwt Zm9ybWF0LXBpcGUtKi1wbGFuZXMgdGVzdHMNCj4gd2hlbiB1c2luZyBrbXN0ZXN0X2R1bWJfY3Jl YXRlIHNpbmNlIHRoZSBidWZmZXIgcmV0dXJuZWQgaXMgc21hbGxlciB0aGFuDQo+IG5lZWRlZCAo MTYzODQgc2l6ZSByZXR1cm5lZCwgMjQ1NzYgc2l6ZSByZXF1aXJlZCkuDQo+IA0KPiBDcmVhdGUg YW5kIG1hcCB0aGUgYnVmZmVyIHdpdGggdGhlIGNvcnJlY3Qgc2l6ZSBieSB1c2luZyB0aGUgQU1E IGhlbHBlcnMNCj4gaW50cm9kdWNlZCBieSB0aGlzIHBhdGNoOiBpZ3RfYW1kX2NyZWF0ZV9ibyBh bmQgaWd0X2FtZF9tbWFwX2JvLg0KPiANCj4gQ2M6IEhhcnJ5IFdlbnRsYW5kIDxoYXJyeS53ZW50 bGFuZEBhbWQuY29tPg0KPiBDYzogTGVvIExpIDxzdW5wZW5nLmxpQGFtZC5jb20+DQoNClJldmll d2VkLWJ5OiBMZW8gTGkgPHN1bnBlbmcubGlAYW1kLmNvbT4NCg0KVGhhbmtzLA0KTGVvDQoNCj4g U2lnbmVkLW9mZi1ieTogTmljaG9sYXMgS2F6bGF1c2thcyA8bmljaG9sYXMua2F6bGF1c2thc0Bh bWQuY29tPg0KPiAtLS0NCj4gICBsaWIvTWFrZWZpbGUuc291cmNlcyB8ICAyICsrDQo+ICAgbGli L2lndF9hbWQuYyAgICAgICAgfCA1NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKw0KPiAgIGxpYi9pZ3RfYW1kLmggICAgICAgIHwgMzEgKysrKysrKysrKysrKysr KysrKysrKysrDQo+ICAgbGliL2lndF9mYi5jICAgICAgICAgfCAgOSArKysrKystDQo+ICAgbGli L21lc29uLmJ1aWxkICAgICAgfCAgMSArDQo+ICAgNSBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9pZ3RfYW1k LmMNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2lndF9hbWQuaA0KPiANCj4gZGlmZiAtLWdp dCBhL2xpYi9NYWtlZmlsZS5zb3VyY2VzIGIvbGliL01ha2VmaWxlLnNvdXJjZXMNCj4gaW5kZXgg ZTAwMzQ3ZjkuLmExZDI1MzUxIDEwMDY0NA0KPiAtLS0gYS9saWIvTWFrZWZpbGUuc291cmNlcw0K PiArKysgYi9saWIvTWFrZWZpbGUuc291cmNlcw0KPiBAQCAtMTE1LDYgKzExNSw4IEBAIGxpYl9z b3VyY2VfbGlzdCA9CSAJXA0KPiAgIAlpZ3RfdjNkLmgJCVwNCj4gICAJaWd0X3ZjNC5jCQlcDQo+ ICAgCWlndF92YzQuaAkJXA0KPiArCWlndF9hbWQuYwkJXA0KPiArCWlndF9hbWQuaAkJXA0KPiAg IAkkKE5VTEwpDQo+ICAgDQo+ICAgLlBIT05ZOiB2ZXJzaW9uLmgudG1wDQo+IGRpZmYgLS1naXQg YS9saWIvaWd0X2FtZC5jIGIvbGliL2lndF9hbWQuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiBpbmRleCAwMDAwMDAwMC4uYWJkM2FkOTYNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9saWIv aWd0X2FtZC5jDQo+IEBAIC0wLDAgKzEsNTYgQEANCj4gKy8qDQo+ICsgKiBDb3B5cmlnaHQgMjAx OSBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuDQo+ICsgKg0KPiArICogUGVybWlzc2lvbiBp cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n IGENCj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0 aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksDQo+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2Fy ZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uDQo+ICsg KiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJp YnV0ZSwgc3VibGljZW5zZSwNCj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdh cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQ0KPiArICogU29mdHdhcmUgaXMg ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoN Cj4gKyAqDQo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz aW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbg0KPiArICogYWxsIGNvcGllcyBvciBzdWJz dGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuDQo+ICsgKg0KPiArICogVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY UFJFU1MgT1INCj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLA0KPiArICogRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMDQo+ ICsgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBB TlkgQ0xBSU0sIERBTUFHRVMgT1INCj4gKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB TiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLA0KPiArICogQVJJU0lORyBG Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNF IE9SDQo+ICsgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuDQo+ICsgKi8NCj4gKw0K PiArI2luY2x1ZGUgImlndF9hbWQuaCINCj4gKyNpbmNsdWRlICJpZ3QuaCINCj4gKyNpbmNsdWRl IDxhbWRncHVfZHJtLmg+DQo+ICsNCj4gK3VpbnQzMl90IGlndF9hbWRfY3JlYXRlX2JvKGludCBm ZCwgdWludDY0X3Qgc2l6ZSkNCj4gK3sNCj4gKwl1bmlvbiBkcm1fYW1kZ3B1X2dlbV9jcmVhdGUg Y3JlYXRlOw0KPiArDQo+ICsJbWVtc2V0KCZjcmVhdGUsIDAsIHNpemVvZihjcmVhdGUpKTsNCj4g KwljcmVhdGUuaW4uYm9fc2l6ZSA9IHNpemU7DQo+ICsJY3JlYXRlLmluLmFsaWdubWVudCA9IDI1 NjsNCj4gKwljcmVhdGUuaW4uZG9tYWlucyA9IEFNREdQVV9HRU1fRE9NQUlOX1ZSQU07DQo+ICsJ Y3JlYXRlLmluLmRvbWFpbl9mbGFncyA9IEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVR VUlSRUQNCj4gKwkJCQkgfCBBTURHUFVfR0VNX0NSRUFURV9WUkFNX0NMRUFSRUQ7DQo+ICsNCj4g Kwlkb19pb2N0bChmZCwgRFJNX0lPQ1RMX0FNREdQVV9HRU1fQ1JFQVRFLCAmY3JlYXRlKTsNCj4g KwlpZ3RfYXNzZXJ0KGNyZWF0ZS5vdXQuaGFuZGxlKTsNCj4gKw0KPiArCXJldHVybiBjcmVhdGUu b3V0LmhhbmRsZTsNCj4gK30NCj4gKw0KPiArdm9pZCAqaWd0X2FtZF9tbWFwX2JvKGludCBmZCwg dWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCBzaXplLCBpbnQgcHJvdCkNCj4gK3sNCj4gKwl1bmlv biBkcm1fYW1kZ3B1X2dlbV9tbWFwIG1hcDsNCj4gKwl2b2lkICpwdHI7DQo+ICsNCj4gKwltZW1z ZXQoJm1hcCwgMCwgc2l6ZW9mKG1hcCkpOw0KPiArCW1hcC5pbi5oYW5kbGUgPSBoYW5kbGU7DQo+ ICsNCj4gKwlkb19pb2N0bChmZCwgRFJNX0lPQ1RMX0FNREdQVV9HRU1fTU1BUCwgJm1hcCk7DQo+ ICsNCj4gKwlwdHIgPSBtbWFwKDAsIHNpemUsIHByb3QsIE1BUF9TSEFSRUQsIGZkLCBtYXAub3V0 LmFkZHJfcHRyKTsNCj4gKwlyZXR1cm4gcHRyID09IE1BUF9GQUlMRUQgPyBOVUxMIDogcHRyOw0K PiArfQ0KPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9hbWQuaCBiL2xpYi9pZ3RfYW1kLmgNCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAuLmY2M2QyNmY0DQo+IC0tLSAvZGV2 L251bGwNCj4gKysrIGIvbGliL2lndF9hbWQuaA0KPiBAQCAtMCwwICsxLDMxIEBADQo+ICsvKg0K PiArICogQ29weXJpZ2h0IDIwMTkgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLg0KPiArICoN Cj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh bnkgcGVyc29uIG9idGFpbmluZyBhDQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLA0KPiArICogdG8g ZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv dXQgbGltaXRhdGlvbg0KPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy Z2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsDQo+ICsgKiBhbmQvb3Igc2VsbCBj b3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUN Cj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnM6DQo+ICsgKg0KPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4NCj4gKyAq IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLg0KPiAr ICoNCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB TlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SDQo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVU IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwNCj4gKyAq IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJ TiBOTyBFVkVOVCBTSEFMTA0KPiArICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9S KFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SDQo+ICsgKiBPVEhFUiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lT RSwNCj4gKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUg U09GVFdBUkUgT1IgVEhFIFVTRSBPUg0KPiArICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRX QVJFLg0KPiArICovDQo+ICsNCj4gKyNpZm5kZWYgSUdUX0FNRF9IDQo+ICsjZGVmaW5lIElHVF9B TURfSA0KPiArDQo+ICsjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ICsNCj4gK3VpbnQzMl90IGlndF9h bWRfY3JlYXRlX2JvKGludCBmZCwgdWludDY0X3Qgc2l6ZSk7DQo+ICt2b2lkICppZ3RfYW1kX21t YXBfYm8oaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVpbnQ2NF90IHNpemUsIGludCBwcm90KTsN Cj4gKw0KPiArI2VuZGlmIC8qIElHVF9BTURfSCAqLw0KPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9m Yi5jIGIvbGliL2lndF9mYi5jDQo+IGluZGV4IDZhZGY0MjIyLi5mNWM5YTlmMSAxMDA2NDQNCj4g LS0tIGEvbGliL2lndF9mYi5jDQo+ICsrKyBiL2xpYi9pZ3RfZmIuYw0KPiBAQCAtMzgsNiArMzgs NyBAQA0KPiAgICNpbmNsdWRlICJpZ3Rfa21zLmgiDQo+ICAgI2luY2x1ZGUgImlndF9tYXRyaXgu aCINCj4gICAjaW5jbHVkZSAiaWd0X3ZjNC5oIg0KPiArI2luY2x1ZGUgImlndF9hbWQuaCINCj4g ICAjaW5jbHVkZSAiaWd0X3g4Ni5oIg0KPiAgICNpbmNsdWRlICJpb2N0bF93cmFwcGVycy5oIg0K PiAgICNpbmNsdWRlICJpbnRlbF9iYXRjaGJ1ZmZlci5oIg0KPiBAQCAtNzYzLDcgKzc2NCw4IEBA IHN0YXRpYyBpbnQgY3JlYXRlX2JvX2Zvcl9mYihzdHJ1Y3QgaWd0X2ZiICpmYikNCj4gICAJICog dGhlbSwgc28gd2UgbmVlZCB0byBtYWtlIHN1cmUgdG8gdXNlIGEgZGV2aWNlIEJPIHRoZW4uDQo+ ICAgCSAqLw0KPiAgIAlpZiAoZmItPm1vZGlmaWVyIHx8IGZiLT5zaXplIHx8IGZiLT5zdHJpZGVz WzBdIHx8DQo+IC0JICAgIChpc19pOTE1X2RldmljZShmZCkgJiYgaWd0X2Zvcm1hdF9pc195dXYo ZmItPmRybV9mb3JtYXQpKSkNCj4gKwkgICAgKGlzX2k5MTVfZGV2aWNlKGZkKSAmJiBpZ3RfZm9y bWF0X2lzX3l1dihmYi0+ZHJtX2Zvcm1hdCkpIHx8DQo+ICsJICAgIChpc19hbWRncHVfZGV2aWNl KGZkKSAmJiBpZ3RfZm9ybWF0X2lzX3l1dihmYi0+ZHJtX2Zvcm1hdCkpKQ0KPiAgIAkJZGV2aWNl X2JvID0gdHJ1ZTsNCj4gICANCj4gICAJLyogU2V0cyBvZmZldHMgYW5kIHN0cmlkZSBpZiBuZWNl c3NhcnkuICovDQo+IEBAIC03ODcsNiArNzg5LDggQEAgc3RhdGljIGludCBjcmVhdGVfYm9fZm9y X2ZiKHN0cnVjdCBpZ3RfZmIgKmZiKQ0KPiAgIAkJCWlmIChmYi0+bW9kaWZpZXIgPT0gRFJNX0ZP Uk1BVF9NT0RfQlJPQURDT01fVkM0X1RfVElMRUQpDQo+ICAgCQkJCWlndF92YzRfc2V0X3RpbGlu ZyhmZCwgZmItPmdlbV9oYW5kbGUsDQo+ICAgCQkJCQkJICAgZmItPm1vZGlmaWVyKTsNCj4gKwkJ fSBlbHNlIGlmIChpc19hbWRncHVfZGV2aWNlKGZkKSkgew0KPiArCQkJZmItPmdlbV9oYW5kbGUg PSBpZ3RfYW1kX2NyZWF0ZV9ibyhmZCwgZmItPnNpemUpOw0KPiAgIAkJfSBlbHNlIHsNCj4gICAJ CQlpZ3RfYXNzZXJ0KGZhbHNlKTsNCj4gICAJCX0NCj4gQEAgLTE4MzIsNiArMTgzNiw5IEBAIHN0 YXRpYyB2b2lkICptYXBfYm8oaW50IGZkLCBzdHJ1Y3QgaWd0X2ZiICpmYikNCj4gICAJZWxzZSBp ZiAoaXNfdmM0X2RldmljZShmZCkpDQo+ICAgCQlwdHIgPSBpZ3RfdmM0X21tYXBfYm8oZmQsIGZi LT5nZW1faGFuZGxlLCBmYi0+c2l6ZSwNCj4gICAJCQkJICAgICAgUFJPVF9SRUFEIHwgUFJPVF9X UklURSk7DQo+ICsJZWxzZSBpZiAoaXNfYW1kZ3B1X2RldmljZShmZCkpDQo+ICsJCXB0ciA9IGln dF9hbWRfbW1hcF9ibyhmZCwgZmItPmdlbV9oYW5kbGUsIGZiLT5zaXplLA0KPiArCQkJCSAgICAg IFBST1RfUkVBRCB8IFBST1RfV1JJVEUpOw0KPiAgIAllbHNlDQo+ICAgCQlpZ3RfYXNzZXJ0KGZh bHNlKTsNCj4gICANCj4gZGlmZiAtLWdpdCBhL2xpYi9tZXNvbi5idWlsZCBiL2xpYi9tZXNvbi5i dWlsZA0KPiBpbmRleCA4OWRlMDZlNi4uYTg0NjI5MzMgMTAwNjQ0DQo+IC0tLSBhL2xpYi9tZXNv bi5idWlsZA0KPiArKysgYi9saWIvbWVzb24uYnVpbGQNCj4gQEAgLTU0LDYgKzU0LDcgQEAgbGli X3NvdXJjZXMgPSBbDQo+ICAgCSdpZ3RfdjNkLmMnLA0KPiAgIAknaWd0X3ZjNC5jJywNCj4gICAJ J2lndF9wc3IuYycsDQo+ICsJJ2lndF9hbWQuYycNCj4gICBdDQo+ICAgDQo+ICAgbGliX2RlcHMg PSBbDQo+IA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K aWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2