From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 6/7] drm/i915/fbc: move from crtc_state->enable_fbc to plane_state->enable_fbc Date: Tue, 15 Nov 2016 11:43:10 +0200 Message-ID: <20161115094310.GH31595@intel.com> References: <1478883461-20201-1-git-send-email-paulo.r.zanoni@intel.com> <1478883461-20201-7-git-send-email-paulo.r.zanoni@intel.com> <20161111185129.GS31595@intel.com> <1478890914.19391.31.camel@intel.com> <20161111191309.GT31595@intel.com> <1478894248.19391.43.camel@intel.com> <20161111202453.GU31595@intel.com> <1478897399.19391.61.camel@intel.com> <20161114202642.GG31595@intel.com> <1479156562.2400.23.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7B8EF6E146 for ; Tue, 15 Nov 2016 09:43:13 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1479156562.2400.23.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBOb3YgMTQsIDIwMTYgYXQgMDY6NDk6MjJQTSAtMDIwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IEVtIFNlZywgMjAxNi0xMS0xNCDDoHMgMjI6MjYgKzAyMDAsIFZpbGxlIFN5cmrDpGzD pCBlc2NyZXZldToKPiA+IE9uIEZyaSwgTm92IDExLCAyMDE2IGF0IDA2OjQ5OjU5UE0gLTAyMDAs IFBhdWxvIFphbm9uaSB3cm90ZToKPiA+ID4gCj4gPiA+IEVtIFNleCwgMjAxNi0xMS0xMSDDoHMg MjI6MjQgKzAyMDAsIFZpbGxlIFN5cmrDpGzDpCBlc2NyZXZldToKPiA+ID4gPiAKPiA+ID4gPiBP biBGcmksIE5vdiAxMSwgMjAxNiBhdCAwNTo1NzoyOFBNIC0wMjAwLCBQYXVsbyBaYW5vbmkgd3Jv dGU6Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IAo+ID4gPiA+ID4gRW0gU2V4LCAyMDE2LTExLTExIMOg cyAyMToxMyArMDIwMCwgVmlsbGUgU3lyasOkbMOkIGVzY3JldmV1Ogo+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gCj4gPiA+ID4gPiA+IE9uIEZyaSwgTm92IDExLCAyMDE2IGF0IDA1OjAxOjU0UE0g LTAyMDAsIFBhdWxvIFphbm9uaSB3cm90ZToKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBFbSBTZXgsIDIwMTYtMTEtMTEgw6BzIDIwOjUx ICswMjAwLCBWaWxsZSBTeXJqw6Rsw6QgZXNjcmV2ZXU6Cj4gPiA+ID4gPiA+ID4gPiAKPiA+ID4g PiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiBPbiBGcmksIE5vdiAx MSwgMjAxNiBhdCAwMjo1Nzo0MFBNIC0wMjAwLCBQYXVsbyBaYW5vbmkKPiA+ID4gPiA+ID4gPiA+ IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gVmlsbGUgcG9pbnRl ZCBvdXQgdGhhdCBpbnRlbF9mYmNfY2hvb3NlX2NydGMoKSBpcwo+ID4gPiA+ID4gPiA+ID4gPiBp dGVyYXRpbmcKPiA+ID4gPiA+ID4gPiA+ID4gb3Zlcgo+ID4gPiA+ID4gPiA+ID4gPiBhbGwKPiA+ ID4gPiA+ID4gPiA+ID4gcGxhbmVzIGluc3RlYWQgb2YganVzdCB0aGUgcHJpbWFyeSBwbGFuZXMu IFRoZXJlIGFyZSBubwo+ID4gPiA+ID4gPiA+ID4gPiByZWFsCj4gPiA+ID4gPiA+ID4gPiA+IGNv bnNlcXVlbmNlcyBvZiB0aGlzIHByb2JsZW0gZm9yIEhTVyssIGFuZCBmb3IgdGhlCj4gPiA+ID4g PiA+ID4gPiA+IG90aGVyCj4gPiA+ID4gPiA+ID4gPiA+IHBsYXRmb3Jtcwo+ID4gPiA+ID4gPiA+ ID4gPiBpdAo+ID4gPiA+ID4gPiA+ID4gPiBqdXN0IG1lYW5zIHRoYXQgaW4gc29tZSBvYnNjdXJl IG11bHRpLXNjcmVlbiBjYXNlcwo+ID4gPiA+ID4gPiA+ID4gPiB3ZSdsbAo+ID4gPiA+ID4gPiA+ ID4gPiBrZWVwCj4gPiA+ID4gPiA+ID4gPiA+IEZCQwo+ID4gPiA+ID4gPiA+ID4gPiBkaXNhYmxl ZCB3aGVuIHdlIGNvdWxkIGhhdmUgZW5hYmxlZCBpdC4gU3RpbGwsCj4gPiA+ID4gPiA+ID4gPiA+ IGl0ZXJhdGluZwo+ID4gPiA+ID4gPiA+ID4gPiBvdmVyCj4gPiA+ID4gPiA+ID4gPiA+IGFsbAo+ ID4gPiA+ID4gPiA+ID4gPiBwbGFuZXMgZG9lc24ndCBzZWVtIHRvIGJlIHRoZSBiZXN0IHRoaW5n IHRvIGRvLgo+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gTXkgaW5pdGlhbCBp ZGVhIHdhcyB0byBqdXN0IGFkZCBhIGNoZWNrIGZvciBwbGFuZS0+dHlwZSAKPiA+ID4gPiA+ID4g PiA+ID4gYW5kCj4gPiA+ID4gPiA+ID4gPiA+IGJlCj4gPiA+ID4gPiA+ID4gPiA+IGRvbmUsCj4g PiA+ID4gPiA+ID4gPiA+IGJ1dCB0aGVuIEkgcmVhbGl6ZWQgdGhhdCBpbiBjb21taXRzIG5vdCBp bnZvbHZpbmcgdGhlCj4gPiA+ID4gPiA+ID4gPiA+IHByaW1hcnkKPiA+ID4gPiA+ID4gPiA+ID4g cGxhbmUKPiA+ID4gPiA+ID4gPiA+ID4gd2UKPiA+ID4gPiA+ID4gPiA+ID4gd291bGQgcmVzZXQg Y3J0Y19zdGF0ZS0+ZW5hYmxlX2ZiYyBiYWNrIHRvIGZhbHNlIGV2ZW4KPiA+ID4gPiA+ID4gPiA+ ID4gd2hlbgo+ID4gPiA+ID4gPiA+ID4gPiBGQkMKPiA+ID4gPiA+ID4gPiA+ID4gaXMKPiA+ID4g PiA+ID4gPiA+ID4gZW5hYmxlZC4gVGhhdCBhbHNvIHdvdWxkbid0IHJlc3VsdCBpbiBhIGJ1ZyBk dWUgdG8gdGhlCj4gPiA+ID4gPiA+ID4gPiA+IHdheQo+ID4gPiA+ID4gPiA+ID4gPiB0aGUKPiA+ ID4gPiA+ID4gPiA+ID4gZW5hYmxlX2ZiYyB2YXJpYWJsZSBpcyBjaGVja2VkLCBidXQsIHN0aWxs LCBvdXIgY29kZQo+ID4gPiA+ID4gPiA+ID4gPiBjYW4gYmUKPiA+ID4gPiA+ID4gPiA+ID4gYmV0 dGVyCj4gPiA+ID4gPiA+ID4gPiA+IHRoYW4gdGhpcy4KPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ ID4gPiA+ID4gPiA+IFNvIEkgd2VudCBmb3IgdGhlIHNvbHV0aW9uIHRoYXQgaW52b2x2ZXMgdHJh Y2tpbmcKPiA+ID4gPiA+ID4gPiA+ID4gZW5hYmxlX2ZiYyBpbgo+ID4gPiA+ID4gPiA+ID4gPiB0 aGUKPiA+ID4gPiA+ID4gPiA+ID4gcHJpbWFyeSBwbGFuZSBzdGF0ZSBpbnN0ZWFkIG9mIHRoZSBD UlRDIHN0YXRlLiBUaGlzCj4gPiA+ID4gPiA+ID4gPiA+IHdheSwgaWYKPiA+ID4gPiA+ID4gPiA+ ID4gYQo+ID4gPiA+ID4gPiA+ID4gPiBjb21taXQKPiA+ID4gPiA+ID4gPiA+ID4gZG9lc24ndCBp bnZvbHZlIHRoZSBwcmltYXJ5IHBsYW5lIGZvciB0aGUgQ1JUQyB3ZSB3b24ndAo+ID4gPiA+ID4g PiA+ID4gPiBiZQo+ID4gPiA+ID4gPiA+ID4gPiByZXNldHRpbmcKPiA+ID4gPiA+ID4gPiA+ID4g ZW5hYmxlX2ZiYyBiYWNrIHRvIGZhbHNlLCBzbyB0aGUgdmFyaWFibGUgd2lsbCBhbHdheXMKPiA+ ID4gPiA+ID4gPiA+ID4gcmVmbGVjdAo+ID4gPiA+ID4gPiA+ID4gPiB0aGUKPiA+ID4gPiA+ID4g PiA+ID4gcmVhbGl0eS4gQW5kIHRoaXMgY2hhbmdlIGFsc28gbWFrZXMgbW9yZSBzZW5zZSBzaW5j ZQo+ID4gPiA+ID4gPiA+ID4gPiBGQkMgaXMKPiA+ID4gPiA+ID4gPiA+ID4gYWN0dWFsbHkKPiA+ ID4gPiA+ID4gPiA+ID4gdGllZCB0byB0aGUgc2luZ2xlIHBsYW5lIGFuZCBub3QgdGhlIGZ1bGwg cGlwZS4gQXMgYQo+ID4gPiA+ID4gPiA+ID4gPiBib251cywKPiA+ID4gPiA+ID4gPiA+ID4gd2UK PiA+ID4gPiA+ID4gPiA+ID4gb25seQo+ID4gPiA+ID4gPiA+ID4gPiBpdGVyYXRlIG92ZXIgdGhl IENSVENzIGluc3RlYWQgb2YgaXRlcmF0aW5nIG92ZXIgYWxsCj4gPiA+ID4gPiA+ID4gPiA+IHBs YW5lcy4KPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+IENjOiBWaWxsZSBTeXJq w6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiA+ID4gPiA+ID4gPiBS ZXBvcnRlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmMK PiA+ID4gPiA+ID4gPiA+ID4gb20+Cj4gPiA+ID4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFBh dWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+ID4gPiA+ID4gPiA+ID4gPiAt LS0KPiA+ID4gPiA+ID4gPiA+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCB8 wqDCoDQgKystLQo+ID4gPiA+ID4gPiA+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2ZiYy5jIHwgMzYKPiA+ID4gPiA+ID4gPiA+ID4gKysrKysrKysrKysrKysrKysrKy0KPiA+ID4g PiA+ID4gPiA+ID4gLS0tLQo+ID4gPiA+ID4gPiA+ID4gPiAtLS0tCj4gPiA+ID4gPiA+ID4gPiA+ IC0tLS0tLS0tCj4gPiA+ID4gPiA+ID4gPiA+IMKgMiBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRp b25zKCspLCAxOSBkZWxldGlvbnMoLSkKPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4g PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiA+ ID4gPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ID4gPiA+ ID4gPiA+IGluZGV4IDAwM2FmYjguLjAyNWNiNzQgMTAwNjQ0Cj4gPiA+ID4gPiA+ID4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ID4gPiA+ID4gPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ID4gPiA+ID4gPiA+IEBA IC00MDMsNiArNDAzLDggQEAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlIHsKPiA+ID4gPiA+ID4g PiA+ID4gwqAJaW50IHNjYWxlcl9pZDsKPiA+ID4gPiA+ID4gPiA+ID4gwqAKPiA+ID4gPiA+ID4g PiA+ID4gwqAJc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgY2tleTsKPiA+ID4gPiA+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ID4gPiArCWJvb2wgZW5hYmxlX2ZiYzsKPiA+ID4gPiA+ ID4gPiA+ID4gwqB9Owo+ID4gPiA+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gPiA+ID4gPiDCoHN0 cnVjdCBpbnRlbF9pbml0aWFsX3BsYW5lX2NvbmZpZyB7Cj4gPiA+ID4gPiA+ID4gPiA+IEBAIC02 NDgsOCArNjUwLDYgQEAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgewo+ID4gPiA+ID4gPiA+ID4g PiDCoAo+ID4gPiA+ID4gPiA+ID4gPiDCoAlib29sIGlwc19lbmFibGVkOwo+ID4gPiA+ID4gPiA+ ID4gPiDCoAo+ID4gPiA+ID4gPiA+ID4gPiAtCWJvb2wgZW5hYmxlX2ZiYzsKPiA+ID4gPiA+ID4g PiA+ID4gLQo+ID4gPiA+ID4gPiA+ID4gPiDCoAlib29sIGRvdWJsZV93aWRlOwo+ID4gPiA+ID4g PiA+ID4gPiDCoAo+ID4gPiA+ID4gPiA+ID4gPiDCoAlib29sIGRwX2VuY29kZXJfaXNfbXN0Owo+ ID4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZmJjLmMKPiA+ID4gPiA+ID4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMu Ywo+ID4gPiA+ID4gPiA+ID4gPiBpbmRleCBiMDk1MTc1Li5mYzRhYzU3IDEwMDY0NAo+ID4gPiA+ ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ID4gPiA+ ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ID4gPiA+ ID4gPiA+ID4gPiBAQCAtMTA1NSwxNiArMTA1NSwxNyBAQCB2b2lkCj4gPiA+ID4gPiA+ID4gPiA+ IGludGVsX2ZiY19jaG9vc2VfY3J0YyhzdHJ1Y3QKPiA+ID4gPiA+ID4gPiA+ID4gZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4gPiA+ID4gPiA+IMKgCQkJwqDCoMKgc3RydWN0IGRy bV9hdG9taWNfc3RhdGUKPiA+ID4gPiA+ID4gPiA+ID4gKnN0YXRlKQo+ID4gPiA+ID4gPiA+ID4g PiDCoHsKPiA+ID4gPiA+ID4gPiA+ID4gwqAJc3RydWN0IGludGVsX2ZiYyAqZmJjID0gJmRldl9w cml2LT5mYmM7Cj4gPiA+ID4gPiA+ID4gPiA+IC0Jc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4g PiA+ID4gPiA+ID4gPiA+IC0Jc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4g PiA+ID4gPiA+ID4gPiA+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4gPiA+ID4gPiA+ID4g PiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiA+ID4gPiA+ID4gPiA+ID4g wqAJYm9vbCBjcnRjX2Nob3NlbiA9IGZhbHNlOwo+ID4gPiA+ID4gPiA+ID4gPiDCoAlpbnQgaTsK PiA+ID4gPiA+ID4gPiA+ID4gwqAKPiA+ID4gPiA+ID4gPiA+ID4gwqAJbXV0ZXhfbG9jaygmZmJj LT5sb2NrKTsKPiA+ID4gPiA+ID4gPiA+ID4gwqAKPiA+ID4gPiA+ID4gPiA+ID4gLQkvKiBEb2Vz IHRoaXMgYXRvbWljIGNvbW1pdCBpbnZvbHZlIHRoZSBDUlRDCj4gPiA+ID4gPiA+ID4gPiA+IGN1 cnJlbnRseQo+ID4gPiA+ID4gPiA+ID4gPiB0aWVkCj4gPiA+ID4gPiA+ID4gPiA+IHRvIEZCQz8g Ki8KPiA+ID4gPiA+ID4gPiA+ID4gKwkvKiBEb2VzIHRoaXMgYXRvbWljIGNvbW1pdCBpbnZvbHZl IHRoZSBwbGFuZQo+ID4gPiA+ID4gPiA+ID4gPiBjdXJyZW50bHkKPiA+ID4gPiA+ID4gPiA+ID4g dGllZCB0byBGQkM/ICovCj4gPiA+ID4gPiA+ID4gPiA+IMKgCWlmIChmYmMtPmNydGMgJiYKPiA+ ID4gPiA+ID4gPiA+ID4gLQnCoMKgwqDCoCFkcm1fYXRvbWljX2dldF9leGlzdGluZ19jcnRjX3N0 YXRlKHN0YXRlLAo+ID4gPiA+ID4gPiA+ID4gPiAmZmJjLQo+ID4gPiA+ID4gPiA+ID4gPiA+IAo+ ID4gPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiA+IGNydGMtCj4gPiA+ID4gPiA+ ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gYmFzZSkpCj4gPiA+ID4gPiA+ID4gPiA+ICsJ wqDCoMKgwqAhZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfcGxhbmVfc3RhdGUoc3RhdGUKPiA+ID4g PiA+ID4gPiA+ID4gLAo+ID4gPiA+ID4gPiA+ID4gPiArCQkJCQkJwqBmYmMtCj4gPiA+ID4gPiA+ ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gY3J0Yy0KPiA+ID4gPiA+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gPiBiYXNlLnByaW1hcnkpKQo+ ID4gPiA+ID4gPiA+ID4gPiDCoAkJZ290byBvdXQ7Cj4gPiA+ID4gPiA+ID4gPiA+IMKgCj4gPiA+ ID4gPiA+ID4gPiA+IMKgCWlmICghaW50ZWxfZmJjX2Nhbl9lbmFibGUoZGV2X3ByaXYpKQo+ID4g PiA+ID4gPiA+ID4gPiBAQCAtMTA3NCwyNSArMTA3NSwyNiBAQCB2b2lkCj4gPiA+ID4gPiA+ID4g PiA+IGludGVsX2ZiY19jaG9vc2VfY3J0YyhzdHJ1Y3QKPiA+ID4gPiA+ID4gPiA+ID4gZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4gPiA+ID4gPiA+IMKgCcKgKiBwbGFuZS4gV2Ug Y291bGQgZ28gZm9yIGZhbmNpZXIgc2NoZW1lcyBzdWNoCj4gPiA+ID4gPiA+ID4gPiA+IGFzCj4g PiA+ID4gPiA+ID4gPiA+IGNoZWNraW5nCj4gPiA+ID4gPiA+ID4gPiA+IHRoZSBwbGFuZQo+ID4g PiA+ID4gPiA+ID4gPiDCoAnCoCogc2l6ZSwgYnV0IHRoaXMgd291bGQganVzdCBhZmZlY3QgdGhl IGZldwo+ID4gPiA+ID4gPiA+ID4gPiBwbGF0Zm9ybXMKPiA+ID4gPiA+ID4gPiA+ID4gdGhhdAo+ ID4gPiA+ID4gPiA+ID4gPiBkb24ndCB0aWUgRkJDCj4gPiA+ID4gPiA+ID4gPiA+IMKgCcKgKiB0 byBwaXBlIG9yIHBsYW5lIEEuICovCj4gPiA+ID4gPiA+ID4gPiA+IC0JZm9yX2VhY2hfcGxhbmVf aW5fc3RhdGUoc3RhdGUsIHBsYW5lLAo+ID4gPiA+ID4gPiA+ID4gPiBwbGFuZV9zdGF0ZSwKPiA+ ID4gPiA+ID4gPiA+ID4gaSkKPiA+ID4gPiA+ID4gPiA+ID4gewo+ID4gPiA+ID4gPiA+ID4gPiAt CQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUKPiA+ID4gPiA+ID4gPiA+ID4gKmludGVsX3BsYW5l X3N0YXRlID0KPiA+ID4gPiA+ID4gPiA+ID4gLQkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5l X3N0YQo+ID4gPiA+ID4gPiA+ID4gPiB0ZSk7Cj4gPiA+ID4gPiA+ID4gPiA+IC0JCXN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlCj4gPiA+ID4gPiA+ID4gPiA+ICppbnRlbF9jcnRjX3N0YXRlOwo+ID4g PiA+ID4gPiA+ID4gPiAtCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9Cj4gPiA+ID4gPiA+ID4g PiA+IHRvX2ludGVsX2NydGMocGxhbmVfc3RhdGUtPmNydGMpOwo+ID4gPiA+ID4gPiA+ID4gPiAr CWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsCj4gPiA+ID4gPiA+ID4gPiA+IGNy dGNfc3RhdGUsIGkpCj4gPiA+ID4gPiA+ID4gPiA+IHsKPiA+ID4gPiA+ID4gPiA+ID4gKwkJc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZQo+ID4gPiA+ID4gPiA+ID4gPiA9Cj4g PiA+ID4gPiA+ID4gPiA+IHRvX2ludGVsX3BsYW5lX3N0YXRlKAo+ID4gPiA+ID4gPiA+ID4gPiAr CQkJZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfcGxhbmVfCj4gPiA+ID4gPiA+ID4gPiA+IHN0YXQK PiA+ID4gPiA+ID4gPiA+ID4gZShzdAo+ID4gPiA+ID4gPiA+ID4gPiBhdGUsCj4gPiA+ID4gPiA+ ID4gPiA+ICsJCQkJCQkJCj4gPiA+ID4gPiA+ID4gPiA+IMKgwqAKPiA+ID4gPiA+ID4gPiA+ID4g wqDCoGNyCj4gPiA+ID4gPiA+ID4gPiA+IHRjLQo+ID4gPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiA+IHBy aW1hcnkpKTsKPiA+ID4gPiA+ID4gPiA+ID4gKwkJc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMgPQo+ID4gPiA+ID4gPiA+ID4gPiB0b19pbnRlbF9jcnRjKGNydGMpOwo+ID4gPiA+ID4gPiA+ ID4gPiDCoAo+ID4gPiA+ID4gPiA+ID4gPiAtCQlpZiAoIWludGVsX3BsYW5lX3N0YXRlLT5iYXNl LnZpc2libGUpCj4gPiA+ID4gPiA+ID4gPiA+ICsJCWlmICghcGxhbmVfc3RhdGUpCj4gPiA+ID4g PiA+ID4gPiA+IMKgCQkJY29udGludWU7Cj4gPiA+ID4gPiA+ID4gPiA+IMKgCj4gPiA+ID4gPiA+ ID4gPiA+IC0JCWlmIChmYmNfb25fcGlwZV9hX29ubHkoZGV2X3ByaXYpICYmCj4gPiA+ID4gPiA+ ID4gPiA+IGNydGMtCj4gPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gcGlw ZcKgCj4gPiA+ID4gPiA+ID4gPiA+ICE9Cj4gPiA+ID4gPiA+ID4gPiA+IFBJUEVfQSkKPiA+ID4g PiA+ID4gPiA+ID4gKwkJaWYgKCFwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlKQo+ID4gPiA+ID4g PiA+ID4gPiDCoAkJCWNvbnRpbnVlOwo+ID4gPiA+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gPiA+ ID4gPiAtCQlpZiAoZmJjX29uX3BsYW5lX2Ffb25seShkZXZfcHJpdikgJiYKPiA+ID4gPiA+ID4g PiA+ID4gY3J0Yy0KPiA+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gPiA+ID4gPiBwbGFuZQo+ID4gPiA+ID4gPiA+ID4gPiAhPSBQTEFORV9BKQo+ID4g PiA+ID4gPiA+ID4gPiArCQlpZiAoZmJjX29uX3BpcGVfYV9vbmx5KGRldl9wcml2KSAmJgo+ID4g PiA+ID4gPiA+ID4gPiBpbnRlbF9jcnRjLQo+ID4gPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4g PiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiA+IHBpcGUg IT0gUElQRV9BKQo+ID4gPiA+ID4gPiA+ID4gPiDCoAkJCWNvbnRpbnVlOwo+ID4gPiA+ID4gPiA+ ID4gPiDCoAo+ID4gPiA+ID4gPiA+ID4gPiAtCQlpbnRlbF9jcnRjX3N0YXRlID0KPiA+ID4gPiA+ ID4gPiA+ID4gdG9faW50ZWxfY3J0Y19zdGF0ZSgKPiA+ID4gPiA+ID4gPiA+ID4gLQkJCWRybV9h dG9taWNfZ2V0X2V4aXN0aW5nX2NydGNfcwo+ID4gPiA+ID4gPiA+ID4gPiB0YXRlCj4gPiA+ID4g PiA+ID4gPiA+IChzdGEKPiA+ID4gPiA+ID4gPiA+ID4gdGUsCj4gPiA+ID4gPiA+ID4gPiA+ICZj cnRjLT5iYXNlKSk7Cj4gPiA+ID4gPiA+ID4gPiA+ICsJCWlmIChmYmNfb25fcGxhbmVfYV9vbmx5 KGRldl9wcml2KSAmJgo+ID4gPiA+ID4gPiA+ID4gPiArCQnCoMKgwqDCoGludGVsX2NydGMtPnBs YW5lICE9IFBMQU5FX0EpCj4gPiA+ID4gPiA+ID4gPiA+ICsJCQljb250aW51ZTsKPiA+ID4gPiA+ ID4gPiA+ID4gwqAKPiA+ID4gPiA+ID4gPiA+ID4gLQkJaW50ZWxfY3J0Y19zdGF0ZS0+ZW5hYmxl X2ZiYyA9IHRydWU7Cj4gPiA+ID4gPiA+ID4gPiA+ICsJCXBsYW5lX3N0YXRlLT5lbmFibGVfZmJj ID0gdHJ1ZTsKPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gU28gbG9va2luZyBhdCB0 aGlzIHdob2xlIHRoaW5nLCBJIGNhbid0IHNlZSBhbnl0aGluZyB0aGF0Cj4gPiA+ID4gPiA+ID4g PiB3b3VsZAo+ID4gPiA+ID4gPiA+ID4gcHJldmVudAo+ID4gPiA+ID4gPiA+ID4gZW5hYmxlX2Zi YyBiZWluZyB0cnVlIGZvciBtdWx0aXBsZSBwcmltYXJ5IHBsYW5lcyBhdCB0aGUKPiA+ID4gPiA+ ID4gPiA+IHNhbWUKPiA+ID4gPiA+ID4gPiA+IHRpbWUKPiA+ID4gPiA+ID4gPiA+IFdlbGwsIGFw YXJ0IGZyb20gdGhlIHdob2xlICJ3ZSBlbmFibGUgaXQgb25seSBmb3IKPiA+ID4gPiA+ID4gPiA+ IHBsYXRmb3Jtcwo+ID4gPiA+ID4gPiA+ID4gdGhhdAo+ID4gPiA+ID4gPiA+ID4gY2FuCj4gPiA+ ID4gPiA+ID4gPiBvbmx5IGRvCj4gPiA+ID4gPiA+ID4gPiBwaXBlIEEiIHRoaW5nLgo+ID4gPiA+ ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiBTbyB3aGF0IGhhcHBlbnMgaW4gdGhhdCBjYXNlPyBG QkMganVzdCBlbmRzIHVwIGdldHRpbmcKPiA+ID4gPiA+ID4gPiA+IGVuYWJsaW5nCj4gPiA+ID4g PiA+ID4gPiBvbgo+ID4gPiA+ID4gPiA+ID4gb25lIG9mIHRoZSBwaXBlcyBiYXNlZCBvbiB0aGUg b3JkZXIgaW50ZWxfZmJjX2VuYWJsZSgpCj4gPiA+ID4gPiA+ID4gPiBnZXRzCj4gPiA+ID4gPiA+ ID4gPiBjYWxsZWQsCj4gPiA+ID4gPiA+ID4gPiBvciBzb21ldGhpbmc/Cj4gPiA+ID4gPiA+ID4g Cj4gPiA+ID4gPiA+ID4gVGhlIGZpcnN0IGNoZWNrIG9mIGludGVsX2ZiY19jaG9vc2VfY3J0Yygp IGlzIHN1cHBvc2VkIHRvCj4gPiA+ID4gPiA+ID4gcHJldmVudAo+ID4gPiA+ID4gPiA+IHRoaXMK PiA+ID4gPiA+ID4gPiBjYXNlOiBpZiBmYmMtPmNydGMtPnByaW1hcnkgaXMgbm90IGluY2x1ZGVk IGluIHRoZSBjb21taXQKPiA+ID4gPiA+ID4gPiB3ZQo+ID4gPiA+ID4gPiA+IGp1c3QKPiA+ID4g PiA+ID4gPiByZXR1cm4gd2l0aG91dCBzZWxlY3RpbmcgYW55IHBsYW5lLgo+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gVGhlIGZiYy0+Y3J0YyB0aGluZyBvbmx5IHdvcmtzIGlmIGludGVsX2ZiY19l bmFibGUoKSB3YXMKPiA+ID4gPiA+ID4gYWxyZWFkeQo+ID4gPiA+ID4gPiBjYWxsZWQKPiA+ID4g PiA+ID4gZm9yIHNvbWUgY3J0Yy4gQnV0IHdoYXQgaXQgaXQgd2Fzbid0Pwo+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4g PiBPdGhlcndpc2UsIHdlIG9ubHkgcGljayBvbmUgQ1JUQwo+ID4gPiA+ID4gPiA+IGR1ZSB0byB0 aGUgImJyZWFrOyIgc3RhdGVtZW50IGFmdGVyIHNldHRpbmcgcGxhbmVfc3RhdGUtCj4gPiA+ID4g PiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+IGVuYWJsZV9mYmPCoAo+ID4gPiA+ID4gPiA+IHRvCj4g PiA+ID4gPiA+ID4gdHJ1ZS4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IE9ubHkgb25lIHBlciBh dG9taWMgb3BlcmF0aW9uLiBCdXQgd2hhdCBpZiB0aGVyZSBhcmUgc2V2ZXJhbAo+ID4gPiA+ID4g PiBoYXBwZW5pbmcKPiA+ID4gPiA+ID4gaW4gcGFyYWxsZWwgb24gZGlmZmVyZW50IGNydGNzPwo+ ID4gPiA+ID4gCj4gPiA+ID4gPiBJIHNlZSB5b3VyIHBvaW50IG5vdy4gWWVhaCwgd2UnbGwgZW5k IHVwIHdpdGgKPiA+ID4gPiA+IHBsYW5lX3N0YXRlLmVuYWJsZV9mYmM9dHJ1ZSBmb3IgdHdvIGRp ZmZlcmVudCBwbGFuZXMuIExhdGVyLAo+ID4gPiA+ID4gdGhlCj4gPiA+ID4gPiBmaXJzdAo+ID4g PiA+ID4gb25lIHRvIGNhbGwgaW50ZWxfZmJjX2VuYWJsZSgpIHdpbGwgd2luLCBhbmQgdGhlIG90 aGVycyB3aWxsIGJlCj4gPiA+ID4gPiBpZ25vcmVkLCBzbyB3ZSdsbCBpbmRlZWQgZW5kIHVwIHdp dGggcGxhbmUgc3RhdGVzIGhhdmluZwo+ID4gPiA+ID4gZW5hYmxlX2ZiYz10cnVlIGJ1dCBGQkMg bm90IGVuYWJsZWQgYnkgdGhlbS4gTm90IGEgcmVhbCBidWcsIEkKPiA+ID4gPiA+IHdvdWxkCj4g PiA+ID4gPiBzdGlsbCBsaWtlIHRvIGF2b2lkIHRoaXMgY29uZnVzaW9uLgo+ID4gPiA+ID4gCj4g PiA+ID4gPiBUaGUgc2ltcGxlc3Qgc29sdXRpb24gSSBjYW4gdGhpbmsgd291bGQgYmUgdG8ganVz dAo+ID4gPiA+ID4gcy9wbGFuZV9zdGF0ZS5lbmFibGVfZmJjL3BsYW5lX3N0YXRlLmNhbl9lbmFi bGVfZmJjLyBhbmQganVzdAo+ID4gPiA+ID4gbGV0Cj4gPiA+ID4gPiB0aGUKPiA+ID4gPiA+IGZp cnN0IG9uZSB0byBjYWxsIGludGVsX2ZiY19lbmFibGUoKSB3aW4uLi4gQW5kIHRoZW4sIGlmIHdl Cj4gPiA+ID4gPiBldmVyCj4gPiA+ID4gPiBkZWNpZGUKPiA+ID4gPiA+IHRvIGVuYWJsZSBGQkMg b24gdGhlIG9sZGVyIHBsYXRmb3Jtcywgd2UgY2FuIGNob29zZSB0byBtYXliZQo+ID4gPiA+ID4g aW1wbGVtZW50Cj4gPiA+ID4gPiBhIGJldHRlciBtZXRob2QKPiA+ID4gPiAKPiA+ID4gPiBNYXli ZSBzb21ldGhpbmcgbGlrZSAiZmJjX3Njb3JlIj8gOykKPiA+ID4gCj4gPiA+IFRoZSBkZXNpZ24g b2YgdGhlIGN1cnJlbnQgZnVuY3Rpb24gd2FzIHN1cHBvc2VkIHRvIGFsbG93IFZpbGxlIHRvCj4g PiA+IGltcGxlbWVudCBoaXMgZmJjX3Njb3JlIGluIGNhc2UgaGUgd2FudGVkLiBCdXQgdGhpcyBj ZXJ0YWlubHkKPiA+ID4gZGlkbid0Cj4gPiA+IHRha2UgaW50byBhY2NvdW50IG11bHRpcGxlIHBh cmFsbGVsIGNvbW1pdHM6IGl0IHdvdWxkIG9ubHkgd29yayBpZgo+ID4gPiBtdWx0aXBsZSBDUlRD cyB3ZXJlIGluY2x1ZGVkIGluIHRoZSBzYW1lIGNvbW1pdCAoYXMgeW91IGp1c3QKPiA+ID4gcG9p bnRlZAo+ID4gPiB0b2RheSkuCj4gPiA+IAo+ID4gPiBCdXQgdGhlbjogaWYgd2UncmUgaGF2aW5n IHNlcGFyYXRlIHBhcmFsbGVsIGNvbW1pdHMsIHdoZW4gd291bGQgd2UKPiA+ID4gYmUKPiA+ID4g YWJsZSB0byBsb29wIHRocm91Z2ggdGhlIHNjb3JlcyB0byBvbmx5IGFjdHVhbGx5IGVuYWJsZSBG QkMgb24gdGhlCj4gPiA+IGJlc3QKPiA+ID4gc2NvcmU/wqAKPiA+ID4gCj4gPiA+IEZvciBleGFt cGxlLCBpZiB3ZSBkbyB0d28gcGFyYWxsZWwgYXRvbWljX2NoZWNrKClzIGFuZCBlbmQgd2l0aAo+ ID4gPiBwbGFuZV9hX3Njb3JlPTEgYW5kIHBsYW5lX2Jfc2NvcmU9MiwgdGhlbiBsYXRlciB3ZSBk byBBJ3MgY29tbWl0KCkKPiA+ID4gYW5kCj4gPiA+IGNhbGwgaW50ZWxfZmJjX2VuYWJsZSgpIGZv ciBpdCwgaG93IGRvIHdlIGNvbmNsdWRlIHRoYXQgd2UKPiA+ID4gc2hvdWxkbid0Cj4gPiA+IGVu YWJsZSBGQkMgZm9yIHBsYW5lIEE/IFdlJ3JlIG5vdCBldmVuIHN1cmUgaWYgcGxhbmUgQiBpcyBn b2luZyB0bwo+ID4gPiBhY3R1YWxseSBjb21taXQgdGhlIHBsYW5lIHN0YXRlIGl0IGNhbGN1bGF0 ZWQgKG1heWJlIGl0IHdhcwo+ID4gPiBjaGVja19vbmx5KS4KPiA+ID4gCj4gPiA+IEFuZCB0aGVu LCBpZiB3ZSBkZWNpZGUgdG8gb25seSBjb21wdXRlIGV2ZXJ5dGhpbmcgZHVyaW5nIGNvbW1pdCgp Cj4gPiA+IGluc3RlYWQgb2YgY2hlY2soKSwgd2UnbGwganVzdCBhbHNvIGVuZCB1cCBlbmFibGlu ZyBGQkMgZm9yIHBsYW5lIEEKPiA+ID4gc2luY2UgQSdzIGNvbW1pdCgpIHdpbGwgcnVuIGZpcnN0 IGFuZCB3ZSdsbCBoYXZlIG5vIGlkZWEgdGhhdCBCJ3MKPiA+ID4gY29tbWl0IGlzIGluY29taW5n Lgo+ID4gPiAKPiA+ID4gVGhlIG9ubHkgb3B0aW9uIHdvdWxkIGJlIHRvIGRpc2FibGUgRkJDIGZv ciBwbGFuZSBBIGFuZCBlbmFibGUgZm9yCj4gPiA+IHBsYW5lIEIgZHVyaW5nIEIncyBjb21taXQu IEJ1dCBJJ20gbm90IGxvb2tpbmcgZm9yd2FyZCB0byBpbXBsZW1lbnQKPiA+ID4gdGhpcyByaWdo dCBub3cuCj4gPiAKPiA+IEFsbCB0aGUgZW5hYmxlL2Rpc2FibGUgc2hvdWxkIGJlIHRvdGFsbHkg YXN5bmMgYW5kIHNvIHlvdSBzaG91bGQgYmUKPiA+IGFibGUgdG8ga2ljayB0aGVtIG9mZiBmcm9t IGFueXdoZXJlLiBBbGwgdGhlIHN0YXRlLCBpbmNsdWRpbmcgdGhlCj4gPiBzY29yZXMsCj4gPiB3 b3VsZCBiZSBwcm90ZWN0ZWQgYnkgdGhlIGZiYyBtdXRleC4gSSBoYWQgYSB2Ymxhbmsgd29ya2Vy IHR5cGUgb2YKPiA+IHRoaW5nIGZvciB0aGlzIHB1cnBvc2UgaW4gbXkgcGF0Y2hlcy4KPiAKPiBB cyBmYXIgYXMgSSByZW1lbWJlciwgdGhlIGNvbXBsaWNhdGVkIHBhcnQgaGVyZSB3YXMgcmVsYXRl ZCB0byB0aGUgQ0ZCCj4gYWxsb2NhdGlvbi9kZWFsbG9jYXRpb24uIElmIHdlIGRpc2FibGUgRkJD IHdoaWxlIHRoZSBwaXBlIGlzIHJ1bm5pbmcgd2UKPiBuZWVkIHRvIHdhaXQgZm9yIGEgdmJsYW5r IGJlZm9yZSB3ZSBkZWFsbG9jYXRlIHRoZSBDRkIsIG90aGVyd2lzZSB0aGUKPiBIVyBpcyBnb2lu ZyB0byBrZWVwIHdyaXRpbmcgdG8gdGhlIHN0b2xlbiBtZW1vcnkuIFdoaWxlIHdlIGNlcnRhaW5s eQo+IGNhbiBhZGp1c3QgdG8gdGhpcywgaW4gbXkgRkJDIHJld29ya3MgSSBzaW1wbGlmaWVkIHRo aXMgYSBsb3QsIGFuZCBub3cKPiB3ZSBvbmx5IGVuYWJsZS9kaXNhYmxlIHRoZSBDRkIgZHVyaW5n IGNydGNfe2VuLGRpc31hYmxlLCBzbyB3ZSBvbmx5Cj4gZXZlciBmcmVlIHRoZSBDRkIgd2hpbGUg dGhlIHBpcGUgaXMgb2ZmLCBhbmQgd2UgZG9uJ3QKPiBkZWFsbG9jYXRlK3JlYWxsb2NhdGUgaXQg YXQgZXZlcnkgc2luZ2xlIHBhZ2UgZmxpcC4KCldlbGwgeW91IGFscmVhZHkgaGF2ZSB0byBkaXNh YmxlIEZCQyBpbiB0aGUgaGFyZHdhcmUgd2hlbiB5b3UgZmxpcCB0bwphIGJ1ZmZlciB0aGF0IGNh bid0IGJlIHVzZWQgd2l0aCBGQkMuIFNvIHRoYXQgcGFydCBpcyB0aGVyZS4gSSBhZG1pdAp0aGVy ZSBpcyBhIGxpdHRsZSBiaXQgb2YgZXh0cmEgY29tcGxpY2F0aW9uIGZyb20gbWFraW5nIHN1cmUg eW91IGRvbid0CmRlYWxsb2NhdGUgdGhlIGNmYiBiZWZvcmUgRkJDIGhhcyBmaW5pc2hlZCwgYnV0 IHRoYXQgY29tcGxpY2F0aW9uIGlzCm5lYXRseSBlbmNhcHN1bGF0ZWQgaW4gdGhlIEZCQyBjb2Rl LiBGcm9tIHRoZSBmbGlwL21vZGVzZXQgcGF0aCB0aGVyZQpzaG91bGQgYmUganVzdCB0d28gZnVu Y3Rpb24gY2FsbHMgYXJvdW5kIHRoZSB1cGRhdGUgdG8gc2lnbmFsIHRoZSBGQkMKbWFjaGluZXJ5 LgoKPiBUaGUgb3RoZXIgY29tcGxpY2F0ZWQgcGFydCBpcyB0aGF0IGlmIHdlIHRyeSB0byBhbGxv Y2F0ZSB0aGUgbmV3IENGQgo+IGZvciB0aGUgbmV3IHBsYW5lIHdpdGhvdXQgZmlyc3QgZnJlZWlu ZyB0aGUgb2xkIG9uZSAod2FpdGluZyBmb3IgdGhlCj4gdmJsYW5rIG9uIHRoZSBvdGhlciBDUlRD KSB3ZSdsbCBwcm9iYWJseSBnZXQgYW4gLUVOT01FTSBmcm9tIHRoZSBzdG9sZW4KPiBtbS4gT24g dGhlIG90aGVyIGhhbmQsIGlmIHdlIGFjdHVhbGx5IGRvIGFsbCB0aGUgdmJsYW5rIHRoZSB3YWl0 cywKPiB3ZWxsLCB3ZSdsbCBoYXZlIHRvIGltcGxlbWVudCB0aGUgY29kZSB0byBwcm9wZXJseSB3 YWl0IGZvciBldmVyeXRoaW5nLgo+IEFuZCB3aGlsZSB3ZSdyZSBkb2luZyB0aGUgd2FpdHMsIHRo ZSB3b3JsZCBtYXkgY2hhbmdlLCBuZXcgbW9kZXNldHMgbWF5Cj4gaGFwcGVuLCB3ZSBtYXkgaGF2 ZSB0byBhYm9ydCBvciBjaGFuZ2Ugb3VyIG1pbmRzLCBhbmQgaGFuZGxpbmcgYWxsCj4gdGhlc2Ug Y2FzZXMgaXMgdGhlcmUgdGhpbmdzIGdldCBjb21wbGljYXRpbmcuCj4gCj4gQW5kIHdlIGhhdmUg aW50ZWxfZmJjX3dvcmtfZm4oKSB0byBoZWxwLgo+IAo+IEFueXdheSwgaXQgaXMgcG9zc2libGUg dG8gZG8gd2hhdCB5b3UncmUgc3VnZ2VzdGluZy4gSXQncyBqdXN0IHRoYXQgYQo+IGxvdCBvZiBz aW1wbGUgdGhpbmdzIHdpbGwgYmVjb21lIGNvbXBsaWNhdGVkLgoKQXMgSSBzZWUgaXQgdGhlIEZC QyBtYWNoaW5lcnkgZWZmZWN0aXZlbHkganVzdCBuZWVkcyB0aHJlZSBzdGF0ZXM6Ci0gY2ZiIGRl YWxsb2NhdGVkICsgZmJjIGRpc2FibGVkCi0gY2ZiIGFsbG9jYXRlZCArIGZiYyBkaXNhYmxlZAot IGNmYiBhbGxvY2F0ZWQgKyBmYmMgZW5hYmxlZAoKYW5kIHlvdSBqdXN0IG1vdmUgYmV0d2VlbiB0 aGVzZSBzdGF0ZXMsIHdpdGggc29tZSBzeW5jaHJvbml6YXRpb24gaW4KYmV0d2Vlbi4gSSBndWVz cyB5b3UgbWF5IHdhbnQgdG8gY29uc2lkZXIgZW5hYmxpbmcvZGlzYWJsaW5nIGFzIHR3bwptb3Jl IHN0YXRlcyB3aGljaCBtYWtlcyB0aGUgc3luY2hyb25pemF0aW9uIG1vcmUgY2xlYXIuCgotLSAK VmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK