From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v9 24/27] xsplice: Stacking build-id dependency checking. Date: Wed, 27 Apr 2016 12:36:19 -0400 Message-ID: <20160427163618.GE26384@x230.dumpdata.com> References: <1461598514-5440-1-git-send-email-konrad.wilk@oracle.com> <1461598514-5440-25-git-send-email-konrad.wilk@oracle.com> <5720A21F02000078000E63C9@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1avSRu-0006Av-Pp for xen-devel@lists.xenproject.org; Wed, 27 Apr 2016 16:36:27 +0000 Received: by mail-qk0-f194.google.com with SMTP id b63so3760942qkg.2 for ; Wed, 27 Apr 2016 09:36:24 -0700 (PDT) Content-Disposition: inline In-Reply-To: <5720A21F02000078000E63C9@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Jan Beulich Cc: Keir Fraser , andrew.cooper3@citrix.com, mpohlack@amazon.de, ross.lagerwall@citrix.com, sasha.levin@oracle.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBBcHIgMjcsIDIwMTYgYXQgMDM6Mjc6MjdBTSAtMDYwMCwgSmFuIEJldWxpY2ggd3Jv dGU6Cj4gPj4+IE9uIDI1LjA0LjE2IGF0IDE3OjM1LCA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4g d3JvdGU6Cj4gPiBAQCAtMjUsNyArMjgsNyBAQCBjbGVhbjo6Cj4gPiAgLlBIT05ZOiBjb25maWcu aAo+ID4gIGNvbmZpZy5oOiBPTERfQ09ERV9TWj0kKGNhbGwgQ09ERV9TWiwkKEJBU0VESVIpL3hl bi1zeW1zLHhlbl9leHRyYV92ZXJzaW9uKQo+ID4gIGNvbmZpZy5oOiBORVdfQ09ERV9TWj0kKGNh bGwgQ09ERV9TWiwkPCx4ZW5faGVsbG9fd29ybGQpCj4gPiAtY29uZmlnLmg6IHhlbl9oZWxsb193 b3JsZF9mdW5jLm8KPiA+ICtjb25maWcuaDogeGVuX2hlbGxvX3dvcmxkX2Z1bmMubyB4ZW5fYnll X3dvcmxkX2Z1bmMubwo+IAo+IFdoeSBpcyB0aGF0PwoKSSBuZWVkIE9MRF9DT0RFX1NaIGluIHhl bl9ieWVfd29ybGQuYy4gQWgsIHJpZ2h0IGl0IHNob3VsZCBiZQp0aGUgb3RoZXIgd2F5IGFyb3Vu ZCAtIHhlbl9ieWVfd29ybGQubyBkZXBlbmRzIG9uIGNvbmZpZy5oCgpBbmQgdGhpcyBjaGFuZ2Ug Y2FuIGJlIHJlbW92ZWQuCj4gCj4gPiBAQCAtMzMsOSArMzYsNDMgQEAgY29uZmlnLmg6IHhlbl9o ZWxsb193b3JsZF9mdW5jLm8KPiA+ICB4ZW5faGVsbG9fd29ybGQubzogeGVuX2hlbGxvX3dvcmxk X2Z1bmMubwo+ID4gIAo+ID4gIC5QSE9OWTogJChYU1BMSUNFKQo+ID4gLSQoWFNQTElDRSk6IGNv bmZpZy5oIHhlbl9oZWxsb193b3JsZF9mdW5jLm8geGVuX2hlbGxvX3dvcmxkLm8KPiA+IC0JJChM RCkgJChMREZMQUdTKSAtciAtbyAkKFhTUExJQ0UpIHhlbl9oZWxsb193b3JsZF9mdW5jLm8gXAo+ ID4gLQkJeGVuX2hlbGxvX3dvcmxkLm8KPiA+ICskKFhTUExJQ0UpOiBjb25maWcuaCB4ZW5faGVs bG9fd29ybGRfZnVuYy5vIHhlbl9oZWxsb193b3JsZC5vIG5vdGUubwo+ID4gKwkkKExEKSAkKExE RkxBR1MpICQoYnVpbGRfaWRfbGlua2VyKSAtciAtbyAkKFhTUExJQ0UpIFwKPiA+ICsJCXhlbl9o ZWxsb193b3JsZF9mdW5jLm8geGVuX2hlbGxvX3dvcmxkLm8gbm90ZS5vCj4gCj4gUHJvYmFibHkg ZWFzaWVyIHRvIHJlYWQgYW5kIG1haW50YWluIGlmIHlvdSB1c2VkICQoZmlsdGVyICUubywkXikK PiBoZXJlPwo+IAo+ID4gK3hlbl9ieWVfd29ybGQubzogeGVuX2J5ZV93b3JsZF9mdW5jLm8KPiAK PiBBZ2FpbiAtIHdoeT8KCkIvYyB4ZW5fYnllX3dvcmxkLm8gZGVwZW5kcyBvbiB4ZW5fYnllX3dv cmxkX2Z1bmMubyA/IE9oIHdhaXQsIHRoZXkKb25seSBkZXBlbmQgZHVyaW5nIGxpbmtpbmchCgpJ dCBzaG91bGQgYmU6Cgp4ZW5fYnllX3dvcmxkLm86IGNvbmZpZy5oCgooYW5kIGFsc28gZm9yIHhl bl9oZWxsb193b3JsZC5vIGNhc2UpCj4gCj4gPiArLlBIT05ZOiAkKFhTUExJQ0VfQllFKQo+ID4g KyQoWFNQTElDRV9CWUUpOiAkKFhTUExJQ0UpIGNvbmZpZy5oIHhlbl9ieWVfd29ybGRfZnVuYy5v IHhlbl9ieWVfd29ybGQubyBoZWxsb193b3JsZF9ub3RlLm8KPiAKPiBUaGUgb2JqZWN0IGZpbGVz IGRlcGVuZCBvbiBjb25maWcuaCwgYnV0IHRoZSBiaW5hcnkgZG9lcyBvbmx5Cj4gaW5kaXJlY3Rs eSB2aWEgdGhlIG9iamVjdCBmaWxlcyBJIHdvdWxkIGd1ZXNzLiAoVGhpcywganVzdCBsaWtlIHRo ZQo+IHF1ZXN0aW9uIHJpZ2h0IGFib3ZlLCB3b3VsZCB0aGVuIGFwcGx5IHRvIHRoZSAkKFhTUExJ Q0UpIHJlbGF0ZWQKPiBydWxlcyB0b28sIGluIGFuIGVhcmxpZXIgcGF0Y2guKQoKeGVuX2J5ZV93 b3JsZC5jIHdvbid0IGNvbXBpbGUgaWYgY29uZmlnLmggaXMgbm90IHByZXNlbnQuCgpJIG5lZWQg dG8gbWFrZSBzdXJlIHRoYXQgY29uZmlnLmggZ2V0cyBjcmVhdGVkIGJlZm9yZSB4ZW5fYnllX3dv cmxkLm8KZ2V0cyBidWlsdC4gQW5kIHNpbmNlIGNvbmZpZy5oIGdlbmVyYXRpb24gZGVwZW5kcyBv biB0aGUgZXhpc3RlbmNlCm9mIHhlbl9oZWxsb193b3JsZF9mdW5jLm8KCklzIHRoZXJlIGEgYmV0 dGVyIHdheSBvZiBtYWtpbmcgdGhpcyBkZXBlbmRlbmN5Pwo+IAo+ID4gKwkkKExEKSAkKExERkxB R1MpICQoYnVpbGRfaWRfbGlua2VyKSAtciAtbyAkKFhTUExJQ0VfQllFKSBcCj4gPiArCQl4ZW5f YnllX3dvcmxkX2Z1bmMubyB4ZW5fYnllX3dvcmxkLm8gaGVsbG9fd29ybGRfbm90ZS5vCj4gCj4g U2FtZSBhcyBhYm92ZSAtIGJldHRlciB1c2UgJF4gKGFuZCBpZiBjb25maWcuaCBnb2VzIGF3YXkg YXMgYQo+IGRpcmVjdCBkZXBlbmRlbmN5LCBpdCBsb29rcyBsaWtlIHlvdSBkb24ndCBldmVuIG5l ZWQgJChmaWx0ZXIgLi4uKSkuCgpJIGhhdmUgdG8gaGF2ZSBjb25maWcuaCBhcyBkZXBlbmRlbmN5 LiBJZiBJIGRvICdtYWtlIC1qMTIzMjEzMSB0ZXN0cycKaWYgSSBkb24ndCBoYXZlIGNvbmZpZy5o IGFzIGRlcGVuZGVuY3kgdGhpbmdzIGV2ZW50dWFsbHkgYnJlYWsuCgo+IAo+ID4gK2ludCB4ZW5f YnVpbGRfaWRfY2hlY2soY29uc3QgRWxmX05vdGUgKm4sIHVuc2lnbmVkIGludCBuX3N6LAo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqKnAsIHVuc2lnbmVkIGludCAqbGVu KQo+ID4gK3sKPiA+ICsgICAgLyogQ2hlY2sgaWYgd2UgcmVhbGx5IGhhdmUgYSBidWlsZC1pZC4g Ki8KPiA+ICsgICAgaWYgKCBOVF9HTlVfQlVJTERfSUQgIT0gbi0+dHlwZSApCj4gPiArICAgICAg ICByZXR1cm4gLUVOT0RBVEE7Cj4gPiArCj4gPiArICAgIGlmICggbl9zeiA8PSBzaXplb2YoKm4p ICkKPiA+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ID4gKwo+ID4gKyAgICBpZiAoIG4tPm5h bWVzeiArIG4tPmRlc2NzeiA+IFVJTlRfTUFYICkKPiAKPiBBZmFpY3QgdGhpcyBpcyBhbHdheXMg ZmFsc2UuIEkgdGhpbmsgeW91IHJlYWxseSB3YW50Cj4gCj4gICAgIGlmICggbi0+bmFtZXN6ICsg bi0+ZGVzY3N6IDwgbi0+bmFtZXN6ICkKPiAKPiA+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ ID4gKwo+ID4gKyAgICBpZiAoIG4tPm5hbWVzeiAhPSA0IC8qIEdOVVwwICovKQo+IAo+IDwgNCB3 b3VsZCBzdWZmaWNlIGhlcmUgKGFuZCBiZSBtb3JlIGZsZXhpYmxlIGlmIG9kZCBwYWRkaW5nIGdl dHMKPiBpbnNlcnRlZCBieSB3aGF0ZXZlciBnZW5lcmF0ZXMgdGhlIG5vdGUpCj4gCj4gPiArICAg ICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ICsKPiA+ICsgICAgaWYgKCBuLT5uYW1lc3ogKyBuLT5k ZXNjc3ogKyBzaXplb2YoKm4pID4gbl9zeiApCj4gCj4gICAgIGlmICggbi0+bmFtZXN6ICsgbi0+ ZGVzY3N6ID4gbl9zeiAtIHNpemVvZigqbikgKQo+IAo+ID4gQEAgLTk4LDE4ICsxMzAsOSBAQCBz dGF0aWMgaW50IF9faW5pdCB4ZW5fYnVpbGRfaW5pdCh2b2lkKQo+ID4gICAgICBpZiAoICZuWzFd ID4gX19ub3RlX2dudV9idWlsZF9pZF9lbmQgKQo+ID4gICAgICAgICAgcmV0dXJuIC1FTk9EQVRB OzsKPiA+ICAKPiA+IC0gICAgLyogQ2hlY2sgaWYgd2UgcmVhbGx5IGhhdmUgYSBidWlsZC1pZC4g Ki8KPiA+IC0gICAgaWYgKCBOVF9HTlVfQlVJTERfSUQgIT0gbi0+dHlwZSApCj4gPiAtICAgICAg ICByZXR1cm4gLUVOT0RBVEE7Cj4gPiArICAgIHN6ID0gKHNpemVfdClfX25vdGVfZ251X2J1aWxk X2lkX2VuZCAtIChzaXplX3QpbjsKPiAKPiBTbyBsZXQncyBob3BlIHNpemVvZih2b2lkICopID09 IHNpemVvZihzaXplX3QpIChvciBlbHNlIHRoaXMgd291bGQgeWllbGQKPiBjb21waWxlciB3YXJu aW5ncykuCgpIbW0sIHNvIGZhciBubyB3YXJuaW5ncyBvbiBBUk0zMiwgQVJNNjQgbm9yIHg4Ni4K CkJ1dCBJIHdpbGwgY2hhbmdlIHRoZSBjYXN0IHRvICh2b2lkICopIHNvIGl0IGlzIGp1c3QgcG9p bnRlciBhcml0aG1ldGljLgoKTmV3IHBhdGNoOgoKRnJvbSBhMGJiNzJmZjE3MjNhMzIwZmIwMmMx NThmNjNkOTRiMmE4MTFhMjM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLb25yYWQg Unplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CkRhdGU6IFdlZCwgMjcgQXBy IDIwMTYgMTI6MjY6NTAgLTA0MDAKU3ViamVjdDogW1BBVENIXSB4c3BsaWNlOiBTdGFja2luZyBi dWlsZC1pZCBkZXBlbmRlbmN5IGNoZWNraW5nLgoKV2Ugbm93IGV4cGVjdCB0aGF0IHRoZSBFTEYg cGF5bG9hZHMgYmUgYnVpbHQgd2l0aCB0aGUKLS1idWlsZC1pZC4KCkFsc28gdGhlIC54c3BsaWNl LmRlcHMgc2VjdGlvbiBoYXMgdG8gaGF2ZSB0aGUgY29udGVudHMKb2YgdGhlIGh5cGVydmlzb3Ig KG9yIGEgcHJlY2VkaW5nIHBheWxvYWQpIGJ1aWxkLWlkLgoKV2UgYWxyZWFkeSBoYXZlIHRoZSBj b2RlIHRvIHZlcmlmeSB0aGUgRWxmX05vdGUgYnVpbGQtaWQKc28gZXhwb3J0IHBhcnRzIG9mIGl0 LgoKVGhpcyBkZXBlbmRlbmN5IG1lYW5zIHRoZSBoeXBlcnZpc29yIE1VU1QgYmUgY29tcGlsZWQg d2l0aAotLWJ1aWxkLWlkIC0gc28gd2UgZ2F0ZSB0aGUgYnVpbGQgb2YgeFNwbGljZSBvbiB0aGUg YXZhaWxhYmlsaXR5Cm9mIHNhaWQgZnVuY3Rpb25hbGl0eS4KClRoaXMgZG9lcyBub3QgaW1wYWN0 IHRoZSBvcmRlcmluZyBvZiBob3cgdGhlIHBheWxvYWRzIGNhbgpiZSBsb2FkZWQsIGJ1dCBpdCBk b2VzIGVuZm9yY2UgYW4gU1RSSUNUIG9yZGVyaW5nIHdoZW4gdGhlCnBheWxvYWRzIGFyZSBhcHBs aWVkLiBBbHNvIHRoZSBSRVBMQUNFIGlzIHNwZWNpYWwgLSB3ZSBuZWVkCnRvIGNoZWNrIHRoYXQg aXRzIGRlcGVuZGVuY3kgYWdhaW5zdCB0aGUgaHlwZXJ2aXNvciAtIG5vdAp0aGUgbGFzdCBhcHBs aWVkIHBhdGNoLgoKVG8gbWFrZSB0aGlzIGVhc2llciB0byB0ZXN0IHdlIGFsc28gYWRkIGFuIGV4 dHJhIHRlc3QtY2FzZQp0byBiZSB1c2VkIC0gd2hpY2ggY2FuIG9ubHkgYmUgYXBwbGllZCBvbiB0 b3Agb2YgdGhlCnhlbl9oZWxsb193b3JsZCBwYXlsb2FkLgoKQXMgaW4sIG9uZSBjYW4gYXBwbHkg eGVuX2hlbGxvX3dvcmxkIGFuZCB0aGVuIHhlbl9ieWVfd29ybGQKb24gdG9wIG9mIHRoYXQuIE5v dCB0aGUgb3RoZXIgd2F5LgoKV2UgYWxzbyBwcmludCB0aGUgZGVwZW5kZW5jeSBhbmQgcGF5bG9h ZHMgYnVpbGRfaW4gdGhlIGtleWhhbmRsZXIuCgpTaWduZWQtb2ZmLWJ5OiBLb25yYWQgUnplc3p1 dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgQ29v cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoKLS0tCkNjOiBLZWlyIEZyYXNlciA8a2Vp ckB4ZW4ub3JnPgpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3 IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KCnYzOiBGaXJzdCB0aW1lIGluY2x1 ZGVkLgp2NDogQW5kcmV3IGZpeCBhZ2FpbnN0IHRoZSBidWlsZF9pZC5vIG11dGlsYXRpb25zLgog ICAgQW5kcmV3IGZpeCB0byBub3QgaW5jbHVkZSBleHRyYSBzeW1ib2xzIGluIGJpbmFyeS5pZAp2 NTogcy9zc2l6ZV90L3Vuc2lnbmVkIGludC8KdjY6IHMvYW4gTlRfR05VLi4vYSBOVF9HTlUvCiAg IC0gU3F1YXNoICJ4c3BsaWNlOiBQcmludCBkZXBlbmRlbmN5IGFuZCBwYXlsb2FkcyBidWlsZF9p ZCBpbiB0aGUga2V5aGFuZGxlciIKICAgICBpbiB0aGlzIHBhdGNoLgogICAtIEFkZCBpbiB4ZW5f YnVpbGRfaWRfY2hlY2sgc2l6ZSBvZiBzZWN0aW9uIGZvciBiZXR0ZXIgY2hlY2tpbmcuCnY3OiBB ZGRlZCBBbmRyZXcncyByZXZpZXdlZC1ieS4KICAgIENoYW5nZSB0aGUgLm5hbWUgaW4gdGVzdC1j YXNlIHRvIGFkaGVyZSB0byBzcGVjLgogICAgRHJvcHBlZCBOVF9HTlVfQlVJTERfSUQgYW5kIG1v dmVkIHRoYXQgdG8gZWFybGllciBwYXRjaAogICAgKGJ1aWxkX2lkOiBQcm92aWRlIGxkLWVtYmVk ZGVkIGJ1aWxkLWlkcykKICAgIEFtZW5kZWQgc3BlYyBhbmQgY29kZSB0byBvbmx5IGhhdmUgb25l IG9mIC54c3BsaWNlLmRlcGVuZHMgYW5kCiAgICAubm90ZS5nbnUuYnVpbGQtaWQKICAgIEV4cGFu ZGVkIGNvbW1lbnQgYWJvdXQgbm90ZS5vIGFuZCB3aHkgd2UgZG9uJ3QgdXNlIGFyY2gveDg2L25v dGUuby5iaW4KICAgIE1vdmVkIHhlbl9idWlsZF9pZF9jaGVjayBkZWZpbml0aW9uIHRvIHhzcGxp Y2UuaCBmcm9tIHZlcnNpb24uaAogICAgKGFuZCBkcm9wcGluZyB0aGUgI2luY2x1ZGUncyBpbiB2 ZXJzaW9uLmgpCiAgICBTb3J0IGhlYWRlciBmaWxlcyBpbiB0ZXN0cy4Kdjg6CiAtIENoYW5nZSB0 d28gb2YgdGhlIGRwcmlua3QgZnJvbSBYRU5MT0dfREVCVUcgdG8gWEVOTE9HX0VSUgp2OToKIC0g RHJvcHBlZCB0aGUgKHVuc2lnbmVkIGxvbmcpIGNhc3RzIHNpbmNlIHdlIHVzZSB2b2lkLgogLSBN YWtlIHRoZSAueHNwbGljZV9kZXBlbmRzIGFuZCAubm90ZS5nbnVfYnVpbGRfaWQgYmUgI2RlZmlu ZXMuCiAtIE1ha2UgdGhlIGJ1aWxkIHNlY3Rpb24gdXNlICQoWFNQTElDRV9CWUUpCiAtIE1ha2Ug dGhlIHRlc3RjYXNlIGluY2x1ZGUgPHB1YmxpYy9zeXNjdGwuaD4KIC0gTWFkZSBjb21wYXJpc29u cyBvbiBkZXNjc3ogYW5kIG5hbWVzeiBhIGJpdCBkaWZmZXJlbnQgKG92ZXJmbG93CiAgIGNoZWNr cywgYWdhaW5zdCB2YWx1ZSBvZiA0LCBhbmQgYWdhaW5zdCBzaXplKQp2MTAgLSBpbmxpbmUgcGF0 Y2hlcyB0byByZXNwb25zZSB0byB2OToKIC0gVXNlIGZpbHRlcigpIHRvIG9ubHkgbGluayAubyBm aWxlcy4KIC0gTWFrZSBkZXBlbmRlbmN5IGZvciB4ZW5fYnllX3dvcmxkLm8gYmUgY29uZmlnLmgg b25seQogLSBNYWtlIG92ZXJmbG93IGNoZWNrIGZvciBuLT5uYW1lc3ogYW5kIG4tPmRlc2NzeiBi ZSBwcm9wZXIKIC0gQ2hlY2sgbi0+bmFtZXN6IGFnYWluc3QgbGVzcyB0aGFuIDQuCiAtIENoYW5n ZSBjaGVjayBhZ2FpbnN0IGhlYWRlciBvZiBFbGZfTm90ZQogLSBDYWxjdWxhdGUgc2l6ZSAoaW4g Ynl0ZXMpIG9mIEVsZl9Ob3RlIHVzaW5nIHBvaW50ZXIgYXJpdGhtZXRpYy4KLS0tCiAuZ2l0aWdu b3JlICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBDb25maWcubWsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBkb2NzL21pc2MveHNwbGljZS5tYXJrZG93 biAgICAgICAgICAgICB8ICA5OSArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiB4ZW4vYXJj aC94ODYvdGVzdC9NYWtlZmlsZSAgICAgICAgICAgICB8ICA0NiArKysrKysrKysrKy0tCiB4ZW4v YXJjaC94ODYvdGVzdC94ZW5fYnllX3dvcmxkLmMgICAgICB8ICAzNCArKysrKysrKysrCiB4ZW4v YXJjaC94ODYvdGVzdC94ZW5fYnllX3dvcmxkX2Z1bmMuYyB8ICAyMiArKysrKysrCiB4ZW4vY29t bW9uL0tjb25maWcgICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogeGVuL2NvbW1vbi92ZXJz aW9uLmMgICAgICAgICAgICAgICAgICAgfCAgNDUgKysrKysrKysrLS0tLQogeGVuL2NvbW1vbi94 c3BsaWNlLmMgICAgICAgICAgICAgICAgICAgfCAxMTcgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystCiB4ZW4vaW5jbHVkZS94ZW4veHNwbGljZS5oICAgICAgICAgICAgICB8ICAgNCAr KwogMTAgZmlsZXMgY2hhbmdlZCwgMzIzIGluc2VydGlvbnMoKyksIDUyIGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGQuYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IHhlbi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGRfZnVuYy5jCgpk aWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggNGE4MWY0My4uODhjZWMx ZCAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0yNDgsNiArMjQ4 LDcgQEAgeGVuL2FyY2gveDg2L2VmaS9kaXNhYmxlZAogeGVuL2FyY2gveDg2L2VmaS9ta3JlbG9j CiB4ZW4vYXJjaC94ODYvdGVzdC9jb25maWcuaAogeGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxv X3dvcmxkLnhzcGxpY2UKK3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGQueHNwbGljZQog eGVuL2FyY2gvKi9lZmkvYm9vdC5jCiB4ZW4vYXJjaC8qL2VmaS9jb21wYXQuYwogeGVuL2FyY2gv Ki9lZmkvZWZpLmgKZGlmZiAtLWdpdCBhL0NvbmZpZy5tayBiL0NvbmZpZy5tawppbmRleCA0MWY4 YzQ0Li42MTRkYzllIDEwMDY0NAotLS0gYS9Db25maWcubWsKKysrIGIvQ29uZmlnLm1rCkBAIC0x MzQsNiArMTM0LDcgQEAgaWZlcSAoJChjYWxsIGxkLXZlci1idWlsZC1pZCwkKExEKSksbikKIGJ1 aWxkX2lkX2xpbmtlciA6PQogZWxzZQogQ0ZMQUdTICs9IC1EQlVJTERfSUQKK2V4cG9ydCBYRU5f SEFTX0JVSUxEX0lEPXkKIGJ1aWxkX2lkX2xpbmtlciA6PSAtLWJ1aWxkLWlkPXNoYTEKIGVuZGlm CiAKZGlmZiAtLWdpdCBhL2RvY3MvbWlzYy94c3BsaWNlLm1hcmtkb3duIGIvZG9jcy9taXNjL3hz cGxpY2UubWFya2Rvd24KaW5kZXggMzVlYmMyOC4uNGE5OGJlMSAxMDA2NDQKLS0tIGEvZG9jcy9t aXNjL3hzcGxpY2UubWFya2Rvd24KKysrIGIvZG9jcy9taXNjL3hzcGxpY2UubWFya2Rvd24KQEAg LTI4Myw4ICsyODMsMTcgQEAgVGhlIHhTcGxpY2UgY29yZSBjb2RlIGxvYWRzIHRoZSBwYXlsb2Fk IGFzIGEgc3RhbmRhcmQgRUxGIGJpbmFyeSwgcmVsb2NhdGVzIGl0CiBhbmQgaGFuZGxlcyB0aGUg YXJjaGl0ZWN0dXJlLXNwZWNpZmMgc2VjdGlvbnMgYXMgbmVlZGVkLiBUaGlzIHByb2Nlc3MgaXMg bXVjaAogbGlrZSB3aGF0IHRoZSBMaW51eCBrZXJuZWwgbW9kdWxlIGxvYWRlciBkb2VzLgogCi1U aGUgcGF5bG9hZCBjb250YWlucyBhIHNlY3Rpb24gKHhzcGxpY2VfcGF0Y2hfZnVuYykgd2l0aCBh biBhcnJheSBvZiBzdHJ1Y3R1cmVzCi1kZXNjcmliaW5nIHRoZSBmdW5jdGlvbnMgdG8gYmUgcGF0 Y2hlZDoKK1RoZSBwYXlsb2FkIGNvbnRhaW5zIGF0IGxlYXN0IHRocmVlIHNlY3Rpb25zOgorCisg KiBgLnhzcGxpY2UuZnVuY3NgIC0gd2hpY2ggaXMgYW4gYXJyYXkgb2YgeHNwbGljZV9wYXRjaF9m dW5jIHN0cnVjdHVyZXMuCisgKiBgLnhzcGxpY2UuZGVwZW5kc2AgLSB3aGljaCBpcyBhbiBFTEYg Tm90ZSB0aGF0IGRlc2NyaWJlcyB3aGF0IHRoZSBwYXlsb2FkCisgICAgZGVwZW5kcyBvbi4gKipN VVNUKiogaGF2ZSBvbmUuCisgKiAgYC5ub3RlLmdudS5idWlsZC1pZGAgLSB0aGUgYnVpbGQtaWQg b2YgdGhpcyBwYXlsb2FkLiAqKk1VU1QqKiBoYXZlIG9uZS4KKworIyMjIC54c3BsaWNlLmZ1bmNz CisKK1RoZSBgLnhzcGxpY2UuZnVuY3NgIGNvbnRhaW5zIGFuIGFycmF5IG9mIHhzcGxpY2VfcGF0 Y2hfZnVuYyBzdHJ1Y3R1cmVzCit3aGljaCBkZXNjcmliZSB0aGUgZnVuY3Rpb25zIHRvIGJlIHBh dGNoZWQ6CiAKIDxwcmU+CiBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jIHsgIApAQCAtMzY4LDYg KzM3NywyMyBAQCBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jIHhzcGxpY2VfaGVsbG9fd29ybGQg PSB7CiAKIENvZGUgbXVzdCBiZSBjb21waWxlZCB3aXRoIC1mUElDLgogCisjIyMgLnhzcGxpY2Uu ZGVwZW5kcyBhbmQgLm5vdGUuZ251LmJ1aWxkLWlkCisKK1RvIHN1cHBvcnQgZGVwZW5kZW5jaWVz IGNoZWNraW5nIGFuZCBzYWZlIGxvYWRpbmcgKHRvIGxvYWQgdGhlCithcHByb3BpYXRlIHBheWxv YWQgYWdhaW5zdCB0aGUgcmlnaHQgaHlwZXJ2aXNvcikgdGhlcmUgaXMgYSBuZWVkCit0byBlbWJi ZWQgYW4gYnVpbGQtaWQgZGVwZW5kZW5jeS4KKworVGhpcyBpcyBkb25lIGJ5IHRoZSBwYXlsb2Fk IGNvbnRhaW5pbmcgYW4gc2VjdGlvbiBgLnhzcGxpY2UuZGVwZW5kc2AKK3doaWNoIGZvbGxvd3Mg dGhlIGZvcm1hdCBvZiBhbiBFTEYgTm90ZS4gVGhlIGNvbnRlbnRzIG9mIHRoaXMKKyhuYW1lLCBh bmQgZGVzY3JpcHRpb24pIGFyZSBzcGVjaWZpYyB0byB0aGUgbGlua2VyIHV0aWxpemVkIHRvCiti dWlsZCB0aGUgaHlwZXZpc29yIGFuZCBwYXlsb2FkLgorCitJZiBHTlUgbGlua2VyIGlzIHVzZWQg dGhlbiB0aGUgbmFtZSBpcyBgR05VYCBhbmQgdGhlIGRlc2NyaXB0aW9uCitpcyBhIE5UX0dOVV9C VUlMRF9JRCB0eXBlIElELiBUaGUgZGVzY3JpcHRpb24gY2FuIGJlIGFuIFNIQTEKK2NoZWNrc3Vt LCBNRDUgY2hlY2tzdW0gb3IgYW55IHVuaXF1ZSB2YWx1ZS4KKworVGhlIHNpemUgb2YgdGhlc2Ug c3RydWN0dXJlcyB2YXJpZXMgd2l0aCB0aGUgLS1idWlsZC1pZCBsaW5rZXIgb3B0aW9uLgorCiAj IyBIeXBlcmNhbGxzCiAKIFdlIHdpbGwgZW1wbG95IHRoZSBzdWIgb3BlcmF0aW9ucyBvZiB0aGUg c3lzdGVtIG1hbmFnZW1lbnQgaHlwZXJjYWxsIChzeXNjdGwpLgpAQCAtODUzLDYgKzg3OSw0MiBA QCBUaGlzIGlzIGltcGxlbWVudGVkIGluIHRoZSBYZW4gUHJvamVjdCBoeXBlcnZpc29yLgogCiBP bmx5IHRoZSBwcml2aWxlZ2VkIGRvbWFpbiBzaG91bGQgYmUgYWxsb3dlZCB0byBkbyB0aGlzIG9w ZXJhdGlvbi4KIAorIyMjIHhTcGxpY2UgaW50ZXJkZXBlbmRlbmNpZXMKKworeFNwbGljZSBwYXRj aGVzIGludGVyZGVwZW5kZW5jaWVzIGFyZSB0cmlja3kuCisKK1RoZXJlIGFyZSB0aGUgd2F5cyB0 aGlzIGNhbiBiZSBhZGRyZXNzZWQ6CisgKiBBIHNpbmdsZSBsYXJnZSBwYXRjaCB0aGF0IHN1YnN1 bWVzIGFuZCByZXBsYWNlcyBhbGwgcHJldmlvdXMgb25lcy4KKyAgIE92ZXIgdGhlIGxpZmUtdGlt ZSBvZiBwYXRjaGluZyB0aGUgaHlwZXJ2aXNvciB0aGlzIGxhcmdlIHBhdGNoCisgICBncm93cyB0 byBhY2N1bXVsYXRlIGFsbCB0aGUgY29kZSBjaGFuZ2VzLgorICogSG90cGF0Y2ggc3RhY2sgLSB3 aGVyZSBhbiBtZWNoYW5pc20gZXhpc3RzIHRoYXQgbG9hZHMgdGhlIGhvdHBhdGNoZXMKKyAgIGlu IHRoZSBzYW1lIG9yZGVyIHRoZXkgd2VyZSBidWlsdCBpbi4gV2Ugd291bGQgbmVlZCBhbiBidWls ZC1pZAorICAgb2YgdGhlIGh5cGV2aXNvciB0byBtYWtlIHN1cmUgdGhlIGhvdC1wYXRjaGVzIGFy ZSBidWlsZCBhZ2FpbnN0IHRoZQorICAgY29ycmVjdCBidWlsZC4KKyAqIFBheWxvYWQgY29udGFp bmluZyB0aGUgb2xkIGNvZGUgdG8gY2hlY2sgYWdhaW5zdCB0aGF0LiBUaGF0IGFsbG93cworICAg dGhlIGhvdHBhdGNoZXMgdG8gYmUgbG9hZGVkIGluZGVwZWRlbnRseSAoaWYgdGhleSBkb24ndCBv dmVybGFwKSAtIG9yCisgICBpZiB0aGUgb2xkIGNvZGUgYWxzbyBjb250YWluc3QgcHJldmlvdXNs eSBwYXRjaGVkIGNvZGUgLSBldmVuIGlmIHRoZXkKKyAgIG92ZXJsYXAuCisKK1RoZSBkaXNhZHZh bnRhZ2Ugb2YgdGhlIGZpcnN0IGxhcmdlIHBhdGNoIGlzIHRoYXQgaXQgY2FuIGdyb3cgb3Zlcgor dGltZSBhbmQgbm90IHByb3ZpZGUgYW4gYmlzZWN0aW9uIG1lY2hhbmlzbSB0byBpZGVudGlmeSBm YXVsdHkgcGF0Y2hlcy4KKworVGhlIGhvdC1wYXRjaCBzdGFjayBwdXRzIHN0cmljdHMgcmVxdWly ZW1lbnRzIG9uIHRoZSBvcmRlciBvZiB0aGUgcGF0Y2hlcworYmVpbmcgbG9hZGVkIGFuZCByZXF1 aXJlcyBhbiBoeXBlcnZpc29yIGJ1aWxkLWlkIHRvIG1hdGNoIGFnYWluc3QuCisKK1RoZSBvbGQg Y29kZSBhbGxvd3MgbXVjaCBtb3JlIGZsZXhpYmlsaXR5IGFuZCBhbiBhZGRpdGlvbmFsIGd1YXJk LAorYnV0IGlzIG1vcmUgY29tcGxleCB0byBpbXBsZW1lbnQuCisKK1RoZSBzZWNvbmQgb3B0aW9u IHdoaWNoIHJlcXVpcmVzIGFuIGJ1aWxkLWlkIG9mIHRoZSBoeXBlcnZpc29yCitpcyBpbXBsZW1l bnRlZCBpbiB0aGUgWGVuIFByb2plY3QgaHlwZXJ2aXNvci4KKworU3BlY2lmaWNhbGx5IGVhY2gg cGF5bG9hZCBoYXMgdHdvIGJ1aWxkLWlkIEVMRiBub3RlczoKKyAqIFRoZSBidWlsZC1pZCBvZiB0 aGUgcGF5bG9hZCBpdHNlbGYgKGdlbmVyYXRlZCB2aWEgLS1idWlsZC1pZCkuCisgKiBUaGUgYnVp bGQtaWQgb2YgdGhlIHBheWxvYWQgaXQgZGVwZW5kcyBvbiAoZXh0cmFjdGVkIGZyb20gdGhlCisg ICB0aGUgcHJldmlvdXMgcGF5bG9hZCBvciBoeXBlcnZpc29yIGR1cmluZyBidWlsZCB0aW1lKS4K KworVGhpcyBtZWFucyB0aGF0IHRoZSB2ZXJ5IGZpcnN0IHBheWxvYWQgZGVwZW5kcyBvbiB0aGUg aHlwZXJ2aXNvcgorYnVpbGQtaWQuCiAKICMgTm90IFlldCBEb25lCiAKQEAgLTg3MiwxMyArOTM0 LDYgQEAgVGhlIGltcGxlbWVudGF0aW9uIG11c3QgYWxzbyBoYXZlIGEgbWVjaGFuaXNtIGZvciAo aW4gbm8gcGFydGljdWxhciBvcmRlcik6CiAgKiBOT1Agb3V0IHRoZSBjb2RlIHNlcXVlbmNlIGlm IGBuZXdfc2l6ZWAgaXMgemVyby4KICAqIERlYWwgd2l0aCBvdGhlciByZWxvY2F0aW9uIHR5cGVz OiAgUl9YODZfNjRfWzgsMTYsMzIsMzJTXSwgUl9YODZfNjRfUENbOCwxNiw2NF0KICAgIGluIHBh eWxvYWQgZmlsZS4KLSAqIEFuIGRlcGVuZGVuY3kgbWVjaGFuaXNtIGZvciB0aGUgcGF5bG9hZHMu IFRvIHVzZSB0aGF0IGluZm9ybWF0aW9uIHRvIGxvYWQ6Ci0gICAgLSBUaGUgYXBwcm9waWF0ZSBw YXlsb2FkLiBUbyB2ZXJpZnkgdGhhdCBwYXlsb2FkIGlzIGJ1aWx0IGFnYWluc3QgdGhlCi0gICAg ICBoeXBlcnZpc29yLiBUaGlzIGNhbiBiZSBkb25lIHZpYSB0aGUgYGJ1aWxkLWlkYAotICAgICAg b3IgdmlhIHByb3ZpZGluZyBhbiBjb3B5IG9mIHRoZSBvbGQgY29kZSAtIHNvIHRoYXQgdGhlIGh5 cGVydmlzb3IgY2FuCi0gICAgICAgdmVyaWZ5IGl0IGFnYWluc3QgdGhlIGNvZGUgaW4gbWVtb3J5 LgotICAgIC0gVG8gY29uc3RydWN0IGFuIGFwcHJvcGlhdGUgb3JkZXIgb2YgcGF5bG9hZHMgdG8g bG9hZCBpbiBjYXNlIHRoZXkKLSAgICAgIGRlcGVuZCBvbiBlYWNoIG90aGVyLgogCiAjIyMgSGFu ZGxlIGlubGluZWQgX19MSU5FX18KIApAQCAtOTQzLDMyICs5OTgsNiBAQCB0aGUgZnVuY3Rpb24g aXRzZWxmLgogU2ltaWxhciBjb25zaWRlcmF0aW9ucyBhcmUgdHJ1ZSB0byBhIGxlc3NlciBleHRl bnQgZm9yIF9fRklMRV9fLCBidXQgaXQKIGNvdWxkIGJlIGFyZ3VlZCB0aGF0IGZpbGUgcmVuYW1p bmcgc2hvdWxkIGJlIGRvbmUgb3V0c2lkZSBvZiBob3RwYXRjaGVzLgogCi0jIyMgeFNwbGljZSBp bnRlcmRlcGVuZGVuY2llcwotCi14U3BsaWNlIHBhdGNoZXMgaW50ZXJkZXBlbmRlbmNpZXMgYXJl IHRyaWNreS4KLQotVGhlcmUgYXJlIHRoZSB3YXlzIHRoaXMgY2FuIGJlIGFkZHJlc3NlZDoKLSAq IEEgc2luZ2xlIGxhcmdlIHBhdGNoIHRoYXQgc3Vic3VtZXMgYW5kIHJlcGxhY2VzIGFsbCBwcmV2 aW91cyBvbmVzLgotICAgT3ZlciB0aGUgbGlmZS10aW1lIG9mIHBhdGNoaW5nIHRoZSBoeXBlcnZp c29yIHRoaXMgbGFyZ2UgcGF0Y2gKLSAgIGdyb3dzIHRvIGFjY3VtdWxhdGUgYWxsIHRoZSBjb2Rl IGNoYW5nZXMuCi0gKiBIb3RwYXRjaCBzdGFjayAtIHdoZXJlIGFuIG1lY2hhbmlzbSBleGlzdHMg dGhhdCBsb2FkcyB0aGUgaG90cGF0Y2hlcwotICAgaW4gdGhlIHNhbWUgb3JkZXIgdGhleSB3ZXJl IGJ1aWx0IGluLiBXZSB3b3VsZCBuZWVkIGFuIGJ1aWxkLWlkCi0gICBvZiB0aGUgaHlwZXZpc29y IHRvIG1ha2Ugc3VyZSB0aGUgaG90LXBhdGNoZXMgYXJlIGJ1aWxkIGFnYWluc3QgdGhlCi0gICBj b3JyZWN0IGJ1aWxkLgotICogUGF5bG9hZCBjb250YWluaW5nIHRoZSBvbGQgY29kZSB0byBjaGVj ayBhZ2FpbnN0IHRoYXQuIFRoYXQgYWxsb3dzCi0gICB0aGUgaG90cGF0Y2hlcyB0byBiZSBsb2Fk ZWQgaW5kZXBlZGVudGx5IChpZiB0aGV5IGRvbid0IG92ZXJsYXApIC0gb3IKLSAgIGlmIHRoZSBv bGQgY29kZSBhbHNvIGNvbnRhaW5zdCBwcmV2aW91c2x5IHBhdGNoZWQgY29kZSAtIGV2ZW4gaWYg dGhleQotICAgb3ZlcmxhcC4KLQotVGhlIGRpc2FkdmFudGFnZSBvZiB0aGUgZmlyc3QgbGFyZ2Ug cGF0Y2ggaXMgdGhhdCBpdCBjYW4gZ3JvdyBvdmVyCi10aW1lIGFuZCBub3QgcHJvdmlkZSBhbiBi aXNlY3Rpb24gbWVjaGFuaXNtIHRvIGlkZW50aWZ5IGZhdWx0eSBwYXRjaGVzLgotCi1UaGUgaG90 LXBhdGNoIHN0YWNrIHB1dHMgc3RyaWN0cyByZXF1aXJlbWVudHMgb24gdGhlIG9yZGVyIG9mIHRo ZSBwYXRjaGVzCi1iZWluZyBsb2FkZWQgYW5kIHJlcXVpcmVzIGFuIGh5cGVydmlzb3IgYnVpbGQt aWQgdG8gbWF0Y2ggYWdhaW5zdC4KLQotVGhlIG9sZCBjb2RlIGFsbG93cyBtdWNoIG1vcmUgZmxl eGliaWxpdHkgYW5kIGFuIGFkZGl0aW9uYWwgZ3VhcmQsCi1idXQgaXMgbW9yZSBjb21wbGV4IHRv IGltcGxlbWVudC4KLQogIyMgU2lnbmF0dXJlIGNoZWNraW5nIHJlcXVpcmVtZW50cy4KIAogVGhl IHNpZ25hdHVyZSBjaGVja2luZyByZXF1aXJlcyB0aGF0IHRoZSBsYXlvdXQgb2YgdGhlIGRhdGEg aW4gbWVtb3J5CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdGVzdC9NYWtlZmlsZSBiL3hlbi9h cmNoL3g4Ni90ZXN0L01ha2VmaWxlCmluZGV4IDM2NDQwOGQuLjM0OWM2MDMgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni90ZXN0L01ha2VmaWxlCisrKyBiL3hlbi9hcmNoL3g4Ni90ZXN0L01ha2Vm aWxlCkBAIC02LDE3ICs2LDIwIEBAIENPREVfU1o9JChzaGVsbCBubSAtLWRlZmluZWQgLVMgJCgx KSB8IGdyZXAgJCgyKSB8IGF3ayAneyBwcmludCAiMHgiJCQyfScpCiAuUEhPTlk6IGRlZmF1bHQK IAogWFNQTElDRSA6PSB4ZW5faGVsbG9fd29ybGQueHNwbGljZQorWFNQTElDRV9CWUUgOj0geGVu X2J5ZV93b3JsZC54c3BsaWNlCiAKIGRlZmF1bHQ6IHhzcGxpY2UKIAogaW5zdGFsbDogeHNwbGlj ZQogCSQoSU5TVEFMTF9EQVRBKSAkKFhTUExJQ0UpICQoREVTVERJUikkKERFQlVHX0RJUikvJChY U1BMSUNFKQorCSQoSU5TVEFMTF9EQVRBKSAkKFhTUExJQ0VfQllFKSAkKERFU1RESVIpJChERUJV R19ESVIpLyQoWFNQTElDRV9CWUUpCiB1bmluc3RhbGw6CiAJcm0gLWYgJChERVNURElSKSQoREVC VUdfRElSKS8kKFhTUExJQ0UpCisJcm0gLWYgJChERVNURElSKSQoREVCVUdfRElSKS8kKFhTUExJ Q0VfQllFKQogCiAuUEhPTlk6IGNsZWFuCiBjbGVhbjo6Ci0Jcm0gLWYgKi5vIC4qLm8uZCAkKFhT UExJQ0UpIGNvbmZpZy5oCisJcm0gLWYgKi5vIC4qLm8uZCAkKFhTUExJQ0UpICQoWFNQTElDRV9C WUUpIGNvbmZpZy5oICouYmluCiAKICMKICMgVG8gY29tcHV0ZSB0aGVzZSB2YWx1ZXMgd2UgbmVl ZCB0aGUgYmluYXJ5IGZpbGVzOiB4ZW4tc3ltcwpAQCAtMzMsOCArMzYsNDMgQEAgY29uZmlnLmg6 IHhlbl9oZWxsb193b3JsZF9mdW5jLm8KIHhlbl9oZWxsb193b3JsZC5vOiBjb25maWcuaAogCiAu UEhPTlk6ICQoWFNQTElDRSkKLSQoWFNQTElDRSk6IGNvbmZpZy5oIHhlbl9oZWxsb193b3JsZF9m dW5jLm8geGVuX2hlbGxvX3dvcmxkLm8KLQkkKExEKSAkKExERkxBR1MpIC1yIC1vICQoWFNQTElD RSkgJChmaWx0ZXIgJS5vLCReKQorJChYU1BMSUNFKTogY29uZmlnLmggeGVuX2hlbGxvX3dvcmxk X2Z1bmMubyB4ZW5faGVsbG9fd29ybGQubyBub3RlLm8KKwkkKExEKSAkKExERkxBR1MpICQoYnVp bGRfaWRfbGlua2VyKSAtciAtbyAkKFhTUExJQ0UpIFwKKwkJJChmaWx0ZXIgJS5vLCReKQorIwor IyBUaGlzIHRhcmdldCBpcyBvbmx5IGFjY2Vzc2libGUgaWYgQ09ORklHX1hTUExJQ0UgaXMgZGVm aW5lZCwgd2hpY2gKKyMgZGVwZW5kcyBvbiAkKGJ1aWxkX2lkX2xpbmtlcikgYmVpbmcgYXZhaWxh YmxlLiBIZW5jZSB3ZSBkbyBub3QKKyMgbmVlZCBhbnkgY2hlY2tzLgorIworIyBOLkIuIFRoZSBy ZWFzb24gd2UgZG9uJ3QgdXNlIGFyY2gveDg2L25vdGUubyBpcyB0aGF0IGl0IG1heQorIyBub3Qg YmUgYnVpbHQgKGl0IGlzIGZvciBFRkkgYnVpbGRzKSwgYW5kIHRoYXQgd2UgZG8gbm90IGhhdmUK KyMgdGhlIG5vdGUuby5iaW4gdG8gbXVjayB3aXRoIChhcyBpdCBnZXRzIGRlbGV0ZWQpCisjCisu UEhPTlk6IG5vdGUubworbm90ZS5vOgorCSQoT0JKQ09QWSkgLU8gYmluYXJ5IC0tb25seS1zZWN0 aW9uPS5ub3RlLmdudS5idWlsZC1pZCAkKEJBU0VESVIpL3hlbi1zeW1zICRALmJpbgorCSQoT0JK Q09QWSkgLUkgYmluYXJ5IC1PIGVsZjY0LXg4Ni02NCAtQiBpMzg2Ong4Ni02NCBcCisJCSAgIC0t cmVuYW1lLXNlY3Rpb249LmRhdGE9LnhzcGxpY2UuZGVwZW5kcyAtUyAkQC5iaW4gJEAKKwlybSAt ZiAkQC5iaW4KKworIworIyBFeHRyYWN0IHRoZSBidWlsZC1pZCBvZiB0aGUgeGVuX2hlbGxvX3dv cmxkLnhzcGxpY2UKKyMgKHdoaWNoIHhlbl9ieWVfd29ybGQgd2lsbCBkZXBlbmQgb24pLgorIwor LlBIT05ZOiBoZWxsb193b3JsZF9ub3RlLm8KK2hlbGxvX3dvcmxkX25vdGUubzogJChYU1BMSUNF KQorCSQoT0JKQ09QWSkgLU8gYmluYXJ5IC0tb25seS1zZWN0aW9uPS5ub3RlLmdudS5idWlsZC1p ZCAkKFhTUExJQ0UpICRALmJpbgorCSQoT0JKQ09QWSkgIC1JIGJpbmFyeSAtTyBlbGY2NC14ODYt NjQgLUIgaTM4Njp4ODYtNjQgXAorCQkgICAtLXJlbmFtZS1zZWN0aW9uPS5kYXRhPS54c3BsaWNl LmRlcGVuZHMgLVMgJEAuYmluICRACisJcm0gLWYgJEAuYmluCisKK3hlbl9ieWVfd29ybGQubzog Y29uZmlnLmgKKworLlBIT05ZOiAkKFhTUExJQ0VfQllFKQorJChYU1BMSUNFX0JZRSk6ICQoWFNQ TElDRSkgY29uZmlnLmggeGVuX2J5ZV93b3JsZF9mdW5jLm8geGVuX2J5ZV93b3JsZC5vIGhlbGxv X3dvcmxkX25vdGUubworCSQoTEQpICQoTERGTEFHUykgJChidWlsZF9pZF9saW5rZXIpIC1yIC1v ICQoWFNQTElDRV9CWUUpIFwKKwkJJChmaWx0ZXIgJS5vLCReKQorCiAKIC5QSE9OWTogeHNwbGlj ZQoteHNwbGljZTogJChYU1BMSUNFKQoreHNwbGljZTogJChYU1BMSUNFKSAkKFhTUExJQ0VfQllF KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93b3JsZC5jIGIveGVuL2Fy Y2gveDg2L3Rlc3QveGVuX2J5ZV93b3JsZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmY5M2Y5NjkKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4vYXJjaC94ODYvdGVzdC94ZW5f YnllX3dvcmxkLmMKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNiBP cmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSA8eGVuL2xpYi5oPgorI2luY2x1ZGUg PHhlbi90eXBlcy5oPgorI2luY2x1ZGUgPHhlbi92ZXJzaW9uLmg+CisjaW5jbHVkZSA8eGVuL3hz cGxpY2UuaD4KKworI2luY2x1ZGUgPHB1YmxpYy9zeXNjdGwuaD4KKworc3RhdGljIGNoYXIgYnll X3dvcmxkX3BhdGNoX3RoaXNfZm5jW10gPSAieGVuX2V4dHJhX3ZlcnNpb24iOworZXh0ZXJuIGNv bnN0IGNoYXIgKnhlbl9ieWVfd29ybGQodm9pZCk7CisKK3N0cnVjdCB4c3BsaWNlX3BhdGNoX2Z1 bmMgX19zZWN0aW9uKCIueHNwbGljZS5mdW5jcyIpIHhzcGxpY2VfeGVuX2J5ZV93b3JsZCA9IHsK KyAgICAudmVyc2lvbiA9IFhTUExJQ0VfUEFZTE9BRF9WRVJTSU9OLAorICAgIC5uYW1lID0gYnll X3dvcmxkX3BhdGNoX3RoaXNfZm5jLAorICAgIC5uZXdfYWRkciA9IHhlbl9ieWVfd29ybGQsCisg ICAgLm9sZF9hZGRyID0geGVuX2V4dHJhX3ZlcnNpb24sCisgICAgLm5ld19zaXplID0gTkVXX0NP REVfU1osCisgICAgLm9sZF9zaXplID0gT0xEX0NPREVfU1osCit9OworCisvKgorICogTG9jYWwg dmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNp Yy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisg KiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGRf ZnVuYy5jIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93b3JsZF9mdW5jLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJlZjM0MQotLS0gL2Rldi9udWxsCisrKyBiL3hl bi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGRfZnVuYy5jCkBAIC0wLDAgKzEsMjIgQEAKKy8q CisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxs IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKi8KKworI2luY2x1ZGUgPHhlbi90eXBlcy5oPgorCisv KiBPdXIgcmVwbGFjZW1lbnQgZnVuY3Rpb24gZm9yIHhlbl9oZWxsb193b3JsZC4gKi8KK2NvbnN0 IGNoYXIgKnhlbl9ieWVfd29ybGQodm9pZCkKK3sKKyAgICByZXR1cm4gIkJ5ZSBXb3JsZCEiOwor fQorCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxl OiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50 LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vS2Nv bmZpZyBiL3hlbi9jb21tb24vS2NvbmZpZwppbmRleCBlNGY4NmMyLi45MWVhOTA0IDEwMDY0NAot LS0gYS94ZW4vY29tbW9uL0tjb25maWcKKysrIGIveGVuL2NvbW1vbi9LY29uZmlnCkBAIC02MCw2 ICs2MCwxMCBAQCBjb25maWcgSEFTX0dEQlNYCiBjb25maWcgSEFTX0lPUE9SVFMKIAlib29sCiAK K2NvbmZpZyBIQVNfQlVJTERfSUQKKwlzdHJpbmcKKwlvcHRpb24gZW52PSJYRU5fSEFTX0JVSUxE X0lEIgorCiAjIEVuYWJsZS9EaXNhYmxlIGtleGVjIHN1cHBvcnQKIGNvbmZpZyBLRVhFQwogCWJv b2wgImtleGVjIHN1cHBvcnQiCkBAIC0xOTIsNyArMTk2LDcgQEAgZW5kbWVudQogY29uZmlnIFhT UExJQ0UKIAlib29sICJ4U3BsaWNlIGxpdmUgcGF0Y2hpbmcgc3VwcG9ydCAoVEVDSCBQUkVWSUVX KSIKIAlkZWZhdWx0IG4KLQlkZXBlbmRzIG9uIFg4NgorCWRlcGVuZHMgb24gWDg2ICYmIEhBU19C VUlMRF9JRCA9ICJ5IgogCS0tLWhlbHAtLS0KIAkgIEFsbG93cyBhIHJ1bm5pbmcgWGVuIGh5cGVy dmlzb3IgdG8gYmUgZHluYW1pY2FsbHkgcGF0Y2hlZCB1c2luZwogCSAgYmluYXJ5IHBhdGNoZXMg d2l0aG91dCByZWJvb3RpbmcuIFRoaXMgaXMgcHJpbWFyaWx5IHVzZWQgdG8gYmluYXJpbHkKZGlm ZiAtLWdpdCBhL3hlbi9jb21tb24vdmVyc2lvbi5jIGIveGVuL2NvbW1vbi92ZXJzaW9uLmMKaW5k ZXggMzA1NzhhNi4uMGY5Njg0OSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi92ZXJzaW9uLmMKKysr IGIveGVuL2NvbW1vbi92ZXJzaW9uLmMKQEAgLTg2LDkgKzg2LDQxIEBAIGludCB4ZW5fYnVpbGRf aWQoY29uc3Qgdm9pZCAqKnAsIHVuc2lnbmVkIGludCAqbGVuKQogLyogRGVmaW5lZCBpbiBsaW5r ZXIgc2NyaXB0LiAqLwogZXh0ZXJuIGNvbnN0IEVsZl9Ob3RlIF9fbm90ZV9nbnVfYnVpbGRfaWRf c3RhcnRbXSwgX19ub3RlX2dudV9idWlsZF9pZF9lbmRbXTsKIAoraW50IHhlbl9idWlsZF9pZF9j aGVjayhjb25zdCBFbGZfTm90ZSAqbiwgdW5zaWduZWQgaW50IG5fc3osCisgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHZvaWQgKipwLCB1bnNpZ25lZCBpbnQgKmxlbikKK3sKKyAgICAvKiBD aGVjayBpZiB3ZSByZWFsbHkgaGF2ZSBhIGJ1aWxkLWlkLiAqLworICAgIGlmICggTlRfR05VX0JV SUxEX0lEICE9IG4tPnR5cGUgKQorICAgICAgICByZXR1cm4gLUVOT0RBVEE7CisKKyAgICBpZiAo IG5fc3ogPD0gc2l6ZW9mKCpuKSApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgaWYg KCBuLT5uYW1lc3ogKyBuLT5kZXNjc3ogPCBuLT5uYW1lc3ogKQorICAgICAgICByZXR1cm4gLUVJ TlZBTDsKKworICAgIGlmICggbi0+bmFtZXN6IDwgNCAvKiBHTlVcMCAqLykKKyAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CisKKyAgICBpZiAoIG4tPm5hbWVzeiArIG4tPmRlc2NzeiA+IG5fc3ogLSBz aXplb2YoKm4pICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAvKiBTYW5pdHkgY2hl Y2ssIG5hbWUgc2hvdWxkIGJlICJHTlUiIGZvciBsZC1nZW5lcmF0ZWQgYnVpbGQtaWQuICovCisg ICAgaWYgKCBzdHJuY21wKEVMRk5PVEVfTkFNRShuKSwgIkdOVSIsIG4tPm5hbWVzeikgIT0gMCAp CisgICAgICAgIHJldHVybiAtRU5PREFUQTsKKworICAgIGlmICggbGVuICkKKyAgICAgICAgKmxl biA9IG4tPmRlc2NzejsKKyAgICBpZiAoIHAgKQorICAgICAgICAqcCA9IEVMRk5PVEVfREVTQyhu KTsKKworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IF9faW5pdCB4ZW5fYnVpbGRfaW5p dCh2b2lkKQogewogICAgIGNvbnN0IEVsZl9Ob3RlICpuID0gX19ub3RlX2dudV9idWlsZF9pZF9z dGFydDsKKyAgICB1bnNpZ25lZCBpbnQgc3o7CiAKICAgICAvKiAtLWJ1aWxkLWlkIGludm9rZWQg d2l0aCB3cm9uZyBwYXJhbWV0ZXJzLiAqLwogICAgIGlmICggX19ub3RlX2dudV9idWlsZF9pZF9l bmQgPD0gJm5bMF0gKQpAQCAtOTgsMTggKzEzMCw5IEBAIHN0YXRpYyBpbnQgX19pbml0IHhlbl9i dWlsZF9pbml0KHZvaWQpCiAgICAgaWYgKCAmblsxXSA+IF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5k ICkKICAgICAgICAgcmV0dXJuIC1FTk9EQVRBOzsKIAotICAgIC8qIENoZWNrIGlmIHdlIHJlYWxs eSBoYXZlIGEgYnVpbGQtaWQuICovCi0gICAgaWYgKCBOVF9HTlVfQlVJTERfSUQgIT0gbi0+dHlw ZSApCi0gICAgICAgIHJldHVybiAtRU5PREFUQTsKKyAgICBzeiA9ICh2b2lkICopX19ub3RlX2du dV9idWlsZF9pZF9lbmQgLSAodm9pZCAqKW47CiAKLSAgICAvKiBTYW5pdHkgY2hlY2ssIG5hbWUg c2hvdWxkIGJlICJHTlUiIGZvciBsZC1nZW5lcmF0ZWQgYnVpbGQtaWQuICovCi0gICAgaWYgKCBz dHJuY21wKEVMRk5PVEVfTkFNRShuKSwgIkdOVSIsIG4tPm5hbWVzeikgIT0gMCApCi0gICAgICAg IHJldHVybiAtRU5PREFUQTsKLQotICAgIGJ1aWxkX2lkX2xlbiA9IG4tPmRlc2NzejsKLSAgICBi dWlsZF9pZF9wID0gRUxGTk9URV9ERVNDKG4pOwotCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJu IHhlbl9idWlsZF9pZF9jaGVjayhuLCBzeiwgJmJ1aWxkX2lkX3AsICZidWlsZF9pZF9sZW4pOwog fQogX19pbml0Y2FsbCh4ZW5fYnVpbGRfaW5pdCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3hlbi9j b21tb24veHNwbGljZS5jIGIveGVuL2NvbW1vbi94c3BsaWNlLmMKaW5kZXggODI0MzM0OC4uNGU1 YzU0OSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi94c3BsaWNlLmMKKysrIGIveGVuL2NvbW1vbi94 c3BsaWNlLmMKQEAgLTQsNiArNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgPHhlbi9jcHUuaD4KKyNp bmNsdWRlIDx4ZW4vZWxmLmg+CiAjaW5jbHVkZSA8eGVuL2Vyci5oPgogI2luY2x1ZGUgPHhlbi9n dWVzdF9hY2Nlc3MuaD4KICNpbmNsdWRlIDx4ZW4va2V5aGFuZGxlci5oPgpAQCAtNDIsNiArNDMs MTIgQEAgc3RhdGljIExJU1RfSEVBRChhcHBsaWVkX2xpc3QpOwogc3RhdGljIHVuc2lnbmVkIGlu dCBwYXlsb2FkX2NudDsKIHN0YXRpYyB1bnNpZ25lZCBpbnQgcGF5bG9hZF92ZXJzaW9uID0gMTsK IAorLyogVG8gY29udGFpbiB0aGUgRUxGIE5vdGUgaGVhZGVyLiAqLworc3RydWN0IHhzcGxpY2Vf YnVpbGRfaWQgeworICAgY29uc3Qgdm9pZCAqcDsKKyAgIHVuc2lnbmVkIGludCBsZW47Cit9Owor CiBzdHJ1Y3QgcGF5bG9hZCB7CiAgICAgdWludDMyX3Qgc3RhdGU7ICAgICAgICAgICAgICAgICAg ICAgIC8qIE9uZSBvZiB0aGUgWFNQTElDRV9TVEFURV8qLiAqLwogICAgIGludDMyX3QgcmM7ICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiAwIG9yIC1YRU5fRVhYLiAqLwpAQCAtNjEsNiArNjgs OCBAQCBzdHJ1Y3QgcGF5bG9hZCB7CiAgICAgc3RydWN0IHZpcnR1YWxfcmVnaW9uIHJlZ2lvbjsg ICAgICAgIC8qIHN5bWJvbCwgYnVnLmZyYW1lIHBhdGNoaW5nIGFuZAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHRpb24gdGFibGUgKHg4NikuICovCiAg ICAgdW5zaWduZWQgaW50IG5zeW1zOyAgICAgICAgICAgICAgICAgIC8qIE5yIG9mIGVudHJpZXMg aW4gLnN0cnRhYiBhbmQgc3ltYm9scy4gKi8KKyAgICBzdHJ1Y3QgeHNwbGljZV9idWlsZF9pZCBp ZDsgICAgICAgICAgLyogRUxGTk9URV9ERVNDKC5ub3RlLmdudS5idWlsZC1pZCkgb2YgdGhlIHBh eWxvYWQuICovCisgICAgc3RydWN0IHhzcGxpY2VfYnVpbGRfaWQgZGVwOyAgICAgICAgIC8qIEVM Rk5PVEVfREVTQygueHNwbGljZS5kZXBlbmRzKS4gKi8KICAgICBjaGFyIG5hbWVbWEVOX1hTUExJ Q0VfTkFNRV9TSVpFXTsgICAgLyogTmFtZSBvZiBpdC4gKi8KIH07CiAKQEAgLTQxOSw3ICs0Mjgs OSBAQCBzdGF0aWMgaW50IHNlY3VyZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLCBz dHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKIHN0YXRpYyBpbnQgY2hlY2tfc3BlY2lhbF9zZWN0aW9u cyhjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKIHsKICAgICB1bnNpZ25lZCBpbnQgaTsK LSAgICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgbmFtZXNbXSA9IHsgRUxGX1hTUExJQ0VfRlVO QyB9OworICAgIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBuYW1lc1tdID0geyBFTEZfWFNQTElD RV9GVU5DLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTEZfWFNQ TElDRV9ERVBFTkRTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF TEZfQlVJTERfSURfTk9URX07CiAgICAgREVDTEFSRV9CSVRNQVAoZm91bmQsIEFSUkFZX1NJWkUo bmFtZXMpKSA9IHsgMCB9OwogCiAgICAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9TSVpFKG5hbWVz KTsgaSsrICkKQEAgLTQ1OSw2ICs0NzAsNyBAQCBzdGF0aWMgaW50IHByZXBhcmVfcGF5bG9hZChz dHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwKICAgICB1bnNpZ25lZCBpbnQgaTsKICAgICBzdHJ1Y3Qg eHNwbGljZV9wYXRjaF9mdW5jICpmOwogICAgIHN0cnVjdCB2aXJ0dWFsX3JlZ2lvbiAqcmVnaW9u OworICAgIGNvbnN0IEVsZl9Ob3RlICpuOwogCiAgICAgc2VjID0geHNwbGljZV9lbGZfc2VjX2J5 X25hbWUoZWxmLCBFTEZfWFNQTElDRV9GVU5DKTsKICAgICBBU1NFUlQoc2VjKTsKQEAgLTUxNSw2 ICs1MjcsMzcgQEAgc3RhdGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBh eWxvYWQsCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBzZWMgPSB4c3BsaWNlX2VsZl9zZWNfYnlf bmFtZShlbGYsIEVMRl9CVUlMRF9JRF9OT1RFKTsKKyAgICBpZiAoIHNlYyApCisgICAgeworICAg ICAgICBuID0gc2VjLT5sb2FkX2FkZHI7CisKKyAgICAgICAgaWYgKCBzZWMtPnNlYy0+c2hfc2l6 ZSA8PSBzaXplb2YoKm4pICkKKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgICAg IGlmICggeGVuX2J1aWxkX2lkX2NoZWNrKG4sIHNlYy0+c2VjLT5zaF9zaXplLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmcGF5bG9hZC0+aWQucCwgJnBheWxvYWQtPmlkLmxlbikg KQorICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAgICAgaWYgKCAhcGF5bG9hZC0+ aWQubGVuIHx8ICFwYXlsb2FkLT5pZC5wICkKKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwor ICAgIH0KKworICAgIHNlYyA9IHhzcGxpY2VfZWxmX3NlY19ieV9uYW1lKGVsZiwgRUxGX1hTUExJ Q0VfREVQRU5EUyk7CisgICAgeworICAgICAgICBuID0gc2VjLT5sb2FkX2FkZHI7CisKKyAgICAg ICAgaWYgKCBzZWMtPnNlYy0+c2hfc2l6ZSA8PSBzaXplb2YoKm4pICkKKyAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOworCisgICAgICAgIGlmICggeGVuX2J1aWxkX2lkX2NoZWNrKG4sIHNlYy0+ c2VjLT5zaF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGF5bG9hZC0+ ZGVwLnAsICZwYXlsb2FkLT5kZXAubGVuKSApCisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsK KworICAgICAgICBpZiAoICFwYXlsb2FkLT5kZXAubGVuIHx8ICFwYXlsb2FkLT5kZXAucCApCisg ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKICAgICAvKiBTZXR1cCB0aGUgdmly dHVhbCByZWdpb24gd2l0aCBwcm9wZXIgZGF0YS4gKi8KICAgICByZWdpb24gPSAmcGF5bG9hZC0+ cmVnaW9uOwogCkBAIC0xMjQ0LDYgKzEyODcsNTUgQEAgdm9pZCBjaGVja19mb3JfeHNwbGljZV93 b3JrKHZvaWQpCiAgICAgfQogfQogCisvKgorICogT25seSBhbGxvdyBkZXBlbmRlbnQgcGF5bG9h ZCBpcyBhcHBsaWVkIG9uIHRvcCBvZiB0aGUgY29ycmVjdAorICogYnVpbGQtaWQuCisgKgorICog VGhpcyBlbmZvcmNlcyBhbiBzdGFja2luZyBvcmRlciAtIHRoZSBmaXJzdCBwYXlsb2FkIE1VU1Qg YmUgYWdhaW5zdCB0aGUKKyAqIGh5cGVydmlzb3IuIFRoZSBzZWNvbmQgYWdhaW5zdCB0aGUgZmly c3QgcGF5bG9hZCwgYW5kIHNvIG9uLgorICoKKyAqIFVubGVzcyB0aGUgJ2ludGVybmFsJyBwYXJh bWV0ZXIgaXMgdXNlZCAtIGluIHdoaWNoIGNhc2Ugd2Ugb25seQorICogY2hlY2sgYWdhaW5zdCB0 aGUgaHlwZXJ2aXNvci4KKyAqLworc3RhdGljIGludCBidWlsZF9pZF9kZXAoc3RydWN0IHBheWxv YWQgKnBheWxvYWQsIGJvb2xfdCBpbnRlcm5hbCkKK3sKKyAgICBjb25zdCB2b2lkICppZCA9IE5V TEw7CisgICAgdW5zaWduZWQgaW50IGxlbiA9IDA7CisgICAgaW50IHJjOworICAgIGNvbnN0IGNo YXIgKm5hbWUgPSAiaHlwZXJ2aXNvciI7CisKKyAgICBBU1NFUlQocGF5bG9hZC0+ZGVwLmxlbiAm JiBwYXlsb2FkLT5kZXAucCk7CisKKyAgICAvKiBGaXJzdCB0aW1lIHVzZXIgaXMgYWdhaW5zdCBo eXBlcnZpc29yLiAqLworICAgIGlmICggaW50ZXJuYWwgKQorICAgIHsKKyAgICAgICAgcmMgPSB4 ZW5fYnVpbGRfaWQoJmlkLCAmbGVuKTsKKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICBy ZXR1cm4gcmM7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIC8qIFdlIHNob3VsZCBi ZSBhZ2FpbnN0IHRoZSBsYXN0IGFwcGxpZWQgb25lLiAqLworICAgICAgICBjb25zdCBzdHJ1Y3Qg cGF5bG9hZCAqZGF0YTsKKworICAgICAgICBkYXRhID0gbGlzdF9sYXN0X2VudHJ5KCZhcHBsaWVk X2xpc3QsIHN0cnVjdCBwYXlsb2FkLCBhcHBsaWVkX2xpc3QpOworCisgICAgICAgIGlkID0gZGF0 YS0+aWQucDsKKyAgICAgICAgbGVuID0gZGF0YS0+aWQubGVuOworICAgICAgICBuYW1lID0gZGF0 YS0+bmFtZTsKKyAgICB9CisKKyAgICBpZiAoIHBheWxvYWQtPmRlcC5sZW4gIT0gbGVuIHx8Cisg ICAgICAgICBtZW1jbXAoaWQsIHBheWxvYWQtPmRlcC5wLCBsZW4pICkKKyAgICB7CisgICAgICAg IGRwcmludGsoWEVOTE9HX0VSUiwgIiVzJXM6IGNoZWNrIGFnYWluc3QgJXMgYnVpbGQtaWQgZmFp bGVkIVxuIiwKKyAgICAgICAgICAgICAgICBYU1BMSUNFLCBwYXlsb2FkLT5uYW1lLCBuYW1lKTsK KyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKIHN0 YXRpYyBpbnQgeHNwbGljZV9hY3Rpb24oeGVuX3N5c2N0bF94c3BsaWNlX2FjdGlvbl90ICphY3Rp b24pCiB7CiAgICAgc3RydWN0IHBheWxvYWQgKmRhdGE7CkBAIC0xMjgzLDYgKzEzNzUsMTggQEAg c3RhdGljIGludCB4c3BsaWNlX2FjdGlvbih4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9uX3QgKmFj dGlvbikKICAgICBjYXNlIFhTUExJQ0VfQUNUSU9OX1JFVkVSVDoKICAgICAgICAgaWYgKCBkYXRh LT5zdGF0ZSA9PSBYU1BMSUNFX1NUQVRFX0FQUExJRUQgKQogICAgICAgICB7CisgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgcGF5bG9hZCAqcDsKKworICAgICAgICAgICAgcCA9IGxpc3RfbGFzdF9l bnRyeSgmYXBwbGllZF9saXN0LCBzdHJ1Y3QgcGF5bG9hZCwgYXBwbGllZF9saXN0KTsKKyAgICAg ICAgICAgIEFTU0VSVChwKTsKKyAgICAgICAgICAgIC8qIFdlIHNob3VsZCBiZSB0aGUgbGFzdCBh cHBsaWVkIG9uZS4gKi8KKyAgICAgICAgICAgIGlmICggcCAhPSBkYXRhICkKKyAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19FUlIsICIlcyVzOiBjYW4ndCB1bmxv YWQuIFRvcCBpcyAlcyFcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBYU1BMSUNFLCBkYXRh LT5uYW1lLCBwLT5uYW1lKTsKKyAgICAgICAgICAgICAgICByYyA9IC1FQlVTWTsKKyAgICAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGRhdGEtPnJjID0gLUVB R0FJTjsKICAgICAgICAgICAgIHJjID0gc2NoZWR1bGVfd29yayhkYXRhLCBhY3Rpb24tPmNtZCwg YWN0aW9uLT50aW1lb3V0KTsKICAgICAgICAgfQpAQCAtMTI5MSw2ICsxMzk1LDkgQEAgc3RhdGlj IGludCB4c3BsaWNlX2FjdGlvbih4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9uX3QgKmFjdGlvbikK ICAgICBjYXNlIFhTUExJQ0VfQUNUSU9OX0FQUExZOgogICAgICAgICBpZiAoIGRhdGEtPnN0YXRl ID09IFhTUExJQ0VfU1RBVEVfQ0hFQ0tFRCApCiAgICAgICAgIHsKKyAgICAgICAgICAgIHJjID0g YnVpbGRfaWRfZGVwKGRhdGEsICEhbGlzdF9lbXB0eSgmYXBwbGllZF9saXN0KSk7CisgICAgICAg ICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRhdGEt PnJjID0gLUVBR0FJTjsKICAgICAgICAgICAgIHJjID0gc2NoZWR1bGVfd29yayhkYXRhLCBhY3Rp b24tPmNtZCwgYWN0aW9uLT50aW1lb3V0KTsKICAgICAgICAgfQpAQCAtMTI5OSw2ICsxNDA2LDkg QEAgc3RhdGljIGludCB4c3BsaWNlX2FjdGlvbih4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9uX3Qg KmFjdGlvbikKICAgICBjYXNlIFhTUExJQ0VfQUNUSU9OX1JFUExBQ0U6CiAgICAgICAgIGlmICgg ZGF0YS0+c3RhdGUgPT0gWFNQTElDRV9TVEFURV9DSEVDS0VEICkKICAgICAgICAgeworICAgICAg ICAgICAgcmMgPSBidWlsZF9pZF9kZXAoZGF0YSwgMSAvKiBhZ2FpbnN0IGh5cGVydmlzb3IuICov KTsKKyAgICAgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg ICAgICAgZGF0YS0+cmMgPSAtRUFHQUlOOwogICAgICAgICAgICAgcmMgPSBzY2hlZHVsZV93b3Jr KGRhdGEsIGFjdGlvbi0+Y21kLCBhY3Rpb24tPnRpbWVvdXQpOwogICAgICAgICB9CkBAIC0xNDAz LDYgKzE1MTMsMTEgQEAgc3RhdGljIHZvaWQgeHNwbGljZV9wcmludGFsbCh1bnNpZ25lZCBjaGFy IGtleSkKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAgICAg ICAgaWYgKCBkYXRhLT5pZC5sZW4gKQorICAgICAgICAgICAgcHJpbnRrKCJidWlsZC1pZD0lKnBo TlxuIiwgZGF0YS0+aWQubGVuLCBkYXRhLT5pZC5wKTsKKworICAgICAgICBpZiAoIGRhdGEtPmRl cC5sZW4gKQorICAgICAgICAgICAgcHJpbnRrKCJkZXBlbmQtb249JSpwaE5cbiIsIGRhdGEtPmRl cC5sZW4sIGRhdGEtPmRlcC5wKTsKICAgICB9CiAKICAgICBzcGluX3VubG9jaygmcGF5bG9hZF9s b2NrKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi94c3BsaWNlLmggYi94ZW4vaW5jbHVk ZS94ZW4veHNwbGljZS5oCmluZGV4IDg0OWY1OGMuLjVmZmI2OWQgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL3hlbi94c3BsaWNlLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3hzcGxpY2UuaApAQCAt MjgsNiArMjgsOCBAQCBzdHJ1Y3QgeGVuX3N5c2N0bF94c3BsaWNlX29wOwogI2RlZmluZSBYU1BM SUNFICAgICAgICAgICAgICJ4c3BsaWNlOiAiCiAvKiBFTEYgcGF5bG9hZCBzcGVjaWFsIHNlY3Rp b24gbmFtZXMuICovCiAjZGVmaW5lIEVMRl9YU1BMSUNFX0ZVTkMgICAgIi54c3BsaWNlLmZ1bmNz IgorI2RlZmluZSBFTEZfWFNQTElDRV9ERVBFTkRTICIueHNwbGljZS5kZXBlbmRzIgorI2RlZmlu ZSBFTEZfQlVJTERfSURfTk9URSAgICIubm90ZS5nbnUuYnVpbGQtaWQiCiAKIHN0cnVjdCB4c3Bs aWNlX3N5bWJvbCB7CiAgICAgY29uc3QgY2hhciAqbmFtZTsKQEAgLTQwLDYgKzQyLDggQEAgaW50 IHhzcGxpY2Vfb3Aoc3RydWN0IHhlbl9zeXNjdGxfeHNwbGljZV9vcCAqKTsKIHZvaWQgY2hlY2tf Zm9yX3hzcGxpY2Vfd29yayh2b2lkKTsKIHVuc2lnbmVkIGxvbmcgeHNwbGljZV9zeW1ib2xzX2xv b2t1cF9ieV9uYW1lKGNvbnN0IGNoYXIgKnN5bW5hbWUpOwogYm9vbF90IGlzX3BhdGNoKGNvbnN0 IHZvaWQgKmFkZHIpOworaW50IHhlbl9idWlsZF9pZF9jaGVjayhjb25zdCBFbGZfTm90ZSAqbiwg dW5zaWduZWQgaW50IG5fc3osCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKipw LCB1bnNpZ25lZCBpbnQgKmxlbik7CiAKIC8qIEFyY2ggaG9va3MuICovCiBpbnQgYXJjaF94c3Bs aWNlX3ZlcmlmeV9lbGYoY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmICplbGYpOwotLSAKMi40LjMK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=