From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mathieu Desnoyers Subject: Re: [RFC Patch Ust 2/5] Serialize the CTF global structures for ust-comm Date: Wed, 9 Apr 2014 15:42:18 +0000 (UTC) Message-ID: <224451157.1253.1397058138828.JavaMail.zimbra__28833.8161925369$1397058209$gmane$org@efficios.com> References: <1395845232-17669-1-git-send-email-gbastien+lttng@versatic.net> <1395845232-17669-3-git-send-email-gbastien+lttng@versatic.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.efficios.com ([78.47.125.74]) by ltt.polymtl.ca with esmtp (Exim 4.80) (envelope-from ) id 1WXudu-0001QK-Fg for lttng-dev@lists.lttng.org; Wed, 09 Apr 2014 11:42:32 -0400 In-Reply-To: <1395845232-17669-3-git-send-email-gbastien+lttng@versatic.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: lttng-dev-bounces@lists.lttng.org To: =?utf-8?Q?Genevi=C3=A8ve?= Bastien Cc: lttng-dev@lists.lttng.org List-Id: lttng-dev@lists.lttng.org LS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLQo+IEZyb206ICJHZW5ldmnDqHZlIEJhc3RpZW4i IDxnYmFzdGllbitsdHRuZ0B2ZXJzYXRpYy5uZXQ+Cj4gVG86IGx0dG5nLWRldkBsaXN0cy5sdHRu Zy5vcmcKPiBTZW50OiBXZWRuZXNkYXksIE1hcmNoIDI2LCAyMDE0IDEwOjQ3OjA5IEFNCj4gU3Vi amVjdDogW2x0dG5nLWRldl0gW1JGQyBQYXRjaCBVc3QgMi81XSBTZXJpYWxpemUgdGhlIENURiBn bG9iYWwgc3RydWN0dXJlcwlmb3IgdXN0LWNvbW0KPiAKPiBJdCBmbGF0dGVuIHRoZSBnbG9iYWwg dHlwZXMgc28gdGhhdCBnbG9iYWwgdHlwZXMgdXNlZCBieSBvdGhlciBnbG9iYWwgdHlwZXMKCmZs YXR0ZW4gLT4gZmxhdHRlbnMKCj4gYWxsIGJlbG9uZyB0byB0aGUgZXZlbnQgYXQgc2VyaWFsaXph dGlvbi4gVGhpcyBhdm9pZHMgcmVjdXJzaXZlIGNhbGxzIHRvIHRoZQo+IHNlbmQgYW5kIHJlY2Vp dmUgZnVuY3Rpb25zIGFuZCBzaW1wbGlmaWVzIGVycm9yIGhhbmRsaW5nIChubyByZWN1cnNpdmUK PiBmcmVlcykuCgpJcyB0aGUgc3RydWN0dXJlIGFuZCBlbnVtIHBhcnQgb2YgdGhlIGV2ZW50LCBv ciBkZWNsYXJlZCBvdXRzaWRlIG9mCnRoZSBldmVudCBzY29wZSA/CgpJcyB0aGVyZSBhIGRvd25z aWRlIHRvIHRoaXMgYXBwcm9hY2ggPyBGb3IgaW5zdGFuY2UsIGlmIHRoZSBzYW1lCnN0cnVjdHVy ZSBpcyB1c2VkIGluIG1hbnkgZXZlbnRzLCBkbyB3ZSBoYXZlIHRvIHNlbmQgdGhlIHN0cnVjdHVy ZSBpbmZvCm1hbnkgdGltZXMgPwoKVGhhbmtzLAoKTWF0aGlldQoKPiAKPiBTaWduZWQtb2ZmLWJ5 OiBHZW5ldmnDqHZlIEJhc3RpZW4gPGdiYXN0aWVuK2x0dG5nQHZlcnNhdGljLm5ldD4KPiAtLS0K PiAgbGlibHR0bmctdXN0LWNvbW0vbHR0bmctdXN0LWNvbW0uYyB8IDE3MAo+ICArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tCj4gIGxpYmx0dG5nLXVzdC1jdGwvdXN0Y3RsLmMg ICAgICAgICAgfCAgMjYgKysrKysrCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTc5IGluc2VydGlvbnMo KyksIDE3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9saWJsdHRuZy11c3QtY29tbS9s dHRuZy11c3QtY29tbS5jCj4gYi9saWJsdHRuZy11c3QtY29tbS9sdHRuZy11c3QtY29tbS5jCj4g aW5kZXggYmMyMjEzMC4uOTAyNzRjNCAxMDA2NDQKPiAtLS0gYS9saWJsdHRuZy11c3QtY29tbS9s dHRuZy11c3QtY29tbS5jCj4gKysrIGIvbGlibHR0bmctdXN0LWNvbW0vbHR0bmctdXN0LWNvbW0u Ywo+IEBAIC03NDIsNiArNzQyLDcgQEAgaW50IHNlcmlhbGl6ZV9iYXNpY190eXBlKGVudW0gdXN0 Y3RsX2Fic3RyYWN0X3R5cGVzCj4gKnVhdHlwZSwKPiAgCX0KPiAgCWNhc2UgYXR5cGVfYXJyYXk6 Cj4gIAljYXNlIGF0eXBlX3NlcXVlbmNlOgo+ICsJY2FzZSBhdHlwZV9zdHJ1Y3R1cmU6Cj4gIAlk ZWZhdWx0Ogo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAJfQo+IEBAIC04MDAsNiArODAxLDE0IEBA IGludCBzZXJpYWxpemVfb25lX3R5cGUoc3RydWN0IHVzdGN0bF90eXBlICp1dCwgY29uc3QKPiBz dHJ1Y3QgbHR0bmdfdHlwZSAqbHQpCj4gIAkJdXQtPmF0eXBlID0gdXN0Y3RsX2F0eXBlX3NlcXVl bmNlOwo+ICAJCWJyZWFrOwo+ICAJfQo+ICsJY2FzZSBhdHlwZV9zdHJ1Y3R1cmU6Cj4gKwl7Cj4g KwkJc3RybmNweSh1dC0+dS5zdHJ1Y3R1cmUubmFtZSwgbHQtPnUuc3RydWN0dXJlLm5hbWUsCj4g KwkJCQkJCUxUVE5HX1VTVF9TWU1fTkFNRV9MRU4pOwo+ICsJCXV0LT51LnN0cnVjdHVyZS5uYW1l W0xUVE5HX1VTVF9TWU1fTkFNRV9MRU4gLSAxXSA9ICdcMCc7Cj4gKwkJdXQtPmF0eXBlID0gdXN0 Y3RsX2F0eXBlX3N0cnVjdHVyZTsKPiArCQlicmVhazsKPiArCX0KPiAgCWRlZmF1bHQ6Cj4gIAkJ cmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gQEAgLTg5MiwyNSArOTAxLDgyIEBAIGludCBzZXJpYWxp emVfZW51bShzdHJ1Y3QgdXN0Y3RsX2VudW0gKnVlbnVtLAo+ICB9Cj4gIAo+ICBzdGF0aWMKPiAt aW50IHNlcmlhbGl6ZV9nbG9iYWxfdHlwZV9kZWNsKHNpemVfdCAqX25yX3dyaXRlX2dsb2JhbF90 eXBlX2RlY2wsCj4gLQkJc3RydWN0IHVzdGN0bF9nbG9iYWxfdHlwZV9kZWNsICoqdXN0Y3RsX2ds b2JhbF90eXBlLAo+ICtpbnQgc2VyaWFsaXplX3N0cnVjdHVyZShzdHJ1Y3QgdXN0Y3RsX3N0cnVj dHVyZSAqdXN0cnVjdCwKPiArCQljb25zdCBzdHJ1Y3QgbHR0bmdfc3RydWN0dXJlICpsc3RydWN0 KQo+ICt7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXN0cm5jcHkodXN0cnVjdC0+bmFtZSwgbHN0cnVj dC0+bmFtZSwgTFRUTkdfVVNUX1NZTV9OQU1FX0xFTik7Cj4gKwl1c3RydWN0LT5uYW1lW0xUVE5H X1VTVF9TWU1fTkFNRV9MRU4gLSAxXSA9ICdcMCc7Cj4gKwo+ICsJLyogU2VyaWFsaXplIHRoZSBm aWVsZHMgKi8KPiArCWlmIChsc3RydWN0LT5ucl9maWVsZHMgPiAwKSB7Cj4gKwkJcmV0ID0gc2Vy aWFsaXplX2ZpZWxkcygmdXN0cnVjdC0+bnJfZmllbGRzLCAmdXN0cnVjdC0+ZmllbGRzLAo+ICsJ CQkJbHN0cnVjdC0+bnJfZmllbGRzLAlsc3RydWN0LT5maWVsZHMpOwo+ICsJCWlmIChyZXQpIHsK PiArCQkJcmV0dXJuIHJldDsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiAr Cj4gK3N0YXRpYyBzaXplX3QgZ2V0X2NoaWxkX2dsb2JhbF90eXBlX2NvdW50KHNpemVfdCBucl9n bG9iYWxfdHlwZV9kZWNsLAo+ICsJCWNvbnN0IHN0cnVjdCBsdHRuZ19nbG9iYWxfdHlwZV9kZWNs ICpsdHRuZ19nbG9iYWxfdHlwZSkKPiArewo+ICsJc2l6ZV90IHRvdGFsX2dsb2JhbF90eXBlcyA9 IDA7Cj4gKwlpbnQgaTsKPiArCWNvbnN0IHN0cnVjdCBsdHRuZ19nbG9iYWxfdHlwZV9kZWNsICps ZzsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgbnJfZ2xvYmFsX3R5cGVfZGVjbDsgaSsrKSB7Cj4g KwkJbGcgPSAmbHR0bmdfZ2xvYmFsX3R5cGVbaV07Cj4gKwo+ICsJCWlmIChsZy0+bm93cml0ZSkK PiArCQkJY29udGludWU7Cj4gKwo+ICsJCS8qIENvdW50IHRoZSBnbG9iYWwgdHlwZXMgaW4gY2hp bGRyZW4gYXMgd2VsbCAqLwo+ICsJCXN3aXRjaCAobGctPm10eXBlKSB7Cj4gKwkJY2FzZSBtdHlw ZV9zdHJ1Y3R1cmU6Cj4gKwkJewo+ICsJCQljb25zdCBzdHJ1Y3QgbHR0bmdfc3RydWN0dXJlICps czsKPiArCj4gKwkJCWxzID0gbGctPnUuY3RmX3N0cnVjdHVyZTsKPiArCQkJLyogQWRkIHRoZSBu dW1iZXIgb2YgZ2xvYmFsIHR5cGVzIGl0IGNvbnRhaW5zIGFuZCB0aGUgY291bnQgb2YgaXRzIG93 bgo+IGNoaWxkcmVuICovCj4gKwkJCWlmIChscy0+bnJfZ2xvYmFsX3R5cGVfZGVjbCA+IDApIHsK PiArCQkJCXRvdGFsX2dsb2JhbF90eXBlcyArPSBscy0+bnJfZ2xvYmFsX3R5cGVfZGVjbDsKPiAr CQkJCXRvdGFsX2dsb2JhbF90eXBlcyArPQo+IGdldF9jaGlsZF9nbG9iYWxfdHlwZV9jb3VudChs cy0+bnJfZ2xvYmFsX3R5cGVfZGVjbCwKPiArCQkJCQkJCQlscy0+Z2xvYmFsX3R5cGVfZGVjbCk7 Cj4gKwkJCX0KPiArCQkJYnJlYWs7Cj4gKwkJfQo+ICsJCWNhc2UgbXR5cGVfZW51bToKPiArCQlk ZWZhdWx0Ogo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHRvdGFsX2ds b2JhbF90eXBlczsKPiArfQo+ICsKPiArLyoKPiArICogV2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxs ZWQsIGluZGV4IGlzIHRoZSBuZXh0IGluZGV4IHRvIHdyaXRlIHRvIGFuZCB0aGUKPiArICogdXN0 Y3RsX2dsb2JhbF90eXBlIHN0cnVjdHVyZSBpcyBhbHJlYWR5IGluaXRpYWxpemVkIGFuZCB3aWxs IG5vdAo+IG92ZXJmbG93Lgo+ICsgKgo+ICsgKiBUaGUgZ2xvYmFsIHR5cGUgZGVjbGFyYXRpb25z IGFyZSBmbGF0dGVuZWQgYXQgc2VyaWFsaXphdGlvbiB0byBhdm9pZAo+ICsgKiBuZWVkaW5nIHRv IGRvIHJlY3Vyc2l2ZSBmcmVlcyBvbiBlcnJvci4KPiArICovCj4gK3N0YXRpYyBpbnQgX3Nlcmlh bGl6ZV9nbG9iYWxfdHlwZV9kZWNsKHNpemVfdCAqaW5kZXgsCj4gKwkJc3RydWN0IHVzdGN0bF9n bG9iYWxfdHlwZV9kZWNsICpnbG9iYWxfdHlwZV9kZWNsLAo+ICAJCXNpemVfdCBucl9nbG9iYWxf dHlwZV9kZWNsLAo+ICAJCWNvbnN0IHN0cnVjdCBsdHRuZ19nbG9iYWxfdHlwZV9kZWNsICpsdHRu Z19nbG9iYWxfdHlwZSkKPiAgewo+IC0Jc3RydWN0IHVzdGN0bF9nbG9iYWxfdHlwZV9kZWNsICpn bG9iYWxfdHlwZV9kZWNsOwo+ICAJaW50IGksIHJldDsKPiAtCXNpemVfdCBucl93cml0ZV9nbG9i YWxfdHlwZV9kZWNsID0gMDsKPiAtCj4gLQlnbG9iYWxfdHlwZV9kZWNsID0gem1hbGxvYyhucl9n bG9iYWxfdHlwZV9kZWNsCj4gLQkJCQkJKiBzaXplb2YoKmdsb2JhbF90eXBlX2RlY2wpKTsKPiAt CWlmICghZ2xvYmFsX3R5cGVfZGVjbCkKPiAtCQlyZXR1cm4gLUVOT01FTTsKPiAgCj4gIAlmb3Ig KGkgPSAwOyBpIDwgbnJfZ2xvYmFsX3R5cGVfZGVjbDsgaSsrKSB7Cj4gIAkJc3RydWN0IHVzdGN0 bF9nbG9iYWxfdHlwZV9kZWNsICpmOwo+ICAJCWNvbnN0IHN0cnVjdCBsdHRuZ19nbG9iYWxfdHlw ZV9kZWNsICpsZjsKPiAgCj4gLQkJZiA9ICZnbG9iYWxfdHlwZV9kZWNsW25yX3dyaXRlX2dsb2Jh bF90eXBlX2RlY2xdOwo+ICsJCWYgPSAmZ2xvYmFsX3R5cGVfZGVjbFsqaW5kZXhdOwo+ICAJCWxm ID0gJmx0dG5nX2dsb2JhbF90eXBlW2ldOwo+ICAKPiAgCQkvKiBza2lwICdub3dyaXRlJyBmaWVs ZHMgKi8KPiBAQCAtOTI4LDE4ICs5OTQsNjYgQEAgaW50IHNlcmlhbGl6ZV9nbG9iYWxfdHlwZV9k ZWNsKHNpemVfdAo+ICpfbnJfd3JpdGVfZ2xvYmFsX3R5cGVfZGVjbCwKPiAgCQkJbGUgPSBsZi0+ dS5jdGZfZW51bTsKPiAgCQkJcmV0ID0gc2VyaWFsaXplX2VudW0odWUsIGxlKTsKPiAgCQkJaWYg KHJldCkKPiAtCQkJCWdvdG8gZXJyb3I7Cj4gKwkJCQlyZXR1cm4gcmV0Owo+ICAKPiAgCQkJZi0+ bXR5cGUgPSB1c3RjdGxfbXR5cGVfZW51bTsKPiAgCQkJYnJlYWs7Cj4gIAkJfQo+ICsJCWNhc2Ug bXR5cGVfc3RydWN0dXJlOgo+ICsJCXsKPiArCQkJc3RydWN0IHVzdGN0bF9zdHJ1Y3R1cmUgKnVz Owo+ICsJCQljb25zdCBzdHJ1Y3QgbHR0bmdfc3RydWN0dXJlICpsczsKPiArCj4gKwkJCS8qIFNl cmlhbGl6ZSBjaGlsZHJlbiBnbG9iYWwgdHlwZXMgZmlyc3QgKi8KPiArCQkJbHMgPSBsZi0+dS5j dGZfc3RydWN0dXJlOwo+ICsJCQlyZXQgPSBfc2VyaWFsaXplX2dsb2JhbF90eXBlX2RlY2woaW5k ZXgsCj4gKwkJCQkJZ2xvYmFsX3R5cGVfZGVjbCwKPiArCQkJCQlscy0+bnJfZ2xvYmFsX3R5cGVf ZGVjbCwKPiArCQkJCQlscy0+Z2xvYmFsX3R5cGVfZGVjbCk7Cj4gKwkJCWlmIChyZXQpCj4gKwkJ CQlyZXR1cm4gcmV0Owo+ICsKPiArCQkJLyogUmVpbml0aWFsaXplIGYgc2luY2UgdGhlIGluZGV4 IG1heSBoYXZlIGNoYW5nZWQgKi8KPiArCQkJZiA9ICZnbG9iYWxfdHlwZV9kZWNsWyppbmRleF07 Cj4gKwkJCXVzID0gJmYtPnUuY3RmX3N0cnVjdHVyZTsKPiArCj4gKwkJCXJldCA9IHNlcmlhbGl6 ZV9zdHJ1Y3R1cmUodXMsIGxzKTsKPiArCQkJaWYgKHJldCkKPiArCQkJCXJldHVybiByZXQ7Cj4g Kwo+ICsJCQlmLT5tdHlwZSA9IHVzdGN0bF9tdHlwZV9zdHJ1Y3R1cmU7Cj4gKwkJCWJyZWFrOwo+ ICsJCX0KPiAgCQlkZWZhdWx0Ogo+IC0JCQlyZXQgPSAtRUlOVkFMOwo+IC0JCQlnb3RvIGVycm9y Owo+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiAgCQl9Cj4gIAo+IC0JCW5yX3dyaXRlX2dsb2JhbF90 eXBlX2RlY2wrKzsKPiArCQkqaW5kZXggPSAqaW5kZXggKyAxOwo+ICAJfQo+ICsJcmV0dXJuIDA7 Cj4gK30KPiArCj4gK3N0YXRpYwo+ICtpbnQgc2VyaWFsaXplX2dsb2JhbF90eXBlX2RlY2woc2l6 ZV90ICpfbnJfd3JpdGVfZ2xvYmFsX3R5cGVfZGVjbCwKPiArCQlzdHJ1Y3QgdXN0Y3RsX2dsb2Jh bF90eXBlX2RlY2wgKip1c3RjdGxfZ2xvYmFsX3R5cGUsCj4gKwkJc2l6ZV90IG5yX2dsb2JhbF90 eXBlX2RlY2wsCj4gKwkJY29uc3Qgc3RydWN0IGx0dG5nX2dsb2JhbF90eXBlX2RlY2wgKmx0dG5n X2dsb2JhbF90eXBlKQo+ICt7Cj4gKwlzdHJ1Y3QgdXN0Y3RsX2dsb2JhbF90eXBlX2RlY2wgKmds b2JhbF90eXBlX2RlY2w7Cj4gKwlpbnQgaSwgcmV0Owo+ICsJc2l6ZV90IG5yX3dyaXRlX2dsb2Jh bF90eXBlX2RlY2wgPSAwOwo+ICsJc2l6ZV90IG5yX2NoaWxkX2dsb2JhbF90eXBlX2NudCA9Cj4g Z2V0X2NoaWxkX2dsb2JhbF90eXBlX2NvdW50KG5yX2dsb2JhbF90eXBlX2RlY2wsCj4gKwkJCQkJ CQlsdHRuZ19nbG9iYWxfdHlwZSk7Cj4gKwo+ICsJZ2xvYmFsX3R5cGVfZGVjbCA9IHptYWxsb2Mo KG5yX2dsb2JhbF90eXBlX2RlY2wgKyBucl9jaGlsZF9nbG9iYWxfdHlwZV9jbnQpCj4gKwkJCQkJ KiBzaXplb2YoKmdsb2JhbF90eXBlX2RlY2wpKTsKPiArCWlmICghZ2xvYmFsX3R5cGVfZGVjbCkK PiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlyZXQgPSBfc2VyaWFsaXplX2dsb2JhbF90eXBl X2RlY2woJm5yX3dyaXRlX2dsb2JhbF90eXBlX2RlY2wsCj4gZ2xvYmFsX3R5cGVfZGVjbCwKPiAr CQkJbnJfZ2xvYmFsX3R5cGVfZGVjbCwgbHR0bmdfZ2xvYmFsX3R5cGUpOwo+ICsJaWYgKHJldCkK PiArCQlnb3RvIGVycm9yOwo+ICAKPiAgCSpfbnJfd3JpdGVfZ2xvYmFsX3R5cGVfZGVjbCA9IG5y X3dyaXRlX2dsb2JhbF90eXBlX2RlY2w7Cj4gIAkqdXN0Y3RsX2dsb2JhbF90eXBlID0gZ2xvYmFs X3R5cGVfZGVjbDsKPiBAQCAtOTU0LDYgKzEwNjgsOSBAQCBlcnJvcjoKPiAgCQljYXNlIHVzdGN0 bF9tdHlwZV9lbnVtOgo+ICAJCQlmcmVlKG0tPnUuY3RmX2VudW0uZW50cmllcyk7Cj4gIAkJCWJy ZWFrOwo+ICsJCWNhc2UgdXN0Y3RsX210eXBlX3N0cnVjdHVyZToKPiArCQkJZnJlZShtLT51LmN0 Zl9zdHJ1Y3R1cmUuZmllbGRzKTsKPiArCQkJYnJlYWs7Cj4gIAkJZGVmYXVsdDoKPiAgCQkJYnJl YWs7Cj4gIAkJfQo+IEBAIC0xMTU4LDE1ICsxMjc1LDMxIEBAIGludCB1c3Rjb21tX3JlZ2lzdGVy X2V2ZW50KGludCBzb2NrLAo+ICAJCQkJfQo+ICAJCQkJYnJlYWs7Cj4gIAkJCX0KPiArCQkJY2Fz ZSB1c3RjdGxfbXR5cGVfc3RydWN0dXJlOgo+ICsJCQl7Cj4gKwkJCQlpbnQgZmllbGRfbGVuID0g b25lX2dsb2JhbF90eXBlLT51LmN0Zl9zdHJ1Y3R1cmUubnJfZmllbGRzICoKPiBzaXplb2YoKm9u ZV9nbG9iYWxfdHlwZS0+dS5jdGZfc3RydWN0dXJlLmZpZWxkcyk7Cj4gKwo+ICsJCQkJLyogU2Vu ZCB0aGUgZmllbGRzICovCj4gKwkJCQlEQkcoIlNlbmRpbmcgZmllbGRzIGZvciBnbG9iYWwgdHlw ZSBzdHJ1Y3R1cmUgJXMuXG4iLAo+ICsJCQkJCQlvbmVfZ2xvYmFsX3R5cGUtPnUuY3RmX3N0cnVj dHVyZS5uYW1lKTsKPiArCQkJCWxlbiA9IHVzdGNvbW1fc2VuZF91bml4X3NvY2soc29jaywKPiBv bmVfZ2xvYmFsX3R5cGUtPnUuY3RmX3N0cnVjdHVyZS5maWVsZHMsIGZpZWxkX2xlbik7Cj4gKwkJ CQlmcmVlKG9uZV9nbG9iYWxfdHlwZS0+dS5jdGZfc3RydWN0dXJlLmZpZWxkcyk7Cj4gKwkJCQlv bmVfZ2xvYmFsX3R5cGUtPnUuY3RmX3N0cnVjdHVyZS5maWVsZHMgPSBOVUxMOwo+ICsJCQkJaWYg KGxlbiA+IDAgJiYgbGVuICE9IGZpZWxkX2xlbikgewo+ICsJCQkJCWdvdG8gZXJyb3JfZ2xvYmFs X3R5cGU7Cj4gKwkJCQl9Cj4gKwkJCQlpZiAobGVuIDwgMCkgewo+ICsJCQkJCWdvdG8gZXJyb3Jf Z2xvYmFsX3R5cGU7Cj4gKwkJCQl9Cj4gKwkJCQlicmVhazsKPiArCQkJfQo+ICAJCQlkZWZhdWx0 Ogo+ICAJCQkJYnJlYWs7Cj4gIAkJCX0KPiAgCQl9Cj4gLQkJZnJlZShnbG9iYWxfdHlwZV9kZWNs KTsKPiAgCj4gLQl9IGVsc2Ugewo+IC0JCWZyZWUoZ2xvYmFsX3R5cGVfZGVjbCk7Cj4gIAl9Cj4g KwlmcmVlKGdsb2JhbF90eXBlX2RlY2wpOwo+ICAKPiAgCS8qIHJlY2VpdmUgcmVwbHkgKi8KPiAg CWxlbiA9IHVzdGNvbW1fcmVjdl91bml4X3NvY2soc29jaywgJnJlcGx5LCBzaXplb2YocmVwbHkp KTsKPiBAQCAtMTIxMiw2ICsxMzQ1LDkgQEAgZXJyb3JfZ2xvYmFsX3R5cGU6Cj4gIAkJY2FzZSB1 c3RjdGxfbXR5cGVfZW51bToKPiAgCQkJZnJlZShvbmVfZ2xvYmFsX3R5cGUtPnUuY3RmX2VudW0u ZW50cmllcyk7Cj4gIAkJCWJyZWFrOwo+ICsJCWNhc2UgdXN0Y3RsX210eXBlX3N0cnVjdHVyZToK PiArCQkJZnJlZShvbmVfZ2xvYmFsX3R5cGUtPnUuY3RmX3N0cnVjdHVyZS5maWVsZHMpOwo+ICsJ CQlicmVhazsKPiAgCQlkZWZhdWx0Ogo+ICAJCQlicmVhazsKPiAgCQl9Cj4gZGlmZiAtLWdpdCBh L2xpYmx0dG5nLXVzdC1jdGwvdXN0Y3RsLmMgYi9saWJsdHRuZy11c3QtY3RsL3VzdGN0bC5jCj4g aW5kZXggYTE4MWU2Mi4uMzEwMGYxYiAxMDA2NDQKPiAtLS0gYS9saWJsdHRuZy11c3QtY3RsL3Vz dGN0bC5jCj4gKysrIGIvbGlibHR0bmctdXN0LWN0bC91c3RjdGwuYwo+IEBAIC0xODk2LDYgKzE4 OTYsMzIgQEAgaW50IHVzdGN0bF9yZWN2X3JlZ2lzdGVyX2V2ZW50KGludCBzb2NrLAo+ICAJCQkJ fQo+ICAJCQkJYnJlYWs7Cj4gIAkJCX0KPiArCQkJY2FzZSB1c3RjdGxfbXR5cGVfc3RydWN0dXJl Ogo+ICsJCQl7Cj4gKwkJCQlpbnQgZW50cnlfbGVuID0gb25lX2dsb2JhbF90eXBlLT51LmN0Zl9z dHJ1Y3R1cmUubnJfZmllbGRzICoKPiBzaXplb2YoKm9uZV9nbG9iYWxfdHlwZS0+dS5jdGZfc3Ry dWN0dXJlLmZpZWxkcyk7Cj4gKwkJCQkvKiBSZWNlaXZlIHRoZSBlbnRyaWVzICovCj4gKwkJCQlv bmVfZ2xvYmFsX3R5cGUtPnUuY3RmX3N0cnVjdHVyZS5maWVsZHMgPSB6bWFsbG9jKGVudHJ5X2xl bik7Cj4gKwkJCQlpZiAoIW9uZV9nbG9iYWxfdHlwZS0+dS5jdGZfc3RydWN0dXJlLmZpZWxkcykg ewo+ICsJCQkJCWxlbiA9IC1FTk9NRU07Cj4gKwkJCQkJZ290byBnbG9iYWxfdHlwZV9lcnJvcjsK PiArCQkJCX0KPiArCQkJCWxlbiA9IHVzdGNvbW1fcmVjdl91bml4X3NvY2soc29jaywKPiArCQkJ CQkJb25lX2dsb2JhbF90eXBlLT51LmN0Zl9zdHJ1Y3R1cmUuZmllbGRzLAo+ICsJCQkJCQllbnRy eV9sZW4pOwo+ICsJCQkJREJHKCJSZWNlaXZlZCBmaWVsZHMgZm9yIHN0cnVjdCAlcy5cbiIsCj4g b25lX2dsb2JhbF90eXBlLT51LmN0Zl9zdHJ1Y3R1cmUubmFtZSk7Cj4gKwkJCQlpZiAobGVuID4g MCAmJiBsZW4gIT0gZW50cnlfbGVuKSB7Cj4gKwkJCQkJbGVuID0gLUVJTzsKPiArCQkJCQlnb3Rv IGdsb2JhbF90eXBlX2Vycm9yOwo+ICsJCQkJfQo+ICsJCQkJaWYgKGxlbiA9PSAwKSB7Cj4gKwkJ CQkJbGVuID0gLUVQSVBFOwo+ICsJCQkJCWdvdG8gZ2xvYmFsX3R5cGVfZXJyb3I7Cj4gKwkJCQl9 Cj4gKwkJCQlpZiAobGVuIDwgMCkgewo+ICsJCQkJCWdvdG8gZ2xvYmFsX3R5cGVfZXJyb3I7Cj4g KwkJCQl9Cj4gKwkJCQlicmVhazsKPiArCQkJfQo+ICAJCQlkZWZhdWx0Ogo+ICAJCQkJYnJlYWs7 Cj4gIAkJCX0KPiAtLQo+IDEuOS4xCj4gCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KPiBsdHRuZy1kZXYgbWFpbGluZyBsaXN0Cj4gbHR0bmctZGV2 QGxpc3RzLmx0dG5nLm9yZwo+IGh0dHA6Ly9saXN0cy5sdHRuZy5vcmcvY2dpLWJpbi9tYWlsbWFu L2xpc3RpbmZvL2x0dG5nLWRldgo+IAoKLS0gCk1hdGhpZXUgRGVzbm95ZXJzCkVmZmljaU9TIElu Yy4KaHR0cDovL3d3dy5lZmZpY2lvcy5jb20KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmx0dG5nLWRldiBtYWlsaW5nIGxpc3QKbHR0bmctZGV2QGxpc3Rz Lmx0dG5nLm9yZwpodHRwOi8vbGlzdHMubHR0bmcub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m by9sdHRuZy1kZXYK