From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Goel, Akash" Subject: Re: [PATCH 19/19] drm/i915: Sync against the GuC log buffer flush work item on system suspend Date: Thu, 18 Aug 2016 19:17:07 +0530 Message-ID: <797a53b0-34c0-daa4-c8ab-8a5bc183cede@intel.com> References: <1471428859-10339-1-git-send-email-akash.goel@intel.com> <1471428859-10339-20-git-send-email-akash.goel@intel.com> <57B44A22.7070903@linux.intel.com> <20160817114149.GJ22696@nuc-i3427.alporthouse.com> <12d7e0d7-6fbd-c6b9-afd7-5de6a4fe128e@intel.com> <1471439492.3005.25.camel@intel.com> <1471517758.28391.13.camel@intel.com> <1471525175.28391.24.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 358CB6EA46 for ; Thu, 18 Aug 2016 13:47:10 +0000 (UTC) In-Reply-To: <1471525175.28391.24.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: imre.deak@intel.com, Chris Wilson Cc: intel-gfx@lists.freedesktop.org, akash.goel@intel.com List-Id: intel-gfx@lists.freedesktop.org CgpPbiA4LzE4LzIwMTYgNjoyOSBQTSwgSW1yZSBEZWFrIHdyb3RlOgo+IE9uIHRvLCAyMDE2LTA4 LTE4IGF0IDE2OjU0ICswNTMwLCBHb2VsLCBBa2FzaCB3cm90ZToKPj4KPj4gT24gOC8xOC8yMDE2 IDQ6MjUgUE0sIEltcmUgRGVhayB3cm90ZToKPj4+IE9uIHRvLCAyMDE2LTA4LTE4IGF0IDA5OjE1 ICswNTMwLCBHb2VsLCBBa2FzaCB3cm90ZToKPj4+Pgo+Pj4+IE9uIDgvMTcvMjAxNiA5OjA3IFBN LCBHb2VsLCBBa2FzaCB3cm90ZToKPj4+Pj4KPj4+Pj4KPj4+Pj4gT24gOC8xNy8yMDE2IDY6NDEg UE0sIEltcmUgRGVhayB3cm90ZToKPj4+Pj4+IE9uIGtlLCAyMDE2LTA4LTE3IGF0IDE4OjE1ICsw NTMwLCBHb2VsLCBBa2FzaCB3cm90ZToKPj4+Pj4+Pgo+Pj4+Pj4+IE9uIDgvMTcvMjAxNiA1OjEx IFBNLCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4+Pj4+Pj4+IE9uIFdlZCwgQXVnIDE3LCAyMDE2IGF0 IDEyOjI3OjMwUE0gKzAxMDAsIFR2cnRrbyBVcnN1bGluCj4+Pj4+Pj4+IHdyb3RlOgo+Pj4+Pj4+ Pj4KPj4+Pgo+Pj4+Pj4+Pj4+ICtpbnQgaW50ZWxfZ3VjX3N1c3BlbmQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgYm9vbAo+Pj4+Pj4+Pj4+IHJwbV9zdXNwZW5kKQo+Pj4+Pj4+Pj4+ICB7Cj4+Pj4+ Pj4+Pj4gICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRl dik7Cj4+Pj4+Pj4+Pj4gICAgICBzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1 YzsKPj4+Pj4+Pj4+PiBAQCAtMTUzMCw2ICsxNTMwLDEyIEBAIGludCBpbnRlbF9ndWNfc3VzcGVu ZChzdHJ1Y3QKPj4+Pj4+Pj4+PiBkcm1fZGV2aWNlICpkZXYpCj4+Pj4+Pj4+Pj4gICAgICAgICAg cmV0dXJuIDA7Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiAgICAgIGdlbjlfZGlzYWJsZV9ndWNfaW50 ZXJydXB0cyhkZXZfcHJpdik7Cj4+Pj4+Pj4+Pj4gKyAgICAvKiBTeW5jIGlzIG5lZWRlZCBvbmx5 IGZvciB0aGUgc3lzdGVtIHN1c3BlbmQgY2FzZSwKPj4+Pj4+Pj4+PiBydW50aW1lCj4+Pj4+Pj4+ Pj4gc3VzcGVuZAo+Pj4+Pj4+Pj4+ICsgICAgICogY2FzZSBpcyBjb3ZlcmVkIGR1ZSB0byBycG0g Z2V0L3B1dCBjYWxscyB1c2VkCj4+Pj4+Pj4+Pj4gYXJvdW5kIEh3Cj4+Pj4+Pj4+Pj4gYWNjZXNz IGluCj4+Pj4+Pj4+Pj4gKyAgICAgKiB0aGUgd29yayBpdGVtIGZ1bmN0aW9uLgo+Pj4+Pj4+Pj4+ ICsgICAgICovCj4+Pj4+Pj4+Pj4gKyAgICBpZiAoIXJwbV9zdXNwZW5kICYmIChpOTE1Lmd1Y19s b2dfbGV2ZWwgPj0gMCkpCj4+Pj4+Pj4+Pj4gKyAgICAgICAgZmx1c2hfd29yaygmZGV2X3ByaXYt Pmd1Yy5sb2cuZmx1c2hfd29yayk7Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEluIHdoaWNoIGNhc2UgKHJw bSBzdXNwZW5kKSB0aGUgZmx1c2hfd29yayBpcyBpZGxlIGFuZCB0aGlzIGEKPj4+Pj4+Pj4gbm9v cC4KPj4+Pj4+Pj4gVGhhdAo+Pj4+Pj4+PiB5b3UgaGF2ZSB0byBwYXNzIGFyb3VuZCBzdWNoIHN0 YXRlIHN1Z2dlc3RzIHRoYXQgeW91IGFyZQo+Pj4+Pj4+PiBwYXBlcmluZwo+Pj4+Pj4+PiBvdmVy IGEKPj4+Pj4+Pj4gYnVnPwo+Pj4+Pj4+IEluIGNhc2Ugb2YgcnBtIHN1c3BlbmQgdGhlIGZsdXNo X3dvcmsgbWF5IG5vdCBiZSBhIE5PT1AuCj4+Pj4+Pj4gQ2FuIHVzZSB0aGUgZmx1c2hfd29yayBm b3IgcnVudGltZSBzdXNwZW5kIGFsc28gYnV0IGluIHNwaXRlIG9mCj4+Pj4+Pj4gdGhhdAo+Pj4+ Pj4+IGNhbid0IHByZXZlbnQgdGhlICdSUE0gd2FrZWxvY2snIGFzc2VydHMsIGFzIHRoZSB3b3Jr IGl0ZW0gY2FuCj4+Pj4+Pj4gZ2V0Cj4+Pj4+Pj4gZXhlY3V0ZWQgYWZ0ZXIgdGhlIHJwbSByZWYg Y291bnQgZHJvcHMgdG8gemVybyBhbmQgYmVmb3JlCj4+Pj4+Pj4gcnVudGltZQo+Pj4+Pj4+IHN1 c3BlbmQga2lja3MgaW4gKGFmdGVyIGF1dG9zdXNwZW5kIGRlbGF5KS4KPj4+Pj4+Pgo+Pj4+Pj4+ IEZvciB0aGF0IHlvdSBoYWQgZWFybGllciBzdWdnZXN0ZWQgdG8gdXNlIHJwbSBnZXQvcHV0IGlu IHRoZQo+Pj4+Pj4+IHdvcmsgaXRlbQo+Pj4+Pj4+IGZ1bmN0aW9uLCBhcm91bmQgdGhlIHJlZ2lz dGVyIGFjY2VzcywgYnV0IHdpdGggdGhhdCBoYWQgdG8KPj4+Pj4+PiByZW1vdmUgdGhlCj4+Pj4+ Pj4gZmx1c2hfd29yayBmcm9tIHRoZSBzdXNwZW5kIGhvb2ssIG90aGVyd2lzZSBhIGRlYWRsb2Nr IGNhbgo+Pj4+Pj4+IGhhcHBlbi4KPj4+Pj4+PiBTbyBkb2luZyB0aGUgZmx1c2hfd29yayBjb25k aXRpb25hbGx5IGZvciBzeXN0ZW0gc3VzcGVuZCBjYXNlLAo+Pj4+Pj4+IGFzIHJwbQo+Pj4+Pj4+ IGdldC9wdXQgd29uJ3QgY2F1c2UgdGhlIHJlc3VtZSBvZiBkZXZpY2UgaW4gdGhhdCBjYXNlLgo+ Pj4+Pj4+Cj4+Pj4+Pj4gQWN0dWFsbHkgSSBoYWQgZGlzY3Vzc2VkIGFib3V0IHRoaXMgd2l0aCBJ bXJlIGFuZCBhcyBwZXIgaGlzCj4+Pj4+Pj4gaW5wdXRzCj4+Pj4+Pj4gcHJlcGFyZWQgdGhpcyBw YXRjaC4KPj4+Pj4+Cj4+Pj4+PiBUaGVyZSB3b3VsZCBiZSB0aGlzIGFsdGVybmF0aXZlOgo+Pj4+ Pj4KPj4+Pj4gVGhhbmtzIG11Y2ggZm9yIHN1Z2dlc3RpbmcgdGhlIGFsdGVybmF0ZSBhcHByb2Fj aC4KPj4+Pj4KPj4+Pj4gSnVzdCB0byBjb25maXJtIHdoZXRoZXIgSSB1bmRlcnN0b29kIGV2ZXJ5 dGhpbmcgY29ycmVjdGx5LAo+Pj4+Pgo+Pj4+Pj4gaW4gZ2VuOV9ndWNfaXJxX2hhbmRsZXIoKToK Pj4+Pj4+ICAgIFdBUk5fT04oIWludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZSgpKTsKPj4+ Pj4gVXNlZCBXQVJOLCBhcyB3ZSBkb24ndCBleHBlY3QgdGhlIGRldmljZSB0byBiZSBzdXNwZW5k ZWQgYXQgdGhpcwo+Pj4+PiBqdW5jdHVyZSwgc28gaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5f dXNlKCkgc2hvdWxkIHJldHVybiB0cnVlLgo+Pj4+Pgo+Pj4+Pj4gICAgaWYgKCFxdWV1ZV93b3Jr KGxvZy5mbHVzaF93b3JrKSkKPj4+Pj4gSWYgcXVldWVfd29yayByZXR1cm5zIDAsIHRoZW4gd29y ayBpdGVtIGlzIGFscmVhZHkgcGVuZGluZywgc28gaXQKPj4+Pj4gd29uJ3QKPj4+Pj4gYmUgcXVl dWVkIGhlbmNlIGNhbiByZWxlYXNlIHRoZSBycG0gcmVmIGNvdW50IG5vdyBvbmx5Lgo+Pj4+Pj4g ICAgICAgIGludGVsX3J1bnRpbWVfcG1fcHV0KCk7Cj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gYW5kIGRy b3BwaW5nIHRoZSByZWZlcmVuY2UgYXQgdGhlIGVuZCBvZiB0aGUgd29yayBpdGVtLgo+Pj4+PiBU aGlzIHdpbGwgYmUganVzdCBsaWtlIHRoZSBfX2ludGVsX2F1dG9lbmFibGVfZ3RfcG93ZXJzYXZl Cj4+Pj4+Cj4+Pj4+PiBUaGlzIHdvdWxkIG1ha2UgdGhlIGZsdXNoX3dvcmsoKSBhIG5vcCBpbiBj YXNlIG9mCj4+Pj4+PiBydW50aW1lX3N1c3BlbmQoKS4KPj4+Pj4gU28gY2FuIGNhbGwgdGhlIGZs dXNoX3dvcmsgdW5jb25kaXRpb25hbGx5Lgo+Pj4+Pgo+Pj4+PiBIb3BlIEkgdW5kZXJzdG9vZCBp dCBjb3JyZWN0bHkuCj4+Pgo+Pj4gWWVzLCB0aGUgYWJvdmUgaXMgY29ycmVjdCBleGNlcHQgZm9y IG15IG1pc3Rha2UgaW4KPj4+IGhhbmRsaW5nIGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3Vz ZSgpIHJldHVybmluZyBmYWxzZSBhcyBkaXNjdXNzZWQKPj4+IGJlbG93Lgo+Pj4KPj4+Pj4KPj4+ PiBIaSBJbXJlLAo+Pj4+Cj4+Pj4gWW91IGhhZCBzdWdnZXN0ZWQgdG8gdXNlIHRoZSBiZWxvdyBj b2RlIGZyb20gaXJxIGhhbmRsZXIsIHN1c3BlY3RpbmcKPj4+PiB0aGF0IGludGVsX3J1bnRpbWVf cG1fZ2V0X2lmX2luX3VzZSgpIGNhbiByZXR1cm4gZmFsc2UsIGlmIGludGVycnVwdAo+Pj4+IGdl dHMgaGFuZGxlZCBqdXN0IGFmdGVyIGRldmljZSBnb2VzIG91dCBvZiB1c2UuCj4+Pj4KPj4+PiAJ aWYgKGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZSgpKSB7Cj4+Pj4gCQlpZiAoIXF1ZXVl X3dvcmsobG9nLmZsdXNoX3dvcmspKQo+Pj4+IAkJCWludGVsX3J1bnRpbWVfcG1fcHV0KCk7Cj4+ Pj4gCX0KPj4+Pgo+Pj4+IERvIHlvdSBtZWFuIHRvIHNheSB0aGF0IGludGVycnVwdCBjYW4gY29t ZSB3aGVuIHJwbSBzdXNwZW5kIGhhcwo+Pj4+IGFscmVhZHkKPj4+PiBzdGFydGVkIGJ1dCBiZWZv cmUgdGhlIGludGVycnVwdCBpcyBkaXNhYmxlZCBmcm9tIHRoZSBzdXNwZW5kIGhvb2sgPwo+Pj4+ IExpa2UgaWYgaW50ZXJydXB0IGNvbWVzIGIvdyAxKSAmIDQpLCB0aGVuIHJ1bnRpbWVfcG1fZ2V0 X2lmX2luX3VzZSgpCj4+Pj4gd2lsbCByZXR1cm4gZmFsc2UuCj4+Pj4gMSkJQXV0b3N1c3BlbmQg ZGVsYXkgZWxhcHNlcyAoZGV2aWNlIGlzIG1hcmtlZCBhcyBzdXNwZW5kaW5nKQo+Pj4+IDIpCQlp bnRlbF9ydW50aW1lX3N1c3BlbmQKPj4+PiAzKQkJCWludGVsX2d1Y19zdXNwZW5kCj4+Pj4gNCkJ CQkJZ2VuOV9kaXNhYmxlX2d1Y19pbnRlcnJ1cHRzKGRldl9wcmkKPj4+PiB2KTsKPj4+Cj4+PiBO bywgaXQgY2FuIHJldHVybiBmYWxzZSBhbnl0aW1lIHRoZSBsYXN0IFJQTSByZWZlcmVuY2UgaXMg ZHJvcHBlZCwgdGhhdAo+Pj4gaXMgZXZlbiBiZWZvcmUgdGhlIGF1dG9zdXNwZW5kIGRlbGF5IGVs YXBzZXMuCj4+Cj4+IFNvcnJ5IEkgbWlzc2VkIHRoYXQgcG1fcnVudGltZV9nZXRfaWZfaW5fdXNl KCkgd2lsbCByZXR1cm4gMCBpZiBSUE0gcmVmCj4+IGNvdW50IGhhcyBkcm9wcGVkIHRvIDAsIGV2 ZW4gaWYgZGV2aWNlIGlzIHN0aWxsIGluIHJ1bnRpbWUgYWN0aXZlIHN0YXRlCj4+IChhcyBhdXRv c3VzcGVuZCBkZWxheSBoYXMgbm90IGVsYXBzZWQpLgo+Pgo+PiAgPiBCdXQgdGhhdCBzdGlsbCBt YWtlcyB0aGUKPj4+IGxpa2VsaWhvb2QgZm9yIGEgbWlzc2VkIHdvcmsgaXRlbSBzY2hlZHVsaW5n IHNtYWxsLCBiZWNhdXNlIDEpIHdlIHdhbnQKPj4+IHRvIHJlZHVjZSB0aGUgYXV0b3N1c3BlbmQg ZGVsYXkgY29uc2lkZXJhYmx5IGZyb20gdGhlIGN1cnJlbnQgMTAgc2VjCj4+PiBhbmQgMikgYmVj YXVzZSB3aGF0IHlvdSBzYXkgYmVsb3cgYWJvdXQgdGhlIEdQVSBhY3R1YWxseSBpZGxpbmcgYmVm b3JlCj4+PiB0aGUgUlBNIHJlZmNvdW50IGdvaW5nIHRvIDAuCj4+Pgo+Pj4+IElmIHRoZSBhYm92 ZSBoeXBvdGhlc2lzIGlzIGNvcnJlY3QsIHRoZW4gaXQgaW1wbGllcyB0aGF0IGludGVycnVwdAo+ Pj4+IGhhcwo+Pj4+IHRvIGNvbWUgYWZ0ZXIgYXV0b3N1c3BlbmQgZGVsYXkgaGFzIGVsYXBzZWQg Zm9yIHRoZSBhYm92ZSBzY2VuYXJpbyB0bwo+Pj4+IGFyaXNlLgo+Pj4+Cj4+Pj4gSSB0aGluayBp dCB3b3VsZCBiZSB1bmxpa2VseSBmb3IgdGhlIGludGVycnVwdCB0byBjb21lIHNvIGxhdGUKPj4+ PiBiZWNhdXNlCj4+Pj4gZGV2aWNlIHdvdWxkIGhhdmUgZ29uZSBpZGxlIGp1c3QgYmVmb3JlIHRo ZSBhdXRvc3VzcGVuZCBwZXJpb2QKPj4+PiBzdGFydGVkCj4+Pj4gYW5kIHNvIG5vIEd1QyBzdWJt aXNzaW9ucyB3b3VsZCBoYXZlIGJlZW4gZG9uZSBhZnRlciB0aGF0Lgo+Pj4KPj4+IFJpZ2h0Lgo+ Pj4KPj4+PiBTbyB0aGUgcHJvYmFiaWxpdHkgb2YgbWlzc2luZyBhIHdvcmsgaXRlbSBjb3VsZCBi ZSB2ZXJ5IGxlc3MgYW5kIHdlCj4+Pj4gY2FuIGJlYXIgdGhhdC4KPj4+Cj4+PiBJIGhhdmVuJ3Qg bG9va2VkIGludG8gd2hhdCBpcyB0aGUgY29uc2VxdWVuY2Ugb2YgbWlzc2luZyBhIHdvcmsgaXRl bSwKPj4+IHlvdSBrbm93IHRoaXMgYmV0dGVyLiBJbiBhbnkgY2FzZSAtIHNpbmNlIGl0IGlzIHN0 aWxsIGEgcG9zc2liaWxpdHkgLQo+Pj4gaWYgaXQncyBhIHByb2JsZW0geW91IGNvdWxkIHN0aWxs IG1ha2Ugc3VyZSBpbiBpbnRlbF9ndWNfc3VzcGVuZCgpIHRoYXQKPj4+IGFueSBwZW5kaW5nIHdv cmsgaXMgY29tcGxldGVkIGJ5IGNhbGxpbmcgZ3VjX3JlYWRfdXBkYXRlX2xvZ19idWZmZXIoKSwK Pj4+IGhvc3QyZ3VjX2xvZ2J1ZmZlcl9mbHVzaF9jb21wbGV0ZSgpIGlmIG5lY2Vzc2FyeSBhZnRl ciBkaXNhYmxpbmcKPj4+IGludGVycnVwdHMgaW4gaW50ZWxfZ3VjX3N1c3BlbmQoKS4KPj4gQWN0 dWFsbHkgaWRlYWxseSBndWNfcmVhZF91cGRhdGVfbG9nX2J1ZmZlcigpIGFuZAo+PiBob3N0Mmd1 Y19sb2didWZmZXJfZmx1c2hfY29tcGxldGUoKSBzaG91bGQgYmUgY2FsbGVkIG9ubHkgaWYgdGhl IHdvcmsKPj4gaXRlbSB3YXMgYWN0dWFsbHkgbWlzc2VkLiBTbyB3aWxsIGhhdmUgdG8gZGV0ZWN0 IHRoZSBtaXNzaW5nIG9mIHdvcmsgaXRlbS4KPgo+IE9rLiBCdXQgbm90ZSB0aGF0IG1pc3Npbmcg YW4gaW50ZXJydXB0IHdoZW4gcnVudGltZSBzdXNwZW5kaW5nIGlzIG5vdAo+IHVuaW1hZ2luYWJs ZSBpbiBhbnkgY2FzZSwgc2luY2UgaW50ZXJydXB0cyBjYW4gZ2V0IGRpc2FibGVkIChhbmQKPiBj bGVhcmVkKSBiZWZvcmUgdGhleSB3b3VsZCBnZXQgc2VydmljZWQuCj4KRmluZSwgbWlzc2luZyBv ZiBpbnRlcnJ1cHQgd2lsbCBhbHdheXMgYmUgYSBwb3NzaWJpbGl0eS4KCj4+IElzbid0IHRoZSBv cmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBpLmUuIGNvbmRpdGlvbmFsIGZsdXNoaW5nIG9mIHdvcmsg aXRlbQo+PiBmb3IgdGhlIHN5c3RlbSBzdXNwZW5kIGNhc2UsIGEgc2ltcGxlciAmIGNsZWFuZXIg c29sdXRpb24gPwo+Cj4gWWVzLCBwZXJoYXBzLCBlc3BlY2lhbGx5IHdpdGggdGhlIG1pc3NlZCB3 b3JrIGl0ZW0gZGV0ZWN0aW9uLiBIb3cgYWJvdXQKPiBtYWtpbmcgdGhlIGxvZy5mbHVzaF93cSBm cmVlemFibGU/IFRoZW4gd2UgY291bGQgZm9yZ28gdGhlIGZsdXNoIGluCj4gYm90aCBydW50aW1l IGFuZCBzeXN0ZW0gc3VzcGVuZC4KPgpUaGFua3MgZm9yIHRoZSBpbnB1dHMuIFNvcnJ5IG5vdCBm YW1pbGlhciB3aXRoIGZyZWV6YWJsZSBXUSBzZW1hbnRpY3MuCkJ1dCBhZnRlciBsb29raW5nIGF0 IGNvZGUsIHRoaXMgaXMgd2hhdCBJIHVuZGVyc3Rvb2QgOi0KMS4gZnJlZXphYmxlIFdvcmtxdWV1 ZXMgd2lsbCBiZSBmcm96ZW4gYmVmb3JlIHRoZSBzeXN0ZW0gc3VzcGVuZAogICAgY2FsbGJhY2tz IGFyZSBpbnZva2VkIGZvciB0aGUgZGV2aWNlcy4KMi4gQW55IHdvcmsgaXRlbSBxdWV1ZWQgYWZ0 ZXIgdGhlIFdRIGlzIG1hcmtlZCBmcm96ZW4gd2lsbCBiZSBzY2hlZHVsZWQKICAgIGxhdGVyLCBv biByZXN1bWUuCjMuIEJ1dCBpZiBhIHdvcmsgaXRlbSB3YXMgYWxyZWFkeSBwcmVzZW50IGluIHRo ZSBmcmVlemFibGUgV29ya3F1ZXVlLAogICAgYmVmb3JlIGl0IHdhcyBmcm96ZW4gYW5kIGl0IGRp ZCBub3QgY29tcGxldGUsIHRoZW4gc3lzdGVtIHN1c3BlbmQKICAgIGl0c2VsZiB3aWxsIGJlIGFi b3J0ZWQuCjQuIFNvIGlmIHRoZSBsb2cuZmx1c2hfd3EgaXMgbWFya2VkIGFzIGZyZWV6YWJsZSwg dGhlbiBmbHVzaCBvZgogICAgd29yayBpdGVtIHdpbGwgbm90IGJlIHJlcXVpcmVkIGZvciB0aGUg c3lzdGVtIHN1c3BlbmQgY2FzZS4KICAgIEFuZCBydW50aW1lIHN1c3BlbmQgY2FzZSBpcyBhbHJl YWR5IGNvdmVyZWQgd2l0aCBycG0gZ2V0L3B1dAogICAgYXJvdW5kIHJlZ2lzdGVyIGFjY2VzcyBp biB3b3JrIGl0ZW0gZnVuY3Rpb24uCgpJdCBzZWVtcyB0aGVyZSBhcmUgMiBjb25maWcgb3B0aW9u cyBDT05GSUdfU1VTUEVORF9GUkVFWkVSIGFuZApDT05GSUdfRlJFRVpFUiB3aGljaCBoYXZlIHRv IGJlIGVuYWJsZWQgZm9yIGFsbCB0aGUgYWJvdmUgdG8gaGFwcGVuLgpJZiB0aGVzZSBjb25maWcg b3B0aW9ucyB3aWxsIGFsd2F5cyBiZSBlbmFibGVkIHRoZW4gcHJvYmFibHkgbWFya2luZwpsb2cu Zmx1c2hfd3Egd291bGQgd29yay4KClBsZWFzZSBraW5kbHkgY29uZmlybSB3aGV0aGVyIEkgdW5k ZXJzdG9vZCBjb3JyZWN0bHkgb3Igbm90LCBhY2NvcmRpbmdseSAKd2lsbCBwcm9jZWVkIGZ1cnRo ZXIuCgpCZXN0IHJlZ2FyZHMKQWthc2gKCgoKPiAtLUltcmUKPgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK