From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH v2 15/16] drm/i915/gen9: Reject display updates that exceed wm limitations Date: Fri, 22 Apr 2016 12:39:06 -0700 Message-ID: <20160422193906.GO14697@intel.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> <1461334880.20910.12.camel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 F37296EECA for ; Fri, 22 Apr 2016 19:39:06 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1461334880.20910.12.camel@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lyude Paul Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBBcHIgMjIsIDIwMTYgYXQgMTA6MjE6MjBBTSAtMDQwMCwgTHl1ZGUgUGF1bCB3cm90 ZToKPiBVbmZvcnR1bmF0ZWx5IGRyb3BwaW5nIHRoYXQgcGF0Y2gganVzdCByZXN1bHRzIHdpdGgg dGhlIHNjcmVlbiBzdGF5aW5nIGJsYW5rCj4gc3RhcnRpbmcgZnJvbSB0aGUgbW9tZW50IHRoZSBk cml2ZXIgbG9hZHMuwqAKPiAKPiBBcyBmb3IgdGhlIGV4dGVybmFsIG1vbml0b3JzIHF1ZXN0aW9u OiB0aGUgb25seSB0aW1lIHRoaXMgaXNzdWUgc2VlbXMgdG8gaGFwcGVuCj4gd2l0aCB0aGlzIHBh dGNoc2V0IGlzIHdoZW4gdGhlcmUncyBubyBleHRlcm5hbCBtb25pdG9ycyBjb25uZWN0ZWQuIElm IEkgYm9vdAo+IHdpdGgganVzdCB0aGUgbGFwdG9wIGFuZCBub3RoaW5nIGNvbm5lY3RlZCwgaXQg Z2V0cyBhcyBmYXIgYXMgc2hvd2luZyBzeXN0ZW1kCj4gc3RhcnRpbmcgYWxsIHRoZSBzZXJ2aWNl cyBpbiBmYmNvbiB1cCB0byB3aGVyZSBpdCBzdGFydHMgR0RNLCBhbmQgdGhlbiB0aGUKPiBzY3Jl ZW4ganVzdCBnZXRzIHN0dWNrIG9uIHRoYXQgZnJhbWVidWZmZXIuIFN3aXRjaGluZyB0byBhIFZU IGF0IHRoYXQgcG9pbnQKPiBkb2Vzbid0IGZpeCBpdC4KPiAKPiBJZiBJIHBsdWcgaW4gYW5vdGhl ciBtb25pdG9yIHRvIHRoZSBzeXN0ZW0gZXZlcnl0aGluZyBzdGFydHMgd29ya2luZyBmaW5lIGFn YWluLAo+IGV2ZW4gaWYgSSB1bnBsdWcgdGhlIGRpc3BsYXkgYWdhaW4gYWZ0ZXJ3YXJkcyBvciBz d2l0Y2ggVlRzLiBJJ3ZlIHJlY29yZGVkIGEKPiBzYW1wbGUgb2YgZG1lc2cgd2hlcmUgSSBib290 IHVwIHRoZSBsYXB0b3Agd2l0aCBubyBkaXNwbGF5cyBjb25uZWN0ZWQsIGNvbm5lY3QKPiBhbiBl eHRlcm5hbCBNU1QgZGlzcGxheSwgYW5kIHRoZW4gZGlzY29ubmVjdCBpdCAoanVzdCBncmVwIGZv ciAicmh0ZXN0IHVua25vd246Igo+IHRvIGZpbmQgd2hlcmUgSSBtYXJrZWQgdGhlIHNwb3QgYmVm b3JlIEkgY29ubmVjdGVkIHRoZSBtb25pdG9ycywgZXRjLiApOgo+IAo+IGh0dHBzOi8vcGFzdGUu ZmVkb3JhcHJvamVjdC5vcmcvMzU4NjA3LzYxMzM0NzIxLwo+IAo+IEFsc28gdGhlIGNvbnRlbnRz IG9mIC9zeXMva2VybmVsL2RlYnVnL2RyaS8wL2k5MTVfcHJpX3dtX2xhdGVuY3k6Cj4gV00wIDIg KDIuMCB1c2VjKQo+IFdNMSAxOSAoMTkuMCB1c2VjKQo+IFdNMiAyOCAoMjguMCB1c2VjKQo+IFdN MyAzMiAoMzIuMCB1c2VjKQo+IFdNNCA2MyAoNjMuMCB1c2VjKQo+IFdNNSA3NyAoNzcuMCB1c2Vj KQo+IFdNNiA4MyAoODMuMCB1c2VjKQo+IFdNNyA5OSAoOTkuMCB1c2VjKQoKCk9rYXksIEkgdGhp bmsgSSd2ZSBmaWd1cmVkIHRoaXMgb3V0LiAgVGhlIHByb2JsZW0gYXJpc2VzIGJlY2F1c2Ugd2l0 aAp0aGlzIHBhdGNoIHNldCB3ZSBvbmx5IHJlLWNhbGN1bGF0ZSB0aGUgRERCICh0aGUgZGF0YSBi dWZmZXIgdGhhdAp3YXRlcm1hcmtzIHJlZmVyIHRvKSB3aGVuIHdlIG5lZWQgdG8sIG90aGVyd2lz ZSB3ZSB1c2UgdGhlIGFsbG9jYXRpb24KdGhhdCB3YXMgY29tcHV0ZWQgb24gcHJldmlvdXMgbW9k ZXNldHMuICBUaGF0IHByZXR0eSBtdWNoIGFsd2F5cyB3b3JrcwpmaW5lLCBleGNlcHQgd2hlbiB3 ZSd2ZSBqdXN0IGJvb3RlZCBhbmQgd2UncmUgdXNpbmcgdGhlIEREQiBhbGxvY2F0aW9ucwppbmhl cml0ZWQgZnJvbSB0aGUgQklPUzsgdGhvc2UgQklPUyBhbGxvY2F0aW9ucyBtYXkgZmFpbCB0byBt ZWV0IG91cgpuZWVkcy9leHBlY3RhdGlvbnMgYW5kIG1pc2xlYWQgdXMgaW50byB0aGlua2luZyB0 aGVyZSdzIG5vIHdheSB3ZSBjYW4KcHJvZ3JhbSB3YXRlcm1hcmtzIHNhZmVseS4KCkkgdGhpbmsg dGhlIHNvbHV0aW9uIGlzIHByb2JhYmx5IHRvIGp1c3QgYWRkIGEgZmxhZyB0byB0aGUgZHJpdmVy IHRoYXQKZm9yY2VzIG91ciB2ZXJ5IGZpcnN0IHJlYWwgbW9kZXNldCB0byBjb21wbGV0ZWx5IHJl Y29tcHV0ZSBwcm9wZXIgRERCCmFsbG9jYXRpb25zLCBldmVuIGlmIGl0IG90aGVyd2lzZSB3b3Vs ZG4ndCBuZWVkIHRvLiAgSSdsbCBwdXQgdG9nZXRoZXIgYQpwYXRjaCBmb3IgdGhhdCBzaG9ydGx5 IGFuZCBzZWUgaWYgaXQgaGVscHMuCgoKTWF0dAoKPiAKPiBPbiBUaHUsIDIwMTYtMDQtMjEgYXQg MTY6MTQgLTA3MDAsIE1hdHQgUm9wZXIgd3JvdGU6Cj4gPiBPbiBUaHUsIEFwciAyMSwgMjAxNiBh dCAwNTo0OTo1MlBNIC0wNDAwLCBMeXVkZSBQYXVsIHdyb3RlOgo+ID4gPiAKPiA+ID4gT24gYSBU NTYwLCB0aGlzIGVuZHMgdXAgcmVqZWN0aW5nIHZhbGlkIHdhdGVybWFyayBjb25maWd1cmF0aW9u cyBzbyB0aGUKPiA+ID4gaW50ZXJuYWwKPiA+ID4gZGlzcGxheSBkb2Vzbid0IHN3aXRjaCBmcm9t IGZiY29uIHRvIFggcHJvcGVybHk6Cj4gPiBIbW0uwqDCoFdlIGNhbiBsZWF2ZSB0aGlzIHBhdGNo IG91dCBvZiB0aGUgc2VyaWVzIGFuZCBzdGlsbCBoYXZlIGEgZml4IGZvcgo+ID4gdGhlIFdBUk5f T04oIXdtX2NoYW5nZWQpLCBidXQgb25lIG9mIHRoZSBtYWluIGdvYWxzIHdhcyB0byBpZGVudGlm eSBhbmQKPiA+IHJlamVjdCBjb25maWd1cmF0aW9ucyB0aGF0IHRoZSBwbGF0Zm9ybSBpcyB0cnVs eSBpbmNhcGFibGUgb2YgaGFuZGxpbmcuCj4gPiBJJ20gc3RpbGwgZ29pbmcgdG8gaW5jbHVkZSB0 aGlzIHBhdGNoIGluIG15IG5leHQgc3BpbiBvZiB0aGUgc2VyaWVzIG9uCj4gPiB0aGUgbWFpbGlu ZyBsaXN0LCBidXQgd2UgY2FuIGp1c3Qgb21pdCBpdCBkdXJpbmcgbWVyZ2UgaWYgd2UgbmVlZCBt b3JlCj4gPiB0aW1lIHRvIGZpZ3VyZSBvdXQgd2h5IHlvdXIgY29uZmlndXJhdGlvbiBpcyBiZWlu ZyByZWplY3RlZC7CoMKgSSdsbCBhbHNvCj4gPiBhZGQgYW4gZXh0cmEgRFJNX0RFQlVHX0tNUyBs aW5lIHRvIHRoaXMgcGF0Y2ggdG8gZ2l2ZSB1cyBtb3JlIGluc2lnaHQKPiA+IGludG8gd2hhdCB0 aGUgZmluYWwgY2FsY3VsYXRlZCB2YWx1ZXMgd2VyZSBhbmQgaG93IGZhciBvdXQgb2YgYm91bmRz Cj4gPiB0aGV5IHdlcmUuCj4gPiAKPiA+IElmIHlvdSBkcm9wIHRoaXMgcGF0Y2ggYnV0IGtlZXAg dGhlIHJlc3Qgb2YgdGhlIHNlcmllcywgZG9lcyB0aGUgc3lzdGVtCj4gPiBzdGlsbCBvcGVyYXRl IHByb3Blcmx5IHdoZW4gaXQgZ29lcyBpbnRvIFg/wqDCoEkuZS4sIG5vIHVuZGVycnVucyByZXBv cnRlZAo+ID4gYW5kIG5vIGZsaWNrZXJpbmcvY29ycnVwdGlvbiBvbiBzY3JlZW4/Cj4gPiAKPiA+ IENvdWxkIHlvdSBwcm92aWRlIHRoZSBjb250ZW50cyBvZgo+ID4gL3N5cy9rZXJuZWwvZGVidWcv ZHJpLzAvaTkxNV9wcmlfd21fbGF0ZW5jeSA/wqDCoEkndmUgaGVhcmQgdGhhdCB0aGVyZSBhcmUK PiA+IHNvbWUgU0tMIHBjb2RlIChCSU9TKSB2ZXJzaW9ucyBmbG9hdGluZyBhcm91bmQgdGhhdCBn aXZlIGJhZCBtZW1vcnkKPiA+IGxhdGVuY3kgdmFsdWVzIHdoaWNoIHJlc3VsdCBpbiB1cyBjYWxj dWxhdGluZyB0aGUgd3Jvbmcgd2F0ZXJtYXJrIHZhbHVlcwo+ID4gaW4gdGhlIGVuZDsgaXQgd291 bGQgYmUgZ29vZCB0byBzZWUgaWYgdGhhdCdzIGEgY29udHJpYnV0aW5nIGZhY3Rvcgo+ID4gaGVy ZS4KPiA+IAo+ID4gQWxzbywgSSBjYW4gc2VlIHlvdXIgZURQIHBhbmVsIGluIHRoZSBsb2cgYmVs b3c7IGlzIHRoYXQgeW91ciBvbmx5Cj4gPiBkaXNwbGF5IG9yIGRvIHlvdSBhbHNvIGhhdmUgYW4g ZXh0ZXJuYWwgZGlzcGxheSBhdHRhY2hlZD8KPiA+IAo+ID4gCj4gPiAKPiA+IE1hdHQKPiA+IAo+ ID4gPiAKPiA+ID4gCj4gPiA+IFvCoMKgwqDCoDUuNzY3MzgzXSBbZHJtOmludGVsZmJfY3JlYXRl XSByZS11c2luZyBCSU9TIGZiCj4gPiA+IFvCoMKgwqDCoDUuNzY3NDQ0XSBbZHJtXSBJbml0aWFs aXplZCBpOTE1IDEuNi4wIDIwMTYwNDExIGZvciAwMDAwOjAwOjAyLjAgb24KPiA+ID4gbWlub3Ig MAo+ID4gPiBbwqDCoMKgwqA1Ljc2NzQ0OV0gW2RybTppbnRlbGZiX2NyZWF0ZV0gYWxsb2NhdGVk IDE5MjB4MTA4MCBmYjogMHgwMDAwMDAwMCwgYm8KPiA+ID4gZmZmZjg4MDIxMzc0YzAwMAo+ID4g PiBbwqDCoMKgwqA1Ljc2Nzc2MF0gZmJjb246IGludGVsZHJtZmIgKGZiMCkgaXMgcHJpbWFyeSBk ZXZpY2UKPiA+ID4gW8KgwqDCoMKgNS43NjgxNDddIFtkcm06Y29ubmVjdGVkX3NpbmtfY29tcHV0 ZV9icHBdIFtDT05ORUNUT1I6Mzc6ZURQLTFdCj4gPiA+IGNoZWNraW5nIGZvciBzaW5rIGJwcCBj b25zdHJhaW5zCj4gPiA+IFvCoMKgwqDCoDUuNzY4MTUwXSBbZHJtOmNvbm5lY3RlZF9zaW5rX2Nv bXB1dGVfYnBwXSBjbGFtcGluZyBkaXNwbGF5IGJwcCAod2FzCj4gPiA+IDM2KSB0byBFRElEIHJl cG9ydGVkIG1heCBvZiAxOAo+ID4gPiBbwqDCoMKgwqA1Ljc2ODE1OV0gW2RybTpza2xfdXBkYXRl X3NjYWxlcl9jcnRjXSBVcGRhdGluZyBzY2FsZXIgZm9yIFtDUlRDOjI2XQo+ID4gPiBzY2FsZXJf dXNlciBpbmRleCAwLjMxCj4gPiA+IFvCoMKgwqDCoDUuNzY4MTYyXSBbZHJtOnNrbF91cGRhdGVf c2NhbGVyXSBzY2FsZXJfdXNlciBpbmRleCAwLjMxOiBTdGFnZWQKPiA+ID4gZnJlZWluZyBzY2Fs ZXIgaWQgMCBzY2FsZXJfdXNlcnMgPSAweDAKPiA+ID4gW8KgwqDCoMKgNS43NjgxNjZdIFtkcm06 aW50ZWxfZHBfY29tcHV0ZV9jb25maWddIERQIGxpbmsgY29tcHV0YXRpb24gd2l0aCBtYXgKPiA+ ID4gbGFuZSBjb3VudCAyIG1heCBidyAyNzAwMDAgcGl4ZWwgY2xvY2sgMTQyOTAwS0h6Cj4gPiA+ IFvCoMKgwqDCoDUuNzY4MTcyXSBbZHJtOmludGVsX2RwX2NvbXB1dGVfY29uZmlnXSBEUCBsaW5r IGJ3IDBhIHJhdGUgc2VsZWN0IDAwCj4gPiA+IGxhbmUgY291bnQgMiBjbG9jayAyNzAwMDAgYnBw IDE4Cj4gPiA+IFvCoMKgwqDCoDUuNzY4MTc0XSBbZHJtOmludGVsX2RwX2NvbXB1dGVfY29uZmln XSBEUCBsaW5rIGJ3IHJlcXVpcmVkIDI1NzIyMAo+ID4gPiBhdmFpbGFibGUgNDMyMDAwCj4gPiA+ IFvCoMKgwqDCoDUuNzY4MTgwXSBbZHJtOmludGVsX21vZGVzZXRfcGlwZV9jb25maWddIGh3IG1h eCBicHA6IDM2LCBwaXBlIGJwcDogMTgsCj4gPiA+IGRpdGhlcmluZzogMQo+ID4gPiBbwqDCoMKg wqA1Ljc2ODE5M10gW2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmlnXSBbQ1JUQzoyNl1bbW9kZXNl dF0gY29uZmlnCj4gPiA+IGZmZmY4ODAwZDVjMTEwMDAgZm9yIHBpcGUgQQo+ID4gPiBbwqDCoMKg wqA1Ljc2ODIwMF0gW2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmlnXSBjcHVfdHJhbnNjb2Rlcjog RURQCj4gPiA+IFvCoMKgwqDCoDUuNzY4MjAyXSBbZHJtOmludGVsX2R1bXBfcGlwZV9jb25maWdd IHBpcGUgYnBwOiAxOCwgZGl0aGVyaW5nOiAxCj4gPiA+IFvCoMKgwqDCoDUuNzY4MjA2XSBbZHJt OmludGVsX2R1bXBfcGlwZV9jb25maWddIGZkaS9wY2g6IDAsIGxhbmVzOiAwLCBnbWNoX206IDAs Cj4gPiA+IGdtY2hfbjogMCwgbGlua19tOiAwLCBsaW5rX246IDAsIHR1OiAwCj4gPiA+IFvCoMKg wqDCoDUuNzY4MjExXSBbZHJtOmludGVsX2R1bXBfcGlwZV9jb25maWddIGRwOiAxLCBsYW5lczog MiwgZ21jaF9tOgo+ID4gPiA0OTk0NzE3LCBnbWNoX246IDgzODg2MDgsIGxpbmtfbTogMjc3NDg0 LCBsaW5rX246IDUyNDI4OCwgdHU6IDY0Cj4gPiA+IFvCoMKgwqDCoDUuNzY4MjE1XSBbZHJtOmlu dGVsX2R1bXBfcGlwZV9jb25maWddIGRwOiAxLCBsYW5lczogMiwgZ21jaF9tMjogMCwKPiA+ID4g Z21jaF9uMjogMCwgbGlua19tMjogMCwgbGlua19uMjogMCwgdHUyOiAwCj4gPiA+IFvCoMKgwqDC oDUuNzY4MjE3XSBbZHJtOmludGVsX2R1bXBfcGlwZV9jb25maWddIGF1ZGlvOiAwLCBpbmZvZnJh bWVzOiAwCj4gPiA+IFvCoMKgwqDCoDUuNzY4MjE5XSBbZHJtOmludGVsX2R1bXBfcGlwZV9jb25m aWddIHJlcXVlc3RlZCBtb2RlOgo+ID4gPiBbwqDCoMKgwqA1Ljc2ODIyNl0gW2RybTpkcm1fbW9k ZV9kZWJ1Z19wcmludG1vZGVsaW5lXSBNb2RlbGluZSAwOiIxOTIweDEwODAiIDYwCj4gPiA+IDE0 MjkwMCAxOTIwIDE5NjggMjAwMCAyMDgyIDEwODAgMTA4MiAxMDg3IDExNDQgMHg0OCAweGEKPiA+ ID4gW8KgwqDCoMKgNS43NjgyMjhdIFtkcm06aW50ZWxfZHVtcF9waXBlX2NvbmZpZ10gYWRqdXN0 ZWQgbW9kZToKPiA+ID4gW8KgwqDCoMKgNS43NjgyMzRdIFtkcm06ZHJtX21vZGVfZGVidWdfcHJp bnRtb2RlbGluZV0gTW9kZWxpbmUgMDoiMTkyMHgxMDgwIiA2MAo+ID4gPiAxNDI5MDAgMTkyMCAx OTY4IDIwMDAgMjA4MiAxMDgwIDEwODIgMTA4NyAxMTQ0IDB4NDggMHhhCj4gPiA+IFvCoMKgwqDC oDUuNzY4MjM5XSBbZHJtOmludGVsX2R1bXBfY3J0Y190aW1pbmdzXSBjcnRjIHRpbWluZ3M6IDE0 MjkwMCAxOTIwIDE5NjgKPiA+ID4gMjAwMCAyMDgyIDEwODAgMTA4MiAxMDg3IDExNDQsIHR5cGU6 IDB4NDggZmxhZ3M6IDB4YQo+ID4gPiBbwqDCoMKgwqA1Ljc2ODI0MV0gW2RybTppbnRlbF9kdW1w X3BpcGVfY29uZmlnXSBwb3J0IGNsb2NrOiAyNzAwMDAKPiA+ID4gW8KgwqDCoMKgNS43NjgyNDRd IFtkcm06aW50ZWxfZHVtcF9waXBlX2NvbmZpZ10gcGlwZSBzcmMgc2l6ZTogMTkyMHgxMDgwCj4g PiA+IFvCoMKgwqDCoDUuNzY4MjQ3XSBbZHJtOmludGVsX2R1bXBfcGlwZV9jb25maWddIG51bV9z Y2FsZXJzOiAyLCBzY2FsZXJfdXNlcnM6Cj4gPiA+IDB4MCwgc2NhbGVyX2lkOiAtMQo+ID4gPiBb wqDCoMKgwqA1Ljc2ODI1MV0gW2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmlnXSBnbWNoIHBmaXQ6 IGNvbnRyb2w6IDB4MDAwMDAwMDAsCj4gPiA+IHJhdGlvczogMHgwMDAwMDAwMCwgbHZkcyBib3Jk ZXI6IDB4MDAwMDAwMDAKPiA+ID4gW8KgwqDCoMKgNS43NjgyNTRdIFtkcm06aW50ZWxfZHVtcF9w aXBlX2NvbmZpZ10gcGNoIHBmaXQ6IHBvczogMHgwMDAwMDAwMCwgc2l6ZToKPiA+ID4gMHgwMDAw MDAwMCwgZGlzYWJsZWQKPiA+ID4gW8KgwqDCoMKgNS43NjgyNTZdIFtkcm06aW50ZWxfZHVtcF9w aXBlX2NvbmZpZ10gaXBzOiAwCj4gPiA+IFvCoMKgwqDCoDUuNzY4MjU4XSBbZHJtOmludGVsX2R1 bXBfcGlwZV9jb25maWddIGRvdWJsZSB3aWRlOiAwCj4gPiA+IFvCoMKgwqDCoDUuNzY4MjYzXSBb ZHJtOmludGVsX2R1bXBfcGlwZV9jb25maWddIGRkaV9wbGxfc2VsOiAxOyBkcGxsX2h3X3N0YXRl Ogo+ID4gPiBjdHJsMTogMHgxMywgY2ZnY3IxOiAweDAsIGNmZ2NyMjogMHgwCj4gPiA+IFvCoMKg wqDCoDUuNzY4MjY2XSBbZHJtOmludGVsX2R1bXBfcGlwZV9jb25maWddIHBsYW5lcyBvbiB0aGlz IGNydGMKPiA+ID4gW8KgwqDCoMKgNS43NjgyNzddIFtkcm06aW50ZWxfZHVtcF9waXBlX2NvbmZp Z10gU1RBTkRBUkQgUExBTkU6MjMgcGxhbmU6IDAuMAo+ID4gPiBpZHg6IDAgZW5hYmxlZAo+ID4g PiBbwqDCoMKgwqA1Ljc2ODI4NF0gW2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmlnXcKgCUZCOjU4 LCBmYiA9IDE5MjB4MTA4MAo+ID4gPiBmb3JtYXQgPSAweDM0MzI1MjU4Cj4gPiA+IFvCoMKgwqDC oDUuNzY4Mjg1XSBbZHJtOmludGVsX2R1bXBfcGlwZV9jb25maWddwqAJc2NhbGVyOi0xIHNyYyAo MCwgMCkKPiA+ID4gMTkyMHgxMDgwIGRzdCAoMCwgMCkgMTkyMHgxMDgwCj4gPiA+IFvCoMKgwqDC oDUuNzY4MjkwXSBbZHJtOmludGVsX2R1bXBfcGlwZV9jb25maWddIENVUlNPUiBQTEFORToyNSBw bGFuZTogMC4xIGlkeDoKPiA+ID4gMSBkaXNhYmxlZCwgc2NhbGVyX2lkID0gLTEKPiA+ID4gW8Kg wqDCoMKgNS43NjgyOTVdIFtkcm06aW50ZWxfZHVtcF9waXBlX2NvbmZpZ10gU1RBTkRBUkQgUExB TkU6MjcgcGxhbmU6IDAuMQo+ID4gPiBpZHg6IDIgZGlzYWJsZWQsIHNjYWxlcl9pZCA9IC0xCj4g PiA+IFvCoMKgwqDCoDUuNzY4MzA5XSBbZHJtOnNrbF91cGRhdGVfc2NhbGVyX3BsYW5lXSBVcGRh dGluZyBzY2FsZXIgZm9yIFtQTEFORToyM10KPiA+ID4gc2NhbGVyX3VzZXIgaW5kZXggMC4wCj4g PiA+IFvCoMKgwqDCoDUuNzY4MzE5XSBbZHJtOmludGVsX2ZpbmRfc2hhcmVkX2RwbGxdIENSVEM6 MjYgYWxsb2NhdGVkIERQTEwgMAo+ID4gPiBbwqDCoMKgwqA1Ljc2ODMyM10gW2RybTppbnRlbF9y ZWZlcmVuY2Vfc2hhcmVkX2RwbGxdIHVzaW5nIERQTEwgMCBmb3IgcGlwZSBBCj4gPiA+IFvCoMKg wqDCoDUuNzY4MzI3XSBbZHJtOnNrbF91cGRhdGVfc2NhbGVyX2NydGNdIFVwZGF0aW5nIHNjYWxl ciBmb3IgW0NSVEM6MjZdCj4gPiA+IHNjYWxlcl91c2VyIGluZGV4IDAuMzEKPiA+ID4gW8KgwqDC oMKgNS43NjgzMzldIFtkcm06c2tsX2NvbXB1dGVfcGxhbmVfd21dIFJlcXVlc3RlZCBkaXNwbGF5 IGNvbmZpZ3VyYXRpb24KPiA+ID4gZXhjZWVkcyBzeXN0ZW0gd2F0ZXJtYXJrIGxpbWl0YXRpb25z Cj4gPiA+IFvCoMKgwqDCoDUuNzY4MzU5XSBbZHJtOmRybV9mYl9oZWxwZXJfaG90cGx1Z19ldmVu dF3CoAo+ID4gPiBbwqDCoMKgwqA1Ljc2ODM2M10gW2RybTpkcm1faGVscGVyX3Byb2JlX3Npbmds ZV9jb25uZWN0b3JfbW9kZXNdCj4gPiA+IFtDT05ORUNUT1I6Mzc6ZURQLTFdCj4gPiA+IFvCoMKg wqDCoDUuNzY4MzY3XSBbZHJtOmludGVsX2RwX2RldGVjdF0gW0NPTk5FQ1RPUjozNzplRFAtMV0K PiA+ID4gW8KgwqDCoMKgNS43Njg3ODZdIFtkcm06aW50ZWxfZHBfcHJvYmVfb3VpXSBTaW5rIE9V STogMDAyMmI5Cj4gPiA+IFvCoMKgwqDCoDUuNzY5MTc3XSBbZHJtOmludGVsX2RwX3Byb2JlX291 aV0gQnJhbmNoIE9VSTogNDQ0NjE1Cj4gPiA+IFvCoMKgwqDCoDUuNzY5NjA0XSBbZHJtOmRybV9l ZGlkX3RvX2VsZF0gRUxEOiBubyBDRUEgRXh0ZW5zaW9uIGZvdW5kCj4gPiA+IFvCoMKgwqDCoDUu NzY5NjExXSBbZHJtOmRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2Rlc10KPiA+ ID4gW0NPTk5FQ1RPUjozNzplRFAtMV0gcHJvYmVkIG1vZGVzIDoKPiA+ID4gW8KgwqDCoMKgNS43 Njk2MThdIFtkcm06ZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZV0gTW9kZWxpbmUgMzg6IjE5 MjB4MTA4MCIgNjAKPiA+ID4gMTQyOTAwIDE5MjAgMTk2OCAyMDAwIDIwODIgMTA4MCAxMDgyIDEw ODcgMTE0NCAweDQ4IDB4YQo+ID4gPiBbwqDCoMKgwqA1Ljc2OTYyMV0gW2RybTpkcm1faGVscGVy X3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXNdCj4gPiA+IFtDT05ORUNUT1I6NDU6RFAtMV0K PiA+ID4gW8KgwqDCoMKgNS43Njk2MjRdIFtkcm06aW50ZWxfZHBfZGV0ZWN0XSBbQ09OTkVDVE9S OjQ1OkRQLTFdCj4gPiA+IFvCoMKgwqDCoDUuNzY5NjI4XSBbZHJtOmludGVsX3Bvd2VyX3dlbGxf ZW5hYmxlXSBlbmFibGluZyBwb3dlciB3ZWxsIDIKPiA+ID4gW8KgwqDCoMKgNS43Njk2MzNdIFtk cm06c2tsX3NldF9wb3dlcl93ZWxsXSBFbmFibGluZyBwb3dlciB3ZWxsIDIKPiA+ID4gW8KgwqDC oMKgNS43Njk2NTldIFtkcm06aW50ZWxfcG93ZXJfd2VsbF9kaXNhYmxlXSBkaXNhYmxpbmcgcG93 ZXIgd2VsbCAyCj4gPiA+IFvCoMKgwqDCoDUuNzY5NjcyXSBbZHJtOnNrbF9zZXRfcG93ZXJfd2Vs bF0gRGlzYWJsaW5nIHBvd2VyIHdlbGwgMgo+ID4gPiAKPiA+ID4gT24gVHVlLCAyMDE2LTA0LTE5 IGF0IDE5OjI2IC0wNzAwLCBNYXR0IFJvcGVyIHdyb3RlOgo+ID4gPiA+IAo+ID4gPiA+IElmIHdl IGNhbid0IGZpbmQgYW55IHZhbGlkIGxldmVsIDAgd2F0ZXJtYXJrIHZhbHVlcyBmb3IgdGhlIHJl cXVlc3RlZAo+ID4gPiA+IGF0b21pYyB0cmFuc2FjdGlvbiwgcmVqZWN0IHRoZSBjb25maWd1cmF0 aW9uIGJlZm9yZSB3ZSB0cnkgdG8gc3RhcnQKPiA+ID4gPiBwcm9ncmFtbWluZyB0aGUgaGFyZHdh cmUuCj4gPiA+ID4gCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5k LnJvcGVyQGludGVsLmNvbT4KPiA+ID4gPiBSZXZpZXdlZC1ieTogTWFhcnRlbiBMYW5raG9yc3Qg PG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiAtLS0KPiA+ID4gPiDC oGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgfCAxMiArKysrKysrKysrKy0KPiA+ID4g PiDCoDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gPiA+ ID4gCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMK PiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+ID4gPiBpbmRleCA1 OWQ0NTc0Li45NmZmZDU0IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMKPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j Cj4gPiA+ID4gQEAgLTMzMDksNyArMzMwOSwxNyBAQCBzdGF0aWMgaW50IHNrbF9jb21wdXRlX3Bs YW5lX3dtKGNvbnN0IHN0cnVjdAo+ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ID4gPiA+IMKgCj4gPiA+ID4gwqAJaWYgKHJlc19ibG9ja3MgPj0gZGRiX2FsbG9jYXRpb24gfHwg cmVzX2xpbmVzID4gMzEpIHsKPiA+ID4gPiDCoAkJKmVuYWJsZWQgPSBmYWxzZTsKPiA+ID4gPiAt CQlyZXR1cm4gMDsKPiA+ID4gPiArCj4gPiA+ID4gKwkJLyoKPiA+ID4gPiArCQnCoCogSWYgdGhl cmUgYXJlIG5vIHZhbGlkIGxldmVsIDAgd2F0ZXJtYXJrcywgdGhlbiB3ZQo+ID4gPiA+IGNhbid0 Cj4gPiA+ID4gKwkJwqAqIHN1cHBvcnQgdGhpcyBkaXNwbGF5IGNvbmZpZ3VyYXRpb24uCj4gPiA+ ID4gKwkJwqAqLwo+ID4gPiA+ICsJCWlmIChsZXZlbCkgewo+ID4gPiA+ICsJCQlyZXR1cm4gMDsK PiA+ID4gPiArCQl9IGVsc2Ugewo+ID4gPiA+ICsJCQlEUk1fREVCVUdfS01TKCJSZXF1ZXN0ZWQg ZGlzcGxheSBjb25maWd1cmF0aW9uCj4gPiA+ID4gZXhjZWVkcyBzeXN0ZW0gd2F0ZXJtYXJrIGxp bWl0YXRpb25zXG4iKTsKPiA+ID4gPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ID4gKwkJfQo+ ID4gPiA+IMKgCX0KPiA+ID4gPiDCoAo+ID4gPiA+IMKgCSpvdXRfYmxvY2tzID0gcmVzX2Jsb2Nr czsKCi0tIApNYXR0IFJvcGVyCkdyYXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCklvVEcgUGxhdGZv cm0gRW5hYmxpbmcgJiBEZXZlbG9wbWVudApJbnRlbCBDb3Jwb3JhdGlvbgooOTE2KSAzNTYtMjc5 NQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK