From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Dai Subject: Re: [PATCH 11/15] drm/i915: Interrupt routing for GuC submission Date: Mon, 06 Jul 2015 17:00:52 -0700 Message-ID: <559B16B4.3030405@intel.com> References: <1435926637-30892-1-git-send-email-david.s.gordon@intel.com> <1435926637-30892-12-git-send-email-david.s.gordon@intel.com> <20150706141404.GH2156@phenom.ffwll.local> <559AA7C3.8040409@intel.com> <20150706182108.GG7568@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 545B46E179 for ; Mon, 6 Jul 2015 17:02:09 -0700 (PDT) In-Reply-To: <20150706182108.GG7568@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiAwNy8wNi8yMDE1IDExOjIxIEFNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+IE9uIE1vbiwg SnVsIDA2LCAyMDE1IGF0IDA1OjA3OjMxUE0gKzAxMDAsIERhdmUgR29yZG9uIHdyb3RlOgo+ID4g T24gMDYvMDcvMTUgMTU6MTQsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+T24gRnJpLCBKdWwg MDMsIDIwMTUgYXQgMDE6MzA6MzNQTSArMDEwMCwgRGF2ZSBHb3Jkb24gd3JvdGU6Cj4gPiA+PlR1 cm4gb24gaW50ZXJydXB0IHN0ZWVyaW5nIHRvIHJvdXRlIG5lY2Vzc2FyeSBpbnRlcnJ1cHRzIHRv IEd1Qy4KPiA+ID4+Cj4gPiA+Pklzc3VlOiBWSVotNDg4NAo+ID4gPj5TaWduZWQtb2ZmLWJ5OiBB bGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4KPiA+ID4+U2lnbmVkLW9mZi1ieTogRGF2ZSBHb3Jk b24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KPiA+ID4+LS0tCj4gPiA+PiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgIHwgMTEgKysrKystLQo+ID4gPj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyB8IDUxICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwo+ID4gPj4gIDIgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKPiA+ID4+Cj4gPiA+PmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4g Pj5pbmRleCBlZWZiODQ3Li45ZjMyYzZjIDEwMDY0NAo+ID4gPj4tLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+PisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKPiA+ID4+QEAgLTE2NTksMTIgKzE2NTksMTggQEAgZW51bSBza2xfZGlzcF9wb3dlcl93 ZWxscyB7Cj4gPiA+PiAgI2RlZmluZSBHRlhfTU9ERV9HRU43CTB4MDIyOWMKPiA+ID4+ICAjZGVm aW5lIFJJTkdfTU9ERV9HRU43KHJpbmcpCSgocmluZyktPm1taW9fYmFzZSsweDI5YykKPiA+ID4+ ICAjZGVmaW5lICAgR0ZYX1JVTl9MSVNUX0VOQUJMRQkJKDE8PDE1KQo+ID4gPj4rI2RlZmluZSAg IEdGWF9JTlRFUlJVUFRfU1RFRVJJTkcJKDE8PDE0KQo+ID4gPj4gICNkZWZpbmUgICBHRlhfVExC X0lOVkFMSURBVEVfRVhQTElDSVQJKDE8PDEzKQo+ID4gPj4gICNkZWZpbmUgICBHRlhfU1VSRkFD RV9GQVVMVF9FTkFCTEUJKDE8PDEyKQo+ID4gPj4gICNkZWZpbmUgICBHRlhfUkVQTEFZX01PREUJ CSgxPDwxMSkKPiA+ID4+ICAjZGVmaW5lICAgR0ZYX1BTTUlfR1JBTlVMQVJJVFkJCSgxPDwxMCkK PiA+ID4+ICAjZGVmaW5lICAgR0ZYX1BQR1RUX0VOQUJMRQkJKDE8PDkpCj4gPiA+Pgo+ID4gPj4r I2RlZmluZSAgIEdGWF9GT1JXQVJEX1ZCTEFOS19NQVNLCSgzPDw1KQo+ID4gPj4rI2RlZmluZSAg IEdGWF9GT1JXQVJEX1ZCTEFOS19ORVZFUgkoMDw8NSkKPiA+ID4+KyNkZWZpbmUgICBHRlhfRk9S V0FSRF9WQkxBTktfQUxXQVlTCSgxPDw1KQo+ID4gPj4rI2RlZmluZSAgIEdGWF9GT1JXQVJEX1ZC TEFOS19DT05ECSgyPDw1KQo+ID4gPj4rCj4gPiA+PiAgI2RlZmluZSBWTFZfRElTUExBWV9CQVNF IDB4MTgwMDAwCj4gPiA+PiAgI2RlZmluZSBWTFZfTUlQSV9CQVNFIFZMVl9ESVNQTEFZX0JBU0UK PiA+ID4+Cj4gPiA+PkBAIC01Njc3LDExICs1NjgzLDEyIEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJf d2VsbHMgewo+ID4gPj4gICNkZWZpbmUgR0VOOF9HVF9JSVIod2hpY2gpICgweDQ0MzA4ICsgKDB4 MTAgKiAod2hpY2gpKSkKPiA+ID4+ICAjZGVmaW5lIEdFTjhfR1RfSUVSKHdoaWNoKSAoMHg0NDMw YyArICgweDEwICogKHdoaWNoKSkpCj4gPiA+Pgo+ID4gPj4tI2RlZmluZSBHRU44X0JDU19JUlFf U0hJRlQgMTYKPiA+ID4+ICAjZGVmaW5lIEdFTjhfUkNTX0lSUV9TSElGVCAwCj4gPiA+Pi0jZGVm aW5lIEdFTjhfVkNTMl9JUlFfU0hJRlQgMTYKPiA+ID4+KyNkZWZpbmUgR0VOOF9CQ1NfSVJRX1NI SUZUIDE2Cj4gPiA+PiAgI2RlZmluZSBHRU44X1ZDUzFfSVJRX1NISUZUIDAKPiA+ID4+KyNkZWZp bmUgR0VOOF9WQ1MyX0lSUV9TSElGVCAxNgo+ID4gPj4gICNkZWZpbmUgR0VOOF9WRUNTX0lSUV9T SElGVCAwCj4gPiA+PisjZGVmaW5lIEdFTjhfV0RfSVJRX1NISUZUIDE2Cj4gPiA+Pgo+ID4gPj4g ICNkZWZpbmUgR0VOOF9ERV9QSVBFX0lTUihwaXBlKSAoMHg0NDQwMCArICgweDEwICogKHBpcGUp KSkKPiA+ID4+ICAjZGVmaW5lIEdFTjhfREVfUElQRV9JTVIocGlwZSkgKDB4NDQ0MDQgKyAoMHgx MCAqIChwaXBlKSkpCj4gPiA+PmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWNfbG9hZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMK PiA+ID4+aW5kZXggZWI3NmMzNC4uZWY1ZjNkNSAxMDA2NDQKPiA+ID4+LS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gPiA+PisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwo+ID4gPj5AQCAtNjIsNiArNjIsNTMgQEAKPiA+ID4+ ICAjZGVmaW5lIEk5MTVfU0tMX0dVQ19VQ09ERSAiaTkxNS9za2xfZ3VjX3ZlcjMuYmluIgo+ID4g Pj4gIE1PRFVMRV9GSVJNV0FSRShJOTE1X1NLTF9HVUNfVUNPREUpOwo+ID4gPj4KPiA+ID4+K3N0 YXRpYyB2b2lkIGRpcmVjdF9pbnRlcnJ1cHRzX3RvX2hvc3Qoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ID4gPj4rewo+ID4gPj4rCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmc7Cj4gPiA+PisJaW50IGksIGlycXM7Cj4gPiA+PisKPiA+ID4+KwkvKiB0ZWxsIGFsbCBjb21t YW5kIHN0cmVhbWVycyBOT1QgdG8gZm9yd2FyZCBpbnRlcnJ1cHRzIGFuZCB2YmxhbmsgdG8gR3VD ICovCj4gPiA+PisJaXJxcyA9IF9NQVNLRURfRklFTEQoR0ZYX0ZPUldBUkRfVkJMQU5LX01BU0ss IEdGWF9GT1JXQVJEX1ZCTEFOS19ORVZFUik7Cj4gPiA+PisJaXJxcyB8PSBfTUFTS0VEX0JJVF9E SVNBQkxFKEdGWF9JTlRFUlJVUFRfU1RFRVJJTkcpOwo+ID4gPj4rCWZvcl9lYWNoX3Jpbmcocmlu ZywgZGV2X3ByaXYsIGkpCj4gPiA+PisJCUk5MTVfV1JJVEUoUklOR19NT0RFX0dFTjcocmluZyks IGlycXMpOwo+ID4gPj4rCj4gPiA+PisJLyogdGVsbCBERSB0byBzZW5kIG5vdGhpbmcgdG8gR3VD ICovCj4gPiA+PisJSTkxNV9XUklURShERV9HVUNSTVIsIH4wKTsKPiA+ID4+Kwo+ID4gPj4rCS8q IHJvdXRlIGFsbCBHVCBpbnRlcnJ1cHRzIHRvIHRoZSBob3N0ICovCj4gPiA+PisJSTkxNV9XUklU RShHVUNfQkNTX1JDU19JRVIsIDApOwo+ID4gPj4rCUk5MTVfV1JJVEUoR1VDX1ZDUzJfVkNTMV9J RVIsIDApOwo+ID4gPj4rCUk5MTVfV1JJVEUoR1VDX1dEX1ZFQ1NfSUVSLCAwKTsKPiA+ID4+K30K PiA+ID4+Kwo+ID4gPj4rc3RhdGljIHZvaWQgZGlyZWN0X2ludGVycnVwdHNfdG9fZ3VjKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4+K3sKPiA+ID4+KwlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nOwo+ID4gPj4rCWludCBpLCBpcnFzOwo+ID4gPj4rCj4gPiA+PisJ LyogdGVsbCBhbGwgY29tbWFuZCBzdHJlYW1lcnMgdG8gZm9yd2FyZCBpbnRlcnJ1cHRzIGFuZCB2 YmxhbmsgdG8gR3VDICovCj4gPiA+PisJaXJxcyA9IF9NQVNLRURfRklFTEQoR0ZYX0ZPUldBUkRf VkJMQU5LX01BU0ssIEdGWF9GT1JXQVJEX1ZCTEFOS19BTFdBWVMpOwo+ID4gPj4rCWlycXMgfD0g X01BU0tFRF9CSVRfRU5BQkxFKEdGWF9JTlRFUlJVUFRfU1RFRVJJTkcpOwo+ID4gPj4rCWZvcl9l YWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpCj4gPiA+PisJCUk5MTVfV1JJVEUoUklOR19NT0RF X0dFTjcocmluZyksIGlycXMpOwo+ID4gPj4rCj4gPiA+PisJLyogdGVsbCBERSB0byBzZW5kIChh bGwpIGZsaXBfZG9uZSB0byBHdUMgKi8KPiA+ID4+KwlpcnFzID0gREVSUk1SX1BJUEVBX1BSSV9G TElQX0RPTkUgfCBERVJSTVJfUElQRUFfU1BSX0ZMSVBfRE9ORSB8Cj4gPiA+PisJICAgICAgIERF UlJNUl9QSVBFQl9QUklfRkxJUF9ET05FIHwgREVSUk1SX1BJUEVCX1NQUl9GTElQX0RPTkUgfAo+ ID4gPj4rCSAgICAgICBERVJSTVJfUElQRUNfUFJJX0ZMSVBfRE9ORSB8IERFUlJNUl9QSVBFQ19T UFJfRkxJUF9ET05FOwo+ID4gPj4rCS8qIFVubWFza2VkIGJpdHMgd2lsbCBjYXVzZSBHdUMgcmVz cG9uc2UgbWVzc2FnZSB0byBiZSBzZW50ICovCj4gPiA+PisJSTkxNV9XUklURShERV9HVUNSTVIs IH5pcnFzKTsKPiA+ID4+Kwo+ID4gPj4rCS8qIHJvdXRlIFVTRVJfSU5URVJSVVBUIHRvIEhvc3Qs IGFsbCBvdGhlcnMgYXJlIHNlbnQgdG8gR3VDLiAqLwo+ID4gPj4rCWlycXMgPSBHVF9SRU5ERVJf VVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9SQ1NfSVJRX1NISUZUIHwKPiA+ID4+KwkgICAgICAgR1Rf UkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfQkNTX0lSUV9TSElGVDsKPiA+ID4+KwkvKiBU aGVzZSB0aHJlZSByZWdpc3RlcnMgaGF2ZSB0aGUgc2FtZSBiaXQgZGVmaW5pdGlvbnMgKi8KPiA+ ID4+KwlJOTE1X1dSSVRFKEdVQ19CQ1NfUkNTX0lFUiwgfmlycXMpOwo+ID4gPj4rCUk5MTVfV1JJ VEUoR1VDX1ZDUzJfVkNTMV9JRVIsIH5pcnFzKTsKPiA+ID4+KwlJOTE1X1dSSVRFKEdVQ19XRF9W RUNTX0lFUiwgfmlycXMpOwo+ID4gPj4rfQo+ID4gPj4rCj4gPiA+PiAgc3RhdGljIHUzMiBnZXRf Z3R0eXBlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4+ICB7Cj4gPiA+ PiAgCS8qIFhYWDogR1QgdHlwZSBiYXNlZCBvbiBQQ0kgZGV2aWNlIElEPyBmaWVsZCBzZWVtcyB1 bnVzZWQgYnkgZncgKi8KPiA+ID4+QEAgLTQxNyw2ICs0NjQsNyBAQCBpbnQgaW50ZWxfZ3VjX3Vj b2RlX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ID4+ICAJCWludGVsX3VjX2Z3X3N0 YXR1c19yZXByKGd1Y19mdy0+dWNfZndfZmV0Y2hfc3RhdHVzKSwKPiA+ID4+ICAJCWludGVsX3Vj X2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+dWNfZndfbG9hZF9zdGF0dXMpKTsKPiA+ID4+Cj4gPiA+ PisJZGlyZWN0X2ludGVycnVwdHNfdG9faG9zdChkZXZfcHJpdik7Cj4gPiA+PiAgCWk5MTVfZ3Vj X3N1Ym1pc3Npb25fZGlzYWJsZShkZXYpOwo+ID4gPj4KPiA+ID4+ICAJaWYgKGd1Y19mdy0+dWNf ZndfZmV0Y2hfc3RhdHVzID09IElOVEVMX1VDX0ZJUk1XQVJFX05PTkUpCj4gPiA+PkBAIC00NTAs NiArNDk4LDcgQEAgaW50IGludGVsX2d1Y191Y29kZV9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gPiA+PiAgCQllcnIgPSBpOTE1X2d1Y19zdWJtaXNzaW9uX2VuYWJsZShkZXYpOwo+ID4g Pj4gIAkJaWYgKGVycikKPiA+ID4+ICAJCQlnb3RvIGZhaWw7Cj4gPiA+PisJCWRpcmVjdF9pbnRl cnJ1cHRzX3RvX2d1YyhkZXZfcHJpdik7Cj4gPiA+Cj4gPiA+VGhpcyBsb29rcyBsaWtlIHN0aWxs IHNvbWUgcmVtbmFudHMgZnJvbSB3aGVuIGd1YyBsb2FkaW5nIGNvdWxkIGZhaWwgYW5kCj4gPiA+ d2UgbmVlZGVkIHRvIHN3aXRjaCBiZXR3ZWVuIGNwdSBhbmQgZ3VjIHN1Ym1pc3Npb24gYXQgcnVu dGltZS4gUHJvYmxlbSBpcwo+ID4gPnRoYXQgeW91IGRvbid0IG93biB0aGUgaW50ZXJydXB0IHN0 YXRlIGF0IHRoaXMgcG9pbnQgKHNpbmNlIGludGVycnVwdHMgYXJlCj4gPiA+YWxyZWFkeSBlbmFi bGVkKSBhbmQgaGVuY2UgdGhlcmUgY291bGQgYmUgcHJvYmxlbXMgd2l0aCByYWNlcy4KPiA+ID4K PiA+ID5TaW1wbGVzdCBzb2x1dGlvbiB3b3VsZCBiZSB0byBqdXN0IHNldCB1cCB0aGUgaW50ZXJy dXB0IHJvdXRpbmcgd2Ugd2FudAo+ID4gPnN0YXRpY2FsbHkgYXQgZHJpdmVyIGxvYWQgdGltZSBp biB0aGUgcmVzcGVjdGl2ZSBpcnEgY2FsbGJhY2tzIChsb29raW5nIGF0Cj4gPiA+Z3VjLW9yLW5v dC1ndWMgbW9kdWxlIG9wdGlvbikuIFRoYXQgbWVhbnMgd2UgYmFrZSB0aGUgZ3VjIHN1Ym1pc3Np b24geS9uCj4gPiA+ZGVjaXNpb24gaW50byB0aGUgZHJpdmVyIGxvYWQgc2VxdWVuY2UgdmVyeSBl YXJseSwgYnV0IGl0IGRvZXMgc2ltcGxpZnkKPiA+ID50aGluZ3MuIEFuZCB0aGF0J3Mgb25lIG9m IHRoZSByZWFzb25zIEkgZG9uJ3QgbGlrZSBydW50aW1lIGZhbGxiYWNrcy4KPiA+ID4tRGFuaWVs Cj4gPgo+ID4gV2UgY2FuJ3Qgc2VuZCBpbnRlcnJ1cHRzIHRvIHRoZSBHdUMgYmVmb3JlIGl0cyBm aXJtd2FyZSBpcyByZWFkeSBmb3IgdGhlbSwKPiA+IGhlbmNlIHdlIC9jYW4ndC8gc2V0IGl0IHVw IHN0YXRpY2FsbHkuIFdlIC9tdXN0LyBzdGFydCB3aXRoIGFsbCBpbnRlcnJ1cHRzCj4gPiBkaXJl Y3RlZCB0byB0aGUgaG9zdCwgYW5kIHN3aXRjaCB0aGVtIHRvIHRoZSBHdUMgb25seSBvbmNlIHRo ZSBmaXJtd2FyZSBpcwo+ID4gbG9hZGVkIGFuZCBydW5uaW5nLiAoSSBzdXBwb3NlIGl0IHdvdWxk IGJlIHNpbXBsZXIgaWYgdGhlIEd1QyBmaXJtd2FyZQo+ID4gKnRvb2sqIGNvbnRyb2wgb2YgdGhl IGludGVycnVwdHMgd2hlbiBpdCBzdGFydGVkLCByYXRoZXIgdGhhbiBoYXZpbmcgaTkxNQo+ID4g KmdpdmUqIHRoZSBpbnRlcnJ1cHRzIHRvIHRoZSBHdUMsIGJ1dCB0aGF0IHdvdWxkIGxlYXZlIGV2 ZW4gbW9yZQo+ID4gb3Bwb3J0dW5pdGllcyBmb3IgY29uZnVzaW9uKS4KPiA+Cj4gPiBUaGlzIGlz bid0IHJlYWxseSAicnVudGltZSIsIHRoaXMgKmlzKiBzdGlsbCBpbiB0aGUgZHJpdmVyIGxvYWQg c3RhZ2UsCj4gPiBhbHRob3VnaCByYXRoZXIgbGF0ZXIgdGhhbiBpcnEgc2V0dXAuCj4gPgo+ID4g Rm9yIHRoZSBpbXBvcnRhbnQgaW50ZXJydXB0cyB0aGF0IHdlJ3JlIHN3aXRjaGluZyB0byB0aGUg R3VDIChpLmUuIGNvbnRleHQKPiA+IHN3aXRjaCkgd2UgRE8ga25vdyB0aGF0IHRoZXJlIGFyZW4n dCBhbnkgaW4gZmxpZ2h0IGFscmVhZHksIGJlY2F1c2Ugd2UgY2FuJ3QKPiA+IHN1Ym1pdCBhbnl0 aGluZyB0aGF0IHdvdWxkIHJlc3VsdCBpbiBhIGNvbnRleHQgc3dpdGNoIHVudGlsIHRoZSBHdUMg aXMgdXAgJgo+ID4gcnVubmluZy4gRm9yIG90aGVycyAoZS5nLiBWQkxBTkssIEZMSVBfRE9ORSkg aXQgZG9lc24ndCBtYXR0ZXI7IHRoZSBHdUMKPiA+IGRvZXNuJ3QgaW5pdGlhdGUgdGhlc2UgY2xh c3NlcyBvZiBpbnRlcnJ1cHRzIGFueXdheSwgYW5kIGl0IGRvZXNuJ3Qga2VlcAo+ID4gdHJhY2sg b2Ygc3BlY2lmaWMgb2NjdXJlbmNlcyBvciB0cnkgdG8gcGFpciB1cCBhY3Rpb25zIGFuZCByZXN1 bHRpbmcgZXZlbnRzLgo+ID4gQUZBSUssIGl0J3MganVzdCBsaXN0ZW5pbmcgaW4gdG8gdGhvc2Ug aW50ZXJydXB0cyB0byBzZWUgd2hhdCdzIGdvaW5nIG9uLAo+ID4gcHJlc3VtYWJseSBmb3IgcG93 ZXItbWFuYWdlbWVudCBwdXJwb3Nlcy4KPgo+IFllYWggSSBtaXNyZWFkIHRoZSBwYXRjaCwgc29t ZWhvdyBJIHRob3VnaHQgdGhhdCB3ZSBhcmUgdG91Y2hpbmcgc29tZQo+IGNwdS1zaWRlIGlycSBj b250cm9sIHJlZ2lzdGVycyB0b28uIFRoYXQgd2FzIG15IGNvbmNlcm4gc2luY2UgUGF1bG8gc3Bl bnQKPiBhbiBhd2Z1bCBsb3Qgb2YgdGltZSB1bmlmeWluZyB0aGUgc2V0dXAgZm9yIHRob3NlIHRv IG1ha2UgdGhlbSBtZXNoIHdlbGwKPiB3aXRoIHJ1bnRpbWUgcG0uIEJ1dCB0aGlzIGlzIGluZGVl ZCBhbGwganVzdCBndWMgcHJpdmF0ZSByZWdpc3RlciBzdGF0ZS4KPiBPbmUgZXhjZXB0aW9uIGlz IHRoZSBSSU5HX01PREUgcmVnaXN0ZXJzLCBidXQgc2luY2UgdGhhdCdzIGEgbWFza2VkCj4gYml0 ZmllbGQgYW5kIHRoaXMgY29kZSBpcyB0aGUgb25seSBiaXQgdGhhdCB0b3VjaGVzIGl0IHdlIHNo b3VsZCBiZSBmaW5lCj4gdG9vLgo+Cj4gT25lIHRoaW5nIGFzaWRlOiBXaWxsIHRoZSBndWMgcmVj ZWl2ZSBjb3BpZXMgb2YgdGhlc2UgKGkuZS4gd2lsbCB0aGUgY3B1Cj4gc3RpbGwgYmUgYWJsZSB0 byBtYXNrL3JlY2VpdmUvYWNrL2NsZWFyL3doYXRldmVyIHRoZW0gb24gaXRzIG93bikgb3IgaXMK PiB0aGlzIHNvbWV3aGF0IGV4Y2x1c2l2ZSBhbmQgaXQncyBvbmx5IGVpdGhlciBndWMgb3IgY3B1 IHRoYXQgZ2V0cyBjZXJ0YWluCj4gaW50ZXJydXB0cz8gSWYgaXQncyBqdXN0IGFuIGVuYWJsZS9k aXNhYmxlIG5vdCBhZmZlY3RpbmcgdGhlIGNwdSBzaWRlCj4gcmVhbGx5IEknZCBzdWdnZXN0IHdl IGNhbGwgdGhlbSBlbmFibGUvZGlzYWJsZSAobW9yZSBpbiBsaW5lIHdpdGggb3RoZXIKPiBpcnEg aGFuZGxpbmcgY29kZSkgaW5zdGVhZCBvZiB0aGUgZGlyZWN0X2ludGVycnVwdHNfdG9fKi4gQnV0 IHRoYXQncwo+IHJlYWxseSBqdXN0IGEgYmlrZXNoZWQgdG8gYXZvaWQgY29uZnVzaW9uIGhlcmUu Cj4gLURhbmllbApSaWdodCwgY29kZSBhbmQgY29tbWVudHMgYXJlIG5vdCBjbGVhciBoZXJlLiBG b3IgRGlzcGxheSBpbnRlcnJ1cHRzIAooVkJMQU5LLCBGTElQX0RPTkUgZXRjLiksIEd1QyByZWNl aXZlcyBjb3BpZXMsIHdoaWNoIGlzICJmb3J3YXJkaW5nIi4gCkJ1dCBmb3IgdGhvc2UgZnJvbSBH VCAoQ29udGV4dCBTd2l0Y2gsIFVzZXIgSW50ZXJydXB0IGV0Yy4pLCB0aGUgY3B1IApzaWRlIHdv bid0IHJlY2VpdmUgaXQgaWYgd2UgInJvdXRlIiBvciAiZGlyZWN0IiB0aGVtIHRvIEd1Qy4KClRo YW5rcywKQWxleApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=