From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 04/51] drm/i915: Merged the many do_execbuf() parameters into a structure Date: Fri, 27 Feb 2015 14:35:48 +0100 Message-ID: <20150227133548.GA24485@phenom.ffwll.local> References: <1423828140-10653-1-git-send-email-John.C.Harrison@Intel.com> <1423828140-10653-5-git-send-email-John.C.Harrison@Intel.com> <20150225215217.GD24485@phenom.ffwll.local> <54F06192.7030202@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f177.google.com (mail-wi0-f177.google.com [209.85.212.177]) by gabe.freedesktop.org (Postfix) with ESMTP id 00E806E292 for ; Fri, 27 Feb 2015 05:34:39 -0800 (PST) Received: by wivr20 with SMTP id r20so241739wiv.2 for ; Fri, 27 Feb 2015 05:34:39 -0800 (PST) Content-Disposition: inline In-Reply-To: <54F06192.7030202@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: John Harrison Cc: Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBGZWIgMjcsIDIwMTUgYXQgMTI6MjI6NDJQTSArMDAwMCwgSm9obiBIYXJyaXNvbiB3 cm90ZToKPiBPbiAyNS8wMi8yMDE1IDIxOjUyLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID5PbiBG cmksIEZlYiAxMywgMjAxNSBhdCAxMTo0ODoxM0FNICswMDAwLCBKb2huLkMuSGFycmlzb25ASW50 ZWwuY29tIHdyb3RlOgo+ID4+RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQElu dGVsLmNvbT4KPiA+Pgo+ID4+VGhlIGRvX2V4ZWNidWYoKSBmdW5jdGlvbiB0YWtlcyBxdWl0ZSBh IGZldyBwYXJhbWV0ZXJzLiBUaGUgYWN0dWFsIHNldCBvZgo+ID4+cGFyYW1ldGVycyBpcyBnb2lu ZyB0byBjaGFuZ2Ugd2l0aCB0aGUgY29udmVyc2lvbiB0byBwYXNzaW5nIHJlcXVlc3RzIGFyb3Vu ZC4KPiA+PkZ1cnRoZXIsIGl0IGlzIGR1ZSB0byBncm93IG1hc3NpdmVseSB3aXRoIHRoZSBhcnJp dmFsIG9mIHRoZSBHUFUgc2NoZWR1bGVyLgo+ID4+Cj4gPj5UaGlzIHBhdGNoIHNpbXBsaWVzIHRo ZSBwcm90b3R5cGUgYnkgcGFzc2luZyBhIHBhcmFtZXRlciBzdHJ1Y3R1cmUgaW5zdGVhZC4KPiA+ PkNoYW5naW5nIHRoZSBwYXJhbWV0ZXIgc2V0IGluIHRoZSBmdXR1cmUgaXMgdGhlbiBzaW1wbHkg YSBtYXR0ZXIgb2YKPiA+PmFkZGluZy9yZW1vdmluZyBpdGVtcyB0byB0aGUgc3RydWN0dXJlLgo+ ID4+Cj4gPj5Ob3RlIHRoYXQgdGhlIHN0cnVjdHVyZSBkb2VzIG5vdCBjb250YWluIGFic29sdXRl bHkgZXZlcnl0aGluZyB0aGF0IGlzIHBhc3NlZAo+ID4+aW4uIFRoaXMgaXMgYmVjYXVzZSB0aGUg aW50ZW50aW9uIGlzIHRvIHVzZSB0aGlzIHN0cnVjdHVyZSBtb3JlIGV4dGVuc2l2ZWx5Cj4gPj5s YXRlciBpbiB0aGlzIHBhdGNoIHNlcmllcyBhbmQgbW9yZSBlc3BlY2lhbGx5IGluIHRoZSBHUFUg c2NoZWR1bGVyIHRoYXQgaXMKPiA+PmNvbWluZyBzb29uLiBUaGUgbGF0dGVyIHJlcXVpcmVzIGhh bmdpbmcgb24gdG8gdGhlIHN0cnVjdHVyZSBhcyB0aGUgZmluYWwKPiA+PmhhcmR3YXJlIHN1Ym1p c3Npb24gY2FuIGJlIGRlbGF5ZWQgdW50aWwgbG9uZyBhZnRlciB0aGUgZXhlY2J1ZiBJT0NUTCBo YXMKPiA+PnJldHVybmVkIHRvIHVzZXIgbGFuZC4gVGh1cyBpdCBpcyB1bnNhZmUgdG8gcHV0IGFu eXRoaW5nIGluIHRoZSBzdHJ1Y3R1cmUgdGhhdAo+ID4+aXMgbG9jYWwgdG8gdGhlIElPQ1RMIGNh bGwgaXRzZWxmIC0gc3VjaCBhcyB0aGUgJ2FyZ3MnIHBhcmFtZXRlci4gQWxsIGVudHJpZXMKPiA+ Pm11c3QgYmUgY29waWVzIG9mIGRhdGEgb3IgcG9pbnRlcnMgdG8gc3RydWN0dXJlcyB0aGF0IGFy ZSByZWZlcmVuY2UgY291bnRlZCBpbgo+ID4+c29tZXdheSBhbmQgZ3VhcmFudGVlZCB0byBleGlz dCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBiYXRjaCBidWZmZXIncyBsaWZlLgo+ID4+Cj4gPj5G b3I6IFZJWi01MTE1Cj4gPj5TaWduZWQtb2ZmLWJ5OiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFy cmlzb25ASW50ZWwuY29tPgo+ID4+LS0tCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggICAgICAgICAgICB8ICAgMjcgKysrKysrKy0tLS0tLS0KPiA+PiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIHwgICA1NiArKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAg ICB8ICAgMjYgKysrKysrKy0tLS0tLQo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuaCAgICAgICAgICAgfCAgICA5ICsrLS0tCj4gPj4gIDQgZmlsZXMgY2hhbmdlZCwgNjcgaW5z ZXJ0aW9ucygrKSwgNTEgZGVsZXRpb25zKC0pCj4gPj4KPiA+PmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+ID4+aW5kZXggZTkwYjc4Ni4uZTZkNjE2YiAxMDA2NDQKPiA+Pi0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+PisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiA+PkBAIC0xNjQwLDYgKzE2NDAsMTYgQEAgc3RydWN0IGk5MTVfd29ya2Fyb3VuZHMg ewo+ID4+ICAJdTMyIGNvdW50Owo+ID4+ICB9Owo+ID4+K3N0cnVjdCBpOTE1X2V4ZWNidWZmZXJf cGFyYW1zIHsKPiA+PisJc3RydWN0IGRybV9kZXZpY2UgICAgICAgICAgICAgICAqZGV2Owo+ID4+ KwlzdHJ1Y3QgZHJtX2ZpbGUgICAgICAgICAgICAgICAgICpmaWxlOwo+ID4+Kwl1aW50MzJfdCAg ICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoX2ZsYWdzOwo+ID4+Kwl1aW50MzJfdCAgICAg ICAgICAgICAgICAgICAgICAgIGJhdGNoX29ial92bV9vZmZzZXQ7Cj4gPj4rCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgICAgICAgICAgKnJpbmc7Cj4gPj4rCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICAgICAgKmJhdGNoX29iajsKPiA+PisJc3RydWN0IGludGVsX2NvbnRleHQgICAgICAgICAg ICAqY3R4Owo+ID4+K307Cj4gPnRiaCBJJ20gbm90IGEgZmFuIG9mIHBhcmFtZXRlciBvYmplY3Rz IGluIEMuIEMgaXMgdmVyYm9zZSBhbmQgZXhwbGljaXQuCj4gPgo+ID5JZiB3ZSBhZGQgdGhlIHJl cXVlc3QgdGhlbiB3ZSBjYW4gcmVtb3ZlIHJpbmcgYW5kIGN0eCwgd2hpY2ggYWxyZWFkeQo+ID5p bXByb3ZlcyB0aGluZ3MuIFdlIGFsc28gaGF2ZSB0aGUgZWIgc3RydWN0dXJlIHdlIHVzZSB0byBw YXNzIGFyb3VuZCBhCj4gPnBpbGUgb2YgdGhpbmdzLCB3aGljaCB3ZSBjb3VsZCBzb21ld2hhdCBy ZXVzZSBoZXJlLiBXaGF0IGVsc2UgZG8geW91IHBsYW4KPiA+dG8gYWRkPyBKdXN0IHdhbnQgdG8g ZmlndXJlIG91dCB3aGV0aGVyIHRoaXMgaXMgcmVhbGx5IHJlcXVpcmVkIC4uLgo+ID4tRGFuaWVs Cj4gCj4gVGhlIG1ham9yIGFkdmFudGFnZSBvZiB0aGlzIGlzIHdoZW4gdGhlIEdQVSBzY2hlZHVs ZXIgYXJyaXZlcy4gSXQgc3BsaXRzIHRoZQo+IGV4ZWNidWZmZXIgY29kZSBwYXRoIGluIGhhbGYg LSBmcm9udCBoYWxmIGlzIGFsbCB0aGUgc29mdHdhcmUgc3RhdGUKPiB2ZXJpZmljYXRpb24gYW5k IG1hbmFnZW1lbnQsIGJhY2sgaGFsZiBpcyB0aGUgYWN0dWFsIGhhcmR3YXJlIHdyaXRlcyB0byBw b3N0Cj4gdGhlIGJ1ZmZlci4gVGhpcyBzdHJ1Y3R1cmUgaXMgdXNlZCB0byBicmlkZ2UgdGhlIHR3 by4gSXQgY29udGFpbnMgYWxsIHRoZQo+IHN0YXRlIGNyZWF0ZWQgYnkgdGhlIGZyb250IGhhbGYg dGhhdCBpcyBsYXRlciB1c2VkIGJ5IHRoZSBiYWNrIGhhbGYuIEl0IGlzCj4gc2F2ZWQgYXdheSB3 aXRoIHRoZSByZXF1ZXN0L3NjaGVkdWxlciBub2RlIHVudGlsIHN1Y2ggYSB0aW1lIGFzIHRoZSBi YWNrCj4gaGFsZiBpcyBjYWxsZWQuIEhlbmNlIHNvbWUga2luZCBvZiBzdHJ1Y3R1cmUgaXMgcmVx dWlyZWQgYW5kIGl0IGRvZXMgbm90Cj4gcmVhbGx5IG1ha2Ugc2Vuc2UgdG8gYWRkIGFsbCB0aGlz IGluZm9ybWF0aW9uIHRvIHRoZSBnZW5lcmljIHJlcXVlc3QKPiBzdHJ1Y3R1cmUuIEFsc28sIHdp dGggdGhlIGZ1bGwgcHJlLWVtcHRpdmUgc2NoZWR1bGVyLCB0aGUgc3RydWN0dXJlIGdyb3dzIHRv Cj4gYWJvdXQgdHdlbnR5IGVudHJpZXMgYW5kIHBhc3NpbmcgdGhhdCBxdWFudGl0eSBvZiBpbmRp dmlkdWFsIHBhcmFtZXRlcnMgdG8gYQo+IGZ1bmN0aW9uIGlzIGp1c3QgdW53aWVsZGx5IQoKV2Vs bCB3ZSBhbHJlYWR5IGhhdmUgYW4gZXhlY2J1ZiB0cmFja2luZyBzdHJ1Y3R1cmUgd2l0aCBlYl92 bWFzLiBBbmQgdGhlbgp0aGVyZSdzIHJlcXVlc3RzLiBTbyBpZiB0aGlzIGlzIG1vcmUgdGhhbiBq dXN0IGEgcGFyYW1ldGVyIG9iamVjdCBJIHdvbmRlcgp3aGV0aGVyIHdlIHNob3VsZG4ndCByZXVz ZSBlaXRoZXIgb2YgdGhlc2UuIEFkZGluZyB0aGVtIGFsbCB0byByZXF1ZXN0cyBpcwppbW8gdG90 YWxseSBvay4KCk9oIGFuZCBhIGJpa2VzaGVkIGFzaWRlOiBpbW8gdGhlIC0+ZG9fZXhlYnVmIG5h bWUgaXMgcmVhbGx5IGNvbmZ1c2luZywKc2luY2UgaXQgY2xhc2hlcyB3aXRoIHRoZSB0aGUgdmFy aW91cyBkb19leGVjYnVmIGZ1bmN0aW9ucyB3ZSBoYXZlIHdoaWNoCmFyZSBhdCBhIGhpZ2hlciBs ZXZlbC4gQWxzbyB0aGUgaW1wbGVtZW50YXRpb25zIGFsbCBoYXZlIGEgX3N1Ym1pc3Npb24KcG9z dGZpeC4gSW1vIGJldHRlciBuYW1lcyB3b3VsZCBiZSBkb19zdWJtaXNzaW9uIG9yIGVuZ2luZV9z dWJtaXQgb3IKc29tZXRoaW5nIHNpbWxhci4gVGhlIG9ubHkgY2F2ZWF0IGlzIHRoYXQgd2UgbmVl ZCB0byBtYWtlIHN1cmUgdGhlCmxpZmV0aW1lIHJ1bGVzIGZvciBhbnkgcG9pbnRlcnMgYXJlIG9r LiBFLmcuIGJlZm9yZSB3ZSByZXR1cm4gZnJvbSB0aGUKaW9jdGwgd2UgbmVlZCB0byBjbGVhciBv dXQgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICphcmdzIHBvaW50ZXJzIGlmIHdlCnN0b3JlIHRo ZW0gaW4gdGhlIHJlcXVlc3Qgc3RydWN0dXJlLgoKQ2FuIHlvdSBwbGVhc2UgcGljayBhIG5hbWUg YW5kIGluc2VydCB0aGF0IHJlbmFtZSBwYXRjaCBzb21ld2hlcmUKY29udmVuaWVudCAoZm9yIHlv dSkgaW4geW91ciBzZXJpZXM/CgpUaGFua3MsIERhbmllbAo+IAo+IAo+ID4+Kwo+ID4+ICBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gPj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+ID4+ ICAJc3RydWN0IGttZW1fY2FjaGUgKnNsYWI7Cj4gPj5AQCAtMTg5MSwxMyArMTkwMSw5IEBAIHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiA+PiAgCS8qIEFic3RyYWN0IHRoZSBzdWJtaXNzaW9u IG1lY2hhbmlzbSAobGVnYWN5IHJpbmdidWZmZXIgb3IgZXhlY2xpc3RzKSBhd2F5ICovCj4gPj4g IAlzdHJ1Y3Qgewo+ID4+LQkJaW50ICgqZG9fZXhlY2J1Zikoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgc3RydWN0IGRybV9maWxlICpmaWxlLAo+ID4+LQkJCQkgIHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCj4gPj4tCQkJCSAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiA+PisJCWlu dCAoKmRvX2V4ZWNidWYpKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCj4g Pj4gIAkJCQkgIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgKmFyZ3MsCj4gPj4tCQkJ CSAgc3RydWN0IGxpc3RfaGVhZCAqdm1hcywKPiA+Pi0JCQkJICBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqYmF0Y2hfb2JqLAo+ID4+LQkJCQkgIHU2NCBleGVjX3N0YXJ0LCB1MzIgZmxhZ3Mp Owo+ID4+KwkJCQkgIHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMpOwo+ID4+ICAJCWludCAoKmluaXRf cmluZ3MpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4+ICAJCXZvaWQgKCpjbGVhbnVwX3Jp bmcpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ID4+ICAJCXZvaWQgKCpzdG9wX3Jp bmcpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ID4+QEAgLTI2MjIsMTQgKzI2Mjgs OSBAQCB2b2lkIGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmV0aXJlX2NvbW1hbmRzKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gPj4gIAkJCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKPiA+PiAgCQkJ CQkgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiA+PiAgCQkJCQkgc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaik7Cj4gPj4taW50IGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlz c2lvbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4+LQkJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGUsCj4gPj4tCQkJCSAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gPj4tCQkJ CSAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gPj4raW50IGk5MTVfZ2VtX3JpbmdidWZm ZXJfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAo+ID4+ ICAJCQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncywKPiA+Pi0JCQkJ ICAgc3RydWN0IGxpc3RfaGVhZCAqdm1hcywKPiA+Pi0JCQkJICAgc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmJhdGNoX29iaiwKPiA+Pi0JCQkJICAgdTY0IGV4ZWNfc3RhcnQsIHUzMiBmbGFn cyk7Cj4gPj4rCQkJCSAgIHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMpOwo+ID4+ICBpbnQgaTkxNV9n ZW1fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ID4+ICAJ CQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4gPj4gIGludCBpOTE1X2dlbV9leGVjYnVm ZmVyMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ID4+ZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+ID4+aW5kZXggZWM5ZWE0NS4uOTNiMGVm MCAxMDA2NDQKPiA+Pi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYwo+ID4+KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5j Cj4gPj5AQCAtMTEzMiwxNyArMTEzMiwxNSBAQCBpOTE1X2dlbV9leGVjYnVmZmVyX3BhcnNlKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gPj4gIH0KPiA+PiAgaW50Cj4gPj4taTkxNV9n ZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBk cm1fZmlsZSAqZmlsZSwKPiA+Pi0JCQkgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZywKPiA+Pi0JCQkgICAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiA+PitpOTE1X2dl bV9yaW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBh cmFtcywKPiA+PiAgCQkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgKmFy Z3MsCj4gPj4tCQkJICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMsCj4gPj4tCQkJICAgICAg IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpiYXRjaF9vYmosCj4gPj4tCQkJICAgICAgIHU2 NCBleGVjX3N0YXJ0LCB1MzIgZGlzcGF0Y2hfZmxhZ3MpCj4gPj4rCQkJICAgICAgIHN0cnVjdCBs aXN0X2hlYWQgKnZtYXMpCj4gPj4gIHsKPiA+PiAgCXN0cnVjdCBkcm1fY2xpcF9yZWN0ICpjbGlw cmVjdHMgPSBOVUxMOwo+ID4+KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGFyYW1zLT5kZXY7 Cj4gPj4rCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSBwYXJhbXMtPnJpbmc7Cj4gPj4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ ID4+LQl1NjQgZXhlY19sZW47Cj4gPj4rCXU2NCBleGVjX3N0YXJ0LCBleGVjX2xlbjsKPiA+PiAg CWludCBpbnN0cF9tb2RlOwo+ID4+ICAJdTMyIGluc3RwX21hc2s7Cj4gPj4gIAlpbnQgaSwgcmV0 ID0gMDsKPiA+PkBAIC0xMTk0LDcgKzExOTIsNyBAQCBpOTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1p c3Npb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlLAo+ID4+ ICAJaWYgKHJldCkKPiA+PiAgCQlnb3RvIGVycm9yOwo+ID4+LQlyZXQgPSBpOTE1X3N3aXRjaF9j b250ZXh0KHJpbmcsIGN0eCk7Cj4gPj4rCXJldCA9IGk5MTVfc3dpdGNoX2NvbnRleHQocmluZywg cGFyYW1zLT5jdHgpOwo+ID4+ICAJaWYgKHJldCkKPiA+PiAgCQlnb3RvIGVycm9yOwo+ID4+QEAg LTEyNTEsMTIgKzEyNDksMTUgQEAgaTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKPiA+PiAgCX0KPiA+PiAg CWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19HRU43X1NPTF9SRVNFVCkgewo+ID4+LQkJcmV0 ID0gaTkxNV9yZXNldF9nZW43X3NvbF9vZmZzZXRzKGRldiwgcmluZyk7Cj4gPj4rCQlyZXQgPSBp OTE1X3Jlc2V0X2dlbjdfc29sX29mZnNldHMocGFyYW1zLT5kZXYsIHJpbmcpOwo+ID4+ICAJCWlm IChyZXQpCj4gPj4gIAkJCWdvdG8gZXJyb3I7Cj4gPj4gIAl9Cj4gPj4tCWV4ZWNfbGVuID0gYXJn cy0+YmF0Y2hfbGVuOwo+ID4+KwlleGVjX2xlbiAgID0gYXJncy0+YmF0Y2hfbGVuOwo+ID4+Kwll eGVjX3N0YXJ0ID0gcGFyYW1zLT5iYXRjaF9vYmpfdm1fb2Zmc2V0ICsKPiA+PisJCSAgICAgYXJn cy0+YmF0Y2hfc3RhcnRfb2Zmc2V0Owo+ID4+Kwo+ID4+ICAJaWYgKGNsaXByZWN0cykgewo+ID4+ ICAJCWZvciAoaSA9IDA7IGkgPCBhcmdzLT5udW1fY2xpcHJlY3RzOyBpKyspIHsKPiA+PiAgCQkJ cmV0ID0gaTkxNV9lbWl0X2JveChyaW5nLCAmY2xpcHJlY3RzW2ldLAo+ID4+QEAgLTEyNjYsMjIg KzEyNjcsMjMgQEAgaTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKPiA+PiAgCQkJcmV0ID0gcmluZy0+ZGlz cGF0Y2hfZXhlY2J1ZmZlcihyaW5nLAo+ID4+ICAJCQkJCQkJZXhlY19zdGFydCwgZXhlY19sZW4s Cj4gPj4tCQkJCQkJCWRpc3BhdGNoX2ZsYWdzKTsKPiA+PisJCQkJCQkJcGFyYW1zLT5kaXNwYXRj aF9mbGFncyk7Cj4gPj4gIAkJCWlmIChyZXQpCj4gPj4gIAkJCQlnb3RvIGVycm9yOwo+ID4+ICAJ CX0KPiA+PiAgCX0gZWxzZSB7Cj4gPj4gIAkJcmV0ID0gcmluZy0+ZGlzcGF0Y2hfZXhlY2J1ZmZl cihyaW5nLAo+ID4+ICAJCQkJCQlleGVjX3N0YXJ0LCBleGVjX2xlbiwKPiA+Pi0JCQkJCQlkaXNw YXRjaF9mbGFncyk7Cj4gPj4rCQkJCQkJcGFyYW1zLT5kaXNwYXRjaF9mbGFncyk7Cj4gPj4gIAkJ aWYgKHJldCkKPiA+PiAgCQkJcmV0dXJuIHJldDsKPiA+PiAgCX0KPiA+Pi0JdHJhY2VfaTkxNV9n ZW1fcmluZ19kaXNwYXRjaChpbnRlbF9yaW5nX2dldF9yZXF1ZXN0KHJpbmcpLCBkaXNwYXRjaF9m bGFncyk7Cj4gPj4rCXRyYWNlX2k5MTVfZ2VtX3JpbmdfZGlzcGF0Y2goaW50ZWxfcmluZ19nZXRf cmVxdWVzdChyaW5nKSwgcGFyYW1zLT5kaXNwYXRjaF9mbGFncyk7Cj4gPj4gIAlpOTE1X2dlbV9l eGVjYnVmZmVyX21vdmVfdG9fYWN0aXZlKHZtYXMsIHJpbmcpOwo+ID4+LQlpOTE1X2dlbV9leGVj YnVmZmVyX3JldGlyZV9jb21tYW5kcyhkZXYsIGZpbGUsIHJpbmcsIGJhdGNoX29iaik7Cj4gPj4r CWk5MTVfZ2VtX2V4ZWNidWZmZXJfcmV0aXJlX2NvbW1hbmRzKHBhcmFtcy0+ZGV2LCBwYXJhbXMt PmZpbGUsIHJpbmcsCj4gPj4rCQkJCQkgICAgcGFyYW1zLT5iYXRjaF9vYmopOwo+ID4+ICBlcnJv cjoKPiA+PiAgCWtmcmVlKGNsaXByZWN0cyk7Cj4gPj5AQCAtMTM1MSw4ICsxMzUzLDkgQEAgaTkx NV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ ID4+ICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsKPiA+PiAgCXN0cnVjdCBpbnRlbF9j b250ZXh0ICpjdHg7Cj4gPj4gIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bTsKPiA+PisJ c3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgcGFyYW1zX21hc3RlcjsgLyogWFhYOiB3aWxs IGJlIHJlbW92ZWQgbGF0ZXIgKi8KPiA+PisJc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMg KnBhcmFtcyA9ICZwYXJhbXNfbWFzdGVyOwo+ID4+ICAJY29uc3QgdTMyIGN0eF9pZCA9IGk5MTVf ZXhlY2J1ZmZlcjJfZ2V0X2NvbnRleHRfaWQoKmFyZ3MpOwo+ID4+LQl1NjQgZXhlY19zdGFydCA9 IGFyZ3MtPmJhdGNoX3N0YXJ0X29mZnNldDsKPiA+PiAgCXUzMiBkaXNwYXRjaF9mbGFnczsKPiA+ PiAgCWludCByZXQ7Cj4gPj4gIAlib29sIG5lZWRfcmVsb2NzOwo+ID4+QEAgLTE0NDUsNiArMTQ0 OCw4IEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9p ZCAqZGF0YSwKPiA+PiAgCWVsc2UKPiA+PiAgCQl2bSA9ICZkZXZfcHJpdi0+Z3R0LmJhc2U7Cj4g Pj4rCW1lbXNldCgmcGFyYW1zX21hc3RlciwgMHgwMCwgc2l6ZW9mKHBhcmFtc19tYXN0ZXIpKTsK PiA+PisKPiA+PiAgCWViID0gZWJfY3JlYXRlKGFyZ3MpOwo+ID4+ICAJaWYgKGViID09IE5VTEwp IHsKPiA+PiAgCQlpOTE1X2dlbV9jb250ZXh0X3VucmVmZXJlbmNlKGN0eCk7Cj4gPj5AQCAtMTUy MiwxMyArMTUyNywyNCBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCj4gPj4gIAkJaWYgKHJldCkKPiA+PiAgCQkJZ290byBlcnI7Cj4g Pj4tCQlleGVjX3N0YXJ0ICs9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChiYXRjaF9vYmopOwo+ ID4+KwkJcGFyYW1zLT5iYXRjaF9vYmpfdm1fb2Zmc2V0ID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zm c2V0KGJhdGNoX29iaik7Cj4gPj4gIAl9IGVsc2UKPiA+Pi0JCWV4ZWNfc3RhcnQgKz0gaTkxNV9n ZW1fb2JqX29mZnNldChiYXRjaF9vYmosIHZtKTsKPiA+PisJCXBhcmFtcy0+YmF0Y2hfb2JqX3Zt X29mZnNldCA9IGk5MTVfZ2VtX29ial9vZmZzZXQoYmF0Y2hfb2JqLCB2bSk7Cj4gPj4tCXJldCA9 IGRldl9wcml2LT5ndC5kb19leGVjYnVmKGRldiwgZmlsZSwgcmluZywgY3R4LCBhcmdzLAo+ID4+ LQkJCQkgICAgICAmZWItPnZtYXMsIGJhdGNoX29iaiwgZXhlY19zdGFydCwKPiA+Pi0JCQkJICAg ICAgZGlzcGF0Y2hfZmxhZ3MpOwo+ID4+KwkvKgo+ID4+KwkgKiBTYXZlIGFzc29ydGVkIHN0dWZm IGF3YXkgdG8gcGFzcyB0aHJvdWdoIHRvICpfc3VibWlzc2lvbigpLgo+ID4+KwkgKiBOQjogVGhp cyBkYXRhIHNob3VsZCBiZSAncGVyc2lzdGVudCcgYW5kIG5vdCBsb2NhbCBhcyBpdCB3aWxsCj4g Pj4rCSAqIGtlcHQgYXJvdW5kIGJleW9uZCB0aGUgZHVyYXRpb24gb2YgdGhlIElPQ1RMIG9uY2Ug dGhlIEdQVQo+ID4+KwkgKiBzY2hlZHVsZXIgYXJyaXZlcy4KPiA+PisJICovCj4gPj4rCXBhcmFt cy0+ZGV2ICAgICAgICAgICAgICAgICAgICAgPSBkZXY7Cj4gPj4rCXBhcmFtcy0+ZmlsZSAgICAg ICAgICAgICAgICAgICAgPSBmaWxlOwo+ID4+KwlwYXJhbXMtPnJpbmcgICAgICAgICAgICAgICAg ICAgID0gcmluZzsKPiA+PisJcGFyYW1zLT5kaXNwYXRjaF9mbGFncyAgICAgICAgICA9IGRpc3Bh dGNoX2ZsYWdzOwo+ID4+KwlwYXJhbXMtPmJhdGNoX29iaiAgICAgICAgICAgICAgID0gYmF0Y2hf b2JqOwo+ID4+KwlwYXJhbXMtPmN0eCAgICAgICAgICAgICAgICAgICAgID0gY3R4Owo+ID4+Kwo+ ID4+KwlyZXQgPSBkZXZfcHJpdi0+Z3QuZG9fZXhlY2J1ZihwYXJhbXMsIGFyZ3MsICZlYi0+dm1h cyk7Cj4gPj4gIAkvKgo+ID4+ICAJICogRklYTUU6IFdlIGNydWNpYWxseSByZWx5IHVwb24gdGhl IGFjdGl2ZSB0cmFja2luZyBmb3IgdGhlIChwcGd0dCkKPiA+PmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jCj4gPj5pbmRleCA3NjIxMzZiLi5jYTI5MjkwIDEwMDY0NAo+ID4+LS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiA+PisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCj4gPj5AQCAtNjE4LDE2ICs2MTgsMTUgQEAgc3RhdGljIGludCBleGVjbGlzdHNf bW92ZV90b19ncHUoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYsCj4gPj4gICAqCj4g Pj4gICAqIFJldHVybjogbm9uLXplcm8gaWYgdGhlIHN1Ym1pc3Npb24gZmFpbHMuCj4gPj4gICAq Lwo+ID4+LWludCBpbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCj4gPj4tCQkJICAgICAgIHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcsCj4gPj4tCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgs Cj4gPj4raW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZm ZXJfcGFyYW1zICpwYXJhbXMsCj4gPj4gIAkJCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4 ZWNidWZmZXIyICphcmdzLAo+ID4+LQkJCSAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzLAo+ ID4+LQkJCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqYmF0Y2hfb2JqLAo+ID4+ LQkJCSAgICAgICB1NjQgZXhlY19zdGFydCwgdTMyIGRpc3BhdGNoX2ZsYWdzKQo+ID4+KwkJCSAg ICAgICBzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzKQo+ID4+ICB7Cj4gPj4rCXN0cnVjdCBkcm1fZGV2 aWNlICAgICAgICpkZXYgPSBwYXJhbXMtPmRldjsKPiA+PisJc3RydWN0IGludGVsX2VuZ2luZV9j cyAgKnJpbmcgPSBwYXJhbXMtPnJpbmc7Cj4gPj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4+LQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZ2J1ZiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5yaW5nYnVmOwo+ID4+KwlzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHBhcmFtcy0+Y3R4LT5lbmdpbmVbcmluZy0+aWRd LnJpbmdidWY7Cj4gPj4rCXU2NCBleGVjX3N0YXJ0Owo+ID4+ICAJaW50IGluc3RwX21vZGU7Cj4g Pj4gIAl1MzIgaW5zdHBfbWFzazsKPiA+PiAgCWludCByZXQ7Cj4gPj5AQCAtNjc4LDEzICs2Nzcs MTMgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNzaW9uKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKPiA+PiAgCQlyZXR1cm4gLUVJTlZBTDsKPiA+PiAg CX0KPiA+Pi0JcmV0ID0gZXhlY2xpc3RzX21vdmVfdG9fZ3B1KHJpbmdidWYsIGN0eCwgdm1hcyk7 Cj4gPj4rCXJldCA9IGV4ZWNsaXN0c19tb3ZlX3RvX2dwdShyaW5nYnVmLCBwYXJhbXMtPmN0eCwg dm1hcyk7Cj4gPj4gIAlpZiAocmV0KQo+ID4+ICAJCXJldHVybiByZXQ7Cj4gPj4gIAlpZiAocmlu ZyA9PSAmZGV2X3ByaXYtPnJpbmdbUkNTXSAmJgo+ID4+ICAJICAgIGluc3RwX21vZGUgIT0gZGV2 X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50c19tb2RlKSB7Cj4gPj4tCQlyZXQgPSBpbnRlbF9sb2dp Y2FsX3JpbmdfYmVnaW4ocmluZ2J1ZiwgY3R4LCA0KTsKPiA+PisJCXJldCA9IGludGVsX2xvZ2lj YWxfcmluZ19iZWdpbihyaW5nYnVmLCBwYXJhbXMtPmN0eCwgNCk7Cj4gPj4gIAkJaWYgKHJldCkK PiA+PiAgCQkJcmV0dXJuIHJldDsKPiA+PkBAIC02OTcsMTQgKzY5NiwxNyBAQCBpbnQgaW50ZWxf ZXhlY2xpc3RzX3N1Ym1pc3Npb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9m aWxlICpmaWxlLAo+ID4+ICAJCWRldl9wcml2LT5yZWxhdGl2ZV9jb25zdGFudHNfbW9kZSA9IGlu c3RwX21vZGU7Cj4gPj4gIAl9Cj4gPj4tCXJldCA9IHJpbmctPmVtaXRfYmJfc3RhcnQocmluZ2J1 ZiwgY3R4LCBleGVjX3N0YXJ0LCBkaXNwYXRjaF9mbGFncyk7Cj4gPj4rCWV4ZWNfc3RhcnQgPSBw YXJhbXMtPmJhdGNoX29ial92bV9vZmZzZXQgKwo+ID4+KwkJICAgICBhcmdzLT5iYXRjaF9zdGFy dF9vZmZzZXQ7Cj4gPj4rCj4gPj4rCXJldCA9IHJpbmctPmVtaXRfYmJfc3RhcnQocmluZ2J1Ziwg cGFyYW1zLT5jdHgsIGV4ZWNfc3RhcnQsIHBhcmFtcy0+ZGlzcGF0Y2hfZmxhZ3MpOwo+ID4+ICAJ aWYgKHJldCkKPiA+PiAgCQlyZXR1cm4gcmV0Owo+ID4+LQl0cmFjZV9pOTE1X2dlbV9yaW5nX2Rp c3BhdGNoKGludGVsX3JpbmdfZ2V0X3JlcXVlc3QocmluZyksIGRpc3BhdGNoX2ZsYWdzKTsKPiA+ PisJdHJhY2VfaTkxNV9nZW1fcmluZ19kaXNwYXRjaChpbnRlbF9yaW5nX2dldF9yZXF1ZXN0KHJp bmcpLCBwYXJhbXMtPmRpc3BhdGNoX2ZsYWdzKTsKPiA+PiAgCWk5MTVfZ2VtX2V4ZWNidWZmZXJf bW92ZV90b19hY3RpdmUodm1hcywgcmluZyk7Cj4gPj4tCWk5MTVfZ2VtX2V4ZWNidWZmZXJfcmV0 aXJlX2NvbW1hbmRzKGRldiwgZmlsZSwgcmluZywgYmF0Y2hfb2JqKTsKPiA+PisJaTkxNV9nZW1f ZXhlY2J1ZmZlcl9yZXRpcmVfY29tbWFuZHMocGFyYW1zLT5kZXYsIHBhcmFtcy0+ZmlsZSwgcmlu ZywgcGFyYW1zLT5iYXRjaF9vYmopOwo+ID4+ICAJcmV0dXJuIDA7Cj4gPj4gIH0KPiA+PmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5oCj4gPj5pbmRleCAzMDkzODM2Li5hZTJmM2VkIDEwMDY0NAo+ID4+ LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiA+PisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gPj5AQCAtODAsMTMgKzgwLDEwIEBAIHZvaWQgaW50 ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ID4+ICAv KiBFeGVjbGlzdHMgKi8KPiA+PiAgaW50IGludGVsX3Nhbml0aXplX2VuYWJsZV9leGVjbGlzdHMo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGVuYWJsZV9leGVjbGlzdHMpOwo+ID4+LWludCBp bnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGUsCj4gPj4tCQkJICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcsCj4gPj4tCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gPj4rc3RydWN0 IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXM7Cj4gPj4raW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNz aW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCj4gPj4gIAkJCSAgICAg ICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICphcmdzLAo+ID4+LQkJCSAgICAgICBz dHJ1Y3QgbGlzdF9oZWFkICp2bWFzLAo+ID4+LQkJCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqYmF0Y2hfb2JqLAo+ID4+LQkJCSAgICAgICB1NjQgZXhlY19zdGFydCwgdTMyIGRp c3BhdGNoX2ZsYWdzKTsKPiA+PisJCQkgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqdm1hcyk7Cj4g Pj4gIHUzMiBpbnRlbF9leGVjbGlzdHNfY3R4X2lkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpjdHhfb2JqKTsKPiA+PiAgdm9pZCBpbnRlbF9scmNfaXJxX2hhbmRsZXIoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZyk7Cj4gPj4tLSAKPiA+PjEuNy45LjUKPiA+Pgo+ID4+X19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+PkludGVsLWdmeCBtYWls aW5nIGxpc3QKPiA+PkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+Pmh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiAKCi0tIApE YW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgorNDEgKDAp IDc5IDM2NSA1NyA0OCAtIGh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==