From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: Re: [PATCH v2 15/16] drm/i915/gen9: Reject display updates that exceed wm limitations Date: Fri, 22 Apr 2016 10:21:20 -0400 Message-ID: <1461334880.20910.12.camel@redhat.com> References: <1461119183-14267-1-git-send-email-matthew.d.roper@intel.com> <1461119183-14267-16-git-send-email-matthew.d.roper@intel.com> <1461275392.32321.2.camel@redhat.com> <20160421231445.GE14697@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 55C3D6E046 for ; Fri, 22 Apr 2016 14:21:22 +0000 (UTC) In-Reply-To: <20160421231445.GE14697@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VW5mb3J0dW5hdGVseSBkcm9wcGluZyB0aGF0IHBhdGNoIGp1c3QgcmVzdWx0cyB3aXRoIHRoZSBz Y3JlZW4gc3RheWluZyBibGFuawpzdGFydGluZyBmcm9tIHRoZSBtb21lbnQgdGhlIGRyaXZlciBs b2Fkcy7CoAoKQXMgZm9yIHRoZSBleHRlcm5hbCBtb25pdG9ycyBxdWVzdGlvbjogdGhlIG9ubHkg dGltZSB0aGlzIGlzc3VlIHNlZW1zIHRvIGhhcHBlbgp3aXRoIHRoaXMgcGF0Y2hzZXQgaXMgd2hl biB0aGVyZSdzIG5vIGV4dGVybmFsIG1vbml0b3JzIGNvbm5lY3RlZC4gSWYgSSBib290CndpdGgg anVzdCB0aGUgbGFwdG9wIGFuZCBub3RoaW5nIGNvbm5lY3RlZCwgaXQgZ2V0cyBhcyBmYXIgYXMg c2hvd2luZyBzeXN0ZW1kCnN0YXJ0aW5nIGFsbCB0aGUgc2VydmljZXMgaW4gZmJjb24gdXAgdG8g d2hlcmUgaXQgc3RhcnRzIEdETSwgYW5kIHRoZW4gdGhlCnNjcmVlbiBqdXN0IGdldHMgc3R1Y2sg b24gdGhhdCBmcmFtZWJ1ZmZlci4gU3dpdGNoaW5nIHRvIGEgVlQgYXQgdGhhdCBwb2ludApkb2Vz bid0IGZpeCBpdC4KCklmIEkgcGx1ZyBpbiBhbm90aGVyIG1vbml0b3IgdG8gdGhlIHN5c3RlbSBl dmVyeXRoaW5nIHN0YXJ0cyB3b3JraW5nIGZpbmUgYWdhaW4sCmV2ZW4gaWYgSSB1bnBsdWcgdGhl IGRpc3BsYXkgYWdhaW4gYWZ0ZXJ3YXJkcyBvciBzd2l0Y2ggVlRzLiBJJ3ZlIHJlY29yZGVkIGEK c2FtcGxlIG9mIGRtZXNnIHdoZXJlIEkgYm9vdCB1cCB0aGUgbGFwdG9wIHdpdGggbm8gZGlzcGxh eXMgY29ubmVjdGVkLCBjb25uZWN0CmFuIGV4dGVybmFsIE1TVCBkaXNwbGF5LCBhbmQgdGhlbiBk aXNjb25uZWN0IGl0IChqdXN0IGdyZXAgZm9yICJyaHRlc3QgdW5rbm93bjoiCnRvIGZpbmQgd2hl cmUgSSBtYXJrZWQgdGhlIHNwb3QgYmVmb3JlIEkgY29ubmVjdGVkIHRoZSBtb25pdG9ycywgZXRj LiApOgoKaHR0cHM6Ly9wYXN0ZS5mZWRvcmFwcm9qZWN0Lm9yZy8zNTg2MDcvNjEzMzQ3MjEvCgpB bHNvIHRoZSBjb250ZW50cyBvZiAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvMC9pOTE1X3ByaV93bV9s YXRlbmN5OgpXTTAgMiAoMi4wIHVzZWMpCldNMSAxOSAoMTkuMCB1c2VjKQpXTTIgMjggKDI4LjAg dXNlYykKV00zIDMyICgzMi4wIHVzZWMpCldNNCA2MyAoNjMuMCB1c2VjKQpXTTUgNzcgKDc3LjAg dXNlYykKV002IDgzICg4My4wIHVzZWMpCldNNyA5OSAoOTkuMCB1c2VjKQoKT24gVGh1LCAyMDE2 LTA0LTIxIGF0IDE2OjE0IC0wNzAwLCBNYXR0IFJvcGVyIHdyb3RlOgo+IE9uIFRodSwgQXByIDIx LCAyMDE2IGF0IDA1OjQ5OjUyUE0gLTA0MDAsIEx5dWRlIFBhdWwgd3JvdGU6Cj4gPiAKPiA+IE9u IGEgVDU2MCwgdGhpcyBlbmRzIHVwIHJlamVjdGluZyB2YWxpZCB3YXRlcm1hcmsgY29uZmlndXJh dGlvbnMgc28gdGhlCj4gPiBpbnRlcm5hbAo+ID4gZGlzcGxheSBkb2Vzbid0IHN3aXRjaCBmcm9t IGZiY29uIHRvIFggcHJvcGVybHk6Cj4gSG1tLsKgwqBXZSBjYW4gbGVhdmUgdGhpcyBwYXRjaCBv dXQgb2YgdGhlIHNlcmllcyBhbmQgc3RpbGwgaGF2ZSBhIGZpeCBmb3IKPiB0aGUgV0FSTl9PTigh d21fY2hhbmdlZCksIGJ1dCBvbmUgb2YgdGhlIG1haW4gZ29hbHMgd2FzIHRvIGlkZW50aWZ5IGFu ZAo+IHJlamVjdCBjb25maWd1cmF0aW9ucyB0aGF0IHRoZSBwbGF0Zm9ybSBpcyB0cnVseSBpbmNh cGFibGUgb2YgaGFuZGxpbmcuCj4gSSdtIHN0aWxsIGdvaW5nIHRvIGluY2x1ZGUgdGhpcyBwYXRj aCBpbiBteSBuZXh0IHNwaW4gb2YgdGhlIHNlcmllcyBvbgo+IHRoZSBtYWlsaW5nIGxpc3QsIGJ1 dCB3ZSBjYW4ganVzdCBvbWl0IGl0IGR1cmluZyBtZXJnZSBpZiB3ZSBuZWVkIG1vcmUKPiB0aW1l IHRvIGZpZ3VyZSBvdXQgd2h5IHlvdXIgY29uZmlndXJhdGlvbiBpcyBiZWluZyByZWplY3RlZC7C oMKgSSdsbCBhbHNvCj4gYWRkIGFuIGV4dHJhIERSTV9ERUJVR19LTVMgbGluZSB0byB0aGlzIHBh dGNoIHRvIGdpdmUgdXMgbW9yZSBpbnNpZ2h0Cj4gaW50byB3aGF0IHRoZSBmaW5hbCBjYWxjdWxh dGVkIHZhbHVlcyB3ZXJlIGFuZCBob3cgZmFyIG91dCBvZiBib3VuZHMKPiB0aGV5IHdlcmUuCj4g Cj4gSWYgeW91IGRyb3AgdGhpcyBwYXRjaCBidXQga2VlcCB0aGUgcmVzdCBvZiB0aGUgc2VyaWVz LCBkb2VzIHRoZSBzeXN0ZW0KPiBzdGlsbCBvcGVyYXRlIHByb3Blcmx5IHdoZW4gaXQgZ29lcyBp bnRvIFg/wqDCoEkuZS4sIG5vIHVuZGVycnVucyByZXBvcnRlZAo+IGFuZCBubyBmbGlja2VyaW5n L2NvcnJ1cHRpb24gb24gc2NyZWVuPwo+IAo+IENvdWxkIHlvdSBwcm92aWRlIHRoZSBjb250ZW50 cyBvZgo+IC9zeXMva2VybmVsL2RlYnVnL2RyaS8wL2k5MTVfcHJpX3dtX2xhdGVuY3kgP8KgwqBJ J3ZlIGhlYXJkIHRoYXQgdGhlcmUgYXJlCj4gc29tZSBTS0wgcGNvZGUgKEJJT1MpIHZlcnNpb25z IGZsb2F0aW5nIGFyb3VuZCB0aGF0IGdpdmUgYmFkIG1lbW9yeQo+IGxhdGVuY3kgdmFsdWVzIHdo aWNoIHJlc3VsdCBpbiB1cyBjYWxjdWxhdGluZyB0aGUgd3Jvbmcgd2F0ZXJtYXJrIHZhbHVlcwo+ IGluIHRoZSBlbmQ7IGl0IHdvdWxkIGJlIGdvb2QgdG8gc2VlIGlmIHRoYXQncyBhIGNvbnRyaWJ1 dGluZyBmYWN0b3IKPiBoZXJlLgo+IAo+IEFsc28sIEkgY2FuIHNlZSB5b3VyIGVEUCBwYW5lbCBp biB0aGUgbG9nIGJlbG93OyBpcyB0aGF0IHlvdXIgb25seQo+IGRpc3BsYXkgb3IgZG8geW91IGFs c28gaGF2ZSBhbiBleHRlcm5hbCBkaXNwbGF5IGF0dGFjaGVkPwo+IAo+IAo+IAo+IE1hdHQKPiAK PiA+IAo+ID4gCj4gPiBbwqDCoMKgwqA1Ljc2NzM4M10gW2RybTppbnRlbGZiX2NyZWF0ZV0gcmUt dXNpbmcgQklPUyBmYgo+ID4gW8KgwqDCoMKgNS43Njc0NDRdIFtkcm1dIEluaXRpYWxpemVkIGk5 MTUgMS42LjAgMjAxNjA0MTEgZm9yIDAwMDA6MDA6MDIuMCBvbgo+ID4gbWlub3IgMAo+ID4gW8Kg wqDCoMKgNS43Njc0NDldIFtkcm06aW50ZWxmYl9jcmVhdGVdIGFsbG9jYXRlZCAxOTIweDEwODAg ZmI6IDB4MDAwMDAwMDAsIGJvCj4gPiBmZmZmODgwMjEzNzRjMDAwCj4gPiBbwqDCoMKgwqA1Ljc2 Nzc2MF0gZmJjb246IGludGVsZHJtZmIgKGZiMCkgaXMgcHJpbWFyeSBkZXZpY2UKPiA+IFvCoMKg wqDCoDUuNzY4MTQ3XSBbZHJtOmNvbm5lY3RlZF9zaW5rX2NvbXB1dGVfYnBwXSBbQ09OTkVDVE9S OjM3OmVEUC0xXQo+ID4gY2hlY2tpbmcgZm9yIHNpbmsgYnBwIGNvbnN0cmFpbnMKPiA+IFvCoMKg wqDCoDUuNzY4MTUwXSBbZHJtOmNvbm5lY3RlZF9zaW5rX2NvbXB1dGVfYnBwXSBjbGFtcGluZyBk aXNwbGF5IGJwcCAod2FzCj4gPiAzNikgdG8gRURJRCByZXBvcnRlZCBtYXggb2YgMTgKPiA+IFvC oMKgwqDCoDUuNzY4MTU5XSBbZHJtOnNrbF91cGRhdGVfc2NhbGVyX2NydGNdIFVwZGF0aW5nIHNj YWxlciBmb3IgW0NSVEM6MjZdCj4gPiBzY2FsZXJfdXNlciBpbmRleCAwLjMxCj4gPiBbwqDCoMKg wqA1Ljc2ODE2Ml0gW2RybTpza2xfdXBkYXRlX3NjYWxlcl0gc2NhbGVyX3VzZXIgaW5kZXggMC4z MTogU3RhZ2VkCj4gPiBmcmVlaW5nIHNjYWxlciBpZCAwIHNjYWxlcl91c2VycyA9IDB4MAo+ID4g W8KgwqDCoMKgNS43NjgxNjZdIFtkcm06aW50ZWxfZHBfY29tcHV0ZV9jb25maWddIERQIGxpbmsg Y29tcHV0YXRpb24gd2l0aCBtYXgKPiA+IGxhbmUgY291bnQgMiBtYXggYncgMjcwMDAwIHBpeGVs IGNsb2NrIDE0MjkwMEtIego+ID4gW8KgwqDCoMKgNS43NjgxNzJdIFtkcm06aW50ZWxfZHBfY29t cHV0ZV9jb25maWddIERQIGxpbmsgYncgMGEgcmF0ZSBzZWxlY3QgMDAKPiA+IGxhbmUgY291bnQg MiBjbG9jayAyNzAwMDAgYnBwIDE4Cj4gPiBbwqDCoMKgwqA1Ljc2ODE3NF0gW2RybTppbnRlbF9k cF9jb21wdXRlX2NvbmZpZ10gRFAgbGluayBidyByZXF1aXJlZCAyNTcyMjAKPiA+IGF2YWlsYWJs ZSA0MzIwMDAKPiA+IFvCoMKgwqDCoDUuNzY4MTgwXSBbZHJtOmludGVsX21vZGVzZXRfcGlwZV9j b25maWddIGh3IG1heCBicHA6IDM2LCBwaXBlIGJwcDogMTgsCj4gPiBkaXRoZXJpbmc6IDEKPiA+ IFvCoMKgwqDCoDUuNzY4MTkzXSBbZHJtOmludGVsX2R1bXBfcGlwZV9jb25maWddIFtDUlRDOjI2 XVttb2Rlc2V0XSBjb25maWcKPiA+IGZmZmY4ODAwZDVjMTEwMDAgZm9yIHBpcGUgQQo+ID4gW8Kg wqDCoMKgNS43NjgyMDBdIFtkcm06aW50ZWxfZHVtcF9waXBlX2NvbmZpZ10gY3B1X3RyYW5zY29k ZXI6IEVEUAo+ID4gW8KgwqDCoMKgNS43NjgyMDJdIFtkcm06aW50ZWxfZHVtcF9waXBlX2NvbmZp Z10gcGlwZSBicHA6IDE4LCBkaXRoZXJpbmc6IDEKPiA+IFvCoMKgwqDCoDUuNzY4MjA2XSBbZHJt OmludGVsX2R1bXBfcGlwZV9jb25maWddIGZkaS9wY2g6IDAsIGxhbmVzOiAwLCBnbWNoX206IDAs Cj4gPiBnbWNoX246IDAsIGxpbmtfbTogMCwgbGlua19uOiAwLCB0dTogMAo+ID4gW8KgwqDCoMKg NS43NjgyMTFdIFtkcm06aW50ZWxfZHVtcF9waXBlX2NvbmZpZ10gZHA6IDEsIGxhbmVzOiAyLCBn bWNoX206Cj4gPiA0OTk0NzE3LCBnbWNoX246IDgzODg2MDgsIGxpbmtfbTogMjc3NDg0LCBsaW5r X246IDUyNDI4OCwgdHU6IDY0Cj4gPiBbwqDCoMKgwqA1Ljc2ODIxNV0gW2RybTppbnRlbF9kdW1w X3BpcGVfY29uZmlnXSBkcDogMSwgbGFuZXM6IDIsIGdtY2hfbTI6IDAsCj4gPiBnbWNoX24yOiAw LCBsaW5rX20yOiAwLCBsaW5rX24yOiAwLCB0dTI6IDAKPiA+IFvCoMKgwqDCoDUuNzY4MjE3XSBb ZHJtOmludGVsX2R1bXBfcGlwZV9jb25maWddIGF1ZGlvOiAwLCBpbmZvZnJhbWVzOiAwCj4gPiBb wqDCoMKgwqA1Ljc2ODIxOV0gW2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmlnXSByZXF1ZXN0ZWQg bW9kZToKPiA+IFvCoMKgwqDCoDUuNzY4MjI2XSBbZHJtOmRybV9tb2RlX2RlYnVnX3ByaW50bW9k ZWxpbmVdIE1vZGVsaW5lIDA6IjE5MjB4MTA4MCIgNjAKPiA+IDE0MjkwMCAxOTIwIDE5NjggMjAw MCAyMDgyIDEwODAgMTA4MiAxMDg3IDExNDQgMHg0OCAweGEKPiA+IFvCoMKgwqDCoDUuNzY4MjI4 XSBbZHJtOmludGVsX2R1bXBfcGlwZV9jb25maWddIGFkanVzdGVkIG1vZGU6Cj4gPiBbwqDCoMKg wqA1Ljc2ODIzNF0gW2RybTpkcm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5lXSBNb2RlbGluZSAw OiIxOTIweDEwODAiIDYwCj4gPiAxNDI5MDAgMTkyMCAxOTY4IDIwMDAgMjA4MiAxMDgwIDEwODIg MTA4NyAxMTQ0IDB4NDggMHhhCj4gPiBbwqDCoMKgwqA1Ljc2ODIzOV0gW2RybTppbnRlbF9kdW1w X2NydGNfdGltaW5nc10gY3J0YyB0aW1pbmdzOiAxNDI5MDAgMTkyMCAxOTY4Cj4gPiAyMDAwIDIw ODIgMTA4MCAxMDgyIDEwODcgMTE0NCwgdHlwZTogMHg0OCBmbGFnczogMHhhCj4gPiBbwqDCoMKg wqA1Ljc2ODI0MV0gW2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmlnXSBwb3J0IGNsb2NrOiAyNzAw MDAKPiA+IFvCoMKgwqDCoDUuNzY4MjQ0XSBbZHJtOmludGVsX2R1bXBfcGlwZV9jb25maWddIHBp cGUgc3JjIHNpemU6IDE5MjB4MTA4MAo+ID4gW8KgwqDCoMKgNS43NjgyNDddIFtkcm06aW50ZWxf ZHVtcF9waXBlX2NvbmZpZ10gbnVtX3NjYWxlcnM6IDIsIHNjYWxlcl91c2VyczoKPiA+IDB4MCwg c2NhbGVyX2lkOiAtMQo+ID4gW8KgwqDCoMKgNS43NjgyNTFdIFtkcm06aW50ZWxfZHVtcF9waXBl X2NvbmZpZ10gZ21jaCBwZml0OiBjb250cm9sOiAweDAwMDAwMDAwLAo+ID4gcmF0aW9zOiAweDAw MDAwMDAwLCBsdmRzIGJvcmRlcjogMHgwMDAwMDAwMAo+ID4gW8KgwqDCoMKgNS43NjgyNTRdIFtk cm06aW50ZWxfZHVtcF9waXBlX2NvbmZpZ10gcGNoIHBmaXQ6IHBvczogMHgwMDAwMDAwMCwgc2l6 ZToKPiA+IDB4MDAwMDAwMDAsIGRpc2FibGVkCj4gPiBbwqDCoMKgwqA1Ljc2ODI1Nl0gW2RybTpp bnRlbF9kdW1wX3BpcGVfY29uZmlnXSBpcHM6IDAKPiA+IFvCoMKgwqDCoDUuNzY4MjU4XSBbZHJt OmludGVsX2R1bXBfcGlwZV9jb25maWddIGRvdWJsZSB3aWRlOiAwCj4gPiBbwqDCoMKgwqA1Ljc2 ODI2M10gW2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmlnXSBkZGlfcGxsX3NlbDogMTsgZHBsbF9o d19zdGF0ZToKPiA+IGN0cmwxOiAweDEzLCBjZmdjcjE6IDB4MCwgY2ZnY3IyOiAweDAKPiA+IFvC oMKgwqDCoDUuNzY4MjY2XSBbZHJtOmludGVsX2R1bXBfcGlwZV9jb25maWddIHBsYW5lcyBvbiB0 aGlzIGNydGMKPiA+IFvCoMKgwqDCoDUuNzY4Mjc3XSBbZHJtOmludGVsX2R1bXBfcGlwZV9jb25m aWddIFNUQU5EQVJEIFBMQU5FOjIzIHBsYW5lOiAwLjAKPiA+IGlkeDogMCBlbmFibGVkCj4gPiBb wqDCoMKgwqA1Ljc2ODI4NF0gW2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmlnXcKgCUZCOjU4LCBm YiA9IDE5MjB4MTA4MAo+ID4gZm9ybWF0ID0gMHgzNDMyNTI1OAo+ID4gW8KgwqDCoMKgNS43Njgy ODVdIFtkcm06aW50ZWxfZHVtcF9waXBlX2NvbmZpZ13CoAlzY2FsZXI6LTEgc3JjICgwLCAwKQo+ ID4gMTkyMHgxMDgwIGRzdCAoMCwgMCkgMTkyMHgxMDgwCj4gPiBbwqDCoMKgwqA1Ljc2ODI5MF0g W2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmlnXSBDVVJTT1IgUExBTkU6MjUgcGxhbmU6IDAuMSBp ZHg6Cj4gPiAxIGRpc2FibGVkLCBzY2FsZXJfaWQgPSAtMQo+ID4gW8KgwqDCoMKgNS43NjgyOTVd IFtkcm06aW50ZWxfZHVtcF9waXBlX2NvbmZpZ10gU1RBTkRBUkQgUExBTkU6MjcgcGxhbmU6IDAu MQo+ID4gaWR4OiAyIGRpc2FibGVkLCBzY2FsZXJfaWQgPSAtMQo+ID4gW8KgwqDCoMKgNS43Njgz MDldIFtkcm06c2tsX3VwZGF0ZV9zY2FsZXJfcGxhbmVdIFVwZGF0aW5nIHNjYWxlciBmb3IgW1BM QU5FOjIzXQo+ID4gc2NhbGVyX3VzZXIgaW5kZXggMC4wCj4gPiBbwqDCoMKgwqA1Ljc2ODMxOV0g W2RybTppbnRlbF9maW5kX3NoYXJlZF9kcGxsXSBDUlRDOjI2IGFsbG9jYXRlZCBEUExMIDAKPiA+ IFvCoMKgwqDCoDUuNzY4MzIzXSBbZHJtOmludGVsX3JlZmVyZW5jZV9zaGFyZWRfZHBsbF0gdXNp bmcgRFBMTCAwIGZvciBwaXBlIEEKPiA+IFvCoMKgwqDCoDUuNzY4MzI3XSBbZHJtOnNrbF91cGRh dGVfc2NhbGVyX2NydGNdIFVwZGF0aW5nIHNjYWxlciBmb3IgW0NSVEM6MjZdCj4gPiBzY2FsZXJf dXNlciBpbmRleCAwLjMxCj4gPiBbwqDCoMKgwqA1Ljc2ODMzOV0gW2RybTpza2xfY29tcHV0ZV9w bGFuZV93bV0gUmVxdWVzdGVkIGRpc3BsYXkgY29uZmlndXJhdGlvbgo+ID4gZXhjZWVkcyBzeXN0 ZW0gd2F0ZXJtYXJrIGxpbWl0YXRpb25zCj4gPiBbwqDCoMKgwqA1Ljc2ODM1OV0gW2RybTpkcm1f ZmJfaGVscGVyX2hvdHBsdWdfZXZlbnRdwqAKPiA+IFvCoMKgwqDCoDUuNzY4MzYzXSBbZHJtOmRy bV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2Rlc10KPiA+IFtDT05ORUNUT1I6Mzc6 ZURQLTFdCj4gPiBbwqDCoMKgwqA1Ljc2ODM2N10gW2RybTppbnRlbF9kcF9kZXRlY3RdIFtDT05O RUNUT1I6Mzc6ZURQLTFdCj4gPiBbwqDCoMKgwqA1Ljc2ODc4Nl0gW2RybTppbnRlbF9kcF9wcm9i ZV9vdWldIFNpbmsgT1VJOiAwMDIyYjkKPiA+IFvCoMKgwqDCoDUuNzY5MTc3XSBbZHJtOmludGVs X2RwX3Byb2JlX291aV0gQnJhbmNoIE9VSTogNDQ0NjE1Cj4gPiBbwqDCoMKgwqA1Ljc2OTYwNF0g W2RybTpkcm1fZWRpZF90b19lbGRdIEVMRDogbm8gQ0VBIEV4dGVuc2lvbiBmb3VuZAo+ID4gW8Kg wqDCoMKgNS43Njk2MTFdIFtkcm06ZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21v ZGVzXQo+ID4gW0NPTk5FQ1RPUjozNzplRFAtMV0gcHJvYmVkIG1vZGVzIDoKPiA+IFvCoMKgwqDC oDUuNzY5NjE4XSBbZHJtOmRybV9tb2RlX2RlYnVnX3ByaW50bW9kZWxpbmVdIE1vZGVsaW5lIDM4 OiIxOTIweDEwODAiIDYwCj4gPiAxNDI5MDAgMTkyMCAxOTY4IDIwMDAgMjA4MiAxMDgwIDEwODIg MTA4NyAxMTQ0IDB4NDggMHhhCj4gPiBbwqDCoMKgwqA1Ljc2OTYyMV0gW2RybTpkcm1faGVscGVy X3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXNdCj4gPiBbQ09OTkVDVE9SOjQ1OkRQLTFdCj4g PiBbwqDCoMKgwqA1Ljc2OTYyNF0gW2RybTppbnRlbF9kcF9kZXRlY3RdIFtDT05ORUNUT1I6NDU6 RFAtMV0KPiA+IFvCoMKgwqDCoDUuNzY5NjI4XSBbZHJtOmludGVsX3Bvd2VyX3dlbGxfZW5hYmxl XSBlbmFibGluZyBwb3dlciB3ZWxsIDIKPiA+IFvCoMKgwqDCoDUuNzY5NjMzXSBbZHJtOnNrbF9z ZXRfcG93ZXJfd2VsbF0gRW5hYmxpbmcgcG93ZXIgd2VsbCAyCj4gPiBbwqDCoMKgwqA1Ljc2OTY1 OV0gW2RybTppbnRlbF9wb3dlcl93ZWxsX2Rpc2FibGVdIGRpc2FibGluZyBwb3dlciB3ZWxsIDIK PiA+IFvCoMKgwqDCoDUuNzY5NjcyXSBbZHJtOnNrbF9zZXRfcG93ZXJfd2VsbF0gRGlzYWJsaW5n IHBvd2VyIHdlbGwgMgo+ID4gCj4gPiBPbiBUdWUsIDIwMTYtMDQtMTkgYXQgMTk6MjYgLTA3MDAs IE1hdHQgUm9wZXIgd3JvdGU6Cj4gPiA+IAo+ID4gPiBJZiB3ZSBjYW4ndCBmaW5kIGFueSB2YWxp ZCBsZXZlbCAwIHdhdGVybWFyayB2YWx1ZXMgZm9yIHRoZSByZXF1ZXN0ZWQKPiA+ID4gYXRvbWlj IHRyYW5zYWN0aW9uLCByZWplY3QgdGhlIGNvbmZpZ3VyYXRpb24gYmVmb3JlIHdlIHRyeSB0byBz dGFydAo+ID4gPiBwcm9ncmFtbWluZyB0aGUgaGFyZHdhcmUuCj4gPiA+IAo+ID4gPiBTaWduZWQt b2ZmLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+ID4gPiBSZXZp ZXdlZC1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVs LmNvbT4KPiA+ID4gLS0tCj4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyB8 IDEyICsrKysrKysrKysrLQo+ID4gPiDCoDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYwo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMK PiA+ID4gaW5kZXggNTlkNDU3NC4uOTZmZmQ1NCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jCj4gPiA+IEBAIC0zMzA5LDcgKzMzMDksMTcgQEAgc3RhdGljIGludCBza2xfY29t cHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QKPiA+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gPiA+IMKgCj4gPiA+IMKgCWlmIChyZXNfYmxvY2tzID49IGRkYl9hbGxvY2F0aW9uIHx8 IHJlc19saW5lcyA+IDMxKSB7Cj4gPiA+IMKgCQkqZW5hYmxlZCA9IGZhbHNlOwo+ID4gPiAtCQly ZXR1cm4gMDsKPiA+ID4gKwo+ID4gPiArCQkvKgo+ID4gPiArCQnCoCogSWYgdGhlcmUgYXJlIG5v IHZhbGlkIGxldmVsIDAgd2F0ZXJtYXJrcywgdGhlbiB3ZQo+ID4gPiBjYW4ndAo+ID4gPiArCQnC oCogc3VwcG9ydCB0aGlzIGRpc3BsYXkgY29uZmlndXJhdGlvbi4KPiA+ID4gKwkJwqAqLwo+ID4g PiArCQlpZiAobGV2ZWwpIHsKPiA+ID4gKwkJCXJldHVybiAwOwo+ID4gPiArCQl9IGVsc2Ugewo+ ID4gPiArCQkJRFJNX0RFQlVHX0tNUygiUmVxdWVzdGVkIGRpc3BsYXkgY29uZmlndXJhdGlvbgo+ ID4gPiBleGNlZWRzIHN5c3RlbSB3YXRlcm1hcmsgbGltaXRhdGlvbnNcbiIpOwo+ID4gPiArCQkJ cmV0dXJuIC1FSU5WQUw7Cj4gPiA+ICsJCX0KPiA+ID4gwqAJfQo+ID4gPiDCoAo+ID4gPiDCoAkq b3V0X2Jsb2NrcyA9IHJlc19ibG9ja3M7Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=