From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tobias Klausmann Subject: Re: [Mesa-dev] [PATCH 07/11] glsl: Add arb_cull_distance support Date: Mon, 25 May 2015 00:46:32 +0200 Message-ID: <556254C8.7080407@mni.thm.de> References: <1432490289-29353-1-git-send-email-tobias.johannes.klausmann@mni.thm.de> <1432490289-29353-8-git-send-email-tobias.johannes.klausmann@mni.thm.de> <1432506893.11443.2.camel@yahoo.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1432506893.11443.2.camel-/E1597aS9LT0CCvOHzKKcA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: t_arceri-/E1597aS9LT0CCvOHzKKcA@public.gmane.org Cc: mesa-dev-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org aGksCnJlcGxheSBpbmxpbmUuCgpPbiAyNS4wNS4yMDE1IDAwOjM0LCBUaW1vdGh5IEFyY2VyaSB3 cm90ZToKPiBPbiBTdW4sIDIwMTUtMDUtMjQgYXQgMTk6NTggKzAyMDAsIFRvYmlhcyBLbGF1c21h bm4gd3JvdGU6Cj4+IFNpZ25lZC1vZmYtYnk6IFRvYmlhcyBLbGF1c21hbm4gPHRvYmlhcy5qb2hh bm5lcy5rbGF1c21hbm5AbW5pLnRobS5kZT4KPj4gLS0tCj4+ICAgc3JjL2dsc2wvYXN0X3RvX2hp ci5jcHAgICAgICAgICAgICAgfCAgMTQgKysrKysKPj4gICBzcmMvZ2xzbC9idWlsdGluX3Zhcmlh Ymxlcy5jcHAgICAgICB8ICAxMyArKystCj4+ICAgc3JjL2dsc2wvZ2xjcHAvZ2xjcHAtcGFyc2Uu eSAgICAgICAgfCAgIDMgKwo+PiAgIHNyYy9nbHNsL2dsc2xfcGFyc2VyX2V4dHJhcy5jcHAgICAg IHwgICAxICsKPj4gICBzcmMvZ2xzbC9nbHNsX3BhcnNlcl9leHRyYXMuaCAgICAgICB8ICAgMyAr Cj4+ICAgc3JjL2dsc2wvbGlua192YXJ5aW5ncy5jcHAgICAgICAgICAgfCAgIDIgKy0KPj4gICBz cmMvZ2xzbC9saW5rZXIuY3BwICAgICAgICAgICAgICAgICB8IDEyMSArKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0KPj4gICBzcmMvZ2xzbC9zdGFuZGFsb25lX3NjYWZmb2xkaW5n LmNwcCB8ICAgMSArCj4+ICAgc3JjL2dsc2wvdGVzdHMvdmFyeWluZ3NfdGVzdC5jcHAgICAgfCAg MjcgKysrKysrKysKPj4gICA5IGZpbGVzIGNoYW5nZWQsIDE0NSBpbnNlcnRpb25zKCspLCA0MCBk ZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL3NyYy9nbHNsL2FzdF90b19oaXIuY3BwIGIv c3JjL2dsc2wvYXN0X3RvX2hpci5jcHAKPj4gaW5kZXggOGFlYmIxMy4uNGRiMmIyZSAxMDA2NDQK Pj4gLS0tIGEvc3JjL2dsc2wvYXN0X3RvX2hpci5jcHAKPj4gKysrIGIvc3JjL2dsc2wvYXN0X3Rv X2hpci5jcHAKPj4gQEAgLTEwNDUsNiArMTA0NSwyMCBAQCBjaGVja19idWlsdGluX2FycmF5X21h eF9zaXplKGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIHNpemUsCj4+ICAgICAgICAgX21lc2Ff Z2xzbF9lcnJvcigmbG9jLCBzdGF0ZSwgImBnbF9DbGlwRGlzdGFuY2UnIGFycmF5IHNpemUgY2Fu bm90ICIKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICJiZSBsYXJnZXIgdGhhbiBnbF9NYXhD bGlwRGlzdGFuY2VzICgldSkiLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPkNv bnN0Lk1heENsaXBQbGFuZXMpOwo+PiArICAgfSBlbHNlIGlmIChzdHJjbXAoImdsX0N1bGxEaXN0 YW5jZSIsIG5hbWUpID09IDAKPj4gKyAgICAgICAgICAgICAgJiYgc2l6ZSA+IHN0YXRlLT5Db25z dC5NYXhDbGlwUGxhbmVzKSB7Cj4+ICsgICAgICAvKiBGcm9tIHRoZSBBUkJfY3VsbF9kaXN0YW5j ZSBzcGVjOgo+PiArICAgICAgICoKPj4gKyAgICAgICAqICAgIlRoZSBnbF9DdWxsRGlzdGFuY2Ug YXJyYXkgaXMgcHJlZGVjbGFyZWQgYXMgdW5zaXplZCBhbmQKPj4gKyAgICAgICAqICAgIG11c3Qg YmUgc2l6ZWQgYnkgdGhlIHNoYWRlciBlaXRoZXIgcmVkZWNsYXJpbmcgaXQgd2l0aAo+PiArICAg ICAgICogICAgYSBzaXplIG9yIGluZGV4aW5nIGl0IG9ubHkgd2l0aCBpbnRlZ3JhbCBjb25zdGFu dAo+PiArICAgICAgICogICAgZXhwcmVzc2lvbnMuIFRoZSBzaXplIGRldGVybWluZXMgdGhlIG51 bWJlciBhbmQgc2V0IG9mCj4+ICsgICAgICAgKiAgICBlbmFibGVkIGN1bGwgZGlzdGFuY2VzIGFu ZCBjYW4gYmUgYXQgbW9zdAo+PiArICAgICAgICogICAgZ2xfTWF4Q3VsbERpc3RhbmNlcy4iCj4+ ICsgICAgICAgKi8KPj4gKyAgICAgIF9tZXNhX2dsc2xfZXJyb3IoJmxvYywgc3RhdGUsICJgZ2xf Q3VsbERpc3RhbmNlJyBhcnJheSBzaXplIGNhbm5vdCAiCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICJiZSBsYXJnZXIgdGhhbiBnbF9NYXhDdWxsRGlzdGFuY2VzICgldSkiLAo+PiArICAgICAg ICAgICAgICAgICAgICAgICBzdGF0ZS0+Q29uc3QuTWF4Q2xpcFBsYW5lcyk7Cj4+ICAgICAgfQo+ PiAgIH0KPj4gICAKPj4gZGlmZiAtLWdpdCBhL3NyYy9nbHNsL2J1aWx0aW5fdmFyaWFibGVzLmNw cCBiL3NyYy9nbHNsL2J1aWx0aW5fdmFyaWFibGVzLmNwcAo+PiBpbmRleCA2ODA2YWExLi43OGM4 ZGIyIDEwMDY0NAo+PiAtLS0gYS9zcmMvZ2xzbC9idWlsdGluX3ZhcmlhYmxlcy5jcHAKPj4gKysr IGIvc3JjL2dsc2wvYnVpbHRpbl92YXJpYWJsZXMuY3BwCj4+IEBAIC0yOTgsNyArMjk4LDcgQEAg cHVibGljOgo+PiAgICAgIGNvbnN0IGdsc2xfdHlwZSAqY29uc3RydWN0X2ludGVyZmFjZV9pbnN0 YW5jZSgpIGNvbnN0Owo+PiAgIAo+PiAgIHByaXZhdGU6Cj4+IC0gICBnbHNsX3N0cnVjdF9maWVs ZCBmaWVsZHNbMTBdOwo+PiArICAgZ2xzbF9zdHJ1Y3RfZmllbGQgZmllbGRzWzExXTsKPj4gICAg ICB1bnNpZ25lZCBudW1fZmllbGRzOwo+PiAgIH07Cj4+ICAgCj4+IEBAIC02MDAsNiArNjAwLDEy IEBAIGJ1aWx0aW5fdmFyaWFibGVfZ2VuZXJhdG9yOjpnZW5lcmF0ZV9jb25zdGFudHMoKQo+PiAg ICAgICAgIGFkZF9jb25zdCgiZ2xfTWF4VmFyeWluZ0NvbXBvbmVudHMiLCBzdGF0ZS0+Y3R4LT5D b25zdC5NYXhWYXJ5aW5nICogNCk7Cj4+ICAgICAgfQo+PiAgIAo+PiArICAgaWYgKHN0YXRlLT5p c192ZXJzaW9uKDQ1MCwgMCkgfHwgc3RhdGUtPkFSQl9jdWxsX2Rpc3RhbmNlX2VuYWJsZSkgewo+ PiArICAgICAgYWRkX2NvbnN0KCJnbF9NYXhDdWxsRGlzdGFuY2VzIiwgc3RhdGUtPkNvbnN0Lk1h eENsaXBQbGFuZXMpOwo+PiArICAgICAgYWRkX2NvbnN0KCJnbF9NYXhDb21iaW5lZENsaXBBbmRD dWxsRGlzdGFuY2VzIiwKPj4gKyAgICAgICAgICAgICAgICBzdGF0ZS0+Q29uc3QuTWF4Q2xpcFBs YW5lcyk7Cj4+ICsgICB9Cj4+ICsKPj4gICAgICBpZiAoc3RhdGUtPmlzX3ZlcnNpb24oMTUwLCAw KSkgewo+PiAgICAgICAgIGFkZF9jb25zdCgiZ2xfTWF4VmVydGV4T3V0cHV0Q29tcG9uZW50cyIs Cj4+ICAgICAgICAgICAgICAgICAgIHN0YXRlLT5Db25zdC5NYXhWZXJ0ZXhPdXRwdXRDb21wb25l bnRzKTsKPj4gQEAgLTEwMjksNiArMTAzNSwxMSBAQCBidWlsdGluX3ZhcmlhYmxlX2dlbmVyYXRv cjo6Z2VuZXJhdGVfdmFyeWluZ3MoKQo+PiAgICAgICAgICAgICAgICAgICAgICAiZ2xfQ2xpcERp c3RhbmNlIik7Cj4+ICAgICAgfQo+PiAgIAo+PiArICAgaWYgKHN0YXRlLT5pc192ZXJzaW9uKDQ1 MCwgMCkgfHwgc3RhdGUtPkFSQl9jdWxsX2Rpc3RhbmNlX2VuYWJsZSkgewo+PiArICAgICAgIEFE RF9WQVJZSU5HKFZBUllJTkdfU0xPVF9DVUxMX0RJU1QwLCBhcnJheShmbG9hdF90LCAwKSwKPj4g KyAgICAgICAgICAgICAgICAgICAiZ2xfQ3VsbERpc3RhbmNlIik7Cj4+ICsgICB9Cj4+ICsKPj4g ICAgICBpZiAoY29tcGF0aWJpbGl0eSkgewo+PiAgICAgICAgIEFERF9WQVJZSU5HKFZBUllJTkdf U0xPVF9URVgwLCBhcnJheSh2ZWM0X3QsIDApLCAiZ2xfVGV4Q29vcmQiKTsKPj4gICAgICAgICBB RERfVkFSWUlORyhWQVJZSU5HX1NMT1RfRk9HQywgZmxvYXRfdCwgImdsX0ZvZ0ZyYWdDb29yZCIp Owo+PiBkaWZmIC0tZ2l0IGEvc3JjL2dsc2wvZ2xjcHAvZ2xjcHAtcGFyc2UueSBiL3NyYy9nbHNs L2dsY3BwL2dsY3BwLXBhcnNlLnkKPj4gaW5kZXggYTExYjZiMi4uNTM2YzE3ZiAxMDA2NDQKPj4g LS0tIGEvc3JjL2dsc2wvZ2xjcHAvZ2xjcHAtcGFyc2UueQo+PiArKysgYi9zcmMvZ2xzbC9nbGNw cC9nbGNwcC1wYXJzZS55Cj4+IEBAIC0yNDgzLDYgKzI0ODMsOSBAQCBfZ2xjcHBfcGFyc2VyX2hh bmRsZV92ZXJzaW9uX2RlY2xhcmF0aW9uKGdsY3BwX3BhcnNlcl90ICpwYXJzZXIsIGludG1heF90 IHZlcnNpbwo+PiAgIAo+PiAgICAgICAgICAgICAgICAgaWYgKGV4dGVuc2lvbnMtPkFSQl9zaGFk ZXJfcHJlY2lzaW9uKQo+PiAgICAgICAgICAgICAgICAgICAgYWRkX2J1aWx0aW5fZGVmaW5lKHBh cnNlciwgIkdMX0FSQl9zaGFkZXJfcHJlY2lzaW9uIiwgMSk7Cj4+ICsKPj4gKyAgICAgICAgICBp ZiAoZXh0ZW5zaW9ucy0+QVJCX2N1bGxfZGlzdGFuY2UpCj4+ICsJICAgICAgICAgYWRkX2J1aWx0 aW5fZGVmaW5lKHBhcnNlciwgIkdMX0FSQl9jdWxsX2Rpc3RhbmNlIiwgMSk7Cj4+ICAgCSAgIH0K Pj4gICAJfQo+PiAgIAo+PiBkaWZmIC0tZ2l0IGEvc3JjL2dsc2wvZ2xzbF9wYXJzZXJfZXh0cmFz LmNwcCBiL3NyYy9nbHNsL2dsc2xfcGFyc2VyX2V4dHJhcy5jcHAKPj4gaW5kZXggMDQ2ZDVkNy4u ZDFjZDhmZiAxMDA2NDQKPj4gLS0tIGEvc3JjL2dsc2wvZ2xzbF9wYXJzZXJfZXh0cmFzLmNwcAo+ PiArKysgYi9zcmMvZ2xzbC9nbHNsX3BhcnNlcl9leHRyYXMuY3BwCj4+IEBAIC01NTQsNiArNTU0 LDcgQEAgc3RhdGljIGNvbnN0IF9tZXNhX2dsc2xfZXh0ZW5zaW9uIF9tZXNhX2dsc2xfc3VwcG9y dGVkX2V4dGVuc2lvbnNbXSA9IHsKPj4gICAgICBFWFQoQVJCX2FycmF5c19vZl9hcnJheXMsICAg ICAgICAgICB0cnVlLCAgZmFsc2UsICAgICBBUkJfYXJyYXlzX29mX2FycmF5cyksCj4+ICAgICAg RVhUKEFSQl9jb21wdXRlX3NoYWRlciwgICAgICAgICAgICAgdHJ1ZSwgIGZhbHNlLCAgICAgQVJC X2NvbXB1dGVfc2hhZGVyKSwKPj4gICAgICBFWFQoQVJCX2NvbnNlcnZhdGl2ZV9kZXB0aCwgICAg ICAgICB0cnVlLCAgZmFsc2UsICAgICBBUkJfY29uc2VydmF0aXZlX2RlcHRoKSwKPj4gKyAgIEVY VChBUkJfY3VsbF9kaXN0YW5jZSwgICAgICAgICAgICAgIHRydWUsICBmYWxzZSwgICAgIEFSQl9j dWxsX2Rpc3RhbmNlKSwKPj4gICAgICBFWFQoQVJCX2Rlcml2YXRpdmVfY29udHJvbCwgICAgICAg ICB0cnVlLCAgZmFsc2UsICAgICBBUkJfZGVyaXZhdGl2ZV9jb250cm9sKSwKPj4gICAgICBFWFQo QVJCX2RyYXdfYnVmZmVycywgICAgICAgICAgICAgICB0cnVlLCAgZmFsc2UsICAgICBkdW1teV90 cnVlKSwKPj4gICAgICBFWFQoQVJCX2RyYXdfaW5zdGFuY2VkLCAgICAgICAgICAgICB0cnVlLCAg ZmFsc2UsICAgICBBUkJfZHJhd19pbnN0YW5jZWQpLAo+PiBkaWZmIC0tZ2l0IGEvc3JjL2dsc2wv Z2xzbF9wYXJzZXJfZXh0cmFzLmggYi9zcmMvZ2xzbC9nbHNsX3BhcnNlcl9leHRyYXMuaAo+PiBp bmRleCA5YTBjMjRlLi44NTcyOTA1IDEwMDY0NAo+PiAtLS0gYS9zcmMvZ2xzbC9nbHNsX3BhcnNl cl9leHRyYXMuaAo+PiArKysgYi9zcmMvZ2xzbC9nbHNsX3BhcnNlcl9leHRyYXMuaAo+PiBAQCAt Mzc4LDYgKzM3OCw3IEBAIHN0cnVjdCBfbWVzYV9nbHNsX3BhcnNlX3N0YXRlIHsKPj4gICAKPj4g ICAgICAgICAvKiBBUkJfdmlld3BvcnRfYXJyYXkgKi8KPj4gICAgICAgICB1bnNpZ25lZCBNYXhW aWV3cG9ydHM7Cj4+ICsKPj4gICAgICB9IENvbnN0Owo+PiAgIAo+PiAgICAgIC8qKgo+PiBAQCAt NDMwLDYgKzQzMSw4IEBAIHN0cnVjdCBfbWVzYV9nbHNsX3BhcnNlX3N0YXRlIHsKPj4gICAgICBi b29sIEFSQl9jb21wdXRlX3NoYWRlcl93YXJuOwo+PiAgICAgIGJvb2wgQVJCX2NvbnNlcnZhdGl2 ZV9kZXB0aF9lbmFibGU7Cj4+ICAgICAgYm9vbCBBUkJfY29uc2VydmF0aXZlX2RlcHRoX3dhcm47 Cj4+ICsgICBib29sIEFSQl9jdWxsX2Rpc3RhbmNlX2VuYWJsZTsKPj4gKyAgIGJvb2wgQVJCX2N1 bGxfZGlzdGFuY2Vfd2FybjsKPj4gICAgICBib29sIEFSQl9kZXJpdmF0aXZlX2NvbnRyb2xfZW5h YmxlOwo+PiAgICAgIGJvb2wgQVJCX2Rlcml2YXRpdmVfY29udHJvbF93YXJuOwo+PiAgICAgIGJv b2wgQVJCX2RyYXdfYnVmZmVyc19lbmFibGU7Cj4+IGRpZmYgLS1naXQgYS9zcmMvZ2xzbC9saW5r X3ZhcnlpbmdzLmNwcCBiL3NyYy9nbHNsL2xpbmtfdmFyeWluZ3MuY3BwCj4+IGluZGV4IDQ2Zjg0 YzYuLjgxYzBkYWMgMTAwNjQ0Cj4+IC0tLSBhL3NyYy9nbHNsL2xpbmtfdmFyeWluZ3MuY3BwCj4+ ICsrKyBiL3NyYy9nbHNsL2xpbmtfdmFyeWluZ3MuY3BwCj4+IEBAIC00MDQsNyArNDA0LDcgQEAg dGZlZWRiYWNrX2RlY2w6OmFzc2lnbl9sb2NhdGlvbihzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4LAo+ PiAgICAgICAgICAgIHRoaXMtPm1hdGNoZWRfY2FuZGlkYXRlLT50eXBlLT5maWVsZHMuYXJyYXkt PnZlY3Rvcl9lbGVtZW50czsKPj4gICAgICAgICB1bnNpZ25lZCBhY3R1YWxfYXJyYXlfc2l6ZSA9 Cj4+ICAgICAgICAgICAgKHRoaXMtPmlzX2NsaXBfZGlzdGFuY2VfbWVzYSB8fCB0aGlzLT5pc19j dWxsX2Rpc3RhbmNlX21lc2EpID8KPj4gLSAgICAgICAgIHByb2ctPkxhc3RDbGlwRGlzdGFuY2VB cnJheVNpemUgOgo+PiArICAgICAgICAgcHJvZy0+TGFzdENsaXBDdWxsRGlzdGFuY2VBcnJheVNp emUgOgo+PiAgICAgICAgICAgIHRoaXMtPm1hdGNoZWRfY2FuZGlkYXRlLT50eXBlLT5hcnJheV9z aXplKCk7Cj4+ICAgCj4+ICAgICAgICAgaWYgKHRoaXMtPmlzX3N1YnNjcmlwdGVkKSB7Cj4+IGRp ZmYgLS1naXQgYS9zcmMvZ2xzbC9saW5rZXIuY3BwIGIvc3JjL2dsc2wvbGlua2VyLmNwcAo+PiBp bmRleCBlNjE2NTIwLi44YmIxYTVjIDEwMDY0NAo+PiAtLS0gYS9zcmMvZ2xzbC9saW5rZXIuY3Bw Cj4+ICsrKyBiL3NyYy9nbHNsL2xpbmtlci5jcHAKPj4gQEAgLTQ3NCw0OSArNDc0LDk0IEBAIGxp bmtfaW52YWxpZGF0ZV92YXJpYWJsZV9sb2NhdGlvbnMoZXhlY19saXN0ICppcikKPj4gICB9Cj4+ ICAgCj4+Cj4+ICsKPj4gICAvKioKPj4gLSAqIFNldCBVc2VzQ2xpcERpc3RhbmNlIGFuZCBDbGlw RGlzdGFuY2VBcnJheVNpemUgYmFzZWQgb24gdGhlIGdpdmVuIHNoYWRlci4KPj4gKyAqIFNldCBV c2VzQ2xpcEN1bGxEaXN0YW5jZSBhbmQgQ2xpcEN1bGxEaXN0YW5jZUFycmF5U2l6ZSBiYXNlZCBv biB0aGUgZ2l2ZW4KPj4gKyAqIHNoYWRlci4KPj4gICAgKgo+PiAtICogQWxzbyBjaGVjayBmb3Ig ZXJyb3JzIGJhc2VkIG9uIGluY29ycmVjdCB1c2FnZSBvZiBnbF9DbGlwVmVydGV4IGFuZAo+PiAt ICogZ2xfQ2xpcERpc3RhbmNlLgo+PiArICogQWxzbyBjaGVjayBmb3IgZXJyb3JzIGJhc2VkIG9u IGluY29ycmVjdCB1c2FnZSBvZiBnbF9DbGlwVmVydGV4LAo+PiArICogZ2xfQ2xpcERpc3RhbmNl IGFuZCBnbF9DdWxsRGlzdGFuY2UuCj4+ICsgKgo+PiArICogQWRkaXRpb25hbGx5IHRlc3Qgd2hl dGhlciB0aGUgYXJyYXlzIGdsX0NsaXBEaXN0YW5jZSBhbmQgZ2xfQ3VsbERpc3RhbmNlCj4+ICsg KiBleGNlZWQgdGhlIG1heGltdW0gc2l6ZSBkZWZpbmVkIGJ5IGdsX01heENvbWJpbmVkQ2xpcEFu ZEN1bGxEaXN0YW5jZXMuCj4+ICAgICoKPj4gICAgKiBSZXR1cm4gZmFsc2UgaWYgYW4gZXJyb3Ig d2FzIHJlcG9ydGVkLgo+PiAgICAqLwo+PiAgIHN0YXRpYyB2b2lkCj4+IC1hbmFseXplX2NsaXBf dXNhZ2Uoc3RydWN0IGdsX3NoYWRlcl9wcm9ncmFtICpwcm9nLAo+PiAtICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBnbF9zaGFkZXIgKnNoYWRlciwgR0xib29sZWFuICpVc2VzQ2xpcERpc3RhbmNl LAo+PiAtICAgICAgICAgICAgICAgICAgIEdMdWludCAqQ2xpcERpc3RhbmNlQXJyYXlTaXplKQo+ PiArYW5hbHl6ZV9jbGlwX2N1bGxfdXNhZ2Uoc3RydWN0IGdsX3NoYWRlcl9wcm9ncmFtICpwcm9n LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGdsX3NoYWRlciAqc2hhZGVyLAo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGdsX2NvbnRleHQgKmN0eCwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgIEdMYm9vbGVhbiAqVXNlc0NsaXBDdWxsRGlzdGFuY2UsCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICBHTHVpbnQgKkNsaXBDdWxsRGlzdGFuY2VBcnJheVNp emUpCj4+ICAgewo+PiAtICAgKkNsaXBEaXN0YW5jZUFycmF5U2l6ZSA9IDA7Cj4+ICsgICAqQ2xp cEN1bGxEaXN0YW5jZUFycmF5U2l6ZSA9IDA7Cj4+ICAgCj4+IC0gICBpZiAoIXByb2ctPklzRVMg JiYgcHJvZy0+VmVyc2lvbiA+PSAxMzApIHsKPj4gLSAgICAgIC8qIEZyb20gc2VjdGlvbiA3LjEg KFZlcnRleCBTaGFkZXIgU3BlY2lhbCBWYXJpYWJsZXMpIG9mIHRoZQo+PiAtICAgICAgICogR0xT TCAxLjMwIHNwZWM6Cj4+IC0gICAgICAgKgo+PiAtICAgICAgICogICAiSXQgaXMgYW4gZXJyb3Ig Zm9yIGEgc2hhZGVyIHRvIHN0YXRpY2FsbHkgd3JpdGUgYm90aAo+PiAtICAgICAgICogICBnbF9D bGlwVmVydGV4IGFuZCBnbF9DbGlwRGlzdGFuY2UuIgo+PiAtICAgICAgICoKPj4gLSAgICAgICAq IFRoaXMgZG9lcyBub3QgYXBwbHkgdG8gR0xTTCBFUyBzaGFkZXJzLCBzaW5jZSBHTFNMIEVTIGRl ZmluZXMgbmVpdGhlcgo+PiAtICAgICAgICogZ2xfQ2xpcFZlcnRleCBub3IgZ2xfQ2xpcERpc3Rh bmNlLgo+PiAtICAgICAgICovCj4+ICsgICBpZiAocHJvZy0+SXNFUyAmJiBwcm9nLT5WZXJzaW9u IDwgMTMwKSB7Cj4+ICsgICAgICAqVXNlc0NsaXBDdWxsRGlzdGFuY2UgPSBmYWxzZTsKPj4gKyAg IH0gZWxzZSB7Cj4+ICAgICAgICAgZmluZF9hc3NpZ25tZW50X3Zpc2l0b3IgY2xpcF92ZXJ0ZXgo ImdsX0NsaXBWZXJ0ZXgiKTsKPj4gICAgICAgICBmaW5kX2Fzc2lnbm1lbnRfdmlzaXRvciBjbGlw X2Rpc3RhbmNlKCJnbF9DbGlwRGlzdGFuY2UiKTsKPj4gKyAgICAgIGZpbmRfYXNzaWdubWVudF92 aXNpdG9yIGN1bGxfZGlzdGFuY2UoImdsX0N1bGxEaXN0YW5jZSIpOwo+PiAgIAo+PiAgICAgICAg IGNsaXBfdmVydGV4LnJ1bihzaGFkZXItPmlyKTsKPj4gICAgICAgICBjbGlwX2Rpc3RhbmNlLnJ1 bihzaGFkZXItPmlyKTsKPj4gKyAgICAgIGN1bGxfZGlzdGFuY2UucnVuKHNoYWRlci0+aXIpOwo+ PiArCj4+ICsgICAgICAvKiBGcm9tIHRoZSBBUkJfY3VsbF9kaXN0YW5jZSBzcGVjOgo+PiArICAg ICAgICoKPj4gKyAgICAgICAqIEl0IGlzIGEgY29tcGlsZS10aW1lIG9yIGxpbmstdGltZSBlcnJv ciBmb3IgdGhlIHNldCBvZiBzaGFkZXJzIGZvcm1pbmcKPj4gKyAgICAgICAqIGEgcHJvZ3JhbSB0 byBzdGF0aWNhbGx5IHJlYWQgb3Igd3JpdGUgYm90aCBnbF9DbGlwVmVydGV4IGFuZCBlaXRoZXIK Pj4gKyAgICAgICAqIGdsX0NsaXBEaXN0YW5jZSBvciBnbF9DdWxsRGlzdGFuY2UuCj4+ICsgICAg ICAgKgo+PiArICAgICAgICogVGhpcyBkb2VzIG5vdCBhcHBseSB0byBHTFNMIEVTIHNoYWRlcnMs IHNpbmNlIEdMU0wgRVMgZGVmaW5lcyBuZWl0aGVyCj4+ICsgICAgICAgKiBnbF9DbGlwVmVydGV4 LCBnbF9DbGlwRGlzdGFuY2Ugb3IgZ2xfQ3VsbERpc3RhbmNlLgo+PiArICAgICAgICovCj4+ICAg ICAgICAgaWYgKGNsaXBfdmVydGV4LnZhcmlhYmxlX2ZvdW5kKCkgJiYgY2xpcF9kaXN0YW5jZS52 YXJpYWJsZV9mb3VuZCgpKSB7Cj4+ICAgICAgICAgICAgbGlua2VyX2Vycm9yKHByb2csICIlcyBz aGFkZXIgd3JpdGVzIHRvIGJvdGggYGdsX0NsaXBWZXJ0ZXgnICIKPj4gICAgICAgICAgICAgICAg ICAgICAgICAgImFuZCBgZ2xfQ2xpcERpc3RhbmNlJ1xuIiwKPj4gICAgICAgICAgICAgICAgICAg ICAgICAgX21lc2Ffc2hhZGVyX3N0YWdlX3RvX3N0cmluZyhzaGFkZXItPlN0YWdlKSk7Cj4+ICAg ICAgICAgICAgcmV0dXJuOwo+PiAgICAgICAgIH0KPj4gLSAgICAgICpVc2VzQ2xpcERpc3RhbmNl ID0gY2xpcF9kaXN0YW5jZS52YXJpYWJsZV9mb3VuZCgpOwo+PiArICAgICAgaWYgKGNsaXBfdmVy dGV4LnZhcmlhYmxlX2ZvdW5kKCkgJiYgY3VsbF9kaXN0YW5jZS52YXJpYWJsZV9mb3VuZCgpKSB7 Cj4+ICsgICAgICAgICBsaW5rZXJfZXJyb3IocHJvZywgIiVzIHNoYWRlciB3cml0ZXMgdG8gYm90 aCBgZ2xfQ2xpcFZlcnRleCcgIgo+PiArICAgICAgICAgICAgICAgICAgICAgICJhbmQgYGdsX0N1 bGxEaXN0YW5jZSdcbiIsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgX21lc2Ffc2hhZGVyX3N0 YWdlX3RvX3N0cmluZyhzaGFkZXItPlN0YWdlKSk7Cj4+ICsgICAgICAgICByZXR1cm47Cj4+ICsg ICAgICB9Cj4+ICsKPj4gKyAgICAgICpVc2VzQ2xpcEN1bGxEaXN0YW5jZSA9IGNsaXBfZGlzdGFu Y2UudmFyaWFibGVfZm91bmQoKSB8Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj dWxsX2Rpc3RhbmNlLnZhcmlhYmxlX2ZvdW5kKCk7Cj4+ICsKPj4gICAgICAgICBpcl92YXJpYWJs ZSAqY2xpcF9kaXN0YW5jZV92YXIgPQo+PiAgICAgICAgICAgIHNoYWRlci0+c3ltYm9scy0+Z2V0 X3ZhcmlhYmxlKCJnbF9DbGlwRGlzdGFuY2UiKTsKPj4gKyAgICAgIGlyX3ZhcmlhYmxlICpjdWxs X2Rpc3RhbmNlX3ZhciA9Cj4+ICsgICAgICAgICBzaGFkZXItPnN5bWJvbHMtPmdldF92YXJpYWJs ZSgiZ2xfQ3VsbERpc3RhbmNlIik7Cj4+ICsKPj4gICAgICAgICBpZiAoY2xpcF9kaXN0YW5jZV92 YXIpCj4+IC0gICAgICAgICAqQ2xpcERpc3RhbmNlQXJyYXlTaXplID0gY2xpcF9kaXN0YW5jZV92 YXItPnR5cGUtPmxlbmd0aDsKPj4gLSAgIH0gZWxzZSB7Cj4+IC0gICAgICAqVXNlc0NsaXBEaXN0 YW5jZSA9IGZhbHNlOwo+PiArICAgICAgICAgKkNsaXBDdWxsRGlzdGFuY2VBcnJheVNpemUgPSBj bGlwX2Rpc3RhbmNlX3Zhci0+dHlwZS0+d2FzX3Vuc2l6ZWQgPwo+PiArICAgICAgICAgICAgICAg Y2xpcF9kaXN0YW5jZV92YXItPnR5cGUtPmxlbmd0aCAgLTEgOgo+PiArICAgICAgICAgICAgICAg Y2xpcF9kaXN0YW5jZV92YXItPnR5cGUtPmxlbmd0aDsKPj4gKwo+PiArICAgICAgaWYgKGN1bGxf ZGlzdGFuY2VfdmFyKQo+PiArICAgICAgICAgKkNsaXBDdWxsRGlzdGFuY2VBcnJheVNpemUrPSBj dWxsX2Rpc3RhbmNlX3Zhci0+dHlwZS0+d2FzX3Vuc2l6ZWQgPwo+PiArICAgICAgICAgICAgICAg Y3VsbF9kaXN0YW5jZV92YXItPnR5cGUtPmxlbmd0aCAtMSA6Cj4+ICsgICAgICAgICAgICAgICBj dWxsX2Rpc3RhbmNlX3Zhci0+dHlwZS0+bGVuZ3RoOwo+Cj4gSG93IGNvbWUgdGhpcyBuZWVkcyB0 byBiZSBkb25lIGZvciBmb3JtZXIgdW5zaXplZCBhcnJheXM/Cj4KCldlIHJlcGxhY2UgYW4gdW5z aXplZCBhcnJheSB3aXRoIGEgZGVmYXVsdCBzaXplIG9mIDEgKCBmaXh1cF90eXBlKCkgKSAsIApz byB3aXRoIGVpdGhlciBjdWxsIG9yIGNsaXAgc2V0IHRvIG1heCAoOCkgYW5kIHRoZSBvdGhlciBh cnJheSBsZWZ0IAp1bnNpemVkIHdlIHdvdWxkIGVuZCB1cCB3aXRoIGEgdG90YWwgb2YgOSByZXBv cnRlZCwgdGhhdCB3b3VsZCB0cmlnZ2VyIAp0aGUgZXJyb3IgYmVsb3cuCgo+Cj4+ICsKPj4gKyAg ICAgIC8qIEZyb20gdGhlIEFSQl9jdWxsX2Rpc3RhbmNlIHNwZWM6Cj4+ICsgICAgICAgKgo+PiAr ICAgICAgICogSXQgaXMgYSBjb21waWxlLXRpbWUgb3IgbGluay10aW1lIGVycm9yIGZvciB0aGUg c2V0IG9mIHNoYWRlcnMgZm9ybWluZwo+PiArICAgICAgICogYSBwcm9ncmFtIHRvIGhhdmUgdGhl IHN1bSBvZiB0aGUgc2l6ZXMgb2YgdGhlIGdsX0NsaXBEaXN0YW5jZSBhbmQKPj4gKyAgICAgICAq IGdsX0N1bGxEaXN0YW5jZSBhcnJheXMgdG8gYmUgbGFyZ2VyIHRoYW4KPj4gKyAgICAgICAqIGds X01heENvbWJpbmVkQ2xpcEFuZEN1bGxEaXN0YW5jZXMuCj4+ICsgICAgICAgKi8KPj4gKyAgICAg IGlmICgqQ2xpcEN1bGxEaXN0YW5jZUFycmF5U2l6ZSA+IGN0eC0+Q29uc3QuTWF4Q2xpcFBsYW5l cykgewo+PiArICAgICAgICAgIGxpbmtlcl9lcnJvcihwcm9nLCAiJXMgc2hhZGVyOiB0aGUgY29t YmluZWQgc2l6ZSBvZiAiCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICInZ2xfQ2xpcERpc3Rh bmNlJyBhbmQgJ2dsX0N1bGxEaXN0YW5jZScgc2l6ZSBjYW5ub3QgIgo+PiArICAgICAgICAgICAg ICAgICAgICAgICAiYmUgbGFyZ2VyIHRoYW4gIgo+PiArICAgICAgICAgICAgICAgICAgICAgICAi Z2xfTWF4Q29tYmluZWRDbGlwQW5kQ3VsbERpc3RhbmNlcyAoJXUpIiwKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgX21lc2Ffc2hhZGVyX3N0YWdlX3RvX3N0cmluZyhzaGFkZXItPlN0YWdlKSwK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5Db25zdC5NYXhDbGlwUGxhbmVzKTsKPj4g KyAgICAgIH0KPj4gICAgICB9Cj4+ICAgfQo+PiAgIAo+PiBAQCAtNTI0LDE0ICs1NjksMTQgQEAg YW5hbHl6ZV9jbGlwX3VzYWdlKHN0cnVjdCBnbF9zaGFkZXJfcHJvZ3JhbSAqcHJvZywKPj4gICAv KioKPj4gICAgKiBWZXJpZnkgdGhhdCBhIHZlcnRleCBzaGFkZXIgZXhlY3V0YWJsZSBtZWV0cyBh bGwgc2VtYW50aWMgcmVxdWlyZW1lbnRzLgo+PiAgICAqCj4+IC0gKiBBbHNvIHNldHMgcHJvZy0+ VmVydC5Vc2VzQ2xpcERpc3RhbmNlIGFuZCBwcm9nLT5WZXJ0LkNsaXBEaXN0YW5jZUFycmF5U2l6 ZQo+PiAtICogYXMgYSBzaWRlIGVmZmVjdC4KPj4gKyAqIEFsc28gc2V0cyBwcm9nLT5WZXJ0LlVz ZXNDbGlwQ3VsbERpc3RhbmNlIGFuZAo+PiArICogcHJvZy0+VmVydC5DbGlwQ3VsbERpc3RhbmNl QXJyYXlTaXplIGFzIGEgc2lkZSBlZmZlY3QuCj4+ICAgICoKPj4gICAgKiBccGFyYW0gc2hhZGVy ICBWZXJ0ZXggc2hhZGVyIGV4ZWN1dGFibGUgdG8gYmUgdmVyaWZpZWQKPj4gICAgKi8KPj4gICB2 b2lkCj4+ICAgdmFsaWRhdGVfdmVydGV4X3NoYWRlcl9leGVjdXRhYmxlKHN0cnVjdCBnbF9zaGFk ZXJfcHJvZ3JhbSAqcHJvZywKPj4gLQkJCQkgIHN0cnVjdCBnbF9zaGFkZXIgKnNoYWRlcikKPj4g KwkJCQkgIHN0cnVjdCBnbF9zaGFkZXIgKnNoYWRlciwgc3RydWN0IGdsX2NvbnRleHQgKmN0eCkK Pj4gICB7Cj4+ICAgICAgaWYgKHNoYWRlciA9PSBOVUxMKQo+PiAgICAgICAgIHJldHVybjsKPj4g QEAgLTU3OCw4ICs2MjMsOCBAQCB2YWxpZGF0ZV92ZXJ0ZXhfc2hhZGVyX2V4ZWN1dGFibGUoc3Ry dWN0IGdsX3NoYWRlcl9wcm9ncmFtICpwcm9nLAo+PiAgICAgICAgIH0KPj4gICAgICB9Cj4+ICAg Cj4+IC0gICBhbmFseXplX2NsaXBfdXNhZ2UocHJvZywgc2hhZGVyLCAmcHJvZy0+VmVydC5Vc2Vz Q2xpcERpc3RhbmNlLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICZwcm9nLT5WZXJ0LkNsaXBE aXN0YW5jZUFycmF5U2l6ZSk7Cj4+ICsgICBhbmFseXplX2NsaXBfY3VsbF91c2FnZShwcm9nLCBz aGFkZXIsIGN0eCwgJnByb2ctPlZlcnQuVXNlc0NsaXBDdWxsRGlzdGFuY2UsCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAmcHJvZy0+VmVydC5DbGlwQ3VsbERpc3RhbmNlQXJyYXlTaXpl KTsKPj4gICB9Cj4+ICAgCj4+Cj4+IEBAIC01OTAsNyArNjM1LDcgQEAgdmFsaWRhdGVfdmVydGV4 X3NoYWRlcl9leGVjdXRhYmxlKHN0cnVjdCBnbF9zaGFkZXJfcHJvZ3JhbSAqcHJvZywKPj4gICAg Ki8KPj4gICB2b2lkCj4+ICAgdmFsaWRhdGVfZnJhZ21lbnRfc2hhZGVyX2V4ZWN1dGFibGUoc3Ry dWN0IGdsX3NoYWRlcl9wcm9ncmFtICpwcm9nLAo+PiAtCQkJCSAgICBzdHJ1Y3QgZ2xfc2hhZGVy ICpzaGFkZXIpCj4+ICsJCQkJICAgIHN0cnVjdCBnbF9zaGFkZXIgKnNoYWRlciwgc3RydWN0IGds X2NvbnRleHQgKmN0eCkKPj4gICB7Cj4+ICAgICAgaWYgKHNoYWRlciA9PSBOVUxMKQo+PiAgICAg ICAgIHJldHVybjsKPj4gQEAgLTYxMCwxNCArNjU1LDE0IEBAIHZhbGlkYXRlX2ZyYWdtZW50X3No YWRlcl9leGVjdXRhYmxlKHN0cnVjdCBnbF9zaGFkZXJfcHJvZ3JhbSAqcHJvZywKPj4gICAvKioK Pj4gICAgKiBWZXJpZnkgdGhhdCBhIGdlb21ldHJ5IHNoYWRlciBleGVjdXRhYmxlIG1lZXRzIGFs bCBzZW1hbnRpYyByZXF1aXJlbWVudHMKPj4gICAgKgo+PiAtICogQWxzbyBzZXRzIHByb2ctPkdl b20uVmVydGljZXNJbiwgcHJvZy0+R2VvbS5Vc2VzQ2xpcERpc3RhbmNlLCBhbmQKPj4gLSAqIHBy b2ctPkdlb20uQ2xpcERpc3RhbmNlQXJyYXlTaXplIGFzIGEgc2lkZSBlZmZlY3QuCj4+ICsgKiBB bHNvIHNldHMgcHJvZy0+R2VvbS5WZXJ0aWNlc0luLCBwcm9nLT5HZW9tLlVzZXNDbGlwQ3VsbERp c3RhbmNlLCBhbmQKPj4gKyAqIHByb2ctPkdlb20uQ2xpcEN1bGxEaXN0YW5jZUFycmF5U2l6ZSBh cyBhIHNpZGUgZWZmZWN0Lgo+PiAgICAqCj4+ICAgICogXHBhcmFtIHNoYWRlciBHZW9tZXRyeSBz aGFkZXIgZXhlY3V0YWJsZSB0byBiZSB2ZXJpZmllZAo+PiAgICAqLwo+PiAgIHZvaWQKPj4gICB2 YWxpZGF0ZV9nZW9tZXRyeV9zaGFkZXJfZXhlY3V0YWJsZShzdHJ1Y3QgZ2xfc2hhZGVyX3Byb2dy YW0gKnByb2csCj4+IC0JCQkJICAgIHN0cnVjdCBnbF9zaGFkZXIgKnNoYWRlcikKPj4gKwkJCQkg ICAgc3RydWN0IGdsX3NoYWRlciAqc2hhZGVyLCBzdHJ1Y3QgZ2xfY29udGV4dCAqY3R4KQo+PiAg IHsKPj4gICAgICBpZiAoc2hhZGVyID09IE5VTEwpCj4+ICAgICAgICAgcmV0dXJuOwo+PiBAQCAt NjI1LDggKzY3MCw4IEBAIHZhbGlkYXRlX2dlb21ldHJ5X3NoYWRlcl9leGVjdXRhYmxlKHN0cnVj dCBnbF9zaGFkZXJfcHJvZ3JhbSAqcHJvZywKPj4gICAgICB1bnNpZ25lZCBudW1fdmVydGljZXMg PSB2ZXJ0aWNlc19wZXJfcHJpbShwcm9nLT5HZW9tLklucHV0VHlwZSk7Cj4+ICAgICAgcHJvZy0+ R2VvbS5WZXJ0aWNlc0luID0gbnVtX3ZlcnRpY2VzOwo+PiAgIAo+PiAtICAgYW5hbHl6ZV9jbGlw X3VzYWdlKHByb2csIHNoYWRlciwgJnByb2ctPkdlb20uVXNlc0NsaXBEaXN0YW5jZSwKPj4gLSAg ICAgICAgICAgICAgICAgICAgICAmcHJvZy0+R2VvbS5DbGlwRGlzdGFuY2VBcnJheVNpemUpOwo+ PiArICAgYW5hbHl6ZV9jbGlwX2N1bGxfdXNhZ2UocHJvZywgc2hhZGVyLCBjdHgsICZwcm9nLT5H ZW9tLlVzZXNDbGlwQ3VsbERpc3RhbmNlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg JnByb2ctPkdlb20uQ2xpcEN1bGxEaXN0YW5jZUFycmF5U2l6ZSk7Cj4+ICAgfQo+PiAgIAo+PiAg IC8qKgo+PiBAQCAtMjgzNCwxMyArMjg3OSwxMyBAQCBsaW5rX3NoYWRlcnMoc3RydWN0IGdsX2Nv bnRleHQgKmN0eCwgc3RydWN0IGdsX3NoYWRlcl9wcm9ncmFtICpwcm9nKQo+PiAgIAo+PiAgICAg ICAgICAgIHN3aXRjaCAoc3RhZ2UpIHsKPj4gICAgICAgICAgICBjYXNlIE1FU0FfU0hBREVSX1ZF UlRFWDoKPj4gLSAgICAgICAgICAgIHZhbGlkYXRlX3ZlcnRleF9zaGFkZXJfZXhlY3V0YWJsZShw cm9nLCBzaCk7Cj4+ICsgICAgICAgICAgICB2YWxpZGF0ZV92ZXJ0ZXhfc2hhZGVyX2V4ZWN1dGFi bGUocHJvZywgc2gsIGN0eCk7Cj4+ICAgICAgICAgICAgICAgYnJlYWs7Cj4+ICAgICAgICAgICAg Y2FzZSBNRVNBX1NIQURFUl9HRU9NRVRSWToKPj4gLSAgICAgICAgICAgIHZhbGlkYXRlX2dlb21l dHJ5X3NoYWRlcl9leGVjdXRhYmxlKHByb2csIHNoKTsKPj4gKyAgICAgICAgICAgIHZhbGlkYXRl X2dlb21ldHJ5X3NoYWRlcl9leGVjdXRhYmxlKHByb2csIHNoLCBjdHgpOwo+PiAgICAgICAgICAg ICAgIGJyZWFrOwo+PiAgICAgICAgICAgIGNhc2UgTUVTQV9TSEFERVJfRlJBR01FTlQ6Cj4+IC0g ICAgICAgICAgICB2YWxpZGF0ZV9mcmFnbWVudF9zaGFkZXJfZXhlY3V0YWJsZShwcm9nLCBzaCk7 Cj4+ICsgICAgICAgICAgICB2YWxpZGF0ZV9mcmFnbWVudF9zaGFkZXJfZXhlY3V0YWJsZShwcm9n LCBzaCwgY3R4KTsKPj4gICAgICAgICAgICAgICBicmVhazsKPj4gICAgICAgICAgICB9Cj4+ICAg ICAgICAgICAgaWYgKCFwcm9nLT5MaW5rU3RhdHVzKQo+PiBAQCAtMjg1MSwxMSArMjg5NiwxMSBA QCBsaW5rX3NoYWRlcnMoc3RydWN0IGdsX2NvbnRleHQgKmN0eCwgc3RydWN0IGdsX3NoYWRlcl9w cm9ncmFtICpwcm9nKQo+PiAgICAgIH0KPj4gICAKPj4gICAgICBpZiAobnVtX3NoYWRlcnNbTUVT QV9TSEFERVJfR0VPTUVUUlldID4gMCkKPj4gLSAgICAgIHByb2ctPkxhc3RDbGlwRGlzdGFuY2VB cnJheVNpemUgPSBwcm9nLT5HZW9tLkNsaXBEaXN0YW5jZUFycmF5U2l6ZTsKPj4gKyAgICAgIHBy b2ctPkxhc3RDbGlwQ3VsbERpc3RhbmNlQXJyYXlTaXplID0gcHJvZy0+R2VvbS5DbGlwQ3VsbERp c3RhbmNlQXJyYXlTaXplOwo+PiAgICAgIGVsc2UgaWYgKG51bV9zaGFkZXJzW01FU0FfU0hBREVS X1ZFUlRFWF0gPiAwKQo+PiAtICAgICAgcHJvZy0+TGFzdENsaXBEaXN0YW5jZUFycmF5U2l6ZSA9 IHByb2ctPlZlcnQuQ2xpcERpc3RhbmNlQXJyYXlTaXplOwo+PiArICAgICAgcHJvZy0+TGFzdENs aXBDdWxsRGlzdGFuY2VBcnJheVNpemUgPSBwcm9nLT5WZXJ0LkNsaXBDdWxsRGlzdGFuY2VBcnJh eVNpemU7Cj4+ICAgICAgZWxzZQo+PiAtICAgICAgcHJvZy0+TGFzdENsaXBEaXN0YW5jZUFycmF5 U2l6ZSA9IDA7IC8qIE5vdCB1c2VkICovCj4+ICsgICAgICBwcm9nLT5MYXN0Q2xpcEN1bGxEaXN0 YW5jZUFycmF5U2l6ZSA9IDA7IC8qIE5vdCB1c2VkICovCj4+ICAgCj4+ICAgICAgLyogSGVyZSBi ZWdpbnMgdGhlIGludGVyLXN0YWdlIGxpbmtpbmcgcGhhc2UuICBTb21lIGluaXRpYWwgdmFsaWRh dGlvbiBpcwo+PiAgICAgICAqIHBlcmZvcm1lZCwgdGhlbiBsb2NhdGlvbnMgYXJlIGFzc2lnbmVk IGZvciB1bmlmb3JtcywgYXR0cmlidXRlcywgYW5kCj4+IGRpZmYgLS1naXQgYS9zcmMvZ2xzbC9z dGFuZGFsb25lX3NjYWZmb2xkaW5nLmNwcCBiL3NyYy9nbHNsL3N0YW5kYWxvbmVfc2NhZmZvbGRp bmcuY3BwCj4+IGluZGV4IGExMDljNGUuLjBhYzE2YmIgMTAwNjQ0Cj4+IC0tLSBhL3NyYy9nbHNs L3N0YW5kYWxvbmVfc2NhZmZvbGRpbmcuY3BwCj4+ICsrKyBiL3NyYy9nbHNsL3N0YW5kYWxvbmVf c2NhZmZvbGRpbmcuY3BwCj4+IEBAIC0xNDIsNiArMTQyLDcgQEAgdm9pZCBpbml0aWFsaXplX2Nv bnRleHRfdG9fZGVmYXVsdHMoc3RydWN0IGdsX2NvbnRleHQgKmN0eCwgZ2xfYXBpIGFwaSkKPj4g ICAgICBjdHgtPkV4dGVuc2lvbnMuQVJCX3RleHR1cmVfcXVlcnlfbG9kID0gdHJ1ZTsKPj4gICAg ICBjdHgtPkV4dGVuc2lvbnMuQVJCX3VuaWZvcm1fYnVmZmVyX29iamVjdCA9IHRydWU7Cj4+ICAg ICAgY3R4LT5FeHRlbnNpb25zLkFSQl92aWV3cG9ydF9hcnJheSA9IHRydWU7Cj4+ICsgICBjdHgt PkV4dGVuc2lvbnMuQVJCX2N1bGxfZGlzdGFuY2UgPSB0cnVlOwo+PiAgIAo+PiAgICAgIGN0eC0+ RXh0ZW5zaW9ucy5PRVNfRUdMX2ltYWdlX2V4dGVybmFsID0gdHJ1ZTsKPj4gICAgICBjdHgtPkV4 dGVuc2lvbnMuT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzID0gdHJ1ZTsKPj4gZGlmZiAtLWdpdCBh L3NyYy9nbHNsL3Rlc3RzL3ZhcnlpbmdzX3Rlc3QuY3BwIGIvc3JjL2dsc2wvdGVzdHMvdmFyeWlu Z3NfdGVzdC5jcHAKPj4gaW5kZXggNDU3MzUyOS4uN2E5NjJjNSAxMDA2NDQKPj4gLS0tIGEvc3Jj L2dsc2wvdGVzdHMvdmFyeWluZ3NfdGVzdC5jcHAKPj4gKysrIGIvc3JjL2dsc2wvdGVzdHMvdmFy eWluZ3NfdGVzdC5jcHAKPj4gQEAgLTIwMiw2ICsyMDIsMzMgQEAgVEVTVF9GKGxpbmtfdmFyeWlu Z3MsIGdsX0NsaXBEaXN0YW5jZSkKPj4gICAgICBFWFBFQ1RfVFJVRShpc19lbXB0eShjb25zdW1l cl9pbnRlcmZhY2VfaW5wdXRzKSk7Cj4+ICAgfQo+PiAgIAo+PiArVEVTVF9GKGxpbmtfdmFyeWlu Z3MsIGdsX0N1bGxEaXN0YW5jZSkKPj4gK3sKPj4gKyAgIGNvbnN0IGdsc2xfdHlwZSAqY29uc3Qg YXJyYXlfOF9vZl9mbG9hdCA9Cj4+ICsgICAgICBnbHNsX3R5cGU6OmdldF9hcnJheV9pbnN0YW5j ZShnbHNsX3R5cGU6OnZlYygxKSwgOCk7Cj4+ICsKPj4gKyAgIGlyX3ZhcmlhYmxlICpjb25zdCBj dWxsZGlzdGFuY2UgPQo+PiArICAgICAgbmV3KG1lbV9jdHgpIGlyX3ZhcmlhYmxlKGFycmF5Xzhf b2ZfZmxvYXQsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdsX0N1bGxEaXN0 YW5jZSIsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXJfdmFyX3NoYWRlcl9p bik7Cj4+ICsKPj4gKyAgIGN1bGxkaXN0YW5jZS0+ZGF0YS5leHBsaWNpdF9sb2NhdGlvbiA9IHRy dWU7Cj4+ICsgICBjdWxsZGlzdGFuY2UtPmRhdGEubG9jYXRpb24gPSBWQVJZSU5HX1NMT1RfQ1VM TF9ESVNUMDsKPj4gKyAgIGN1bGxkaXN0YW5jZS0+ZGF0YS5leHBsaWNpdF9pbmRleCA9IDA7Cj4+ ICsKPj4gKyAgIGlyLnB1c2hfdGFpbChjdWxsZGlzdGFuY2UpOwo+PiArCj4+ICsgICBBU1NFUlRf VFJVRShsaW5rZXI6OnBvcHVsYXRlX2NvbnN1bWVyX2lucHV0X3NldHMobWVtX2N0eCwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaXIsCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3VtZXJfaW5wdXRzLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN1bWVyX2ludGVyZmFjZV9pbnB1dHMsCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVuaykpOwo+PiArCj4+ICsg ICBFWFBFQ1RfRVEoY3VsbGRpc3RhbmNlLCBqdW5rW1ZBUllJTkdfU0xPVF9DVUxMX0RJU1QwXSk7 Cj4+ICsgICBFWFBFQ1RfVFJVRShpc19lbXB0eShjb25zdW1lcl9pbnB1dHMpKTsKPj4gKyAgIEVY UEVDVF9UUlVFKGlzX2VtcHR5KGNvbnN1bWVyX2ludGVyZmFjZV9pbnB1dHMpKTsKPj4gK30KPj4g Kwo+PiAgIFRFU1RfRihsaW5rX3ZhcnlpbmdzLCBzaW5nbGVfaW50ZXJmYWNlX2lucHV0KQo+PiAg IHsKPj4gICAgICBpcl92YXJpYWJsZSAqY29uc3QgdiA9Cj4KCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCk5vdXZlYXUgbWFpbGluZyBsaXN0Ck5vdXZlYXVA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9ub3V2ZWF1Cg==