From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 302B589EB1 for ; Fri, 5 Apr 2019 19:26:46 +0000 (UTC) Date: Fri, 5 Apr 2019 22:26:42 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Message-ID: <20190405192642.GS3888@intel.com> References: <1551838717-5283-1-git-send-email-kevin.strasser@intel.com> <1551838717-5283-5-git-send-email-kevin.strasser@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1551838717-5283-5-git-send-email-kevin.strasser@intel.com> Subject: Re: [igt-dev] [RFC v2 4/5] lib/igt_fb: Add support for fp16 formats through conversion 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: Kevin Strasser Cc: igt-dev@lists.freedesktop.org List-ID: T24gVHVlLCBNYXIgMDUsIDIwMTkgYXQgMDY6MTg6MzZQTSAtMDgwMCwgS2V2aW4gU3RyYXNzZXIg d3JvdGU6Cj4gRm9sbG93IGRlc2lnbiBvZiBQMDF4IGNvbnZlcnNpb24gdG8gc3VwcG9ydCB0ZXN0 cyBuZWVkaW5nIHBpeGVsIGRhdGEgaW4gZnAxNgo+IChoYWxmIGZsb2F0IDY0IGJwcCkuCj4gCj4g cmZjMjoKPiAtIENvbnZlcnQgd2hvbGUgcm93cyBvZiBwaXhlbHMgaWYgcG9zc2libGUgKE1hYXJ0 ZW4pCj4gLSBUcmVhdCByZ2J4IGxpa2UgcmdiYSwgbGV0IGhhcmR3YXJlIGlnbm9yZSBhbHBoYSAo TWFhcnRlbikKPiAKPiBTaWduZWQtb2ZmLWJ5OiBLZXZpbiBTdHJhc3NlciA8a2V2aW4uc3RyYXNz ZXJAaW50ZWwuY29tPgoKbGd0bQoKUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cgo+IC0tLQo+ICBsaWIvaWd0X2ZiLmMgfCAxNDggKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0K PiAgbGliL2lndF9mYi5oIHwgICAxICsKPiAgMiBmaWxlcyBjaGFuZ2VkLCAxNDggaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQo+IAo+IGRpZmYgLS1naXQgYS9saWIvaWd0X2ZiLmMgYi9saWIv aWd0X2ZiLmMKPiBpbmRleCA5ZGNhMmE0Li40NTFiMmMyIDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3Rf ZmIuYwo+ICsrKyBiL2xpYi9pZ3RfZmIuYwo+IEBAIC0zNSw2ICszNSw3IEBACj4gICNpbmNsdWRl ICJpZ3RfYXV4LmgiCj4gICNpbmNsdWRlICJpZ3RfY29sb3JfZW5jb2RpbmcuaCIKPiAgI2luY2x1 ZGUgImlndF9mYi5oIgo+ICsjaW5jbHVkZSAiaWd0X2hhbGZmbG9hdC5oIgo+ICAjaW5jbHVkZSAi aWd0X2ttcy5oIgo+ICAjaW5jbHVkZSAiaWd0X21hdHJpeC5oIgo+ICAjaW5jbHVkZSAiaWd0X3Zj NC5oIgo+IEBAIC0xNjEsNiArMTYyLDIyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZm9ybWF0X2Rl c2Nfc3RydWN0IHsKPiAgCSAgLm51bV9wbGFuZXMgPSAxLCAucGxhbmVfYnBwID0geyAzMiwgfSwK PiAgCSAgLmhzdWIgPSAxLCAudnN1YiA9IDEsCj4gIAl9LAo+ICsJeyAubmFtZSA9ICJYUkdCMTYx NjE2MTZGIiwgLmRlcHRoID0gLTEsIC5kcm1faWQgPSBEUk1fRk9STUFUX1hSR0IxNjE2MTYxNkYs Cj4gKwkgIC5jYWlyb19pZCA9IENBSVJPX0ZPUk1BVF9SR0JBMTI4RiwKPiArCSAgLm51bV9wbGFu ZXMgPSAxLCAucGxhbmVfYnBwID0geyA2NCwgfSwKPiArCX0sCj4gKwl7IC5uYW1lID0gIkFSR0Ix NjE2MTYxNkYiLCAuZGVwdGggPSAtMSwgLmRybV9pZCA9IERSTV9GT1JNQVRfQVJHQjE2MTYxNjE2 RiwKPiArCSAgLmNhaXJvX2lkID0gQ0FJUk9fRk9STUFUX1JHQkExMjhGLAo+ICsJICAubnVtX3Bs YW5lcyA9IDEsIC5wbGFuZV9icHAgPSB7IDY0LCB9LAo+ICsJfSwKPiArCXsgLm5hbWUgPSAiWEJH UjE2MTYxNjE2RiIsIC5kZXB0aCA9IC0xLCAuZHJtX2lkID0gRFJNX0ZPUk1BVF9YQkdSMTYxNjE2 MTZGLAo+ICsJICAuY2Fpcm9faWQgPSBDQUlST19GT1JNQVRfUkdCQTEyOEYsCj4gKwkgIC5udW1f cGxhbmVzID0gMSwgLnBsYW5lX2JwcCA9IHsgNjQsIH0sCj4gKwl9LAo+ICsJeyAubmFtZSA9ICJB QkdSMTYxNjE2MTZGIiwgLmRlcHRoID0gLTEsIC5kcm1faWQgPSBEUk1fRk9STUFUX0FCR1IxNjE2 MTYxNkYsCj4gKwkgIC5jYWlyb19pZCA9IENBSVJPX0ZPUk1BVF9SR0JBMTI4RiwKPiArCSAgLm51 bV9wbGFuZXMgPSAxLCAucGxhbmVfYnBwID0geyA2NCwgfSwKPiArCX0sCj4gIAl7IC5uYW1lID0g Ik5WMTIiLCAuZGVwdGggPSAtMSwgLmRybV9pZCA9IERSTV9GT1JNQVRfTlYxMiwKPiAgCSAgLmNh aXJvX2lkID0gQ0FJUk9fRk9STUFUX1JHQjI0LAo+ICAJICAubnVtX3BsYW5lcyA9IDIsIC5wbGFu ZV9icHAgPSB7IDgsIDE2LCB9LAo+IEBAIC02NjEsNyArNjc4LDggQEAgc3RhdGljIGludCBjcmVh dGVfYm9fZm9yX2ZiKHN0cnVjdCBpZ3RfZmIgKmZiKQo+ICAJICogdGhlbSwgc28gd2UgbmVlZCB0 byBtYWtlIHN1cmUgdG8gdXNlIGEgZGV2aWNlIEJPIHRoZW4uCj4gIAkgKi8KPiAgCWlmIChmYi0+ dGlsaW5nIHx8IGZiLT5zaXplIHx8IGZiLT5zdHJpZGVzWzBdIHx8Cj4gLQkgICAgKGlzX2k5MTVf ZGV2aWNlKGZkKSAmJiBpZ3RfZm9ybWF0X2lzX3l1dihmYi0+ZHJtX2Zvcm1hdCkpKQo+ICsJICAg IChpc19pOTE1X2RldmljZShmZCkgJiYgaWd0X2Zvcm1hdF9pc195dXYoZmItPmRybV9mb3JtYXQp KSB8fAo+ICsJICAgIChpc19pOTE1X2RldmljZShmZCkgJiYgaWd0X2Zvcm1hdF9pc19mcDE2KGZi LT5kcm1fZm9ybWF0KSkpCj4gIAkJZGV2aWNlX2JvID0gdHJ1ZTsKPiAgCj4gIAkvKiBTZXRzIG9m ZmV0cyBhbmQgc3RyaWRlIGlmIG5lY2Vzc2FyeS4gKi8KPiBAQCAtMjIwMiw2ICsyMjIwLDEwMiBA QCBzdGF0aWMgdm9pZCBjb252ZXJ0X2Zsb2F0X3RvX3l1djE2KHN0cnVjdCBmYl9jb252ZXJ0ICpj dnQpCj4gIAl9Cj4gIH0KPiAgCj4gKy8qIHsgUiwgRywgQiwgWCB9ICovCj4gK3N0YXRpYyBjb25z dCB1bnNpZ25lZCBjaGFyIHN3aXp6bGVfcmdieFtdID0geyAwLCAxLCAyLCAzIH07Cj4gK3N0YXRp YyBjb25zdCB1bnNpZ25lZCBjaGFyIHN3aXp6bGVfYmdyeFtdID0geyAyLCAxLCAwLCAzIH07Cj4g Kwo+ICtzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqcmdieF9zd2l6emxlKHVpbnQzMl90IGZv cm1hdCkKPiArewo+ICsJc3dpdGNoIChmb3JtYXQpIHsKPiArCWRlZmF1bHQ6Cj4gKwljYXNlIERS TV9GT1JNQVRfWFJHQjE2MTYxNjE2RjoKPiArCWNhc2UgRFJNX0ZPUk1BVF9BUkdCMTYxNjE2MTZG Ogo+ICsJCXJldHVybiBzd2l6emxlX2Jncng7Cj4gKwljYXNlIERSTV9GT1JNQVRfWEJHUjE2MTYx NjE2RjoKPiArCWNhc2UgRFJNX0ZPUk1BVF9BQkdSMTYxNjE2MTZGOgo+ICsJCXJldHVybiBzd2l6 emxlX3JnYng7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGNvbnZlcnRfZnAxNl90b19m bG9hdChzdHJ1Y3QgZmJfY29udmVydCAqY3Z0KQo+ICt7Cj4gKwlpbnQgaSwgajsKPiArCXVpbnQx Nl90ICpmcDE2Owo+ICsJZmxvYXQgKnB0ciA9IGN2dC0+ZHN0LnB0cjsKPiArCXVuc2lnbmVkIGlu dCBmbG9hdF9zdHJpZGUgPSBjdnQtPmRzdC5mYi0+c3RyaWRlc1swXSAvIHNpemVvZigqcHRyKTsK PiArCXVuc2lnbmVkIGludCBmcDE2X3N0cmlkZSA9IGN2dC0+c3JjLmZiLT5zdHJpZGVzWzBdIC8g c2l6ZW9mKCpmcDE2KTsKPiArCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnN3eiA9IHJnYnhfc3dpenps ZShjdnQtPnNyYy5mYi0+ZHJtX2Zvcm1hdCk7Cj4gKwlib29sIG5lZWRzX3Jlc3dpenpsZSA9IHN3 eiAhPSBzd2l6emxlX3JnYng7Cj4gKwo+ICsJdWludDE2X3QgKmJ1ZiA9IGNvbnZlcnRfc3JjX2dl dChjdnQpOwo+ICsJZnAxNiA9IGJ1ZiArIGN2dC0+c3JjLmZiLT5vZmZzZXRzWzBdIC8gc2l6ZW9m KCpidWYpOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBjdnQtPmRzdC5mYi0+aGVpZ2h0OyBpKysp IHsKPiArCQlpZiAobmVlZHNfcmVzd2l6emxlKSB7Cj4gKwkJCWNvbnN0IHVpbnQxNl90ICpmcDE2 X3RtcCA9IGZwMTY7Cj4gKwkJCWZsb2F0ICpyZ2JfdG1wID0gcHRyOwo+ICsKPiArCQkJZm9yIChq ID0gMDsgaiA8IGN2dC0+ZHN0LmZiLT53aWR0aDsgaisrKSB7Cj4gKwkJCQlzdHJ1Y3QgaWd0X3Zl YzQgcmdiOwo+ICsKPiArCQkJCWlndF9oYWxmX3RvX2Zsb2F0KGZwMTZfdG1wLCByZ2IuZCwgNCk7 Cj4gKwo+ICsJCQkJcmdiX3RtcFswXSA9IHJnYi5kW3N3elswXV07Cj4gKwkJCQlyZ2JfdG1wWzFd ID0gcmdiLmRbc3d6WzFdXTsKPiArCQkJCXJnYl90bXBbMl0gPSByZ2IuZFtzd3pbMl1dOwo+ICsJ CQkJcmdiX3RtcFszXSA9IHJnYi5kW3N3elszXV07Cj4gKwo+ICsJCQkJcmdiX3RtcCArPSA0Owo+ ICsJCQkJZnAxNl90bXAgKz0gNDsKPiArCQkJfQo+ICsJCX0gZWxzZSB7Cj4gKwkJCWlndF9oYWxm X3RvX2Zsb2F0KGZwMTYsIHB0ciwgY3Z0LT5kc3QuZmItPndpZHRoICogNCk7Cj4gKwkJfQo+ICsK PiArCQlwdHIgKz0gZmxvYXRfc3RyaWRlOwo+ICsJCWZwMTYgKz0gZnAxNl9zdHJpZGU7Cj4gKwl9 Cj4gKwo+ICsJY29udmVydF9zcmNfcHV0KGN2dCwgYnVmKTsKPiArfQo+ICsKPiArc3RhdGljIHZv aWQgY29udmVydF9mbG9hdF90b19mcDE2KHN0cnVjdCBmYl9jb252ZXJ0ICpjdnQpCj4gK3sKPiAr CWludCBpLCBqOwo+ICsJdWludDE2X3QgKmZwMTYgPSBjdnQtPmRzdC5wdHIgKyBjdnQtPmRzdC5m Yi0+b2Zmc2V0c1swXTsKPiArCWNvbnN0IGZsb2F0ICpwdHIgPSBjdnQtPnNyYy5wdHI7Cj4gKwl1 bnNpZ25lZCBmbG9hdF9zdHJpZGUgPSBjdnQtPnNyYy5mYi0+c3RyaWRlc1swXSAvIHNpemVvZigq cHRyKTsKPiArCXVuc2lnbmVkIGZwMTZfc3RyaWRlID0gY3Z0LT5kc3QuZmItPnN0cmlkZXNbMF0g LyBzaXplb2YoKmZwMTYpOwo+ICsJY29uc3QgdW5zaWduZWQgY2hhciAqc3d6ID0gcmdieF9zd2l6 emxlKGN2dC0+ZHN0LmZiLT5kcm1fZm9ybWF0KTsKPiArCWJvb2wgbmVlZHNfcmVzd2l6emxlID0g c3d6ICE9IHN3aXp6bGVfcmdieDsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgY3Z0LT5kc3QuZmIt PmhlaWdodDsgaSsrKSB7Cj4gKwkJaWYgKG5lZWRzX3Jlc3dpenpsZSkgewo+ICsJCQljb25zdCBm bG9hdCAqcmdiX3RtcCA9IHB0cjsKPiArCQkJdWludDE2X3QgKmZwMTZfdG1wID0gZnAxNjsKPiAr Cj4gKwkJCWZvciAoaiA9IDA7IGogPCBjdnQtPmRzdC5mYi0+d2lkdGg7IGorKykgewo+ICsJCQkJ c3RydWN0IGlndF92ZWM0IHJnYjsKPiArCj4gKwkJCQlyZ2IuZFswXSA9IHJnYl90bXBbc3d6WzBd XTsKPiArCQkJCXJnYi5kWzFdID0gcmdiX3RtcFtzd3pbMV1dOwo+ICsJCQkJcmdiLmRbMl0gPSBy Z2JfdG1wW3N3elsyXV07Cj4gKwkJCQlyZ2IuZFszXSA9IHJnYl90bXBbc3d6WzNdXTsKPiArCj4g KwkJCQlpZ3RfZmxvYXRfdG9faGFsZihyZ2IuZCwgZnAxNl90bXAsIDQpOwo+ICsKPiArCQkJCXJn Yl90bXAgKz0gNDsKPiArCQkJCWZwMTZfdG1wICs9IDQ7Cj4gKwkJCX0KPiArCQl9IGVsc2Ugewo+ ICsJCQlpZ3RfZmxvYXRfdG9faGFsZihwdHIsIGZwMTYsIGN2dC0+ZHN0LmZiLT53aWR0aCAqIDQp Owo+ICsJCX0KPiArCj4gKwkJcHRyICs9IGZsb2F0X3N0cmlkZTsKPiArCQlmcDE2ICs9IGZwMTZf c3RyaWRlOwo+ICsJfQo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBjb252ZXJ0X3BpeG1hbihzdHJ1 Y3QgZmJfY29udmVydCAqY3Z0KQo+ICB7Cj4gIAlwaXhtYW5fZm9ybWF0X2NvZGVfdCBzcmNfcGl4 bWFuID0gZHJtX2Zvcm1hdF90b19waXhtYW4oY3Z0LT5zcmMuZmItPmRybV9mb3JtYXQpOwo+IEBA IC0yMjkwLDYgKzI0MDQsMTIgQEAgc3RhdGljIHZvaWQgZmJfY29udmVydChzdHJ1Y3QgZmJfY29u dmVydCAqY3Z0KQo+ICAJCWNhc2UgRFJNX0ZPUk1BVF9QMDE2Ogo+ICAJCQljb252ZXJ0X3l1djE2 X3RvX2Zsb2F0KGN2dCk7Cj4gIAkJCXJldHVybjsKPiArCQljYXNlIERSTV9GT1JNQVRfWFJHQjE2 MTYxNjE2RjoKPiArCQljYXNlIERSTV9GT1JNQVRfWEJHUjE2MTYxNjE2RjoKPiArCQljYXNlIERS TV9GT1JNQVRfQVJHQjE2MTYxNjE2RjoKPiArCQljYXNlIERSTV9GT1JNQVRfQUJHUjE2MTYxNjE2 RjoKPiArCQkJY29udmVydF9mcDE2X3RvX2Zsb2F0KGN2dCk7Cj4gKwkJCXJldHVybjsKPiAgCQl9 Cj4gIAl9IGVsc2UgaWYgKGN2dC0+c3JjLmZiLT5kcm1fZm9ybWF0ID09IElHVF9GT1JNQVRfRkxP QVQpIHsKPiAgCQlzd2l0Y2ggKGN2dC0+ZHN0LmZiLT5kcm1fZm9ybWF0KSB7Cj4gQEAgLTIyOTgs NiArMjQxOCwxMiBAQCBzdGF0aWMgdm9pZCBmYl9jb252ZXJ0KHN0cnVjdCBmYl9jb252ZXJ0ICpj dnQpCj4gIAkJY2FzZSBEUk1fRk9STUFUX1AwMTY6Cj4gIAkJCWNvbnZlcnRfZmxvYXRfdG9feXV2 MTYoY3Z0KTsKPiAgCQkJcmV0dXJuOwo+ICsJCWNhc2UgRFJNX0ZPUk1BVF9YUkdCMTYxNjE2MTZG Ogo+ICsJCWNhc2UgRFJNX0ZPUk1BVF9YQkdSMTYxNjE2MTZGOgo+ICsJCWNhc2UgRFJNX0ZPUk1B VF9BUkdCMTYxNjE2MTZGOgo+ICsJCWNhc2UgRFJNX0ZPUk1BVF9BQkdSMTYxNjE2MTZGOgo+ICsJ CQljb252ZXJ0X2Zsb2F0X3RvX2ZwMTYoY3Z0KTsKPiArCQkJcmV0dXJuOwo+ICAJCX0KPiAgCX0K PiAgCj4gQEAgLTI0NTMsNiArMjU3OSw3IEBAIGNhaXJvX3N1cmZhY2VfdCAqaWd0X2dldF9jYWly b19zdXJmYWNlKGludCBmZCwgc3RydWN0IGlndF9mYiAqZmIpCj4gIAo+ICAJaWYgKGZiLT5jYWly b19zdXJmYWNlID09IE5VTEwpIHsKPiAgCQlpZiAoaWd0X2Zvcm1hdF9pc195dXYoZmItPmRybV9m b3JtYXQpIHx8Cj4gKwkJICAgIGlndF9mb3JtYXRfaXNfZnAxNihmYi0+ZHJtX2Zvcm1hdCkgfHwK PiAgCQkgICAgKChmLT5jYWlyb19pZCA9PSBDQUlST19GT1JNQVRfSU5WQUxJRCkgJiYKPiAgCQkg ICAgIChmLT5waXhtYW5faWQgIT0gUElYTUFOX2ludmFsaWQpKSkKPiAgCQkJY3JlYXRlX2NhaXJv X3N1cmZhY2VfX2NvbnZlcnQoZmQsIGZiKTsKPiBAQCAtMjc2Miw2ICsyODg5LDI1IEBAIGJvb2wg aWd0X2Zvcm1hdF9pc195dXYodWludDMyX3QgZHJtX2Zvcm1hdCkKPiAgfQo+ICAKPiAgLyoqCj4g KyAqIGlndF9mb3JtYXRfaXNfZnAxNgo+ICsgKiBAZHJtX2Zvcm1hdDogZHJtIGZvdXJjYwo+ICsg Kgo+ICsgKiBDaGVjayBpZiB0aGUgZm9ybWF0IGlzIGZwMTYuCj4gKyAqLwo+ICtib29sIGlndF9m b3JtYXRfaXNfZnAxNih1aW50MzJfdCBkcm1fZm9ybWF0KQo+ICt7Cj4gKwlzd2l0Y2ggKGRybV9m b3JtYXQpIHsKPiArCWNhc2UgRFJNX0ZPUk1BVF9YUkdCMTYxNjE2MTZGOgo+ICsJY2FzZSBEUk1f Rk9STUFUX0FSR0IxNjE2MTYxNkY6Cj4gKwljYXNlIERSTV9GT1JNQVRfWEJHUjE2MTYxNjE2RjoK PiArCWNhc2UgRFJNX0ZPUk1BVF9BQkdSMTYxNjE2MTZGOgo+ICsJCXJldHVybiB0cnVlOwo+ICsJ ZGVmYXVsdDoKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwl9Cj4gK30KPiArCj4gKy8qKgo+ICAgKiBp Z3RfZm9ybWF0X3BsYW5lX2JwcDoKPiAgICogQGRybV9mb3JtYXQ6IGRybSBmb3VyY2MKPiAgICog QHBsYW5lOiBmb3JtYXQgcGxhbmUgaW5kZXgKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9mYi5oIGIv bGliL2lndF9mYi5oCj4gaW5kZXggZTFkODg1ZS4uMDdiNjgxNCAxMDA2NDQKPiAtLS0gYS9saWIv aWd0X2ZiLmgKPiArKysgYi9saWIvaWd0X2ZiLmgKPiBAQCAtMTgyLDYgKzE4Miw3IEBAIHVpbnQz Ml90IGlndF9kcm1fZm9ybWF0X3RvX2JwcCh1aW50MzJfdCBkcm1fZm9ybWF0KTsKPiAgY29uc3Qg Y2hhciAqaWd0X2Zvcm1hdF9zdHIodWludDMyX3QgZHJtX2Zvcm1hdCk7Cj4gIGJvb2wgaWd0X2Zi X3N1cHBvcnRlZF9mb3JtYXQodWludDMyX3QgZHJtX2Zvcm1hdCk7Cj4gIGJvb2wgaWd0X2Zvcm1h dF9pc195dXYodWludDMyX3QgZHJtX2Zvcm1hdCk7Cj4gK2Jvb2wgaWd0X2Zvcm1hdF9pc19mcDE2 KHVpbnQzMl90IGRybV9mb3JtYXQpOwo+ICBpbnQgaWd0X2Zvcm1hdF9wbGFuZV9icHAodWludDMy X3QgZHJtX2Zvcm1hdCwgaW50IHBsYW5lKTsKPiAgdm9pZCBpZ3RfZm9ybWF0X2FycmF5X2ZpbGwo dWludDMyX3QgKipmb3JtYXRzX2FycmF5LCB1bnNpZ25lZCBpbnQgKmNvdW50LAo+ICAJCQkgICBi b29sIGFsbG93X3l1dik7Cj4gLS0gCj4gMi43LjQKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBt YWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2