From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Goel, Akash" Subject: Re: [PATCH 05/20] drm/i915: Support for GuC interrupts Date: Fri, 12 Aug 2016 21:02:38 +0530 Message-ID: <31cfa60f-52c0-1e2d-e71c-1de68ec5e2ec@intel.com> References: <1470983123-22127-1-git-send-email-akash.goel@intel.com> <1470983123-22127-6-git-send-email-akash.goel@intel.com> <57ADB8F7.1070001@linux.intel.com> <8a99de0d-6547-8158-55a4-8ad6777bd428@intel.com> <57ADCFB8.9090603@linux.intel.com> <57ADE5A5.7090505@linux.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 1F7996EBE8 for ; Fri, 12 Aug 2016 15:32:41 +0000 (UTC) In-Reply-To: <57ADE5A5.7090505@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin , intel-gfx@lists.freedesktop.org Cc: akash.goel@intel.com List-Id: intel-gfx@lists.freedesktop.org CgpPbiA4LzEyLzIwMTYgODozNSBQTSwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4KPiBPbiAxMi8w OC8xNiAxNTozMSwgR29lbCwgQWthc2ggd3JvdGU6Cj4+IE9uIDgvMTIvMjAxNiA3OjAxIFBNLCBU dnJ0a28gVXJzdWxpbiB3cm90ZToKPj4+Pj4+ICtzdGF0aWMgdm9pZCBnZW45X2d1YzJob3N0X2V2 ZW50c193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPj4+Pj4+ICt7Cj4+Pj4+PiArICAg IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4+Pj4+PiArICAgICAgICBjb250 YWluZXJfb2Yod29yaywgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsCj4+Pj4+PiBndWMuZXZlbnRz X3dvcmspOwo+Pj4+Pj4gKwo+Pj4+Pj4gKyAgICBzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJx X2xvY2spOwo+Pj4+Pj4gKyAgICAvKiBTcGVlZCB1cCB3b3JrIGNhbmNlbGxhdGlvbiBkdXJpbmcg ZGlzYWJsaW5nIGd1Ywo+Pj4+Pj4gaW50ZXJydXB0cy4gKi8KPj4+Pj4+ICsgICAgaWYgKCFkZXZf cHJpdi0+Z3VjLmludGVycnVwdHNfZW5hYmxlZCkgewo+Pj4+Pj4gKyAgICAgICAgc3Bpbl91bmxv Y2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+Pj4+Pj4gKyAgICAgICAgcmV0dXJuOwo+Pj4+ Pgo+Pj4+PiBJIHN1cHBvc2UgbG9ja2luZyBmb3IgZWFybHkgZXhpdCBpcyBzb21ldGhpbmcgYWJv dXQgZW5zdXJpbmcgdGhlCj4+Pj4+IHdvcmtlcgo+Pj4+PiBzZWVzIHRoZSB1cGRhdGUgdG8gZGV2 X3ByaXYtPmd1Yy5pbnRlcnJ1cHRzX2VuYWJsZWQgZG9uZSBvbiBhbm90aGVyCj4+Pj4+IENQVT8K Pj4+Pgo+Pj4+IFllcyBsb2NraW5nIChwcm92aWRpbmcgaW1wbGljaXQgYmFycmllcikgd2lsbCBl bnN1cmUgdGhhdCB1cGRhdGUgbWFkZQo+Pj4+IGZyb20gYW5vdGhlciBDUFUgaXMgaW1tZWRpYXRl bHkgdmlzaWJsZSB0byB0aGUgd29ya2VyLgo+Pj4KPj4+IFdoYXQgaWYgdGhlIGRpc2FibGUgaGFw cGVucyBhZnRlciB0aGUgdW5sb2NrIGFib3ZlPyBJdCB3b3VsZCB3YWl0IGluCj4+PiBkaXNhYmxl IHVudGlsIHRoZSBpcnEgaGFuZGxlciBleGl0cy4KPj4gTW9zdCBwcm9iYWJseSBpdCB3aWxsIG5v dCBoYXZlIHRvIHdhaXQsIGFzIGlycSBoYW5kbGVyIHdvdWxkIGhhdmUKPj4gY29tcGxldGVkIGlm IHdvcmsgaXRlbSBiZWdhbiB0aGUgZXhlY3V0aW9uLgo+PiBJcnEgaGFuZGxlciBqdXN0IHF1ZXVl cyB0aGUgd29yayBpdGVtLCB3aGljaCBnZXRzIHNjaGVkdWxlZCBsYXRlciBvbi4KPj4KPj4gVXNp bmcgdGhlIGxvY2sgaXMgYmVuZWZpY2lhbCBmb3IgdGhlIGNhc2Ugd2hlcmUgdGhlIGV4ZWN1dGlv biBvZiB3b3JrCj4+IGl0ZW0gYW5kIGludGVycnVwdCBkaXNhYmxpbmcgaXMgZG9uZSBhcm91bmQg dGhlIHNhbWUgdGltZS4KPgo+IE9rIG1heWJlIEkgYW0gbWlzc2luZyBzb21ldGhpbmcuCj4KPiBX aGVuIGNhbiB0aGUgaW50ZXJydXB0IGRpc2FibGluZyBoYXBwZW4/IFdpbGwgaXQgYmUgY29udHJv bGxlZCBieSB0aGUKPiBkZWJ1Z2ZzIGZpbGUgb3IgaXMgaXQgZHJpdmVyIGxvYWQvdW5sb2FkIGFu ZCBzdXNwZW5kL3Jlc3VtZT8KPgp5ZXMgZGlzYWJsaW5nIHdpbGwgaGFwcGVuIGZvciBhbGwgdGhl IGFib3ZlIDMgc2NlbmFyaW9zLgoKPj4+Pj4+ICtzdGF0aWMgdm9pZCBnZW45X2d1Y19pcnFfaGFu ZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+Pj4+PiB1MzIgZ3RfaWly KQo+Pj4+Pj4gK3sKPj4+Pj4+ICsgICAgYm9vbCBpbnRlcnJ1cHRzX2VuYWJsZWQ7Cj4+Pj4+PiAr Cj4+Pj4+PiArICAgIGlmIChndF9paXIgJiBHRU45X0dVQ19UT19IT1NUX0lOVF9FVkVOVCkgewo+ Pj4+Pj4gKyAgICAgICAgc3Bpbl9sb2NrKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+Pj4+Pj4gKyAg ICAgICAgaW50ZXJydXB0c19lbmFibGVkID0gZGV2X3ByaXYtPmd1Yy5pbnRlcnJ1cHRzX2VuYWJs ZWQ7Cj4+Pj4+PiArICAgICAgICBzcGluX3VubG9jaygmZGV2X3ByaXYtPmlycV9sb2NrKTsKPj4+ Pj4KPj4+Pj4gTm90IHN1cmUgdGhhdCB0YWtpbmcgYSBsb2NrIGFyb3VuZCBvbmx5IHRoaXMgcmVh ZCBpcyBuZWVkZWQuCj4+Pj4+Cj4+Pj4gQWdhaW4gc2FtZSByZWFzb24gYXMgYWJvdmUsIHRvIG1h a2Ugc3VyZSBhbiB1cGRhdGUgbWFkZSBvbiBhbm90aGVyIENQVQo+Pj4+IGlzIGltbWVkaWF0ZWx5 IHZpc2libGUgdG8gdGhlIGlycSBoYW5kbGVyLgo+Pj4KPj4+IEkgZG9uJ3QgZ2V0IGl0LCBzZWUg YWJvdmUuIDopCj4+Cj4+IEhlcmUgYWxzbyBJZiBpbnRlcnJ1cHQgZGlzYWJsaW5nICYgSVNSIGV4 ZWN1dGlvbiBoYXBwZW5zIGFyb3VuZCB0aGUgc2FtZQo+PiB0aW1lIHRoZW4gSVNSIG1pZ2h0IG1p c3MgdGhlIHJlc2V0IG9mICdpbnRlcnJ1cHRzX2VuYWJsZWQnIGZsYWcgYW5kCj4+IHF1ZXVlIHRo ZSBuZXcgd29yay4KPgo+IFdoYXQgaWYgcmVzZXQgb2YgaW50ZXJydXB0c19lbmFibGVkIGhhcHBl bnMganVzdCBhcyB0aGUgSVNSIHJlbGVhc2VzIHRoZQo+IGxvY2s/Cj4KVGhlbiBJU1Igd2lsbCBw cm9jZWVkIGFoZWFkIGFuZCBxdWV1ZSB0aGUgd29yayBpdGVtLgoKTG9jayBpcyB1c2VmdWwgaWYg cmVzZXQgb2YgaW50ZXJydXB0c19lbmFibGVkIGZsYWcganVzdCBoYXBwZW5zIGJlZm9yZSAKdGhl IElTUiBpbnNwZWN0cyB0aGUgdmFsdWUgb2YgdGhhdCBmbGFnLgpBbHNvIGxvY2sgd2lsbCBoZWxw IHdoZW4gaW50ZXJydXB0c19lbmFibGVkIGZsYWcgaXMgc2V0IGFnYWluLCBuZXh0IElTUiAKd2ls bCBkZWZpbml0ZWx5IHNlZSBpdCBhcyBzZXQuCgo+PiBBbmQgc2FtZSBhcHBsaWVzIHRvIHRoZSBj YXNlIHdoZW4gaW50ZXJydXB0IGlzIHJlLWVuYWJsZWQsIElTUiBtaWdodAo+PiBzdGlsbCBzZWUg dGhlICdpbnRlcnJ1cHRzX2VuYWJsZWQnIGZsYWcgYXMgZmFsc2UuCj4+IEl0IHdpbGwgZXZlbnR1 YWxseSBzZWUgdGhlIHVwZGF0ZSB0aG91Z2guCj4+Cj4+Pgo+Pj4+Pj4gKyAgICAgICAgaWYgKGlu dGVycnVwdHNfZW5hYmxlZCkgewo+Pj4+Pj4gKyAgICAgICAgICAgIC8qIFNhbXBsZSB0aGUgbG9n IGJ1ZmZlciBmbHVzaCByZWxhdGVkIGJpdHMgJiBjbGVhciB0aGVtCj4+Pj4+PiArICAgICAgICAg ICAgICogb3V0IG5vdyBpdHNlbGYgZnJvbSB0aGUgbWVzc2FnZSBpZGVudGl0eSByZWdpc3RlciB0 bwo+Pj4+Pj4gKyAgICAgICAgICAgICAqIG1pbmltaXplIHRoZSBwcm9iYWJpbGl0eSBvZiBsb3Np bmcgYSBmbHVzaCBpbnRlcnJ1cHQsCj4+Pj4+PiArICAgICAgICAgICAgICogd2hlbiB0aGVyZSBh cmUgYmFjayB0byBiYWNrIGZsdXNoIGludGVycnVwdHMuCj4+Pj4+PiArICAgICAgICAgICAgICog VGhlcmUgY2FuIGJlIGEgbmV3IGZsdXNoIGludGVycnVwdCwgZm9yIGRpZmZlcmVudCBsb2cKPj4+ Pj4+ICsgICAgICAgICAgICAgKiBidWZmZXIgdHlwZSAobGlrZSBmb3IgSVNSKSwgd2hpbHN0IEhv c3QgaXMgaGFuZGxpbmcKPj4+Pj4+ICsgICAgICAgICAgICAgKiBvbmUgKGZvciBEUEMpLiBTaW5j ZSBzYW1lIGJpdCBpcyB1c2VkIGluIG1lc3NhZ2UKPj4+Pj4+ICsgICAgICAgICAgICAgKiByZWdp c3RlciBmb3IgSVNSICYgRFBDLCBpdCBjb3VsZCBoYXBwZW4gdGhhdCBHdUMKPj4+Pj4+ICsgICAg ICAgICAgICAgKiBzZXRzIHRoZSBiaXQgZm9yIDJuZCBpbnRlcnJ1cHQgYnV0IEhvc3QgY2xlYXJz IG91dAo+Pj4+Pj4gKyAgICAgICAgICAgICAqIHRoZSBiaXQgb24gaGFuZGxpbmcgdGhlIDFzdCBp bnRlcnJ1cHQuCj4+Pj4+PiArICAgICAgICAgICAgICovCj4+Pj4+PiArICAgICAgICAgICAgdTMy IG1zZyA9IEk5MTVfUkVBRChTT0ZUX1NDUkFUQ0goMTUpKSAmCj4+Pj4+PiArICAgICAgICAgICAg ICAgICAgICAoR1VDMkhPU1RfTVNHX0NSQVNIX0RVTVBfUE9TVEVEIHwKPj4+Pj4+ICsgICAgICAg ICAgICAgICAgICAgICBHVUMySE9TVF9NU0dfRkxVU0hfTE9HX0JVRkZFUik7Cj4+Pj4+PiArICAg ICAgICAgICAgaWYgKG1zZykgewo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAvKiBDbGVhciB0aGUg bWVzc2FnZSBiaXRzIHRoYXQgYXJlIGhhbmRsZWQgKi8KPj4+Pj4+ICsgICAgICAgICAgICAgICAg STkxNV9XUklURShTT0ZUX1NDUkFUQ0goMTUpLAo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg STkxNV9SRUFEKFNPRlRfU0NSQVRDSCgxNSkpICYgfm1zZyk7Cj4+Pj4+Cj4+Pj4+IENhY2hlIGZ1 bGwgdmFsdWUgb2YgU09GVF9TQ1JBVENIKDE1KSBzbyB5b3UgZG9uJ3QgaGF2ZSB0byBtbWlvIHJl YWQgaXQKPj4+Pj4gdHdpY2U/Cj4+Pj4+Cj4+Pj4gVGhvdWdodCByZWFkaW5nIGl0IGFnYWluIChq dXN0IGJlZm9yZSB0aGUgdXBkYXRlKSBpcyBiaXQgc2FmZXIgY29tcGFyZWQKPj4+PiB0byByZWFk aW5nIGl0IG9uY2UsIGFzIHRoZXJlIGlzIGEgcG90ZW50aWFsIHJhY2UgcHJvYmxlbSBoZXJlLgo+ Pj4+IEd1QyBjb3VsZCBhbHNvIHdyaXRlIHRvIHRoZSBTT0ZUX1NDUkFUQ0goMTUpIHJlZ2lzdGVy LCBzZXQgbmV3IGV2ZW50cwo+Pj4+IGJpdCwgd2hpbGUgSG9zdCBjbGVhcnMgb2ZmIHRoZSBiaXQg b2YgaGFuZGxlZCBldmVudHMuCj4+Pgo+Pj4gRG9uJ3QgZ2V0IGl0LiBJZiB0aGVyZSBpcyBhIHJh Y2UgYmV0d2VlbiByZWFkIGFuZCB3cml0ZSB0aGVyZSBzdGlsbCBpcywKPj4+IGRvbid0IHNlZSBo b3cgYSBzZWNvbmQgcmVhZCBtYWtlcyBpdCBzYWZlci4KPj4+Cj4+IFllcyBjYW4ndCBhdm9pZCB0 aGUgcmFjZSBjb21wbGV0ZWx5IGJ5IGRvdWJsZSByZWFkcywgYnV0IGNhbiByZWR1Y2UgdGhlCj4+ IHJhY2Ugd2luZG93IHNpemUuCj4KPiBUaGVyZSB3YXMgb25seSBvbmUgdGhpbmcgYmV0d2VlbiB0 aGUgdHdvIHJlYWRzLCBhbmQgdGhhdCB3YXMgImlmIChtc2cpIjoKPgo+ICArICAgICAgICAgICAg dTMyIG1zZyA9IEk5MTVfUkVBRChTT0ZUX1NDUkFUQ0goMTUpKSAmCj4gICsgICAgICAgICAgICAg ICAgICAgIChHVUMySE9TVF9NU0dfQ1JBU0hfRFVNUF9QT1NURUQgfAo+ICArICAgICAgICAgICAg ICAgICAgICAgR1VDMkhPU1RfTVNHX0ZMVVNIX0xPR19CVUZGRVIpOwo+Cj4gICsgICAgICAgICAg ICBpZiAobXNnKSB7Cj4KPiAgKyAgICAgICAgICAgICAgICAvKiBDbGVhciB0aGUgbWVzc2FnZSBi aXRzIHRoYXQgYXJlIGhhbmRsZWQgKi8KPiAgKyAgICAgICAgICAgICAgICBJOTE1X1dSSVRFKFNP RlRfU0NSQVRDSCgxNSksCj4gICsgICAgICAgICAgICAgICAgICAgIEk5MTVfUkVBRChTT0ZUX1ND UkFUQ0goMTUpKSAmIH5tc2cpOwo+Cj4+Cj4+IEFsc28gSSBmZWx0IGNvZGUgbG9va2VkIGJldHRl ciBpbiBjdXJyZW50IGZvcm0sIGFzIG1hY3Jvcwo+PiBHVUMySE9TVF9NU0dfQ1JBU0hfRFVNUF9Q T1NURUQgJiBHVUMySE9TVF9NU0dfRkxVU0hfTE9HX0JVRkZFUiB3ZXJlIHVzZWQKPj4gb25seSBv bmNlLgo+Pgo+PiBXaWxsIGNoYW5nZSBhcyBwZXIgdGhlIGluaXRpYWwgaW1wbGVtZW50YXRpb24u Cj4+Cj4+ICAgICAgdTMyIG1zZyA9IEk5MTVfUkVBRChTT0ZUX1NDUkFUQ0goMTUpKTsKPj4gICAg ICBpZiAobXNnICYgKEdVQzJIT1NUX01TR19DUkFTSF9EVU1QX1BPU1RFRCB8Cj4+ICAgICAgICAg ICAgIEdVQzJIT1NUX01TR19GTFVTSF9MT0dfQlVGRkVSKSB7Cj4+ICAgICAgICAgIG1zZyAmPSB+ KEdVQzJIT1NUX01TR19DUkFTSF9EVU1QX1BPU1RFRCB8Cj4+ICAgICAgICAgICAgICAgR1VDMkhP U1RfTVNHX0ZMVVNIX0xPR19CVUZGRVIpOwo+PiAgICAgICAgICBJOTE1X1dSSVRFKFNPRlRfU0NS QVRDSCgxNSksIG1zZyk7Cj4+ICAgICAgfQo+Cj4gT3I6Cj4gICAgIHUzMiBtc2csIGZsdXNoOwo+ Cj4gICAgIG1zZyA9IEk5MTVfUkVBRChTT0ZUX1NDUkFUQ0goMTUpKTsKPiAgICAgZmx1c2ggPSBt c2cgJiAoR1VDMkhPU1RfTVNHX0NSQVNIX0RVTVBfUE9TVEVEIHwKPiBHVUMySE9TVF9NU0dfRkxV U0hfTE9HX0JVRkZFUik7Cj4gICAgIGlmIChmbHVzaCkgewo+ICAgICAgICAgSTkxNV9XUklURShT T0ZUX1NDUkFUQ0goMTUpLCB+Zmx1c2gpOwo+ICAgICAgICAgLi4uIHF1ZXVlIHdva2VyIC4uLgo+ Cj4gPwpUaGFua3MgbXVjaCwgd2lsbCBjaGFuZ2UgYXMgcGVyIHRoZSBhYm92ZS4KCj4KPj4KPj4+ Pj4gQWxzbywgaXMgdGhlIFJNVyBvdXRzaWRlIGFueSBsb2NrcyBzYWZlPwo+Pj4+Pgo+Pj4+Cj4+ Pj4gSWRlYWxseSBuZWVkIGEgd2F5IHRvIGF0b21pY2FsbHkgZG8gdGhlIFJNVywgaS5lLiByZWFk IHRoZSByZWdpc3Rlcgo+Pj4+IHZhbHVlLCBjbGVhciBvZmYgdGhlIGhhbmRsZWQgZXZlbnRzIGJp dCBhbmQgdXBkYXRlIHRoZSByZWdpc3RlciB3aXRoCj4+Pj4gdGhlCj4+Pj4gbW9kaWZpZWQgdmFs dWUuCj4+Pj4KPj4+PiBQbGVhc2Uga2luZGx5IHN1Z2dlc3QgaG93IHRvIGFkZHJlc3MgdGhlIGFi b3ZlLgo+Pj4+IE9yIGNhbiB0aGlzIGJlIGxlZnQgYXMgYSBUT0RPLCB3aGVuIHdlIGRvIHN0YXJ0 IGhhbmRsaW5nIG90aGVyIGV2ZW50cwo+Pj4+IGFsc28uCj4+Pgo+Pj4gRnJvbSB0aGUgY29tbWVu dCBpbiBjb2RlIGFib3ZlIGl0IHNvdW5kcyBsaWtlIGEgR3VDIGZ3IGludGVyZmFjZQo+Pj4gc2hv cnRjb21pbmcgLSB0aGF0IHRoZXJlIGlzIGEgc2luZ2xlIGJpdCBmb3IgdHdvIGRpZmZlcmVudCBp bnRlcnJ1cHQKPj4+IHNvdXJjZXMsIGlzIHRoYXQgcmlnaHQ/Cj4+IFllcyB0aGF0IHNob3J0Y29t aW5nIGlzIHRoZXJlLCBHVUMySE9TVF9NU0dfRkxVU0hfTE9HX0JVRkZFUiBiaXQgaXMgdXNlZAo+ PiBmb3IgY29udmV5aW5nIHRoZSBmbHVzaCBmb3IgSVNSICYgRFBDIGxvZyBidWZmZXJzLgo+Pgo+ Pj4gSXMgdGhlcmUgYW55IG90aGVyIHJlZ2lzdGVyIG9yIHNvbWV0aGluZyB0aGF0Cj4+PiB5b3Ug Y2FuIHJlYWQgdG8gZGV0ZWN0IHRoYXQgdGhlIGludGVycnVwdCBoYXMgYmVlbiByZS1hc3NlcnRl ZCB3aGlsZSBpbgo+Pj4gdGhlIGlycSBoYW5kbGVyPwo+Pgo+Pgo+Pj4gQWx0aG91Z2ggSSB0aG91 Z2h0IHlvdSBzYWlkIGJlZm9yZSB0aGF0IHRoZSBHdUMgd2lsbAo+Pj4gbm90IGRvIHRoYXQgLSB0 aGF0IGl0IHdvbid0IHJlLWFzc2VydCB0aGUgaW50ZXJydXB0IGJlZm9yZSB3ZSBzZW5kIHRoZQo+ Pj4gZmx1c2ggY29tbWFuZC4KPj4gWWVzIHRoYXQgaXMgdGhlIGNhc2UsIGJ1dCB3aXRoIHJlc3Bl Y3QgdG8gb25lIHR5cGUgb2YgYSBsb2cgYnVmZmVyLCBsaWtlCj4+IGZvciBleGFtcGxlIHVubGVz cyBHdUMgZmlybXdhcmUgcmVjZWl2ZXMgdGhlIGFjayBmb3IgRFBDIGxvZwo+PiBidWZmZXIgaXQg d29uJ3Qgc2VuZCBhIG5ldyBmbHVzaCBmb3IgRFBDIGJ1ZmZlciwgYnV0IGlmIG1lYW53aGlsZSBJ U1IKPj4gYnVmZmVyIGJlY29tZXMgaGFsZiBmdWxsIGl0IHdpbGwgc2VuZCBhIGZsdXNoIGludGVy cnVwdC4KPgo+IFNvIHRoZSBwb3RlbnRpYWwgZm9yIGxvc2luZyBpbnRlcnJ1cHRzIGlzIHVuYXZv aWRhYmxlIGl0IHNlZW1zLiA6KCBJZiBJCj4gYW0gdW5kZXJzdGFuZGluZyB0aGlzIGNvcnJlY3Rs eS4KPgpZZXMgdW5hdm9pZGFibGUsIGJ1dCB0aGF0J3MgYSB2ZXJ5IHNtYWxsIHdpbmRvdy4KSGF2 ZSBhcHByaXNlZCBHdUMgZm9sa3MgYWJvdXQgdGhpcy4KCkJlc3QgUmVnYXJkcwpBa2FzaAoKPiBS ZWdhcmRzLAo+Cj4gVHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=