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 052F56EC0F for ; Thu, 7 Feb 2019 08:15:25 +0000 (UTC) References: <20190201111544.7920-1-maarten.lankhorst@linux.intel.com> <20190201111544.7920-3-maarten.lankhorst@linux.intel.com> <8d6ab2f0-afbb-6b74-9cf5-877576974320@intel.com> <6dc3d71e-b946-0e6c-60f1-b14b6147a618@intel.com> <4f39c744-a4d8-68ee-39b3-56a60bfd75bf@intel.com> <1cb77ffb-a39c-5676-3642-1f1eb9906c8f@linux.intel.com> From: Maarten Lankhorst Message-ID: <57f3b3ba-7317-a6e3-8ace-c5932f978839@linux.intel.com> Date: Thu, 7 Feb 2019 09:15:22 +0100 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t 3/4] lib/igt_fb: Add support for Y21x formats as well. 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: "Sharma, Swati2" , igt-dev@lists.freedesktop.org List-ID: T3AgMDctMDItMjAxOSBvbSAwNzoyMyBzY2hyZWVmIFNoYXJtYSwgU3dhdGkyOgo+Cj4gT24gMDYt RmViLTE5IDg6MzUgUE0sIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+PiBPcCAwNi0wMi0yMDE5 IG9tIDE1OjIxIHNjaHJlZWYgU2hhcm1hLCBTd2F0aTI6Cj4+PiBPbiAwNi1GZWItMTkgMTI6MTcg UE0sIFNoYXJtYSwgU3dhdGkyIHdyb3RlOgo+Pj4KPj4+PiBPbiAwNS1GZWItMTkgODowMSBQTSwg TWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6Cj4+Pj4+IE9wIDA1LTAyLTIwMTkgb20gMTQ6MTQgc2No cmVlZiBTaGFybWEsIFN3YXRpMjoKPj4+Pj4+IE9uIDAxLUZlYi0xOSA0OjQ1IFBNLCBNYWFydGVu IExhbmtob3JzdCB3cm90ZToKPj4+Pj4+PiBUaG9zZSBmb3JtYXRzIGFyZSBwYWNrZWQgbGlrZSBZ VVlWLCBidXQgb25seSAxNiBiaXRzIHBlciBjb21wb25lbnQuCj4+Pj4+Pj4KPj4+Pj4+PiBTaWdu ZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50 ZWwuY29tPgo+Pj4+Pj4+IC0tLQo+Pj4+Pj4+IMKgwqDCoCBpbmNsdWRlL2RybS11YXBpL2RybV9m b3VyY2MuaCB8wqDCoCA2ICstCj4+Pj4+Pj4gwqDCoMKgIGxpYi9pZ3RfY29sb3JfZW5jb2Rpbmcu Y8KgwqDCoMKgwqAgfMKgwqAgMyArCj4+Pj4+Pj4gwqDCoMKgIGxpYi9pZ3RfZmIuY8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAxNDYgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+Pj4+Pj4+IMKgwqDCoCAzIGZpbGVzIGNoYW5nZWQsIDE1NCBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCj4+Pj4+Pj4KPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0tdWFwaS9kcm1fZm91cmNjLmggYi9pbmNsdWRlL2RybS11YXBpL2RybV9mb3VyY2MuaAo+Pj4+ Pj4+IGluZGV4IGM5YTVlNTc4NzAzMS4uOGYxYjVmODMyYTA5IDEwMDY0NAo+Pj4+Pj4+IC0tLSBh L2luY2x1ZGUvZHJtLXVhcGkvZHJtX2ZvdXJjYy5oCj4+Pj4+Pj4gKysrIGIvaW5jbHVkZS9kcm0t dWFwaS9kcm1fZm91cmNjLmgKPj4+Pj4+PiBAQCAtMTQ5LDEwICsxNDksMTQgQEAgZXh0ZXJuICJD IiB7Cj4+Pj4+Pj4gwqDCoMKgICNkZWZpbmUgRFJNX0ZPUk1BVF9ZVllVwqDCoMKgwqDCoMKgwqAg Zm91cmNjX2NvZGUoJ1knLCAnVicsICdZJywgJ1UnKSAvKiBbMzE6MF0gQ2IwOlkxOkNyMDpZMCA4 Ojg6ODo4IGxpdHRsZSBlbmRpYW4gKi8KPj4+Pj4+PiDCoMKgwqAgI2RlZmluZSBEUk1fRk9STUFU X1VZVlnCoMKgwqDCoMKgwqDCoCBmb3VyY2NfY29kZSgnVScsICdZJywgJ1YnLCAnWScpIC8qIFsz MTowXSBZMTpDcjA6WTA6Q2IwIDg6ODo4OjggbGl0dGxlIGVuZGlhbiAqLwo+Pj4+Pj4+IMKgwqDC oCAjZGVmaW5lIERSTV9GT1JNQVRfVllVWcKgwqDCoMKgwqDCoMKgIGZvdXJjY19jb2RlKCdWJywg J1knLCAnVScsICdZJykgLyogWzMxOjBdIFkxOkNiMDpZMDpDcjAgODo4Ojg6OCBsaXR0bGUgZW5k aWFuICovCj4+Pj4+Pj4gLQo+Pj4+Pj4+IMKgwqDCoCAjZGVmaW5lIERSTV9GT1JNQVRfQVlVVsKg wqDCoMKgwqDCoMKgIGZvdXJjY19jb2RlKCdBJywgJ1knLCAnVScsICdWJykgLyogWzMxOjBdIEE6 WTpDYjpDciA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4gKi8KPj4+Pj4+PiDCoMKgwqAgI2RlZmluZSBE Uk1fRk9STUFUX1hZVVY4ODg4wqDCoMKgIGZvdXJjY19jb2RlKCdYJywgJ1knLCAnVScsICdWJykg LyogWzMxOjBdIFg6WTpDYjpDciA4Ojg6ODo4IGxpdHRsZSBlbmRpYW4gKi8KPj4+Pj4+PiDCoMKg wqAgKy8qIExpa2UgWVVZViwgYnV0IDE2IGJwYywgbG93ZXN0IGJpdHMgdW51c2VkIGxpa2UgaW4g RFJNX0ZPUk1BVF9QMDFYICovCj4+Pj4+Pj4gKyNkZWZpbmUgRFJNX0ZPUk1BVF9ZMjEwwqDCoMKg wqDCoMKgwqAgZm91cmNjX2NvZGUoJ1knLCAnMicsICcxJywgJzAnKQo+Pj4+Pj4+ICsjZGVmaW5l IERSTV9GT1JNQVRfWTIxMsKgwqDCoMKgwqDCoMKgIGZvdXJjY19jb2RlKCdZJywgJzInLCAnMScs ICcyJykKPj4+Pj4+PiArI2RlZmluZSBEUk1fRk9STUFUX1kyMTbCoMKgwqDCoMKgwqDCoCBmb3Vy Y2NfY29kZSgnWScsICcyJywgJzEnLCAnNicpCj4+Pj4+Pj4gKwo+Pj4+Pj4+IMKgwqDCoCAvKgo+ Pj4+Pj4+IMKgwqDCoMKgICogcGFja2VkIFlDYkNyNDIwIDJ4MiB0aWxlZCBmb3JtYXRzCj4+Pj4+ Pj4gwqDCoMKgwqAgKiBmaXJzdCA2NCBiaXRzIHdpbGwgY29udGFpbiBZLENiLENyIGNvbXBvbmVu dHMgZm9yIGEgMngyIHRpbGUKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvbGliL2lndF9jb2xvcl9lbmNv ZGluZy5jIGIvbGliL2lndF9jb2xvcl9lbmNvZGluZy5jCj4+Pj4+Pj4gaW5kZXggYjdhMTJhMWUw N2Y3Li42ZjgyZmNlYzYyZTQgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvbGliL2lndF9jb2xvcl9lbmNv ZGluZy5jCj4+Pj4+Pj4gKysrIGIvbGliL2lndF9jb2xvcl9lbmNvZGluZy5jCj4+Pj4+Pj4gQEAg LTE0NCw2ICsxNDQsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbG9yX2VuY29kaW5nX2Zvcm1h dCB7Cj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqAgeyBEUk1fRk9STUFUX1AwMTAsIDY1NDcyLmYsIDQw OTYuZiwgNjAxNjAuZiwgNDA5Ni5mLCAzMjc2OC5mLCA2MTQ0MC5mIH0sCj4+Pj4+Pj4gwqDCoMKg wqDCoMKgwqAgeyBEUk1fRk9STUFUX1AwMTIsIDY1NTIwLmYsIDQwOTYuZiwgNjAxNjAuZiwgNDA5 Ni5mLCAzMjc2OC5mLCA2MTQ0MC5mIH0sCj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqAgeyBEUk1fRk9S TUFUX1AwMTYsIDY1NTM1LmYsIDQwOTYuZiwgNjAxNjAuZiwgNDA5Ni5mLCAzMjc2OC5mLCA2MTQ0 MC5mIH0sCj4+Pj4+Pj4gK8KgwqDCoCB7IERSTV9GT1JNQVRfWTIxMCwgNjU0NzIuZiwgNDA5Ni5m LCA2MDE2MC5mLCA0MDk2LmYsIDMyNzY4LmYsIDYxNDQwLmYgfSwKPj4+Pj4+PiArwqDCoMKgIHsg RFJNX0ZPUk1BVF9ZMjEyLCA2NTUyMC5mLCA0MDk2LmYsIDYwMTYwLmYsIDQwOTYuZiwgMzI3Njgu ZiwgNjE0NDAuZiB9LAo+Pj4+Pj4+ICvCoMKgwqAgeyBEUk1fRk9STUFUX1kyMTYsIDY1NTM1LmYs IDQwOTYuZiwgNjAxNjAuZiwgNDA5Ni5mLCAzMjc2OC5mLCA2MTQ0MC5mIH0sCj4+Pj4+Pj4gwqDC oMKgIH07Cj4+Pj4+Pj4gwqDCoMKgIMKgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29sb3JfZW5jb2Rp bmdfZm9ybWF0ICpsb29rdXBfZm91cmNjKHVpbnQzMl90IGZvdXJjYykKPj4+Pj4+PiBkaWZmIC0t Z2l0IGEvbGliL2lndF9mYi5jIGIvbGliL2lndF9mYi5jCj4+Pj4+Pj4gaW5kZXggOGJkMDQyMGZj MmU0Li5jMTRjYzEwZDFiNzMgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvbGliL2lndF9mYi5jCj4+Pj4+ Pj4gKysrIGIvbGliL2lndF9mYi5jCj4+Pj4+Pj4gQEAgLTE1MSw2ICsxNTEsMTggQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBmb3JtYXRfZGVzY19zdHJ1Y3Qgewo+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKg wqDCoCAuY2Fpcm9faWQgPSBDQUlST19GT1JNQVRfUkdCMjQsCj4+Pj4+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgIC5udW1fcGxhbmVzID0gMSwgLnBsYW5lX2JwcCA9IHsgMTYsIH0sCj4+Pj4+Pj4gwqDC oMKgwqDCoMKgwqAgfSwKPj4+Pj4+PiArwqDCoMKgIHsgLm5hbWUgPSAiWTIxMCIsIC5kZXB0aCA9 IC0xLCAuZHJtX2lkID0gRFJNX0ZPUk1BVF9ZMjEwLAo+Pj4+Pj4+ICvCoMKgwqDCoMKgIC5jYWly b19pZCA9IENBSVJPX0ZPUk1BVF9SR0I5NkYsCj4+Pj4+Pj4gK8KgwqDCoMKgwqAgLm51bV9wbGFu ZXMgPSAxLCAucGxhbmVfYnBwID0geyAzMiwgfSwKPj4+Pj4+PiArwqDCoMKgIH0sCj4+Pj4+Pj4g K8KgwqDCoCB7IC5uYW1lID0gIlkyMTIiLCAuZGVwdGggPSAtMSwgLmRybV9pZCA9IERSTV9GT1JN QVRfWTIxMiwKPj4+Pj4+PiArwqDCoMKgwqDCoCAuY2Fpcm9faWQgPSBDQUlST19GT1JNQVRfUkdC OTZGLAo+Pj4+Pj4+ICvCoMKgwqDCoMKgIC5udW1fcGxhbmVzID0gMSwgLnBsYW5lX2JwcCA9IHsg MzIsIH0sCj4+Pj4+Pj4gK8KgwqDCoCB9LAo+Pj4+Pj4+ICvCoMKgwqAgeyAubmFtZSA9ICJZMjE2 IiwgLmRlcHRoID0gLTEsIC5kcm1faWQgPSBEUk1fRk9STUFUX1kyMTYsCj4+Pj4+Pj4gK8KgwqDC oMKgwqAgLmNhaXJvX2lkID0gQ0FJUk9fRk9STUFUX1JHQjk2RiwKPj4+Pj4+PiArwqDCoMKgwqDC oCAubnVtX3BsYW5lcyA9IDEsIC5wbGFuZV9icHAgPSB7IDMyLCB9LAo+Pj4+Pj4+ICvCoMKgwqAg fSwKPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoCB7IC5uYW1lID0gIlAwMTAiLCAuZGVwdGggPSAtMSwg LmRybV9pZCA9IERSTV9GT1JNQVRfUDAxMCwKPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLmNh aXJvX2lkID0gQ0FJUk9fRk9STUFUX1JHQjk2RiwKPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAg Lm51bV9wbGFuZXMgPSAyLCAucGxhbmVfYnBwID0geyAxNiwgMzIgfSwKPj4+Pj4+PiBAQCAtNTUz LDYgKzU2NSwxMyBAQCBzdGF0aWMgaW50IGNyZWF0ZV9ib19mb3JfZmIoc3RydWN0IGlndF9mYiAq ZmIpCj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBmYi0+b2Zmc2V0c1sxXSAvIHNpemVvZih3Y2hhcl90KSk7Cj4+Pj4+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgd21lbXNldChwdHIgKyBmYi0+b2Zmc2V0c1sxXSwg MHg4MDAwODAwMCwKPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIERJVl9ST1VORF9VUChmYi0+aGVpZ2h0LDIpICogZmItPnN0cmlkZXNbMV0gLyBz aXplb2Yod2NoYXJfdCkpOwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgRFJN X0ZPUk1BVF9ZMjEwOgo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgRFJNX0ZP Uk1BVF9ZMjEyOgo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgRFJNX0ZPUk1B VF9ZMjE2Ogo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgd21lbXNldChw dHIgKyBmYi0+b2Zmc2V0c1swXSwKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgZnVsbF9yYW5nZSA/IDB4ODAwMDAwMDAgOiAweDgwMDAxMDAwLAo+Pj4+Pj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmYi0+c3RyaWRlc1swXSAq IGZiLT5wbGFuZV9oZWlnaHRbMF0gLyBzaXplb2Yod2NoYXJfdCkpOwo+Pj4+Pj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIH0KPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ2Vt X211bm1hcChwdHIsIGZiLT5zaXplKTsKPj4+Pj4+IEhpIE1hYXJ0ZW4sCj4+Pj4+Pgo+Pj4+Pj4g V2hpbGUgdGVzdGluZyBZMjEwIHBpeGVsIGZvcm1hdCwgSUdUIGlzIGZhaWxpbmcgd2l0aCBkZWJ1 ZyBtZXNzYWdlIHNob3dpbmcgaWd0X2NyZWF0ZV9mYigpIGZhaWx1cmUKPj4+Pj4+Cj4+Pj4+PiAo a21zX3BsYW5lOjM5NzQpIGlndF9mYi1DUklUSUNBTDogVGVzdCBhc3NlcnRpb24gZmFpbHVyZSBm dW5jdGlvbiBpZ3RfY3JlYXRlX2ZiX3dpdGhfYm9fc2l6ZSwgZmlsZSAuLi9saWIvaWd0X2ZiLmM6 MTA1MToKPj4+Pj4+IChrbXNfcGxhbmU6Mzk3NCkgaWd0X2ZiLUNSSVRJQ0FMOiBGYWlsZWQgYXNz ZXJ0aW9uOiAoX19rbXNfYWRkZmIoZmItPmZkLCBmYi0+Z2VtX2hhbmRsZSwgZmItPndpZHRoLCBm Yi0+aGVpZ2h0LCBmYi0+ZHJtX2Zvcm1hdCwgZmItPnRpbGluZywgZmItPnN0cmlkZXMsIGZiLT5v ZmZzZXRzLCBmYi0+bnVtX3BsYW5lcywgZmxhZ3MsICZmYi0+ZmJfaWQpKSA9PSAwCj4+Pj4+PiAo a21zX3BsYW5lOjM5NzQpIGlndF9mYi1DUklUSUNBTDogTGFzdCBlcnJubzogMjIsIEludmFsaWQg YXJndW1lbnQKPj4+Pj4+Cj4+Pj4+PiBkbWVzZyBzaG93aW5nIGJhZCBwaXRjaCAxMjgwMCBmb3Ig WTIxMCBwaXhlbCBmb3JtYXQKPj4+Pj4+Cj4+Pj4+PiBbwqAgNjM0LjA2NjYwOF0gW2RybTpkcm1f aW50ZXJuYWxfZnJhbWVidWZmZXJfY3JlYXRlXSBiYWQgcGl0Y2ggMTI4MDAgZm9yIHBsYW5lIDAK Pj4+Pj4+IFvCoCA2MzQuMTA0NDQ0XSBbSUdUXSBrbXNfcGxhbmU6IGV4aXRpbmcsIHJldD05OQo+ Pj4+Pj4KPj4+Pj4+IENhbiB5b3UgcGxlYXNlIGNvbmZpcm0gd2hldGhlciBjaGFuZ2VzIG5lZWRz IHRvIGJlIGRvbmUgZnJvbSBpZ3Qgb3Igc29tZSBpc3N1ZSB3aXRoIFkyeHggZHJpdmVyIHBhdGNo ZXM/Cj4+Pj4+Pgo+Pj4+Pj4+IEBAIC0yMTM5LDYgKzIxNTgsMTIwIEBAIHN0YXRpYyB2b2lkIGNv bnZlcnRfZmxvYXRfdG9fcDAxWChzdHJ1Y3QgZmJfY29udmVydCAqY3Z0KQo+Pj4+Pj4+IMKgwqDC oMKgwqDCoMKgIH0KPj4+Pj4+PiDCoMKgwqAgfQo+Pj4+Pj4+IMKgwqDCoCArCj4+Pj4+Pj4gK3N0 YXRpYyB2b2lkIGNvbnZlcnRfWTIxWF90b19mbG9hdChzdHJ1Y3QgZmJfY29udmVydCAqY3Z0KQo+ Pj4+Pj4+ICt7Cj4+Pj4+Pj4gK8KgwqDCoCBpbnQgaSwgajsKPj4+Pj4+PiArwqDCoMKgIGNvbnN0 IHVpbnQxNl90ICp5dXl2Owo+Pj4+Pj4+ICvCoMKgwqAgdWludDE2X3QgKmJ1ZjsKPj4+Pj4+PiAr wqDCoMKgIGZsb2F0ICpwdHIgPSBjdnQtPmRzdC5wdHI7Cj4+Pj4+Pj4gK8KgwqDCoCB1bnNpZ25l ZCBpbnQgZmxvYXRfc3RyaWRlID0gY3Z0LT5kc3QuZmItPnN0cmlkZXNbMF0gLyBzaXplb2YoKnB0 cik7Cj4+Pj4+Pj4gK8KgwqDCoCB1bnNpZ25lZCBpbnQgeXV5dl9zdHJpZGUgPSBjdnQtPnNyYy5m Yi0+c3RyaWRlc1swXSAvIHNpemVvZigqeXV5dik7Cj4+Pj4+Pj4gK8KgwqDCoCBzdHJ1Y3QgaWd0 X21hdDQgbSA9IGlndF95Y2Jjcl90b19yZ2JfbWF0cml4KGN2dC0+c3JjLmZiLT5kcm1fZm9ybWF0 LAo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgY3Z0LT5kc3QuZmItPmRybV9mb3JtYXQsCj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjdnQtPnNyYy5mYi0+Y29s b3JfZW5jb2RpbmcsCj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBjdnQtPnNyYy5mYi0+Y29sb3JfcmFuZ2UpOwo+Pj4+Pj4+ICsK Pj4+Pj4+PiArwqDCoMKgIGlndF9hc3NlcnQoKGN2dC0+c3JjLmZiLT5kcm1fZm9ybWF0ID09IERS TV9GT1JNQVRfWTIxMCB8fAo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGN2dC0+c3Jj LmZiLT5kcm1fZm9ybWF0ID09IERSTV9GT1JNQVRfWTIxMiB8fAo+Pj4+Pj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGN2dC0+c3JjLmZiLT5kcm1fZm9ybWF0ID09IERSTV9GT1JNQVRfWTIxNikg JiYKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgY3Z0LT5kc3QuZmItPmRybV9mb3JtYXQg PT0gSUdUX0ZPUk1BVF9GTE9BVCk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICvCoMKgwqAgeXV5diA9IGJ1 ZiA9IGNvbnZlcnRfc3JjX2dldChjdnQpOwo+Pj4+Pj4+ICsKPj4+Pj4+PiArwqDCoMKgIGZvciAo aSA9IDA7IGkgPCBjdnQtPmRzdC5mYi0+aGVpZ2h0OyBpKyspIHsKPj4+Pj4+PiArwqDCoMKgwqDC oMKgwqAgZm9yIChqID0gMDsgaiA8IGN2dC0+ZHN0LmZiLT53aWR0aCAvIDI7IGorKykgewo+Pj4+ Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIENvbnZlcnQgMngxIHBpeGVsIGJsb2NrcyAq Lwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBpZ3RfdmVjNCB5dXZbMl07 Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGlndF92ZWM0IHJnYlsyXTsK Pj4+Pj4+PiArCj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeXV2WzBdLmRbMF0gPSB5 dXl2W2ogKiA0ICsgMF07Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeXV2WzFdLmRb MF0gPSB5dXl2W2ogKiA0ICsgMl07Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeXV2 WzBdLmRbMV0gPSB5dXZbMV0uZFsxXSA9IHl1eXZbaiAqIDQgKyAxXTsKPj4+Pj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB5dXZbMF0uZFsyXSA9IHl1dlsxXS5kWzJdID0geXV5dltqICogNCAr IDNdOwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHl1dlswXS5kWzNdID0geXV2WzFd LmRbM10gPSAxLjBmOwo+Pj4+Pj4+ICsKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBy Z2JbMF0gPSBpZ3RfbWF0cml4X3RyYW5zZm9ybSgmbSwgJnl1dlswXSk7Cj4+Pj4+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgcmdiWzFdID0gaWd0X21hdHJpeF90cmFuc2Zvcm0oJm0sICZ5dXZb MV0pOwo+Pj4+Pj4+ICsKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB3cml0ZV9yZ2Jm KCZwdHJbaiAqIDYgKyAwXSwgJnJnYlswXSk7Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgd3JpdGVfcmdiZigmcHRyW2ogKiA2ICsgM10sICZyZ2JbMV0pOwo+Pj4+Pj4+ICvCoMKgwqDC oMKgwqDCoCB9Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoY3Z0LT5kc3Qu ZmItPndpZHRoICYgMSkgewo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBp Z3RfdmVjNCB5dXY7Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGlndF92 ZWM0IHJnYjsKPj4+Pj4+PiArCj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeXV2LmRb MF0gPSB5dXl2W2ogKiA0ICsgMF07Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeXV2 LmRbMV0gPSB5dXl2W2ogKiA0ICsgMV07Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg eXV2LmRbMl0gPSB5dXl2W2ogKiA0ICsgM107Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgeXV2LmRbM10gPSAxLjBmOwo+Pj4+Pj4+ICsKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCByZ2IgPSBpZ3RfbWF0cml4X3RyYW5zZm9ybSgmbSwgJnl1dik7Cj4+Pj4+Pj4gKwo+Pj4+ Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHdyaXRlX3JnYmYoJnB0cltqICogNiArIDBdLCAm cmdiKTsKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgfQo+Pj4+Pj4+ICsKPj4+Pj4+PiArwqDCoMKg wqDCoMKgwqAgcHRyICs9IGZsb2F0X3N0cmlkZTsKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgeXV5 diArPSB5dXl2X3N0cmlkZTsKPj4+Pj4+PiArwqDCoMKgIH0KPj4+Pj4+PiArCj4+Pj4+Pj4gK8Kg wqDCoCBjb252ZXJ0X3NyY19wdXQoY3Z0LCBidWYpOwo+Pj4+Pj4+ICt9Cj4+Pj4+Pj4gKwo+Pj4+ Pj4+ICtzdGF0aWMgdm9pZCBjb252ZXJ0X2Zsb2F0X3RvX1kyMVgoc3RydWN0IGZiX2NvbnZlcnQg KmN2dCkKPj4+Pj4+PiArewo+Pj4+Pj4+ICvCoMKgwqAgaW50IGksIGo7Cj4+Pj4+Pj4gK8KgwqDC oCB1aW50MTZfdCAqeXV5diA9IGN2dC0+ZHN0LnB0cjsKPj4+Pj4+PiArwqDCoMKgIGNvbnN0IGZs b2F0ICpwdHIgPSBjdnQtPnNyYy5wdHI7Cj4+Pj4+Pj4gK8KgwqDCoCB1bnNpZ25lZCBmbG9hdF9z dHJpZGUgPSBjdnQtPnNyYy5mYi0+c3RyaWRlc1swXSAvIHNpemVvZigqcHRyKTsKPj4+Pj4+PiAr wqDCoMKgIHVuc2lnbmVkIHl1eXZfc3RyaWRlID0gY3Z0LT5kc3QuZmItPnN0cmlkZXNbMF0gLyBz aXplb2YoKnl1eXYpOwo+Pj4+Pj4+ICvCoMKgwqAgc3RydWN0IGlndF9tYXQ0IG0gPSBpZ3Rfcmdi X3RvX3ljYmNyX21hdHJpeChjdnQtPnNyYy5mYi0+ZHJtX2Zvcm1hdCwKPj4+Pj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGN2dC0+ZHN0 LmZiLT5kcm1fZm9ybWF0LAo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY3Z0LT5kc3QuZmItPmNvbG9yX2VuY29kaW5nLAo+Pj4+ Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgY3Z0LT5kc3QuZmItPmNvbG9yX3JhbmdlKTsKPj4+Pj4+PiArCj4+Pj4+Pj4gK8KgwqDCoCBp Z3RfYXNzZXJ0KGN2dC0+c3JjLmZiLT5kcm1fZm9ybWF0ID09IElHVF9GT1JNQVRfRkxPQVQgJiYK Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGN2dC0+ZHN0LmZiLT5kcm1fZm9ybWF0ID09 IERSTV9GT1JNQVRfWTIxMCB8fAo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGN2dC0+ ZHN0LmZiLT5kcm1fZm9ybWF0ID09IERSTV9GT1JNQVRfWTIxMiB8fAo+Pj4+Pj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGN2dC0+ZHN0LmZiLT5kcm1fZm9ybWF0ID09IERSTV9GT1JNQVRfWTIx NikpOwo+Pj4+Pj4+ICsKPj4+Pj4+PiArwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBjdnQtPmRzdC5m Yi0+aGVpZ2h0OyBpKyspIHsKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgZm9yIChqID0gMDsgaiA8 IGN2dC0+ZHN0LmZiLT53aWR0aCAvIDI7IGorKykgewo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIC8qIENvbnZlcnQgMngxIHBpeGVsIGJsb2NrcyAqLwo+Pj4+Pj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHN0cnVjdCBpZ3RfdmVjNCByZ2JbMl07Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgc3RydWN0IGlndF92ZWM0IHl1dlsyXTsKPj4+Pj4+PiArCj4+Pj4+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVhZF9yZ2JmKCZyZ2JbMF0sICZwdHJbaiAqIDYgKyAwXSk7 Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVhZF9yZ2JmKCZyZ2JbMV0sICZwdHJb aiAqIDYgKyAzXSk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHl1 dlswXSA9IGlndF9tYXRyaXhfdHJhbnNmb3JtKCZtLCAmcmdiWzBdKTsKPj4+Pj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB5dXZbMV0gPSBpZ3RfbWF0cml4X3RyYW5zZm9ybSgmbSwgJnJnYlsx XSk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHl1eXZbaiAqIDQg KyAwXSA9IHl1dlswXS5kWzBdOwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHl1eXZb aiAqIDQgKyAyXSA9IHl1dlsxXS5kWzBdOwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHl1eXZbaiAqIDQgKyAxXSA9ICh5dXZbMF0uZFsxXSArIHl1dlsxXS5kWzFdKSAvIDIuMGY7Cj4+ Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeXV5dltqICogNCArIDNdID0gKHl1dlswXS5k WzJdICsgeXV2WzFdLmRbMl0pIC8gMi4wZjsKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgfQo+Pj4+ Pj4+ICsKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKGN2dC0+ZHN0LmZiLT53aWR0aCAmIDEp IHsKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgaWd0X3ZlYzQgcmdiOwo+ Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBpZ3RfdmVjNCB5dXY7Cj4+Pj4+ Pj4gKwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlYWRfcmdiZigmcmdiLCAmcHRy W2ogKiA2ICsgMF0pOwo+Pj4+Pj4+ICsKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB5 dXYgPSBpZ3RfbWF0cml4X3RyYW5zZm9ybSgmbSwgJnJnYik7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHl1eXZbaiAqIDQgKyAwXSA9IHl1di5kWzBdOwo+Pj4+Pj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHl1eXZbaiAqIDQgKyAxXSA9IHl1di5kWzFdOwo+Pj4+ Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHl1eXZbaiAqIDQgKyAzXSA9IHl1di5kWzJdOwo+ Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDC oCBwdHIgKz0gZmxvYXRfc3RyaWRlOwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCB5dXl2ICs9IHl1 eXZfc3RyaWRlOwo+Pj4+Pj4+ICvCoMKgwqAgfQo+Pj4+Pj4+ICt9Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ IMKgwqDCoCBzdGF0aWMgdm9pZCBjb252ZXJ0X3BpeG1hbihzdHJ1Y3QgZmJfY29udmVydCAqY3Z0 KQo+Pj4+Pj4+IMKgwqDCoCB7Cj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqAgcGl4bWFuX2Zvcm1hdF9j b2RlX3Qgc3JjX3BpeG1hbiA9IGRybV9mb3JtYXRfdG9fcGl4bWFuKGN2dC0+c3JjLmZiLT5kcm1f Zm9ybWF0KTsKPj4+Pj4+PiBAQCAtMjIyMSw2ICsyMzU0LDExIEBAIHN0YXRpYyB2b2lkIGZiX2Nv bnZlcnQoc3RydWN0IGZiX2NvbnZlcnQgKmN2dCkKPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGNhc2UgRFJNX0ZPUk1BVF9QMDE2Ogo+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBjb252ZXJ0X3AwMVhfdG9fZmxvYXQoY3Z0KTsKPj4+Pj4+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuOwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIERS TV9GT1JNQVRfWTIxMDoKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBEUk1fRk9STUFUX1ky MTI6Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGNhc2UgRFJNX0ZPUk1BVF9ZMjE2Ogo+Pj4+Pj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnZlcnRfWTIxWF90b19mbG9hdChjdnQpOwo+Pj4+ Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybjsKPj4+Pj4+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIH0KPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoCB9IGVsc2UgaWYgKGN2dC0+c3JjLmZi LT5kcm1fZm9ybWF0ID09IElHVF9GT1JNQVRfRkxPQVQpIHsKPj4+Pj4+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHN3aXRjaCAoY3Z0LT5kc3QuZmItPmRybV9mb3JtYXQpIHsKPj4+Pj4+PiBAQCAt MjIyOSw2ICsyMzY3LDExIEBAIHN0YXRpYyB2b2lkIGZiX2NvbnZlcnQoc3RydWN0IGZiX2NvbnZl cnQgKmN2dCkKPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgRFJNX0ZPUk1BVF9Q MDE2Ogo+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb252ZXJ0X2Zsb2F0 X3RvX3AwMVgoY3Z0KTsKPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0 dXJuOwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBjYXNlIERSTV9GT1JNQVRfWTIxMDoKPj4+Pj4+ PiArwqDCoMKgwqDCoMKgwqAgY2FzZSBEUk1fRk9STUFUX1kyMTI6Cj4+Pj4+Pj4gK8KgwqDCoMKg wqDCoMKgIGNhc2UgRFJNX0ZPUk1BVF9ZMjE2Ogo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGNvbnZlcnRfZmxvYXRfdG9fWTIxWChjdnQpOwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHJldHVybjsKPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4+Pj4+PiDC oMKgwqDCoMKgwqDCoCB9Cj4+Pj4+Pj4gwqDCoMKgIEBAIC0yNTgzLDYgKzI3MjYsOSBAQCBib29s IGlndF9mb3JtYXRfaXNfeXV2KHVpbnQzMl90IGRybV9mb3JtYXQpCj4+Pj4+Pj4gwqDCoMKgwqDC oMKgwqAgY2FzZSBEUk1fRk9STUFUX1AwMTA6Cj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqAgY2FzZSBE Uk1fRk9STUFUX1AwMTI6Cj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqAgY2FzZSBEUk1fRk9STUFUX1Aw MTY6Cj4+Pj4+Pj4gK8KgwqDCoCBjYXNlIERSTV9GT1JNQVRfWTIxMDoKPj4+Pj4+PiArwqDCoMKg IGNhc2UgRFJNX0ZPUk1BVF9ZMjEyOgo+Pj4+Pj4+ICvCoMKgwqAgY2FzZSBEUk1fRk9STUFUX1ky MTY6Cj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqAgY2FzZSBEUk1fRk9STUFUX1lVWVY6Cj4+Pj4+Pj4g wqDCoMKgwqDCoMKgwqAgY2FzZSBEUk1fRk9STUFUX1lWWVU6Cj4+Pj4+Pj4gwqDCoMKgwqDCoMKg wqAgY2FzZSBEUk1fRk9STUFUX1VZVlk6Cj4+Pj4+IENhbiBJIGdldCB0aGUgZnVsbCBJR1QgLyBk bWVzZyBsb2dzPyBJIGNhbid0IHNlZSB3aGF0IHRoZSBmYiBkaW1lbnNpb25zIHRoZXkgYXJlLgo+ Pj4+IElHVCBMb2dzOgo+Pj4+Cj4+Pj4gKGttc19wbGFuZTo0OTYwKSBJTkZPOiBUZXN0aW5nIGZv cm1hdCBZMjEwICgweDMwMzEzMjU5KSBvbiBBLjAKPj4+PiAoa21zX3BsYW5lOjQ5NjApIGlndF9m Yi1ERUJVRzogaWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUod2lkdGg9MzIwMCwgaGVpZ2h0PTE4 MDAsIGZvcm1hdD0weDMwMzEzMjU5LCB0aWxpbmc9MHgwLCBzaXplPTApCj4+Pj4gKGttc19wbGFu ZTo0OTYwKSBpZ3RfZmItREVCVUc6IGlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXplKGhhbmRsZT0y LCBwaXRjaD0xMjgwMCkKPj4+PiAoa21zX3BsYW5lOjQ5NjApIGlvY3RsX3dyYXBwZXJzLURFQlVH OiBUZXN0IHJlcXVpcmVtZW50IHBhc3NlZDogaWd0X2hhc19mYl9tb2RpZmllcnMoZmQpCj4+Pj4g KGttc19wbGFuZTo0OTYwKSBpZ3RfZmItQ1JJVElDQUw6IFRlc3QgYXNzZXJ0aW9uIGZhaWx1cmUg ZnVuY3Rpb24gaWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUsIGZpbGUgLi4vbGliL2lndF9mYi5j OjEwNTE6Cj4+Pj4gKGttc19wbGFuZTo0OTYwKSBpZ3RfZmItQ1JJVElDQUw6IEZhaWxlZCBhc3Nl cnRpb246IChfX2ttc19hZGRmYihmYi0+ZmQsIGZiLT5nZW1faGFuZGxlLCBmYi0+d2lkdGgsIGZi LT5oZWlnaHQsIGZiLT5kcm1fZm9ybWF0LCBmYi0+dGlsaW5nLCBmYi0+c3RyaWRlcywgZmItPm9m ZnNldHMsIGZiLT5udW1fcGxhbmVzLCBmbGFncywgJmZiLT5mYl9pZCkpID09IDAKPj4+PiAoa21z X3BsYW5lOjQ5NjApIGlndF9mYi1DUklUSUNBTDogTGFzdCBlcnJubzogMjIsIEludmFsaWQgYXJn dW1lbnQKPj4+PiAoa21zX3BsYW5lOjQ5NjApIGlndF9jb3JlLUlORk86IFN0YWNrIHRyYWNlOgo+ Pj4+IChrbXNfcGxhbmU6NDk2MCkgaWd0X2NvcmUtSU5GTzrCoMKgICMwIC4uL2xpYi9pZ3RfY29y ZS5jOjE0NzQgX19pZ3RfZmFpbF9hc3NlcnQoKQo+Pj4+IChrbXNfcGxhbmU6NDk2MCkgaWd0X2Nv cmUtSU5GTzrCoMKgICMxIC4uL2xpYi9pZ3RfZmIuYzoxMDUzIGlndF9jcmVhdGVfZmJfd2l0aF9i b19zaXplKCkKPj4+PiAoa21zX3BsYW5lOjQ5NjApIGlndF9jb3JlLUlORk86wqDCoCAjMiAuLi9s aWIvaWd0X2ZiLmM6MTA3OCBpZ3RfY3JlYXRlX2ZiKCkKPj4+PiAoa21zX3BsYW5lOjQ5NjApIGln dF9jb3JlLUlORk86wqDCoCAjMyAuLi9saWIvaWd0X2ZiLmM6MTExMyBpZ3RfY3JlYXRlX2NvbG9y X2ZiKCkKPj4+PiAoa21zX3BsYW5lOjQ5NjApIGlndF9jb3JlLUlORk86wqDCoCAjNCAuLi90ZXN0 cy9rbXNfcGxhbmUuYzo0MTcgdGVzdF9mb3JtYXRfcGxhbmVfY29sb3IoKQo+Pj4+IChrbXNfcGxh bmU6NDk2MCkgaWd0X2NvcmUtSU5GTzrCoMKgICM1IC4uL3Rlc3RzL2ttc19wbGFuZS5jOjU1NiB0 ZXN0X2Zvcm1hdF9wbGFuZSgpCj4+Pj4gKGttc19wbGFuZTo0OTYwKSBpZ3RfY29yZS1JTkZPOsKg wqAgIzYgLi4vdGVzdHMva21zX3BsYW5lLmM6NTg3IHRlc3RfcGl4ZWxfZm9ybWF0cygpCj4+Pj4g KGttc19wbGFuZTo0OTYwKSBpZ3RfY29yZS1JTkZPOsKgwqAgIzcgLi4vdGVzdHMva21zX3BsYW5l LmM6NjAyIHJ1bl90ZXN0c19mb3JfcGlwZV9wbGFuZSgpCj4+Pj4gKGttc19wbGFuZTo0OTYwKSBp Z3RfY29yZS1JTkZPOsKgwqAgIzggLi4vdGVzdHMva21zX3BsYW5lLmM6NjU3IF9fcmVhbF9tYWlu NjQyKCkKPj4+PiAoa21zX3BsYW5lOjQ5NjApIGlndF9jb3JlLUlORk86wqDCoCAjOSAuLi90ZXN0 cy9rbXNfcGxhbmUuYzo2NDIgbWFpbigpCj4+Pj4gKGttc19wbGFuZTo0OTYwKSBpZ3RfY29yZS1J TkZPOsKgwqAgIzEwIC4uL2NzdS9saWJjLXN0YXJ0LmM6MzI1IF9fbGliY19zdGFydF9tYWluKCkK Pj4+PiAoa21zX3BsYW5lOjQ5NjApIGlndF9jb3JlLUlORk86wqDCoCAjMTEgW19zdGFydCsweDI5 XQo+Pj4+IChrbXNfcGxhbmU6NDk2MCkgaWd0X2NvcmUtSU5GTzrCoMKgICMxMiBbPHVua25vd24+ KzB4MF0KPj4+PiAqKioqwqAgRU5EwqAgKioqKgo+Pj4+Cj4+Pj4gRG1lc2cgTG9nczogQXR0YWNo ZWQgeTIxMF9kbWVzZ19mYWlsdXJlLnR4dAo+Pj4+Cj4+PiBTYW1lIGZhaWx1cmUgZXhpc3RzIGZv ciBhbGwgdGhlIFkyeHggZm9ybWF0cyBZMjEwL1kyMTIvWTIxNi4KPj4gU2VlbXMgbGlrZSBhIGJ1 ZyB3aXRoIHlvdXIgZm9ybWF0IGRlZmluaXRpb24gaW4gdGhlIGtlcm5lbD8KPj4KPj4gWTIxMCBp cyBZMCBVIFkxIFYsIGZvciBhIHRvdGFsIG9mIDY0IGJpdHMgcGVyIDIgWSBwaXhlbHMuCj4+Cj4+ IHBpdGNoIGlzIHNldCB0byAxMjgwMCAvIDQgPSAzMjAwLiBUaGlzIGlzIGV4YWN0bHkgdGhlIG1p bmltdW0sIHNvIHNob3VsZCBwYXNzLi4KPj4KPj4gSSdsbCBoYXZlIHRvIHJlYmFzZSB0aGUgSUdU IHBhdGNoZXMsIGJ1dCBhcyBmYXIgYXMgSSBjYW4gdGVsbCB0aGV5J3JlIGNvcnJlY3QsIGFuZCB5 b3UgaGF2ZSBhIGJ1ZyBpbiB5b3VyIGltcGxlbWVudGF0aW9uLiA6KQo+Pgo+PiB+TWFhcnRlbgo+ Cj4gSGkgTWFhcnRlbiwKPgo+IFlvdSB3ZXJlIGNvcnJlY3QgOikgSXNzdWUgd2FzIHdpdGggbXkg a2VybmVsIHBhdGNoLCBJIGhhZCB3cml0dGVuIHdyb25nIGZvdXJjYyBmb3IgWTJ4eC4gVGhhbmtZ b3UhCj4gVGhvdWdoIGZvciBwbGFuZXMgPj0zIChzZHIgcGxhbmVzKSwgd2UgYXJlIGdldHRpbmcg Q1JDIG1pc21hdGNoIGZvciBhbGwgWVVWIGZvcm1hdHMsIGhhcHBlbmluZyBzYW1lIGZvciBZMnh4 IGJ1dCBJIHRoaW5rIGl0IGlzIHRyYWNrZWQgaW4gYnVnemlsbGEuIAoKSSd2ZSBub3RpY2VkIHRo ZXJlIGlzIGEgQ1JDIG1pc21hdGNoIHdoZW4gY29tcGFyaW5nIHRoZSBzYW1lIE5WMTIgY29uZmln IGluIFNEUiArIHBsYW5lIHNjYWxlciBhbmQgSERSIHdpdGggY2hyb21hIHVwc2FtcGxlci4gTWln aHQgYmUgdGhlIHNhbWUgZm9yIEhEUiB2cyBTRFIgcGxhbmVzIGluIGdlbmVyYWwuCgp+TWFhcnRl bgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRl diBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==