From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: Re: [PATCH v5 19/28] build_id: Provide ld-embedded build-ids Date: Mon, 04 Apr 2016 06:46:24 -0600 Message-ID: <57027E4002000078000E2AF1@prv-mh.provo.novell.com> References: <1458849640-22588-1-git-send-email-konrad.wilk@oracle.com> <1458849640-22588-20-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1an3tp-0004JF-MB for xen-devel@lists.xenproject.org; Mon, 04 Apr 2016 12:46:33 +0000 In-Reply-To: <1458849640-22588-20-git-send-email-konrad.wilk@oracle.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: mpohlack@amazon.de, Konrad Rzeszutek Wilk Cc: Keir Fraser , ross.lagerwall@citrix.com, andrew.cooper3@citrix.com, Julien Grall , Stefano Stabellini , sasha.levin@oracle.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org Pj4+IE9uIDI0LjAzLjE2IGF0IDIxOjAwLCA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4gd3JvdGU6 Cj4gVGhlIHZlcnNpb24gb2YgbGQgdGhhdCBmaXJzdCBpbXBsZW1lbnRlZCAtLWJ1aWxkLWlkIGlz IHYyLjE4Lgo+IEhlbmNlIHdlIGNoZWNrIGZvciB0aGF0IG9yIGxhdGVyIHZlcnNpb24gLSBpZiBv bGRlciB2ZXJzaW9uCj4gZm91bmQgd2UgZG8gbm90IGJ1aWxkIHRoZSBoeXBlcnZpc29yIHdpdGgg dGhlIGJ1aWxkLWlkCj4gKGFuZCB0aGUgcmV0dXJuIGNvZGUgaXMgLUVOT0RBVEEgZm9yIHhlbl9i dWlsZF9pZCgpIGNhbGwpLgoKVGhpcyBhcHBlYXJzIHRvIGJlIHN0YWxlLgoKPiBUaGUgRUZJIGJp bmFyeSBpcyBtb3JlIGNvbXBsaWNhdGVkLiBIYXZpbmcgYW55IG5vbi1yZWNvZ25pemFibGUKPiBz ZWN0aW9ucyAoLm5vdGUsIC5kYXRhLm5vdGUsIGV0YykgY2F1c2VzIHRoZSBib290IHRvIGhhbmcu Cj4gTW92aW5nIHRoZSAubm90ZSBpbiB0aGUgLmRhdGEgc2VjdGlvbiBtYWtlcyBpdCB3b3JrLiBJ dCBpcyBhbHNvCj4gd29ydGggbm90aW5nIHRoYXQgdGhlIFBFL0NPRkYgZG9lcyBub3QgaGF2ZSBh bnkgImNvbW1lbnQiCj4gc2VjdGlvbnMgdG8gdGhlIGF1dGhvci4KCkknbSBhZnJhaWQgdGhpcyBp cyB0b28gdmFndWU6IFdoYXQgZXhhY3RseSBpcyBoYXBwZW5pbmcgdGhlcmU/IEFuZAppcyB0aGlz IGR1ZSB0byBiaW51dGlscyBkb2luZyBzb21ldGhpbmcgd3JvbmcsIG9yIGFuIGlzc3VlIHdpdGgg dGhlCmZpcm13YXJlIG9uIHRoZSBib3ggeW91J3ZlIHRyaWVkPyBXaGlsZSB0aGUgcGxhY2VtZW50 IG9mIC5ub3RlIGlzCm5vdCByZWFsbHkgYSBiaWcgZGVhbCwgYW55IHVudXN1YWwgcGxhY2VtZW50 IG5lZWRzIGEgc291cmNlCmNvbW1lbnQgYXR0YWNoZWQgZXhwbGFpbmluZyB0aGUgd2h5cywgdG8g cHJldmVudCBwZW9wbGUgZG93bgp0aGUgcm9hZCBtb3ZpbmcgdGhlIHNlY3Rpb24gYmFjayBpbnRv IHRoZSAiZXhwZWN0ZWQiIHBsYWNlLiBCdXQKc2VlIGFsc28gYmVsb3cuCgo+IExhc3RseSwgd2Ug TVVTVCBjYWxsIC0tYmluYXJ5LWlkPXNoYTEgb24gYWxsIGxpbmtlciBpbnZvY2F0aW9uIHNvIHRo YXQKPiBzeW1ib2wgb2Zmc2V0cyBkb24ndCBjaGFuZ2VzICh3aGljaCBtZWFucyB3ZSBoYXZlIG11 bHRpcGxlIGJpbmFyeQo+IGlkcyAtIGV4Y2VwdCB0aGF0IHRoZSBsYXN0IG9uZSBpcyB0aGUgZmlu YWwgb25lKS4gV2l0aG91dCB0aGlzIGNoYW5nZSwKPiB0aGUgc3ltYm9sIHRhYmxlIGVtYmVkZGVk IGluIFhlbiBhcmUgaW5jb3JyZWN0IC0gc29tZSBvZiB0aGUgdmFsdWVzIGl0Cj4gY29udGFpbnMg YXJlIG9mZnNldCBieSB0aGUgc2l6ZSBvZiB0aGUgaW5jbHVkZWQgYnVpbGQgaWQuCj4gVGhpcyBv YnZpb3VzbHkgY2F1c2VzIHByb2JsZW1zIHdoZW4gcmVzb2x2aW5nIHN5bWJvbHMuCgpXb3VsZCB0 aGlzIGFsc28gYmUgYSBwcm9ibGVtIGlmIHlvdSBwbGFjZSB0aGUgbm90ZXMgc2VnbWVudC9zZWN0 aW9uCmxhc3QgaW4gdGhlIGJpbmFyeT8KCj4gLS0tIGEvQ29uZmlnLm1rCj4gKysrIGIvQ29uZmln Lm1rCj4gQEAgLTEyNiw2ICsxMjYsMTcgQEAgZW5kZWYKPiAgY2hlY2stJChnY2MpID0gJChjYWxs IGNjLXZlci1jaGVjayxDQywweDA0MDEwMCwiWGVuIHJlcXVpcmVzIGF0IGxlYXN0IGdjYy00LjEi KQo+ICAkKGV2YWwgJChjaGVjay15KSkKPiAgCj4gK2xkLXZlci1idWlsZC1pZCA9ICQoc2hlbGwg JCgxKSAtLWJ1aWxkLWlkIDI+JjEgfCBcCj4gKwkJCQkJZ3JlcCAtcSB1bnJlY29nbml6ZWQgJiYg ZWNobyBuIHx8IGVjaG8geSkKPiArCj4gKyMgYmludXRpbHMgMi4xOCBpbXBsZW1lbnQgYnVpbGQt aWQuCgpJIGRvbid0IHRoaW5rIHRoaXMgY29tbWVudCBpcyByZWFsbHkgcmVsZXZhbnQgYW55bW9y ZS4KCj4gLS0tIGEveGVuL2FyY2gvYXJtL3hlbi5sZHMuUwo+ICsrKyBiL3hlbi9hcmNoL2FybS94 ZW4ubGRzLlMKPiBAQCAtMjIsNiArMjIsOSBAQCBPVVRQVVRfQVJDSChGT1JNQVQpCj4gIFBIRFJT Cj4gIHsKPiAgICB0ZXh0IFBUX0xPQUQgLyogWFhYIHNob3VsZCBiZSBBVCAoIFhFTl9QSFlTX1NU QVJUICkgKi8gOwo+ICsjaWYgZGVmaW5lZChCVUlMRF9JRCkKPiArICBub3RlIFBUX05PVEUgOwo+ ICsjZW5kaWYKCklzIHRoaXMgaW4gbGluZSB3aXRoIC4uLgoKPiBAQCAtNTcsOSArNjAsMTggQEAg U0VDVElPTlMKPiAgICAgICAgICooLmxvY2twcm9maWxlLmRhdGEpCj4gICAgICAgICBfX2xvY2tf cHJvZmlsZV9lbmQgPSAuOwo+ICAjZW5kaWYKPiArICB9IDp0ZXh0Cj4gIAo+IC0gICAgICAgIF9l cm9kYXRhID0gLjsgICAgICAgICAgLyogRW5kIG9mIHJlYWQtb25seSBkYXRhICovCj4gKyNpZiBk ZWZpbmVkKEJVSUxEX0lEKQo+ICsgIC5ub3RlIDogewo+ICsgICAgICAgX19ub3RlX2dudV9idWls ZF9pZF9zdGFydCA9IC47Cj4gKyAgICAgICAqKC5ub3RlLmdudS5idWlsZC1pZCkKPiArICAgICAg IF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5kID0gLjsKPiArICAgICAgICooLm5vdGUpCj4gKyAgICAg ICAqKC5ub3RlLiopCj4gICAgfSA6dGV4dAo+ICsjZW5kaWYKCi4uLiB0aGVyZSBub3QgYmVpbmcg YW55IDpub3RlIGhlcmU/IEFuZCBpZiBzbywgd2h5IHRoZSBlYXJsaWVyCiJ9IDp0ZXh0Ij8KCj4g LS0tIGEveGVuL2FyY2gveDg2L01ha2VmaWxlCj4gKysrIGIveGVuL2FyY2gveDg2L01ha2VmaWxl Cj4gQEAgLTcyLDkgKzcyLDE2IEBAIGVmaS15IDo9ICQoc2hlbGwgaWYgWyAhIC1yICQoQkFTRURJ UikvaW5jbHVkZS94ZW4vY29tcGlsZS5oIAo+IC1vIFwKPiAgICAgICAgICAgICAgICAgICAgICAg IC1PICQoQkFTRURJUikvaW5jbHVkZS94ZW4vY29tcGlsZS5oIF07IHRoZW4gXAo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgZWNobyAnJChUQVJHRVQpLmVmaSc7IGZpKQo+ICAKPiAraWZkZWYg YnVpbGRfaWRfbGlua2VyCgpBY2NvcmRpbmcgdG8gQ29uZmlnLm1rIHRoaXMgaXMgYWx3YXlzIHRy dWUuIERZTQoiaWZuZXEgKCQoYnVpbGRfaWRfbGlua2VyKSwpIj8KCj4gK2J1aWxkX2lkLm86ICQo VEFSR0VUKS1zeW1zCj4gKwkkKE9CSkNPUFkpIC1PIGJpbmFyeSAtLW9ubHktc2VjdGlvbj0ubm90 ZSAkKEJBU0VESVIpL3hlbi1zeW1zICRALmJpbgoKQ29uc2lkZXJpbmcgeW91ciB4ZW4ubGRzLlMg Y2hhbmdlcywgd29uJ3QgdGhpcyBwb3RlbnRpYWxseSBjb3B5IHF1aXRlCmEgYml0IG1vcmUgdGhh biBqdXN0IHRoZSBidWlsZCBJRCAoaS5lLiBhbGwgbm90ZXMpPyBUaGlzIG1heSBiZSBva2F5LCBh bmQKbWF5IGJlIGV2ZW4gaW50ZW5kZWQsIGJ1dCB0aGVuIHRoZSBnZW5lcmF0ZSBmaWxlJ3MgbmFt ZSBzaG91bGQKcmVmbGVjdCB0aGlzIHRvIG5vdCBtaXNndWlkZSBwZW9wbGUuCgo+ICsJJChPQkpD T1BZKSAtSSBiaW5hcnkgLU8gZWxmNjQteDg2LTY0IC1CIGkzODY6eDg2LTY0IFwKPiArCQktLXJl bmFtZS1zZWN0aW9uPS5kYXRhPS5ub3RlLmdudS5idWlsZC1pZCAtUyAkQC5iaW4gJEAKClNpbmNl IHlvdSBwdXQgdGhlIG5vdGVzIGludG8gLnJvZGF0YSBhbnl3YXksIHdoeSBuYW1lIHRoZQpzZWN0 aW9uIC5ub3RlLio/IEp1c3QgbmFtZSBpdCAucm9kYXRhLiosIGF2b2lkaW5nIHRvIG1pc2xlYWQK b3RoZXJzIHdobyBhbHNvIHRoaW5rIHRoYXQgYSBzZWN0aW9uJ3MgbmFtZSBoYXMgbXVjaCBvZiBh Cm1lYW5pbmcuCgo+IEBAIC0xMzgsNiArMTUxLDEzIEBAICQoVEFSR0VUKS5lZmk6IFZJUlRfQkFT RSA9IDB4JChzaGVsbCAkKE5NKSBlZmkvcmVsb2NzLWR1bW15Lm8gfCBzZWQgLW4gJ3MsIEEgVklS Cj4gICQoVEFSR0VUKS5lZmk6IEFMVF9CQVNFID0gMHgkKHNoZWxsICQoTk0pIGVmaS9yZWxvY3Mt ZHVtbXkubyB8IHNlZCAtbiAncywgQSBBTFRfU1RBUlQkJCwscCcpCj4gICMgRG9uJ3QgdXNlICQo d2lsZGNhcmQgLi4uKSBoZXJlIC0gYXQgbGVhc3QgbWFrZSAzLjgwIGV4cGFuZHMgdGhpcyB0b28g ZWFybHkhCj4gICQoVEFSR0VUKS5lZmk6IGd1YXJkID0gJChpZiAkKHNoZWxsIGVjaG8gZWZpL2Rp cyogfCBncmVwIGRpc2FibGVkKSw6KQo+ICtpZmRlZiBidWlsZF9pZF9saW5rZXIKClNlZSBhYm92 ZS4KCj4gQEAgLTIyOCwyMSArMjU3LDIyIEBAIHN0YXRpYyB2b2lkIGRvX3JlYWQoaW50IGZkLCB2 b2lkICpkYXRhLCBpbnQgbGVuKQo+ICBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4g IHsKPiAgICAgIHU2NCAgICAgICAgZmluYWxfZXhlY19hZGRyOwo+IC0gICAgdTMyICAgICAgICBs b2FkYmFzZSwgZGF0X3NpeiwgbWVtX3NpejsKPiArICAgIHUzMiAgICAgICAgbG9hZGJhc2UsIGRh dF9zaXosIG1lbV9zaXosIG5vdGVfYmFzZSwgbm90ZV9zeiwgb2Zmc2V0Owo+ICAgICAgY2hhciAg ICAgICppbmltYWdlLCAqb3V0aW1hZ2U7Cj4gICAgICBpbnQgICAgICAgIGluZmQsIG91dGZkOwo+ ICAgICAgY2hhciAgICAgICBidWZmZXJbMTAyNF07Cj4gICAgICBpbnQgICAgICAgIGJ5dGVzLCB0 b2RvLCBpOwo+ICsgICAgaW50ICAgICAgICBudW1fcGhkcnM7Cj4gIAo+ICAgICAgRWxmMzJfRWhk ciBpbjMyX2VoZHI7Cj4gIAo+ICAgICAgRWxmNjRfRWhkciBpbjY0X2VoZHI7Cj4gICAgICBFbGY2 NF9QaGRyIGluNjRfcGhkcjsKPiAgCj4gLSAgICBpZiAoIGFyZ2MgIT0gNSApCj4gKyAgICBpZiAo IGFyZ2MgIT0gNiApCj4gICAgICB7Cj4gICAgICAgICAgZnByaW50ZihzdGRlcnIsICJVc2FnZTog bWtlbGYzMiA8aW4taW1hZ2U+IDxvdXQtaW1hZ2U+ICIKPiAtICAgICAgICAgICAgICAgICI8bG9h ZC1iYXNlPiA8ZmluYWwtZXhlYy1hZGRyPlxuIik7Cj4gKyAgICAgICAgICAgICAgICAiPGxvYWQt YmFzZT4gPGZpbmFsLWV4ZWMtYWRkcj4gPG51bWJlciBvZiBwcm9ncmFtIGhlYWRlcnM+XG4iKTsK CkV2ZW4gaWYgb25seSBhbiBpbnRlcm5hbGx5IHVzZWQgdG9vbCwgSSB0aGluayB0aGlzIGlzIGEg YmFkIGludGVyZmFjZToKWW91IHdhbnQgbm90ZXMgY29waWVkLCBhbmQgdGhpcyBvbmx5IGhhcHBl bnMgdG8gcmVzdWx0IGluIGEgc2Vjb25kClBIRFIuIEhlbmNlIEkgdGhpbmsgdGhlcmUgc2hvdWxk IGJlIGFuIG9wdGlvbiAiLS1ub3RlcyIgb3Igc29tZQpzdWNoLgoKPiBAQCAtMjk5LDExICszMzQs MzYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICAKPiAgICAgICh2b2lkKWxz ZWVrKGluZmQsIGluNjRfcGhkci5wX29mZnNldCwgU0VFS19TRVQpOwo+ICAgICAgZGF0X3NpeiA9 ICh1MzIpaW42NF9waGRyLnBfZmlsZXN6Owo+IC0KPiAgICAgIC8qIERvIG5vdCB1c2UgcF9tZW1z ejogaXQgZG9lcyBub3QgaW5jbHVkZSBCU1MgYWxpZ25tZW50IHBhZGRpbmcuICovCgpTdHJheSBk ZWxldGlvbiBvZiBhIGJsYW5rIGxpbmUuCgo+IEBAIC0zMjIsNiArMzgyLDMxIEBAIGludCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKPiAgICAgIG91dF9zaGRyWzFdLnNoX3NpemUgICA9IGRh dF9zaXo7Cj4gICAgICBvdXRfc2hkclsyXS5zaF9vZmZzZXQgPSBSQVdfT0ZGU0VUICsgZGF0X3Np eiArIHNpemVvZihvdXRfc2hkcik7Cj4gIAo+ICsgICAgaWYgKCBudW1fcGhkcnMgPiAxICkKPiAr ICAgIHsKPiArICAgICAgICAvKiBXZSBoYXZlIHR3byBvZiB0aGVtISAqLwo+ICsgICAgICAgIG91 dF9laGRyLmVfcGhudW0gPSBudW1fcGhkcnM7Cj4gKyAgICAgICAgLyogRXh0cmEgLm5vdGUgc2Vj dGlvbi4gKi8KPiArICAgICAgICBvdXRfZWhkci5lX3NobnVtKys7Cj4gKwo+ICsgICAgICAgIC8q IEZpbGwgb3V0IHRoZSBQVF9OT1RFIHByb2dyYW0gaGVhZGVyLiAqLwo+ICsgICAgICAgIG5vdGVf cGhkci5wX3ZhZGRyICAgPSBub3RlX2Jhc2U7Cj4gKyAgICAgICAgbm90ZV9waGRyLnBfcGFkZHIg ICA9IG5vdGVfYmFzZTsKPiArICAgICAgICBub3RlX3BoZHIucF9maWxlc3ogID0gbm90ZV9zejsK PiArICAgICAgICBub3RlX3BoZHIucF9tZW1zeiAgID0gbm90ZV9zejsKPiArICAgICAgICBub3Rl X3BoZHIucF9vZmZzZXQgID0gb2Zmc2V0Owo+ICsKPiArICAgICAgICAvKiBUYWNrIG9uIHRoZSAu bm90ZVwwICovCj4gKyAgICAgICAgb3V0X3NoZHJbMl0uc2hfc2l6ZSArPSBzaXplb2Yob3V0X3No c3RydGFiX2V4dHJhKTsKPiArICAgICAgICAvKiBBbmQgbW92ZSBpdCBwYXN0IHRoZSAubm90ZSBz ZWN0aW9uLiAqLwo+ICsgICAgICAgIG91dF9zaGRyWzJdLnNoX29mZnNldCArPSBzaXplb2Yob3V0 X3NoZHJfZXh0cmEpOwoKV2h5ICJleHRyYSIgYW5kIG5vdCAibm90ZSIgb3IgIm5vdGVzIj8KCj4g QEAgLTMzNSw4ICs0MjAsMTUgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICAK PiAgICAgIGVuZGlhbmFkanVzdF9waGRyMzIoJm91dF9waGRyKTsKPiAgICAgIGRvX3dyaXRlKG91 dGZkLCAmb3V0X3BoZHIsIHNpemVvZihvdXRfcGhkcikpOwo+IC0gICAgCj4gLSAgICBpZiAoIChi eXRlcyA9IFJBV19PRkZTRVQgLSBzaXplb2Yob3V0X2VoZHIpIC0gc2l6ZW9mKG91dF9waGRyKSkg PCAwICkKPiArCj4gKyAgICBpZiAoIG51bV9waGRycyA+IDEgKQo+ICsgICAgewo+ICsgICAgICAg IGVuZGlhbmFkanVzdF9waGRyMzIoJm5vdGVfcGhkcik7Cj4gKyAgICAgICAgZG9fd3JpdGUob3V0 ZmQsICZub3RlX3BoZHIsIHNpemVvZihub3RlX3BoZHIpKTsKPiArICAgIH0KPiArCj4gKyAgICBp ZiAoIChieXRlcyA9IFJBV19PRkZTRVQgLSBzaXplb2Yob3V0X2VoZHIpIC0gc2l6ZW9mKG91dF9w aGRyKSAtCj4gKyAgICAgICAgICAoIG51bV9waGRycyA+IDEgPyBzaXplb2Yobm90ZV9waGRyKSA6 IDAgKSApIDwgMCApCgpTdHJheSBibGFua3MuIEFsc28gd2l0aCBlYWNoIFBIRFIgYmVpbmcgdGhl IHNhbWUgc2l6ZSwgd2h5IG5vdApqdXN0IG51bV9waGRycyAqIHNpemVvZigpPwoKPiBAQCAtOTks NiArMTA3LDIxIEBAIFNFQ1RJT05TCj4gICAgICAgICBfZXJvZGF0YSA9IC47Cj4gICAgfSA6dGV4 dAo+ICAKPiArI2lmIGRlZmluZWQoQlVJTERfSUQpICYmICFkZWZpbmVkKEVGSSkKPiArLyoKPiAr ICogTm8gbWVjaGFuaXNtIHRvIHB1dCBhbiBQVF9OT1RFIGluIHRoZSBFRkkgZmlsZSAtIHNvIHB1 dAo+ICsgKiBpdCBpbiAuZGF0YSBzZWN0aW9uLgo+ICsgKi8KCkkgdGhpbmsgdGhpcyBjb21tZW50 IHJlYWxseSBiZWxvbmdzIGludG8gdGhlIGVhcmxpZXIgYWRkaXRpb24uCgo+ICsgIC4gPSBBTElH Tig0KTsKCkkgdGhpbmsgdGhpcyB3b3VsZCBiZXR0ZXIgYmUgYWRkZWQgaW4gdGhlIEVGSSBjYXNl IHRvby4KCj4gKyAgLm5vdGUgOiB7Cj4gKyAgICAgICBfX25vdGVfZ251X2J1aWxkX2lkX3N0YXJ0 ID0gLjsKPiArICAgICAgICooLm5vdGUuZ251LmJ1aWxkLWlkKQo+ICsgICAgICAgX19ub3RlX2du dV9idWlsZF9pZF9lbmQgPSAuOwo+ICsgICAgICAgKigubm90ZSkKPiArICAgICAgICooLm5vdGUu KikKClRoZSBsYXN0IHR3byBkb24ndCBnZXQgZGVhbHQgd2l0aCBpbiB0aGUgRUZJIGNhc2UgLSB3 aHk/IEFuZCBpZiB5b3UKaW5jbHVkZSBhbGwgbm90ZXMgaGVyZSBhbmQgY29weSB0aGVtIGluIHRo ZWlyIGVudGlyZXR5IGludG8geGVuLmVmaSwKaG93IGlzIF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5k IGV4cGVjdGVkIHRvIGJlIGNvcnJlY3QgdGhlbj8KCj4gLS0tIGEveGVuL2NvbW1vbi92ZXJzaW9u LmMKPiArKysgYi94ZW4vY29tbW9uL3ZlcnNpb24uYwo+IEBAIC0xLDUgKzEsOSBAQAo+ICAjaW5j bHVkZSA8eGVuL2NvbXBpbGUuaD4KPiArI2luY2x1ZGUgPHhlbi9lcnJuby5oPgo+ICsjaW5jbHVk ZSA8eGVuL3N0cmluZy5oPgo+ICsjaW5jbHVkZSA8eGVuL3R5cGVzLmg+Cj4gICNpbmNsdWRlIDx4 ZW4vdmVyc2lvbi5oPgo+ICsjaW5jbHVkZSA8eGVuL2VsZi5oPgoKUGxlYXNlIHB1dCB0aGlzIGxh c3Qgb25lIGludG8gaXRzIGRlc2lnbmF0ZWQgc2xvdCBhcyB3ZWxsLCBjb25zaWRlcmluZwp0aGF0 IHlvdSBhcnJhbmdlIGZvciBhbGwgdGhlIHJlc3QgdG8gYmUgbmljZWx5IHNvcnRlZC4KCj4gK2lu dCB4ZW5fYnVpbGRfaWQoY29uc3Qgdm9pZCAqKnAsIHVuc2lnbmVkIGludCAqbGVuKQo+ICt7Cj4g KyAgICBjb25zdCBFbGZfTm90ZSAqbiA9IF9fbm90ZV9nbnVfYnVpbGRfaWRfc3RhcnQ7Cj4gKyAg ICBzdGF0aWMgYm9vbF90IGNoZWNrZWQgPSAwOwo+ICsKPiArICAgIGlmICggY2hlY2tlZCApCj4g KyAgICB7Cj4gKyAgICAgICAgKmxlbiA9IG4tPmRlc2NzejsKPiArICAgICAgICAqcCA9IEVMRk5P VEVfREVTQyhuKTsKPiArICAgICAgICByZXR1cm4gMDsKPiArICAgIH0KPiArICAgIC8qIC0tYnVp bGQtaWQgaW52b2tlZCB3aXRoIHdyb25nIHBhcmFtZXRlcnMuICovCj4gKyAgICBpZiAoIF9fbm90 ZV9nbnVfYnVpbGRfaWRfZW5kIDw9IF9fbm90ZV9nbnVfYnVpbGRfaWRfc3RhcnQgKQoKUGxlYXNl IHVzZSB0aGUgbG9jYWwgdmFyaWFibGUgaGVyZSwganVzdCBsaWtlIHlvdSBkbyAuLi4KCj4gKyAg ICAgICAgcmV0dXJuIC1FTk9EQVRBOwo+ICsKPiArICAgIC8qIENoZWNrIGZvciBmdWxsIE5vdGUg aGVhZGVyLiAqLwo+ICsgICAgaWYgKCAmblsxXSA+IF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5kICkK Ci4uLiBoZXJlLgoKPiArICAgICAgICByZXR1cm4gLUVOT0RBVEE7Cj4gKwo+ICsgICAgLyogQ2hl Y2sgaWYgd2UgcmVhbGx5IGhhdmUgYSBidWlsZC1pZC4gKi8KPiArICAgIGlmICggTlRfR05VX0JV SUxEX0lEICE9IG4tPnR5cGUgKQo+ICsgICAgICAgIHJldHVybiAtRU5PREFUQTsKPiArCj4gKyAg ICAvKiBTYW5pdHkgY2hlY2ssIG5hbWUgc2hvdWxkIGJlICJHTlUiIGZvciBsZC1nZW5lcmF0ZWQg YnVpbGQtaWQuICovCj4gKyAgICBpZiAoIHN0cm5jbXAoRUxGTk9URV9OQU1FKG4pLCAiR05VIiwg bi0+bmFtZXN6KSAhPSAwICkKPiArICAgICAgICByZXR1cm4gLUVOT0RBVEE7Cj4gKwo+ICsgICAg KmxlbiA9IG4tPmRlc2NzejsKPiArICAgICpwID0gRUxGTk9URV9ERVNDKG4pOwo+ICsKPiArICAg IGNoZWNrZWQgPSAxOwoKQWxsIHRoaXMgY2hlY2tpbmcgd291bGQgcGVyaGFwcyBiZXR0ZXIgYmUg ZG9uZSBpbiBhbiBpbml0Y2FsbCwgYXQgb25jZQphdm9pZGluZyBpdCB0byBiZSBkb25lIG92ZXIg YW5kIG92ZXIgaWYgaXQgZmFpbHMgZm9yIHNvbWUgcmVhc29uLiAKCj4gKyAgICByZXR1cm4gMDsK PiArfQo+ICsKPiArI2Vsc2UKPiArCj4gK2ludCB4ZW5fYnVpbGRfaWQoY29uc3Qgdm9pZCAqKnAs IHVuc2lnbmVkIGludCAqbGVuKQo+ICt7Cj4gKyAgICByZXR1cm4gLUVOT0RBVEE7Cj4gK30KPiAr I2VuZGlmCgpJcyB0aGlzICNlbHNlIHBhcnQgcmVhbGx5IG5lZWRlZD8gSWYgeW91IG9taXR0ZWQg dGhlIEJVSUxEX0lECmRlcGVuZGVuY3kgaW4geGVuLmxkcy5TLCB3b3VsZG4ndCB5b3UganVzdCBm aW5kIGFuIGVtcHR5IHNlY3Rpb24KaGVyZSB3aGVuIHRoZSBsaW5rZXIgaXMgaW5jYXBhYmxlIG9m IC0tYnVpbGQtaWQ/Cgo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi92ZXJzaW9uLmgKPiArKysgYi94 ZW4vaW5jbHVkZS94ZW4vdmVyc2lvbi5oCj4gQEAgLTE0LDQgKzE0LDcgQEAgY29uc3QgY2hhciAq eGVuX2NoYW5nZXNldCh2b2lkKTsKPiAgY29uc3QgY2hhciAqeGVuX2Jhbm5lcih2b2lkKTsKPiAg Y29uc3QgY2hhciAqeGVuX2Rlbnkodm9pZCk7Cj4gIAo+ICsjaW5jbHVkZSA8eGVuL3R5cGVzLmg+ CgpXaHk/IEFuZCBpZiByZWFsbHkgbmVlZGVkLCBpdCBkb2Vzbid0IGJlbG9uZyBpbiB0aGUgbWlk ZGxlIG9mIHRoZSBmaWxlLgoKSmFuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=