From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id AF38040D5C for ; Mon, 5 Jun 2023 15:32:56 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id ED93A68C309; Mon, 5 Jun 2023 18:32:53 +0300 (EEST) Received: from smtp-fw-80008.amazon.com (smtp-fw-80008.amazon.com [99.78.197.219]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id ADAD368C1F8 for ; Mon, 5 Jun 2023 18:32:46 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.it; i=@amazon.it; q=dns/txt; s=amazon201209; t=1685979171; x=1717515171; h=from:to:date:message-id:references:in-reply-to: mime-version:subject; bh=w0uzNvIGp8Kfxu8Zn/tl+PmFdYb9O5Sk522LSvPBGmU=; b=lF88jUct0s493tNdUdA/3/5Djnr4nXUjXeq0IPNXWF5UvT2x6DKCa/Fi e3vMf3WHuHJDMt8EB8xyxE+baRJLFqIKZTa5JQCy1K5CMYG2mWf3mRz8E nVDzq5Vb4oJum+v7D3GrzQsFR46QxzmE7ZtPy96EYkcRow8OxIfvlhw2g Y=; X-Amazon-filename: 0001-Add-support-for-libx264-s-MB_INFO.patch X-IronPort-AV: E=Sophos;i="6.00,217,1681171200"; d="scan'208,223";a="8219569" Thread-Topic: [FFmpeg-devel] [PATCH] Optimization: support for libx264's mb_info Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO email-inbound-relay-pdx-2a-m6i4x-44b6fc51.us-west-2.amazon.com) ([10.25.36.210]) by smtp-border-fw-80008.pdx80.corp.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jun 2023 15:32:38 +0000 Received: from EX19D003EUA003.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan3.pdx.amazon.com [10.236.137.198]) by email-inbound-relay-pdx-2a-m6i4x-44b6fc51.us-west-2.amazon.com (Postfix) with ESMTPS id 6E8ABA0BBE for ; Mon, 5 Jun 2023 15:32:38 +0000 (UTC) Received: from EX19D025EUC002.ant.amazon.com (10.252.61.247) by EX19D003EUA003.ant.amazon.com (10.252.50.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Mon, 5 Jun 2023 15:32:36 +0000 Received: from EX19D025EUC002.ant.amazon.com (10.252.61.247) by EX19D025EUC002.ant.amazon.com (10.252.61.247) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Mon, 5 Jun 2023 15:32:36 +0000 Received: from EX19D025EUC002.ant.amazon.com ([fe80::c9fe:e3a8:dd4f:e087]) by EX19D025EUC002.ant.amazon.com ([fe80::c9fe:e3a8:dd4f:e087%3]) with mapi id 15.02.1118.026; Mon, 5 Jun 2023 15:32:36 +0000 From: "Carotti, Elias" To: "ffmpeg-devel@ffmpeg.org" Thread-Index: AQHZklb008JRkd8A/k+Jhp2hr/tC8K96zfIAgAGTRIA= Date: Mon, 5 Jun 2023 15:32:35 +0000 Message-ID: References: <8eb9290f3c9cdae75b38c45a5d49ee624951a849.camel@amazon.it> <20230521231741.GB14958@mariano> <20230604152912.GC4274@mariano> In-Reply-To: <20230604152912.GC4274@mariano> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.1.213.6] Content-Type: multipart/mixed; boundary="_002_c6d3eed119af4c08235eca8f3e7c72d66372961ccamelamazonit_" MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCH] Optimization: support for libx264's mb_info X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --_002_c6d3eed119af4c08235eca8f3e7c72d66372961ccamelamazonit_ Content-Type: text/plain; charset="utf-8" Content-ID: <555D725250388B4AB774F7CA174580E0@amazon.com> MIME-Version: 1.0 Content-Transfer-Encoding: base64 SGksCnBsZWFzZSBmaW5kIGF0dGFjaGVkIHRoZSBwYXRjaCB3aGljaCBJIHVwZGF0ZWQgYWNjb3Jk aW5nIHRvIHlvdXIKc3VnZ2VzdGlvbnMuCkJlc3QsCkVsaWFzCgoKCgpPbiBTdW4sIDIwMjMtMDYt MDQgYXQgMTc6MjkgKzAyMDAsIFN0ZWZhbm8gU2FiYXRpbmkgd3JvdGU6Cj4gQ0FVVElPTjogVGhp cyBlbWFpbCBvcmlnaW5hdGVkIGZyb20gb3V0c2lkZSBvZiB0aGUgb3JnYW5pemF0aW9uLiBEbwo+ IG5vdCBjbGljayBsaW5rcyBvciBvcGVuIGF0dGFjaG1lbnRzIHVubGVzcyB5b3UgY2FuIGNvbmZp cm0gdGhlIHNlbmRlcgo+IGFuZCBrbm93IHRoZSBjb250ZW50IGlzIHNhZmUuCj4gCj4gCj4gCj4g T24gZGF0ZSBNb25kYXkgMjAyMy0wNS0yOSAxNzo1Njo1NSArMDAwMCwgQ2Fyb3R0aSwgRWxpYXMg d3JvdGU6Cj4gWy4uLl0KPiA+IEZyb20gN2NiOTdlZTk3NzE5N2UzMTBhOTMyYjJkN2E1M2JmNWM2 ZTk5OTkwZSBNb24gU2VwIDE3IDAwOjAwOjAwCj4gPiAyMDAxCj4gPiBGcm9tOiBFbGlhcyBDYXJv dHRpIDxlbGlhc2NydEBhbWF6b24uaXQ+Cj4gPiBEYXRlOiBXZWQsIDE5IEFwciAyMDIzIDExOjQ5 OjM5ICswMjAwCj4gPiBTdWJqZWN0OiBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBsaWJ4MjY0J3Mg TUJfSU5GTwo+ID4gCj4gPiBsaWJ4MjY0J3MgeDI2NF9pbWFnZV9wcm9wZXJ0aWVzX3QsIHdoaWNo IGlzIHBhc3NlZCB0byB0aGUgZW5jb2RpbmcKPiA+IGZ1bmN0aW9uLAo+ID4gY29udGFpbnMgYSBm aWVsZCB0byBwYXNzIGRvd24gaW5mb3JtYXRpb24gb24gdGhlIHBvcnRpb25zIG9mIHRoZQo+ID4g ZnJhbWUgd2hpY2gKPiA+IGNoYW5nZWQgd2l0aCByZXNwZWN0IHRvIHRoZSBwcmV2aW91cyBvbmUg KHVzZWQgZm9yIHByZWRpY3Rpb24pIHRvCj4gPiBtYXJrCj4gPiB1bmNoYW5nZWQgbWFjcm9ibG9j a3MgUF9TS0lQLgo+ID4gLS0tCj4gPiDCoGxpYmF2Y29kZWMvbGlieDI2NC5jwqDCoMKgwqDCoMKg wqAgfCA4MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+IMKgbGliYXZ1dGls L01ha2VmaWxlwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA0ICsrCj4gPiDCoGxpYmF2dXRpbC9mcmFt ZS5owqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAxMCArKysrKwo+ID4gwqBsaWJhdnV0aWwvdmlkZW9f aGludF9pbmZvLmMgfCA4OQo+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwo+ID4gwqBsaWJhdnV0aWwvdmlkZW9faGludF9pbmZvLmggfCA4Nwo+ID4gKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCj4gPiDCoDUgZmlsZXMgY2hhbmdlZCwgMjcxIGluc2Vy dGlvbnMoKykKPiA+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2dXRpbC92aWRlb19oaW50X2lu Zm8uYwo+ID4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZ1dGlsL3ZpZGVvX2hpbnRfaW5mby5o Cj4gPiAKPiA+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2xpYngyNjQuYyBiL2xpYmF2Y29kZWMv bGlieDI2NC5jCj4gPiBpbmRleCA1NzM2ZjFlZmE3Li4zMmZhODBkMGExIDEwMDY0NAo+ID4gLS0t IGEvbGliYXZjb2RlYy9saWJ4MjY0LmMKPiA+ICsrKyBiL2xpYmF2Y29kZWMvbGlieDI2NC5jCj4g PiBAQCAtMzAsNiArMzAsNyBAQAo+ID4gwqAjaW5jbHVkZSAibGliYXZ1dGlsL3N0ZXJlbzNkLmgi Cj4gPiDCoCNpbmNsdWRlICJsaWJhdnV0aWwvdGltZS5oIgo+ID4gwqAjaW5jbHVkZSAibGliYXZ1 dGlsL2ludHJlYWR3cml0ZS5oIgo+ID4gKyNpbmNsdWRlICJsaWJhdnV0aWwvdmlkZW9faGludF9p bmZvLmgiCj4gPiDCoCNpbmNsdWRlICJhdmNvZGVjLmgiCj4gPiDCoCNpbmNsdWRlICJjb2RlY19p bnRlcm5hbC5oIgo+ID4gwqAjaW5jbHVkZSAiZW5jb2RlLmgiCj4gPiBAQCAtNDgsNiArNDksOSBA QAo+ID4gwqAvLyBmcm9tIHgyNjQuaCwgZm9yIHF1YW50X29mZnNldHMsIE1hY3JvYmxvY2tzIGFy ZSAxNngxNgo+ID4gwqAvLyBibG9ja3Mgb2YgcGl4ZWxzICh3aXRoIHJlc3BlY3QgdG8gdGhlIGx1 bWEgcGxhbmUpCj4gPiDCoCNkZWZpbmUgTUJfU0laRSAxNgo+ID4gKyNkZWZpbmUgTUJfTFNJWkUg NAo+ID4gKyNkZWZpbmUgTUJfRkxPT1IoeCnCoMKgwqDCoMKgICgoeCkgPj4gKE1CX0xTSVpFKSkK PiA+ICsjZGVmaW5lIE1CX0NFSUwoeCnCoMKgwqDCoMKgwqAgTUJfRkxPT1IoKHgpICsgKE1CX1NJ WkUgLSAxKSkKPiA+IAo+ID4gwqB0eXBlZGVmIHN0cnVjdCBYMjY0T3BhcXVlIHsKPiA+IMKgI2lm IEZGX0FQSV9SRU9SREVSRURfT1BBUVVFCj4gPiBAQCAtMTIzLDYgKzEyNyw4IEBAIHR5cGVkZWYg c3RydWN0IFgyNjRDb250ZXh0IHsKPiA+IMKgwqDCoMKgwqAgKiBlbmNvdW50ZXIgYSBmcmFtZSB3 aXRoIFJPSSBzaWRlIGRhdGEuCj4gPiDCoMKgwqDCoMKgICovCj4gPiDCoMKgwqDCoCBpbnQgcm9p X3dhcm5lZDsKPiA+ICsKPiA+ICvCoMKgwqAgaW50IG1iX2luZm87Cj4gPiDCoH0gWDI2NENvbnRl eHQ7Cj4gPiAKPiA+IMKgc3RhdGljIHZvaWQgWDI2NF9sb2codm9pZCAqcCwgaW50IGxldmVsLCBj b25zdCBjaGFyICpmbXQsIHZhX2xpc3QKPiA+IGFyZ3MpCj4gPiBAQCAtMjk1LDYgKzMwMSw3IEBA IHN0YXRpYyB2b2lkIGZyZWVfcGljdHVyZSh4MjY0X3BpY3R1cmVfdCAqcGljKQo+ID4gwqDCoMKg wqDCoMKgwqDCoCBhdl9mcmVlKHBpYy0+ZXh0cmFfc2VpLnBheWxvYWRzW2ldLnBheWxvYWQpOwo+ ID4gwqDCoMKgwqAgYXZfZnJlZXAoJnBpYy0+ZXh0cmFfc2VpLnBheWxvYWRzKTsKPiA+IMKgwqDC oMKgIGF2X2ZyZWVwKCZwaWMtPnByb3AucXVhbnRfb2Zmc2V0cyk7Cj4gPiArwqDCoMKgIGF2X2Zy ZWVwKCZwaWMtPnByb3AubWJfaW5mbyk7Cj4gPiDCoMKgwqDCoCBwaWMtPmV4dHJhX3NlaS5udW1f cGF5bG9hZHMgPSAwOwo+ID4gwqB9Cj4gPiAKPiA+IEBAIC0zMjAsNiArMzI3LDY0IEBAIHN0YXRp YyBlbnVtIEFWUGl4ZWxGb3JtYXQgY3NwX3RvX3BpeGZtdChpbnQKPiA+IGNzcCkKPiA+IMKgwqDC oMKgIHJldHVybiBBVl9QSVhfRk1UX05PTkU7Cj4gPiDCoH0KPiA+IAo+ID4gK3N0YXRpYyBpbnQg c2V0dXBfbWJfaW5mbyhBVkNvZGVjQ29udGV4dCAqY3R4LCB4MjY0X3BpY3R1cmVfdCAqcGljLAo+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25z dCBBVkZyYW1lICpmcmFtZSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgY29uc3QgQVZWaWRlb0hpbnQgKmluZm8pCj4gPiArewo+IAo+ID4gK8Kg wqDCoCBpbnQgbWJfd2lkdGggPSAoZnJhbWUtPndpZHRoICsgTUJfU0laRSAtIDEpIC8gTUJfU0la RTsKPiA+ICvCoMKgwqAgaW50IG1iX2hlaWdodCA9IChmcmFtZS0+aGVpZ2h0ICsgTUJfU0laRSAt IDEpIC8gTUJfU0laRTsKPiAKPiAKPiA+ICsKPiA+ICvCoMKgwqAgY29uc3QgQVZWaWRlb1JlY3Qg Km1iaW5mb19yZWN0czsKPiA+ICvCoMKgwqAgaW50IG5iX3JlY3RzOwo+ID4gK8KgwqDCoCB1aW50 OF90ICptYmluZm87Cj4gPiArCj4gPiArwqDCoMKgIG1iaW5mb19yZWN0cyA9IChjb25zdCBBVlZp ZGVvUmVjdCAqKWF2X3ZpZGVvX2hpbnRfcmVjdHMoaW5mbyk7Cj4gPiArwqDCoMKgIG5iX3JlY3Rz ID0gaW5mby0+bmJfcmVjdHM7Cj4gPiArCj4gPiArwqDCoMKgIG1iaW5mbyA9IGF2X2NhbGxvYyht Yl93aWR0aCAqIG1iX2hlaWdodCwgc2l6ZW9mKCptYmluZm8pKTsKPiA+ICvCoMKgwqAgaWYgKCFt YmluZm8pCj4gPiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPiA+ICsK PiAKPiA+ICvCoMKgwqAgaWYgKGluZm8tPnR5cGUgPT0gQVZfVklERU9fSElOVF9DSEFOR0VEKSB7 Cj4gPiArwqDCoMKgwqDCoMKgwqAgLyogU2V0cyB0aGUgZGVmYXVsdCBhcyBjb25zdGFudCwgaS5l LiBQX1NLSVAtYWJsZSwgdGhlbgo+ID4gc2VsZWN0aXZlbHkgcmVzZXRzIHRoZSBmbGFnICovCj4g PiArwqDCoMKgwqDCoMKgwqAgbWVtc2V0KG1iaW5mbywgWDI2NF9NQklORk9fQ09OU1RBTlQsIHNp emVvZigqbWJpbmZvKSAqCj4gPiBtYl93aWR0aCAqIG1iX2hlaWdodCk7Cj4gPiArCj4gPiArwqDC oMKgwqDCoMKgwqAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYl9yZWN0czsgaSsrKSB7Cj4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgbWluX3kgPSBNQl9GTE9PUihtYmluZm9fcmVjdHMtPnkp Owo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IG1heF95ID0gTUJfQ0VJTChtYmluZm9f cmVjdHMtPnkgKyBtYmluZm9fcmVjdHMtCj4gPiA+aGVpZ2h0KTsKPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGludCBtaW5feCA9IE1CX0ZMT09SKG1iaW5mb19yZWN0cy0+eCk7Cj4gPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgbWF4X3ggPSBNQl9DRUlMKG1iaW5mb19yZWN0cy0+eCAr IG1iaW5mb19yZWN0cy0KPiA+ID53aWR0aCk7Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBmb3IgKGludCBtYl95ID0gbWluX3k7IG1iX3kgPCBtYXhfeTsgKyttYl95KSB7Cj4gPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1lbXNldChtYmluZm8gKyBtYl95ICogbWJf d2lkdGggKyBtaW5feCwgMCwgbWF4X3gKPiA+IC0gbWluX3gpOwo+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfQo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWJpbmZvX3JlY3Rz Kys7Cj4gPiArwqDCoMKgwqDCoMKgwqAgfQo+ID4gK8KgwqDCoCB9IGVsc2Ugewo+ID4gK8KgwqDC oMKgwqDCoMKgIC8qIFNldHMgdGhlIGRlZmF1bHQgYXMgY2hhbmdlZCwgaS5lLiAqbm90KiBQX1NL SVAtYWJsZSwKPiA+IHRoZW4gc2VsZWN0aXZlbHkgc2V0cyB0aGUgZmxhZyAqLwo+ID4gK8KgwqDC oMKgwqDCoMKgIG1lbXNldChtYmluZm8sIDAsIHNpemVvZigqbWJpbmZvKSAqIG1iX3dpZHRoICog bWJfaGVpZ2h0KTsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoCBmb3IgKGludCBpID0gMDsgaSA8 IG5iX3JlY3RzOyBpKyspIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBtaW5feSA9 IE1CX0NFSUwobWJpbmZvX3JlY3RzLT55KTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlu dCBtYXhfeSA9IE1CX0ZMT09SKG1iaW5mb19yZWN0cy0+eSArIG1iaW5mb19yZWN0cy0KPiA+ID5o ZWlnaHQpOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IG1pbl94ID0gTUJfQ0VJTCht YmluZm9fcmVjdHMtPngpOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IG1heF94ID0g TUJfRkxPT1IobWJpbmZvX3JlY3RzLT54ICsgbWJpbmZvX3JlY3RzLQo+ID4gPndpZHRoKTsKPiA+ ICsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZvciAoaW50IG1iX3kgPSBtaW5feTsgbWJf eSA8IG1heF95OyArK21iX3kpIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg bWVtc2V0KG1iaW5mbyArIG1iX3kgKiBtYl93aWR0aCArIG1pbl94LAo+ID4gWDI2NF9NQklORk9f Q09OU1RBTlQsIG1heF94IC0gbWluX3gpOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+ ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWJpbmZvX3JlY3RzKys7Cj4gCj4geW91 IGNhbiBtZXJnZSB0aGUgdHdvIGxvb3BzIGJ5IGFkZGluZyBhbiBpbmxpbmUgZnVuY3Rpb24gdG8g Y29tcHV0ZQo+IHRoZSBtaW5zIGFuZCBtYXhzLCBhbmQgdGhlbiBzZXR0aW5nOgo+IAo+IG1iaW5m b19maWxsZXLCoMKgwqDCoCA9IEFWX1ZJREVPX0hJTlRfQ0hBTkdFRCA/IFgyNjRfTUJJTkZPX0NP TlNUQU5UIDogMDsKPiBtYmluZm9fbWFya2VywqDCoMKgwqAgPSBBVl9WSURFT19ISU5UX0NIQU5H RUQgPyAwIDogWDI2NF9NQklORk9fQ09OU1RBTlQ7Cj4gY29tcHV0ZV9jb29yZHNfZm4gPSBBVl9W SURFT19ISU5UX0NIQU5HRUQgPyBjb21wdXRlX2NoYW5nZWRfY29vcmRzIDoKPiBjb21wdXRlX2Nv bnN0YW50X2Nvb3JkczsKPiAKPiBtZW1zZXQobWJpbmZvLCBtYmluZm9fZmlsbGVyLCBzaXplb2Yo Km1iaW5mbykgKiBtYl93aWR0aCAqCj4gbWJfaGVpZ2h0KTsKPiBmb3IgKGludCBpID0gMDsgaSA8 IG5iX3JlY3RzOyBpKyspIHsKPiDCoMKgwqAgY29tcHV0ZV9jb29yZHNfZm4uLi4KPiDCoMKgwqAg Zm9yIChpbnQgbWJfeSA9IG1pbl95OyBtYl95IDwgbWF4X3k7ICsrbWJfeSkgewo+IMKgwqDCoMKg wqDCoMKgIG1lbXNldChtYmluZm8gKyBtYl95ICogbWJfd2lkdGggKyBtaW5feCwgbWJpbmZvX21h cmtlciwgbWF4X3gKPiAtIG1pbl94KTsKPiDCoMKgwqAgfQo+IAo+IMKgwqDCoCBtYmluZm9fcmVj dHMrKzsKPiB9Cj4gCj4gPiArwqDCoMKgwqDCoMKgwqAgfQo+ID4gK8KgwqDCoCB9Cj4gPiArCj4g PiArwqDCoMKgIHBpYy0+cHJvcC5tYl9pbmZvID0gbWJpbmZvOwo+ID4gK8KgwqDCoCBwaWMtPnBy b3AubWJfaW5mb19mcmVlID0gYXZfZnJlZTsKPiA+ICsKPiA+ICvCoMKgwqAgcmV0dXJuIDA7Cj4g PiArfQo+ID4gKwo+ID4gwqBzdGF0aWMgaW50IHNldHVwX3JvaShBVkNvZGVjQ29udGV4dCAqY3R4 LCB4MjY0X3BpY3R1cmVfdCAqcGljLCBpbnQKPiA+IGJpdF9kZXB0aCwKPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25zdCBBVkZyYW1lICpmcmFtZSwgY29u c3QgdWludDhfdCAqZGF0YSwKPiA+IHNpemVfdCBzaXplKQo+ID4gwqB7Cj4gPiBAQCAtNDA0LDYg KzQ2OSw3IEBAIHN0YXRpYyBpbnQgc2V0dXBfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmN0eCwKPiA+ IGNvbnN0IEFWRnJhbWUgKmZyYW1lLAo+ID4gwqDCoMKgwqAgaW50NjRfdCB3YWxsY2xvY2sgPSAw Owo+ID4gwqDCoMKgwqAgaW50IGJpdF9kZXB0aCwgcmV0Owo+ID4gwqDCoMKgwqAgQVZGcmFtZVNp ZGVEYXRhICpzZDsKPiA+ICvCoMKgwqAgQVZGcmFtZVNpZGVEYXRhICptYmluZm9fc2Q7Cj4gPiAK PiA+IMKgwqDCoMKgICpwcGljID0gTlVMTDsKPiA+IMKgwqDCoMKgIGlmICghZnJhbWUpCj4gPiBA QCAtNDk5LDYgKzU2NSwxNyBAQCBGRl9FTkFCTEVfREVQUkVDQVRJT05fV0FSTklOR1MKPiA+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGZhaWw7Cj4gPiDCoMKgwqDCoCB9Cj4gPiAKPiA+ ICvCoMKgwqAgbWJpbmZvX3NkID0gYXZfZnJhbWVfZ2V0X3NpZGVfZGF0YShmcmFtZSwKPiA+IEFW X0ZSQU1FX0RBVEFfVklERU9fSElOVCk7Cj4gPiArwqDCoMKgIGlmIChtYmluZm9fc2QpIHsKPiA+ ICvCoMKgwqDCoMKgwqDCoCBpbnQgcmV0ID0gc2V0dXBfbWJfaW5mbyhjdHgsIHBpYywgZnJhbWUs IChjb25zdAo+ID4gQVZWaWRlb0hpbnQgKiltYmluZm9fc2QtPmRhdGEpOwo+ID4gK8KgwqDCoMKg wqDCoMKgIGlmIChyZXQgPCAwKSB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBObyBu ZWVkIHRvIGZhaWwgaGVyZSwgdGhpcyBpcyBub3QgZmF0YWwuIFdlIGp1c3QKPiA+IHByb2NlZWQg d2l0aCBubwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIG1iX2luZm8gYW5kIGxvZyBh IG1lc3NhZ2UgKi8KPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF2X2xvZyhjdHgs IEFWX0xPR19XQVJOSU5HLCAibWJfaW5mbyBzZXR1cAo+ID4gZmFpbHVyZVxuIik7Cj4gPiArwqDC oMKgwqDCoMKgwqAgfQo+ID4gK8KgwqDCoCB9Cj4gPiArCj4gPiDCoMKgwqDCoCBpZiAoeDQtPnVk dV9zZWkpIHsKPiA+IMKgwqDCoMKgwqDCoMKgwqAgZm9yIChpbnQgaiA9IDA7IGogPCBmcmFtZS0+ bmJfc2lkZV9kYXRhOyBqKyspIHsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBBVkZyYW1l U2lkZURhdGEgKnNpZGVfZGF0YSA9IGZyYW1lLT5zaWRlX2RhdGFbal07Cj4gPiBAQCAtMTEwMiw2 ICsxMTc5LDkgQEAgRkZfRU5BQkxFX0RFUFJFQ0FUSU9OX1dBUk5JTkdTCj4gPiDCoMKgwqDCoMKg wqDCoMKgIH0KPiA+IMKgwqDCoMKgIH0KPiA+IAo+ID4gK8KgwqDCoCB4NC0+cGFyYW1zLmFuYWx5 c2UuYl9tYl9pbmZvID0geDQtPm1iX2luZm87Cj4gPiArwqDCoMKgIHg0LT5wYXJhbXMuYW5hbHlz ZS5iX2Zhc3RfcHNraXAgPSAxOwo+ID4gKwo+ID4gwqDCoMKgwqAgLy8gdXBkYXRlIEFWQ29kZWND b250ZXh0IHdpdGggeDI2NCBwYXJhbWV0ZXJzCj4gPiDCoMKgwqDCoCBhdmN0eC0+aGFzX2JfZnJh bWVzID0geDQtPnBhcmFtcy5pX2JmcmFtZSA/Cj4gPiDCoMKgwqDCoMKgwqDCoMKgIHg0LT5wYXJh bXMuaV9iZnJhbWVfcHlyYW1pZCA/IDIgOiAxIDogMDsKPiA+IEBAIC0xMzExLDYgKzEzOTEsNyBA QCBzdGF0aWMgY29uc3QgQVZPcHRpb24gb3B0aW9uc1tdID0gewo+ID4gwqDCoMKgwqAgeyAibm9p c2VfcmVkdWN0aW9uIiwgIk5vaXNlCj4gPiByZWR1Y3Rpb24iLMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBPRkZTRVQobm9pc2VfcmVk dWN0aW9uKSwKPiA+IEFWX09QVF9UWVBFX0lOVCwgeyAuaTY0ID0gLTEgfSwgSU5UX01JTiwgSU5U X01BWCwgVkUgfSwKPiA+IMKgwqDCoMKgIHsgInVkdV9zZWkiLMKgwqDCoMKgwqAgIlVzZSB1c2Vy IGRhdGEgdW5yZWdpc3RlcmVkIFNFSSBpZgo+ID4gYXZhaWxhYmxlIizCoMKgwqDCoMKgIE9GRlNF VCh1ZHVfc2VpKSzCoCBBVl9PUFRfVFlQRV9CT09MLMKgwqAgeyAuaTY0ID0gMAo+ID4gfSwgMCwg MSwgVkUgfSwKPiA+IMKgwqDCoMKgIHsgIngyNjQtcGFyYW1zIizCoCAiT3ZlcnJpZGUgdGhlIHgy NjQgY29uZmlndXJhdGlvbiB1c2luZyBhIDotCj4gPiBzZXBhcmF0ZWQgbGlzdCBvZiBrZXk9dmFs dWUgcGFyYW1ldGVycyIsIE9GRlNFVCh4MjY0X3BhcmFtcyksCj4gPiBBVl9PUFRfVFlQRV9ESUNU LCB7IDAgfSwgMCwgMCwgVkUgfSwKPiA+ICvCoMKgwqAgeyAibWJfaW5mbyIswqDCoMKgwqDCoCAi U2V0IG1iX2luZm8gZGF0YSB0aHJvdWdoIEFWU2lkZURhdGEsIG9ubHkKPiA+IHVzZWZ1bCB3aGVu IHVzZWQgZnJvbSB0aGUgQVBJIiwgT0ZGU0VUKG1iX2luZm8pLCBBVl9PUFRfVFlQRV9CT09MLAo+ ID4geyAuaTY0ID0gMCB9LCAwLCAxLCBWRSB9LAo+ID4gwqDCoMKgwqAgeyBOVUxMIH0sCj4gPiDC oH07Cj4gPiAKPiA+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwvTWFrZWZpbGUgYi9saWJhdnV0aWwv TWFrZWZpbGUKPiA+IGluZGV4IGRjOTAxMmY5YTguLmJiNWVjYzMyMzUgMTAwNjQ0Cj4gPiAtLS0g YS9saWJhdnV0aWwvTWFrZWZpbGUKPiA+ICsrKyBiL2xpYmF2dXRpbC9NYWtlZmlsZQo+ID4gQEAg LTkxLDYgKzkxLDcgQEAgSEVBREVSUyA9Cj4gPiBhZGxlcjMyLmjCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+ ID4gdGVhLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIFwKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gPiB0eC5owqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiA+IMKgwqDCoMKg wqDCoMKgwqDCoMKgCj4gPiBmaWxtX2dyYWluX3BhcmFtcy5owqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIFwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAKPiA+IHZpZGVvX2hpbnRfaW5mby5owqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+ID4gwqDCoCBcCj4gCj4g PiAKPiA+IMKgQVJDSF9IRUFERVJTID0KPiA+IGJzd2FwLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAK PiA+IGludG1hdGguaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+ID4g QEAgLTE5Niw2ICsxOTcsNyBAQCBPQkpTLSQoQ09ORklHX1ZBQVBJKcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICs9Cj4gPiBod2NvbnRleHRfdmFhcGkubwo+ID4gwqBPQkpT LSQoQ09ORklHX1ZJREVPVE9PTEJPWCnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKz0KPiA+IGh3 Y29udGV4dF92aWRlb3Rvb2xib3gubwo+ID4gwqBPQkpTLSQoQ09ORklHX1ZEUEFVKcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICs9IGh3Y29udGV4dF92ZHBhdS5vCj4gPiDC oE9CSlMtJChDT05GSUdfVlVMS0FOKcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCArPSBod2NvbnRleHRfdnVsa2FuLm8KPiA+ICtPQkpTLSQoQ09ORklHX0xJQlgyNjQpwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCArPSB2aWRlb19oaW50X2luZm8ubwo+IAo+IG9y ZGVyCj4gCj4gPiAKPiA+IMKgT0JKUy0kKCFDT05GSUdfVlVMS0FOKcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKz0gaHdjb250ZXh0X3N0dWIubwo+ID4gCj4gPiBAQCAtMjE5LDYg KzIyMSw4IEBAIFNLSVBIRUFERVJTLSQoQ09ORklHX1ZVTEtBTinCoMKgwqDCoMKgwqDCoMKgwqDC oCArPQo+ID4gaHdjb250ZXh0X3Z1bGthbi5oIHZ1bGthbi5owqDCoCBcCj4gPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAKPiA+IHZ1bGthbl9mdW5jdGlvbnMuaMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgXAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZ1bGthbl9sb2FkZXIuaAo+ ID4gCj4gPiArU0tJUEhFQURFUlMtJChDT05GSUdfTElCWDI2NCnCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICs9IHZpZGVvX2hpbnRfaW5mby5oCj4gPiArCj4gPiDCoFRFU1RQUk9HUyA9Cj4g PiBhZGxlcjMywqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg XAo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gPiBhZXPCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFwKPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoAo+ID4gYWVzX2N0csKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIFwKPiA+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwvZnJhbWUuaCBiL2xpYmF2 dXRpbC9mcmFtZS5oCj4gPiBpbmRleCBhNDkxMzE1ZjI1Li4wZTc2NWU1NDk5IDEwMDY0NAo+ID4g LS0tIGEvbGliYXZ1dGlsL2ZyYW1lLmgKPiA+ICsrKyBiL2xpYmF2dXRpbC9mcmFtZS5oCj4gPiBA QCAtMjE0LDYgKzIxNCwxNiBAQCBlbnVtIEFWRnJhbWVTaWRlRGF0YVR5cGUgewo+ID4gwqDCoMKg wqDCoCAqIEFtYmllbnQgdmlld2luZyBlbnZpcm9ubWVudCBtZXRhZGF0YSwgYXMgZGVmaW5lZCBi eSBILjI3NC4KPiA+IMKgwqDCoMKgwqAgKi8KPiA+IMKgwqDCoMKgIEFWX0ZSQU1FX0RBVEFfQU1C SUVOVF9WSUVXSU5HX0VOVklST05NRU5ULAo+ID4gKwo+ID4gK8KgwqDCoCAvKioKPiA+ICvCoMKg wqDCoCAqIFByb3ZpZGUgbWFjcm8gYmxvY2sgZW5jb2Rlci1zcGVjaWZpYyBoaW50aW5nIGluZm9y bWF0aW9uCj4gPiBmb3IgdGhlIGVuY29kZXIKPiA+ICvCoMKgwqDCoCAqIHByb2Nlc3NpbmcuwqAg SXQgY2FuIGJlIHVzZWQgdG8gcGFzcyBpbmZvcm1hdGlvbiBhYm91dCB3aGljaAo+ID4gbWFjcm9i bG9jawo+ID4gK8KgwqDCoMKgICogY2FuIGJlIHNraXBwZWQgYmVjYXVzZSBpdCBoYXNuJ3QgY2hh bmdlZCBmcm9tIHRoZQo+ID4gY29ycmVzcG9uZGluZyBvbmUgaW4KPiA+ICvCoMKgwqDCoCAqIHRo ZSBwcmV2aW91cyBmcmFtZS4gVGhpcyBpcyB1c2VmdWwgZm9yIGFwcGxpY2F0aW9ucyB3aGljaAo+ ID4ga25vdyBpbgo+ID4gK8KgwqDCoMKgICogYWR2YW5jZSB0aGlzIGluZm9ybWF0aW9uIHRvIHNw ZWVkIHVwIHJlYWwtdGltZSBlbmNvZGluZy7CoAo+ID4gQ3VycmVudGx5IG9ubHkKPiA+ICvCoMKg wqDCoCAqIHVzZWQgYnkgbGlieDI2NC4KPiA+ICvCoMKgwqDCoCAqLwo+ID4gK8KgwqDCoCBBVl9G UkFNRV9EQVRBX1ZJREVPX0hJTlQsCj4gPiDCoH07Cj4gPiAKPiA+IMKgZW51bSBBVkFjdGl2ZUZv cm1hdERlc2NyaXB0aW9uIHsKPiA+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwvdmlkZW9faGludF9p bmZvLmMKPiA+IGIvbGliYXZ1dGlsL3ZpZGVvX2hpbnRfaW5mby5jCj4gPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+ID4gaW5kZXggMDAwMDAwMDAwMC4uMGE3NjM5NjJkYQo+ID4gLS0tIC9kZXYvbnVs bAo+ID4gKysrIGIvbGliYXZ1dGlsL3ZpZGVvX2hpbnRfaW5mby5jCj4gPiBAQCAtMCwwICsxLDg5 IEBACj4gPiArLyoKPiA+ICsgKiBDb3B5cmlnaHQgMjAyMyBFbGlhcyBDYXJvdHRpIDxlbGlhc2Ny dCBhdCBhbWF6b24gZG90IGl0Pgo+ID4gKyAqCj4gPiArICogVGhpcyBmaWxlIGlzIHBhcnQgb2Yg RkZtcGVnLgo+ID4gKyAqCj4gPiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+ID4gKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiA+ICsgKiBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKPiA+ICsgKiB2ZXJz aW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIKPiA+ IHZlcnNpb24uCj4gPiArICoKPiA+ICsgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKPiA+ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+ID4gKyAqIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS7CoCBTZWUgdGhlCj4g PiBHTlUKPiA+ICsgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgo+ID4gKyAqCj4gPiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsCj4gPiBQdWJsaWMKPiA+ICsgKiBMaWNlbnNlIGFsb25nIHdp dGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCj4gPiArICogRm91 bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN QQo+ID4gMDIxMTAtMTMwMSBVU0EKPiA+ICsgKi8KPiA+ICsKPiA+ICsjaW5jbHVkZSA8c3RyaW5n Lmg+Cj4gPiArCj4gPiArI2luY2x1ZGUgImF2c3RyaW5nLmgiCj4gPiArI2luY2x1ZGUgImZyYW1l LmgiCj4gPiArI2luY2x1ZGUgIm1hY3Jvcy5oIgo+ID4gKyNpbmNsdWRlICJtZW0uaCIKPiA+ICsj aW5jbHVkZSAidmlkZW9faGludF9pbmZvLmgiCj4gPiArCj4gPiArQVZWaWRlb0hpbnQgKmF2X3Zp ZGVvX2hpbnRfYWxsb2MoQVZWaWRlb1JlY3QgKnJlY3RzLAo+IAo+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgc2l6ZV90IG5iX3JlY3RzLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgVmlkZW9IaW50VHlwZSB0eXBlLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6 ZV90KiBvdXRfc2l6ZSkKPiAKPiBhbGlnbiB0byAoCj4gCj4gPiArewo+ID4gK8KgwqDCoCBzdHJ1 Y3QgVGVzdFN0cnVjdCB7Cj4gPiArwqDCoMKgwqDCoMKgwqAgQVZWaWRlb0hpbnTCoMKgwqAgcDsK PiA+ICvCoMKgwqDCoMKgwqDCoCBBVlZpZGVvUmVjdMKgwqDCoMKgwqDCoMKgIGI7Cj4gPiArwqDC oMKgIH07Cj4gCj4gbml0OiB3ZWlyZCBhbGlnbiAoYWxzbyB1c2UgbW9yZSBtZWFuaW5nZnVsIG5h bWVzIC0gZS5nLiBoaW50IGFuZAo+IHJlY3QpCj4gCj4gPiArwqDCoMKgIGNvbnN0IHNpemVfdCBi bG9ja3Nfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IFRlc3RTdHJ1Y3QsIGIpOwo+ID4gK8KgwqDC oCBzaXplX3Qgc2l6ZSA9IGJsb2Nrc19vZmZzZXQ7Cj4gCj4gPiArwqDCoMKgIEFWVmlkZW9IaW50 ICpwYXI7Cj4gCj4gQVZWaWRlb0hpbnQgKmhpbnQ/Cj4gCj4gPiArCj4gPiArwqDCoMKgICpvdXRf c2l6ZSA9IDA7Cj4gCj4gPiArwqDCoMKgIGlmIChuYl9yZWN0cyA+IChTSVpFX01BWCAtIHNpemUp IC8gc2l6ZW9mKEFWVmlkZW9SZWN0KSkKPiAKPiB3aHkgU0laRV9NQVggLSBzaXplPwo+IAo+ID4g K8KgwqDCoMKgwqDCoMKgIHJldHVybiBOVUxMOwo+IAo+ID4gK8KgwqDCoCBzaXplICs9IHNpemVv ZihBVlZpZGVvUmVjdCkgKiBuYl9yZWN0czsKPiA+ICsKPiA+ICvCoMKgwqAgcGFyID0gYXZfbWFs bG9jeihzaXplKTsKPiA+ICvCoMKgwqAgaWYgKCFwYXIpCj4gPiArwqDCoMKgwqDCoMKgwqAgcmV0 dXJuIE5VTEw7Cj4gPiArCj4gPiArwqDCoMKgIHBhci0+dHlwZcKgwqDCoMKgwqDCoMKgwqDCoCA9 IHR5cGU7Cj4gPiArwqDCoMKgIHBhci0+bmJfcmVjdHPCoMKgwqDCoMKgID0gbmJfcmVjdHM7Cj4g PiArwqDCoMKgIHBhci0+YmxvY2tzX29mZnNldCA9IGJsb2Nrc19vZmZzZXQ7Cj4gPiArCj4gPiAr wqDCoMKgIC8qIEp1c3QgY29waWVzIHRoZSByZWN0cyBvdmVyIHRoZSBuZXdseSBhbGxvY2F0ZWQg YnVmZmVyICovCj4gPiArwqDCoMKgIG1lbWNweSgodWludDhfdCAqKXBhciArIGJsb2Nrc19vZmZz ZXQsIHJlY3RzLAo+ID4gc2l6ZW9mKEFWVmlkZW9SZWN0KSAqIG5iX3JlY3RzKTsKPiA+ICsKPiA+ ICvCoMKgwqAgKm91dF9zaXplID0gc2l6ZTsKPiA+ICsKPiA+ICvCoMKgwqAgcmV0dXJuIHBhcjsK PiA+ICt9Cj4gPiArCj4gPiArQVZWaWRlb0hpbnQgKmF2X3ZpZGVvX2hpbnRfY3JlYXRlX3NpZGVf ZGF0YShBVkZyYW1lICpmcmFtZSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBB VlZpZGVvUmVjdCAqcmVjdHMsCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6 ZV90IG51bV9yZWN0cywKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBWaWRlb0hp bnRUeXBlIHR5cGUpCj4gPiArewo+IAo+ID4gK8KgwqDCoCBBVlZpZGVvSGludCAqcGFyOwo+IAo+ IHVzZSBhIG1vcmUgbWVhbmluZ2Z1bCBuYW1lIChJIHRoaW5rICJwYXIiIGlzIGEgbGVmdG92ZXIg b2YgYW4gb2xkZXIKPiBBUEkpCj4gCj4gPiArwqDCoMKgIEFWQnVmZmVyUmVmICpidWY7Cj4gPiAr wqDCoMKgIHNpemVfdCBzaXplID0gMDsKPiA+ICsKPiA+ICvCoMKgwqAgcGFyID0gYXZfdmlkZW9f aGludF9hbGxvYyhyZWN0cywgbnVtX3JlY3RzLCB0eXBlLCAmc2l6ZSk7Cj4gPiArwqDCoMKgIGlm ICghcGFyKQo+ID4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBOVUxMOwo+ID4gKwo+ID4gK8KgwqDC oCBidWYgPSBhdl9idWZmZXJfY3JlYXRlKCh1aW50OF90ICopcGFyLCBzaXplLCBOVUxMLCBOVUxM LCAwKTsKPiA+ICvCoMKgwqAgaWYgKCFidWYpIHsKPiA+ICvCoMKgwqDCoMKgwqDCoCBhdl9mcmVl cCgmcGFyKTsKPiA+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gTlVMTDsKPiA+ICvCoMKgwqAgfQo+ ID4gKwo+ID4gK8KgwqDCoCBpZiAoIWF2X2ZyYW1lX25ld19zaWRlX2RhdGFfZnJvbV9idWYoZnJh bWUsCj4gPiBBVl9GUkFNRV9EQVRBX1ZJREVPX0hJTlQsIGJ1ZikpIHsKPiA+ICvCoMKgwqDCoMKg wqDCoCBhdl9idWZmZXJfdW5yZWYoJmJ1Zik7Cj4gPiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIE5V TEw7Cj4gPiArwqDCoMKgIH0KPiA+ICsKPiA+ICvCoMKgwqAgcmV0dXJuIHBhcjsKPiA+ICt9Cj4g PiArCj4gPiBkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL3ZpZGVvX2hpbnRfaW5mby5oCj4gPiBiL2xp YmF2dXRpbC92aWRlb19oaW50X2luZm8uaAo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+IGlu ZGV4IDAwMDAwMDAwMDAuLjNiMDRlMGM0MGUKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL2xp YmF2dXRpbC92aWRlb19oaW50X2luZm8uaAo+ID4gQEAgLTAsMCArMSw4NyBAQAo+ID4gKy8qKgo+ ID4gKyAqIENvcHlyaWdodCAyMDIzIEVsaWFzIENhcm90dGkgPGVsaWFzY3J0IGF0IGFtYXpvbiBk b3QgaXQ+Cj4gPiArICoKPiA+ICsgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCj4gPiAr ICoKPiA+ICsgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCj4gPiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYwo+ID4gKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgo+ID4gKyAqIHZlcnNpb24gMi4xIG9mIHRo ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlcgo+ID4gdmVyc2lvbi4KPiA+ ICsgKgo+ID4gKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAo+ID4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4gPiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLsKgIFNlZSB0aGUKPiA+IEdOVQo+ID4gKyAq IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4gPiArICoK PiA+ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwKPiA+IFB1YmxpYwo+ID4gKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlm IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKPiA+ICsgKiBGb3VuZGF0aW9uLCBJbmMu LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCj4gPiAwMjExMC0x MzAxIFVTQQo+ID4gKyAqLwo+ID4gKwo+ID4gKyNpZm5kZWYgQVZVVElMX1ZJREVPX0hJTlRfSU5G T19ICj4gPiArI2RlZmluZSBBVlVUSUxfVklERU9fSElOVF9JTkZPX0gKPiA+ICsKPiA+ICsjaW5j bHVkZSA8c3RkZGVmLmg+Cj4gPiArI2luY2x1ZGUgPHN0ZGludC5oPgo+ID4gKyNpbmNsdWRlICJs aWJhdnV0aWwvYXZhc3NlcnQuaCIKPiA+ICsjaW5jbHVkZSAibGliYXZ1dGlsL2ZyYW1lLmgiCj4g PiArCj4gPiArdHlwZWRlZiBzdHJ1Y3QgQVZWaWRlb1JlY3Qgewo+ID4gK8KgwqDCoCB1aW50MzJf dCB4LCB5Owo+ID4gK8KgwqDCoCB1aW50MzJfdCB3aWR0aCwgaGVpZ2h0Owo+ID4gK30gQVZWaWRl b1JlY3Q7Cj4gPiArCj4gCj4gPiArdHlwZWRlZiBlbnVtIFZpZGVvSGludFR5cGUgewo+ID4gK8Kg wqDCoCAvKiBibG9ja3MgZGVsaW1pdCB0aGUgY29uc3RhbnQgYXJlYXMgKHVuY2hhbmdlZCksIGRl ZmF1bHQgaXMKPiA+IGNoYW5nZWQgKi8KPiA+ICvCoMKgwqAgQVZfVklERU9fSElOVF9DT05TVEFO VCwKPiA+ICsKPiA+ICvCoMKgwqAgLyogYmxvY2tzIGRlbGltaXQgdGhlIGNvbnN0YW50IGFyZWFz IChjaGFuZ2VkKSwgZGVmYXVsdCBpcyBub3QKPiA+IGNoYW5nZWQgKi8KPiA+ICvCoMKgwqAgQVZf VklERU9fSElOVF9DSEFOR0VELAo+ID4gK30gVmlkZW9IaW50VHlwZTsKPiAKPiBtaXNzaW5nIEFW IHByZWZpeAo+IAo+ID4gKwo+ID4gK3R5cGVkZWYgc3RydWN0IEFWVmlkZW9IaW50IHsKPiA+ICvC oMKgwqAgLyoqCj4gPiArwqDCoMKgwqAgKiBOdW1iZXIgb2YgYmxvY2tzIGluIHRoZSBhcnJheS4K PiA+ICvCoMKgwqDCoCAqCj4gPiArwqDCoMKgwqAgKiBNYXkgYmUgMCwgaW4gd2hpY2ggY2FzZSBu byBwZXItYmxvY2sgaW5mb3JtYXRpb24gaXMKPiA+IHByZXNlbnQuIEluIHRoaXMgY2FzZQo+ID4g K8KgwqDCoMKgICogdGhlIHZhbHVlcyBvZiBibG9ja3Nfb2Zmc2V0IC8gYmxvY2tfc2l6ZSBhcmUg dW5zcGVjaWZpZWQKPiA+IGFuZCBzaG91bGQgbm90Cj4gPiArwqDCoMKgwqAgKiBiZSBhY2Nlc3Nl ZC4KPiA+ICvCoMKgwqDCoCAqLwo+ID4gK8KgwqDCoCBpbnQgbmJfcmVjdHM7Cj4gPiArCj4gPiAr wqDCoMKgIC8qKgo+ID4gK8KgwqDCoMKgICogT2Zmc2V0IGluIGJ5dGVzIGZyb20gdGhlIGJlZ2lu bmluZyBvZiB0aGlzIHN0cnVjdHVyZSBhdAo+ID4gd2hpY2ggdGhlIGFycmF5Cj4gPiArwqDCoMKg wqAgKiBvZiBibG9ja3Mgc3RhcnRzLgo+ID4gK8KgwqDCoMKgICovCj4gPiArwqDCoMKgIHNpemVf dCBibG9ja3Nfb2Zmc2V0Owo+ID4gKwo+ID4gK8KgwqDCoCBWaWRlb0hpbnRUeXBlIHR5cGU7Cj4g PiArfSBBVlZpZGVvSGludDsKPiA+ICsKPiA+ICtzdGF0aWMgYXZfYWx3YXlzX2lubGluZSBBVlZp ZGVvUmVjdCoKPiA+ICthdl92aWRlb19oaW50X3JlY3RzKGNvbnN0IEFWVmlkZW9IaW50ICpwYXIp Cj4gPiArewo+ID4gK8KgwqDCoCByZXR1cm4gKEFWVmlkZW9SZWN0ICopKCh1aW50OF90ICopcGFy ICsgcGFyLT5ibG9ja3Nfb2Zmc2V0KTsKPiA+ICt9Cj4gPiArCj4gPiArLyoqCj4gPiArICogQWxs b2NhdGUgbWVtb3J5IGZvciBhIHZlY3RvciBvZiBBVlZpZGVvUmVjdCBpbiB0aGUgZ2l2ZW4KPiA+ IEFWRnJhbWUKPiA+ICsgKiB7QGNvZGUgZnJhbWV9IGFzIEFWRnJhbWVTaWRlRGF0YSBvZiB0eXBl Cj4gPiBBVl9GUkFNRV9EQVRBX1ZJREVPX0hJTlRfSU5GTy4KPiA+ICsgKiBUaGUgc2lkZSBkYXRh IGNvbnRhaW5zIGEgbGlzdCBvZiByZWN0YW5nbGVzIGZvciB0aGUgcG9ydGlvbnMgb2YKPiA+IHRo ZSBmcmFtZQo+ID4gKyAqIHdoaWNoIGNoYW5nZWQgZnJvbSB0aGUgbGFzdCBlbmNvZGVkIG9uZSAo YW5kIHRoZSByZW1haW5kZXIgYXJlCj4gPiBhc3N1bWVkIHRvIGJlCj4gPiArICogY2hhbmdlZCks IG9yLCBhbHRlcm5hdGVseSAoZGVwZW5kaW5nIG9uIHRoZSB0eXBlIHBhcmFtZXRlcikgdGhlCj4g PiB1bmNoYW5nZWQKPiA+ICsgKiBvbmVzIChhbmQgdGhlIHJlbWFuaW5pbmcgb25lcyBhcmUgdGhv c2Ugd2hpY2ggY2hhbmdlZCkuCj4gPiArICogTWFjcm9ibG9ja3Mgd2lsbCB0aHVzIGJlIGhpbnRl ZCBlaXRoZXIgdG8gYmUgUF9TS0lQLXBlZCBvciBnbwo+ID4gdGhyb3VnaCB0aGUKPiA+ICsgKiBy ZWd1bGFyIGVuY29kaW5nIHByb2NlZHVyZS4KPiA+ICsgKi8KPiA+ICtBVlZpZGVvSGludCAqYXZf dmlkZW9faGludF9jcmVhdGVfc2lkZV9kYXRhKEFWRnJhbWUgKmZyYW1lLAo+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIEFWVmlkZW9SZWN0ICpyZWN0cywKPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzaXplX3QgbnVtX3JlY3RzLAo+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIFZpZGVvSGludFR5cGUgdHlwZSk7Cj4gPiArCj4gPiArQVZWaWRlb0hp bnQgKmF2X3ZpZGVvX2hpbnRfYWxsb2MoQVZWaWRlb1JlY3QgKnJlY3RzLAo+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg c2l6ZV90IG5iX3JlY3RzLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgVmlkZW9IaW50VHlwZSB0eXBlLAo+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgc2l6ZV90ICpvdXRfc2l6ZSk7Cj4gPiArCj4gCj4gPiArI2VuZGlmIC8qIEFWVVRJTF9f VklERU9fSElOVF9JTkZPX0ggKi8KPiAKPiBBVlVUSUxfVklERU8uLi4KPiAKPiA+IC0tCj4gPiAy LjM0LjEKPiA+IAo+IAo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPiA+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+IGZmbXBlZy1kZXZlbEBm Zm1wZWcub3JnCj4gPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWct ZGV2ZWwKPiA+IAo+ID4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWls Cj4gPiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnwqB3aXRoIHN1YmplY3QgInVuc3Vi c2NyaWJlIi4KPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9y Zwo+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+IAo+ IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+IGZmbXBlZy1kZXZl bC1yZXF1ZXN0QGZmbXBlZy5vcmfCoHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgoKCgoKTklD RSBTUkwsIHZpYWxlIE1vbnRlIEdyYXBwYSAzLzUsIDIwMTI0IE1pbGFubywgSXRhbGlhLCBSZWdp c3RybyBkZWxsZSBJbXByZXNlIGRpIE1pbGFubyBNb256YSBCcmlhbnphIExvZGkgUkVBIG4uIDIw OTY4ODIsIENhcGl0YWxlIFNvY2lhbGU6IDEwLjMyOSwxNCBFVVIgaS52LiwgQ29kLiBGaXNjLiBl IFAuSVZBIDAxMTMzMDUwMDUyLCBTb2NpZXRhIGNvbiBTb2NpbyBVbmljbwoKCg== --_002_c6d3eed119af4c08235eca8f3e7c72d66372961ccamelamazonit_ Content-Type: text/x-patch; name="0001-Add-support-for-libx264-s-MB_INFO.patch" Content-Description: 0001-Add-support-for-libx264-s-MB_INFO.patch Content-Disposition: attachment; filename="0001-Add-support-for-libx264-s-MB_INFO.patch"; size=15595; creation-date="Mon, 05 Jun 2023 15:32:35 GMT"; modification-date="Mon, 05 Jun 2023 15:32:35 GMT" Content-ID: Content-Transfer-Encoding: base64 RnJvbSA4Mjg4ZDJiZDM2ZmZlZDI5MTQwZDQ2YzQyYjZmNTUxNWE5MDU4ODM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFbGlhcyBDYXJvdHRpIDxlbGlhc2NyIF9hdF8gYW1hem9uIF9k b3RfIGl0PgpEYXRlOiBXZWQsIDE5IEFwciAyMDIzIDExOjQ5OjM5ICswMjAwClN1YmplY3Q6IFtQ QVRDSF0gQWRkIHN1cHBvcnQgZm9yIGxpYngyNjQncyBNQl9JTkZPCgpsaWJ4MjY0J3MgeDI2NF9p bWFnZV9wcm9wZXJ0aWVzX3QsIHdoaWNoIGlzIHBhc3NlZCB0byB0aGUgZW5jb2RpbmcgZnVuY3Rp b24sCmNvbnRhaW5zIGEgZmllbGQgdG8gcGFzcyBkb3duIGluZm9ybWF0aW9uIG9uIHRoZSBwb3J0 aW9ucyBvZiB0aGUgZnJhbWUgd2hpY2gKY2hhbmdlZCB3aXRoIHJlc3BlY3QgdG8gdGhlIHByZXZp b3VzIG9uZSAodXNlZCBmb3IgcHJlZGljdGlvbikgdG8gbWFyawp1bmNoYW5nZWQgbWFjcm9ibG9j a3MgUF9TS0lQLgotLS0KIGxpYmF2Y29kZWMvbGlieDI2NC5jICAgICAgICB8IDk0ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYmF2dXRpbC9NYWtlZmlsZSAgICAgICAg ICB8ICA0ICsrCiBsaWJhdnV0aWwvZnJhbWUuaCAgICAgICAgICAgfCAxMCArKysrCiBsaWJhdnV0 aWwvdmlkZW9faGludF9pbmZvLmMgfCA4OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogbGliYXZ1dGlsL3ZpZGVvX2hpbnRfaW5mby5oIHwgODcgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAyODQgaW5zZXJ0aW9ucygrKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGxpYmF2dXRpbC92aWRlb19oaW50X2luZm8uYwogY3JlYXRlIG1vZGUg MTAwNjQ0IGxpYmF2dXRpbC92aWRlb19oaW50X2luZm8uaAoKZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMvbGlieDI2NC5jIGIvbGliYXZjb2RlYy9saWJ4MjY0LmMKaW5kZXggNTczNmYxZWZhNy4uMmNm Nzc1NWVlYyAxMDA2NDQKLS0tIGEvbGliYXZjb2RlYy9saWJ4MjY0LmMKKysrIGIvbGliYXZjb2Rl Yy9saWJ4MjY0LmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJsaWJhdnV0aWwvc3RlcmVv M2QuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvdGltZS5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9p bnRyZWFkd3JpdGUuaCIKKyNpbmNsdWRlICJsaWJhdnV0aWwvdmlkZW9faGludF9pbmZvLmgiCiAj aW5jbHVkZSAiYXZjb2RlYy5oIgogI2luY2x1ZGUgImNvZGVjX2ludGVybmFsLmgiCiAjaW5jbHVk ZSAiZW5jb2RlLmgiCkBAIC00OCw2ICs0OSwxMyBAQAogLy8gZnJvbSB4MjY0LmgsIGZvciBxdWFu dF9vZmZzZXRzLCBNYWNyb2Jsb2NrcyBhcmUgMTZ4MTYKIC8vIGJsb2NrcyBvZiBwaXhlbHMgKHdp dGggcmVzcGVjdCB0byB0aGUgbHVtYSBwbGFuZSkKICNkZWZpbmUgTUJfU0laRSAxNgorI2RlZmlu ZSBNQl9MU0laRSA0CisjZGVmaW5lIE1CX0ZMT09SKHgpICAgICAgKCh4KSA+PiAoTUJfTFNJWkUp KQorI2RlZmluZSBNQl9DRUlMKHgpICAgICAgIE1CX0ZMT09SKCh4KSArIChNQl9TSVpFIC0gMSkp CisKK3R5cGVkZWYgdm9pZCAoKkFWTUJJbmZvQ29tcHV0ZUNvb3JkcykoY29uc3QgQVZWaWRlb1Jl Y3QgKnJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqbWlu X3gsIGludCAqbWF4X3gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCAqbWluX3ksIGludCAqbWF4X3kpOwoKIHR5cGVkZWYgc3RydWN0IFgyNjRPcGFxdWUgewogI2lm IEZGX0FQSV9SRU9SREVSRURfT1BBUVVFCkBAIC0xMjMsNiArMTMxLDggQEAgdHlwZWRlZiBzdHJ1 Y3QgWDI2NENvbnRleHQgewogICAgICAqIGVuY291bnRlciBhIGZyYW1lIHdpdGggUk9JIHNpZGUg ZGF0YS4KICAgICAgKi8KICAgICBpbnQgcm9pX3dhcm5lZDsKKworICAgIGludCBtYl9pbmZvOwog fSBYMjY0Q29udGV4dDsKCiBzdGF0aWMgdm9pZCBYMjY0X2xvZyh2b2lkICpwLCBpbnQgbGV2ZWws IGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKQpAQCAtMjk1LDYgKzMwNSw3IEBAIHN0YXRp YyB2b2lkIGZyZWVfcGljdHVyZSh4MjY0X3BpY3R1cmVfdCAqcGljKQogICAgICAgICBhdl9mcmVl KHBpYy0+ZXh0cmFfc2VpLnBheWxvYWRzW2ldLnBheWxvYWQpOwogICAgIGF2X2ZyZWVwKCZwaWMt PmV4dHJhX3NlaS5wYXlsb2Fkcyk7CiAgICAgYXZfZnJlZXAoJnBpYy0+cHJvcC5xdWFudF9vZmZz ZXRzKTsKKyAgICBhdl9mcmVlcCgmcGljLT5wcm9wLm1iX2luZm8pOwogICAgIHBpYy0+ZXh0cmFf c2VpLm51bV9wYXlsb2FkcyA9IDA7CiB9CgpAQCAtMzIwLDYgKzMzMSw3MyBAQCBzdGF0aWMgZW51 bSBBVlBpeGVsRm9ybWF0IGNzcF90b19waXhmbXQoaW50IGNzcCkKICAgICByZXR1cm4gQVZfUElY X0ZNVF9OT05FOwogfQoKK3N0YXRpYyB2b2lkIG1iaW5mb19jb21wdXRlX2NoYW5nZWRfY29vcmRz KGNvbnN0IEFWVmlkZW9SZWN0ICpyZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW50ICptaW5feCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCAqbWF4X3gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgKm1pbl95LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50ICptYXhfeSkKK3sKKyAgICAqbWluX3kgPSBNQl9GTE9PUihyZWN0LT55KTsKKyAg ICAqbWF4X3kgPSBNQl9DRUlMKHJlY3QtPnkgKyByZWN0LT5oZWlnaHQpOworICAgICptaW5feCA9 IE1CX0ZMT09SKHJlY3QtPngpOworICAgICptYXhfeCA9IE1CX0NFSUwocmVjdC0+eCArIHJlY3Qt PndpZHRoKTsKK30KKworc3RhdGljIHZvaWQgbWJpbmZvX2NvbXB1dGVfY29uc3RhbnRfY29vcmRz KGNvbnN0IEFWVmlkZW9SZWN0ICpyZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCAqbWluX3gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW50ICptYXhfeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgKm1pbl95LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCAqbWF4X3kpCit7CisgICAgKm1pbl95ID0gTUJfQ0VJTChyZWN0LT55KTsK KyAgICAqbWF4X3kgPSBNQl9GTE9PUihyZWN0LT55ICsgcmVjdC0+aGVpZ2h0KTsKKyAgICAqbWlu X3ggPSBNQl9DRUlMKHJlY3QtPngpOworICAgICptYXhfeCA9IE1CX0ZMT09SKHJlY3QtPnggKyBy ZWN0LT53aWR0aCk7Cit9CisKK3N0YXRpYyBpbnQgc2V0dXBfbWJfaW5mbyhBVkNvZGVjQ29udGV4 dCAqY3R4LCB4MjY0X3BpY3R1cmVfdCAqcGljLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IEFWRnJhbWUgKmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFWVmlk ZW9IaW50ICppbmZvKQoreworICAgIGludCBtYl93aWR0aCA9IChmcmFtZS0+d2lkdGggKyBNQl9T SVpFIC0gMSkgLyBNQl9TSVpFOworICAgIGludCBtYl9oZWlnaHQgPSAoZnJhbWUtPmhlaWdodCAr IE1CX1NJWkUgLSAxKSAvIE1CX1NJWkU7CisgICAgaW50IG1iaW5mb19maWxsZXI7CisgICAgaW50 IG1iaW5mb19tYXJrZXI7CisgICAgQVZNQkluZm9Db21wdXRlQ29vcmRzIGNvbXB1dGVfY29vcmRz X2ZuOworCisgICAgY29uc3QgQVZWaWRlb1JlY3QgKm1iaW5mb19yZWN0czsKKyAgICBpbnQgbmJf cmVjdHM7CisgICAgdWludDhfdCAqbWJpbmZvOworCisgICAgbWJpbmZvX3JlY3RzID0gKGNvbnN0 IEFWVmlkZW9SZWN0ICopYXZfdmlkZW9faGludF9yZWN0cyhpbmZvKTsKKyAgICBuYl9yZWN0cyA9 IGluZm8tPm5iX3JlY3RzOworCisgICAgbWJpbmZvID0gYXZfY2FsbG9jKG1iX3dpZHRoICogbWJf aGVpZ2h0LCBzaXplb2YoKm1iaW5mbykpOworICAgIGlmICghbWJpbmZvKQorICAgICAgICByZXR1 cm4gQVZFUlJPUihFTk9NRU0pOworCisgICAgbWJpbmZvX2ZpbGxlciAgICAgPSAoaW5mby0+dHlw ZSA9PSBBVl9WSURFT19ISU5UX0NIQU5HRUQpID8gWDI2NF9NQklORk9fQ09OU1RBTlQgOiAwOwor ICAgIG1iaW5mb19tYXJrZXIgICAgID0gKGluZm8tPnR5cGUgPT0gQVZfVklERU9fSElOVF9DSEFO R0VEKSA/IDAgOiBYMjY0X01CSU5GT19DT05TVEFOVDsKKyAgICBjb21wdXRlX2Nvb3Jkc19mbiA9 IChpbmZvLT50eXBlID09IEFWX1ZJREVPX0hJTlRfQ0hBTkdFRCkgPyBtYmluZm9fY29tcHV0ZV9j aGFuZ2VkX2Nvb3JkcyA6IG1iaW5mb19jb21wdXRlX2NvbnN0YW50X2Nvb3JkczsKKworICAgIG1l bXNldChtYmluZm8sIG1iaW5mb19maWxsZXIsIHNpemVvZigqbWJpbmZvKSAqIG1iX3dpZHRoICog bWJfaGVpZ2h0KTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG5iX3JlY3RzOyBpKyspIHsKKyAg ICAgICAgaW50IG1pbl94LCBtYXhfeCwgbWluX3ksIG1heF95OworCisgICAgICAgICgqY29tcHV0 ZV9jb29yZHNfZm4pKG1iaW5mb19yZWN0cywgJm1pbl94LCAmbWF4X3gsICZtaW5feSwgJm1heF95 KTsKKyAgICAgICAgZm9yIChpbnQgbWJfeSA9IG1pbl95OyBtYl95IDwgbWF4X3k7ICsrbWJfeSkg eworICAgICAgICAgICAgbWVtc2V0KG1iaW5mbyArIG1iX3kgKiBtYl93aWR0aCArIG1pbl94LCBt YmluZm9fbWFya2VyLCBtYXhfeCAtIG1pbl94KTsKKyAgICAgICAgfQorCisgICAgICAgIG1iaW5m b19yZWN0cysrOworICAgIH0KKworICAgIHBpYy0+cHJvcC5tYl9pbmZvID0gbWJpbmZvOworICAg IHBpYy0+cHJvcC5tYl9pbmZvX2ZyZWUgPSBhdl9mcmVlOworCisgICAgcmV0dXJuIDA7Cit9CisK IHN0YXRpYyBpbnQgc2V0dXBfcm9pKEFWQ29kZWNDb250ZXh0ICpjdHgsIHgyNjRfcGljdHVyZV90 ICpwaWMsIGludCBiaXRfZGVwdGgsCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBVkZyYW1l ICpmcmFtZSwgY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IHNpemUpCiB7CkBAIC00MDQsNiAr NDgyLDcgQEAgc3RhdGljIGludCBzZXR1cF9mcmFtZShBVkNvZGVjQ29udGV4dCAqY3R4LCBjb25z dCBBVkZyYW1lICpmcmFtZSwKICAgICBpbnQ2NF90IHdhbGxjbG9jayA9IDA7CiAgICAgaW50IGJp dF9kZXB0aCwgcmV0OwogICAgIEFWRnJhbWVTaWRlRGF0YSAqc2Q7CisgICAgQVZGcmFtZVNpZGVE YXRhICptYmluZm9fc2Q7CgogICAgICpwcGljID0gTlVMTDsKICAgICBpZiAoIWZyYW1lKQpAQCAt NDk5LDYgKzU3OCwxNyBAQCBGRl9FTkFCTEVfREVQUkVDQVRJT05fV0FSTklOR1MKICAgICAgICAg ICAgIGdvdG8gZmFpbDsKICAgICB9CgorICAgIG1iaW5mb19zZCA9IGF2X2ZyYW1lX2dldF9zaWRl X2RhdGEoZnJhbWUsIEFWX0ZSQU1FX0RBVEFfVklERU9fSElOVCk7CisgICAgaWYgKG1iaW5mb19z ZCkgeworICAgICAgICBpbnQgcmV0ID0gc2V0dXBfbWJfaW5mbyhjdHgsIHBpYywgZnJhbWUsIChj b25zdCBBVlZpZGVvSGludCAqKW1iaW5mb19zZC0+ZGF0YSk7CisgICAgICAgIGlmIChyZXQgPCAw KSB7CisgICAgICAgICAgICAvKiBObyBuZWVkIHRvIGZhaWwgaGVyZSwgdGhpcyBpcyBub3QgZmF0 YWwuIFdlIGp1c3QgcHJvY2VlZCB3aXRoIG5vCisgICAgICAgICAgICAgKiBtYl9pbmZvIGFuZCBs b2cgYSBtZXNzYWdlICovCisKKyAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19XQVJOSU5H LCAibWJfaW5mbyBzZXR1cCBmYWlsdXJlXG4iKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlm ICh4NC0+dWR1X3NlaSkgewogICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGZyYW1lLT5uYl9z aWRlX2RhdGE7IGorKykgewogICAgICAgICAgICAgQVZGcmFtZVNpZGVEYXRhICpzaWRlX2RhdGEg PSBmcmFtZS0+c2lkZV9kYXRhW2pdOwpAQCAtMTEwMiw2ICsxMTkyLDkgQEAgRkZfRU5BQkxFX0RF UFJFQ0FUSU9OX1dBUk5JTkdTCiAgICAgICAgIH0KICAgICB9CgorICAgIHg0LT5wYXJhbXMuYW5h bHlzZS5iX21iX2luZm8gPSB4NC0+bWJfaW5mbzsKKyAgICB4NC0+cGFyYW1zLmFuYWx5c2UuYl9m YXN0X3Bza2lwID0gMTsKKwogICAgIC8vIHVwZGF0ZSBBVkNvZGVjQ29udGV4dCB3aXRoIHgyNjQg cGFyYW1ldGVycwogICAgIGF2Y3R4LT5oYXNfYl9mcmFtZXMgPSB4NC0+cGFyYW1zLmlfYmZyYW1l ID8KICAgICAgICAgeDQtPnBhcmFtcy5pX2JmcmFtZV9weXJhbWlkID8gMiA6IDEgOiAwOwpAQCAt MTMxMSw2ICsxNDA0LDcgQEAgc3RhdGljIGNvbnN0IEFWT3B0aW9uIG9wdGlvbnNbXSA9IHsKICAg ICB7ICJub2lzZV9yZWR1Y3Rpb24iLCAiTm9pc2UgcmVkdWN0aW9uIiwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT0ZGU0VUKG5vaXNlX3JlZHVjdGlvbiksIEFWX09QVF9UWVBFX0lOVCwg eyAuaTY0ID0gLTEgfSwgSU5UX01JTiwgSU5UX01BWCwgVkUgfSwKICAgICB7ICJ1ZHVfc2VpIiwg ICAgICAiVXNlIHVzZXIgZGF0YSB1bnJlZ2lzdGVyZWQgU0VJIGlmIGF2YWlsYWJsZSIsICAgICAg T0ZGU0VUKHVkdV9zZWkpLCAgQVZfT1BUX1RZUEVfQk9PTCwgICB7IC5pNjQgPSAwIH0sIDAsIDEs IFZFIH0sCiAgICAgeyAieDI2NC1wYXJhbXMiLCAgIk92ZXJyaWRlIHRoZSB4MjY0IGNvbmZpZ3Vy YXRpb24gdXNpbmcgYSA6LXNlcGFyYXRlZCBsaXN0IG9mIGtleT12YWx1ZSBwYXJhbWV0ZXJzIiwg T0ZGU0VUKHgyNjRfcGFyYW1zKSwgQVZfT1BUX1RZUEVfRElDVCwgeyAwIH0sIDAsIDAsIFZFIH0s CisgICAgeyAibWJfaW5mbyIsICAgICAgIlNldCBtYl9pbmZvIGRhdGEgdGhyb3VnaCBBVlNpZGVE YXRhLCBvbmx5IHVzZWZ1bCB3aGVuIHVzZWQgZnJvbSB0aGUgQVBJIiwgT0ZGU0VUKG1iX2luZm8p LCBBVl9PUFRfVFlQRV9CT09MLCB7IC5pNjQgPSAwIH0sIDAsIDEsIFZFIH0sCiAgICAgeyBOVUxM IH0sCiB9OwoKZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9NYWtlZmlsZSBiL2xpYmF2dXRpbC9NYWtl ZmlsZQppbmRleCBkYzkwMTJmOWE4Li4xZGFkNTI2OTQ2IDEwMDY0NAotLS0gYS9saWJhdnV0aWwv TWFrZWZpbGUKKysrIGIvbGliYXZ1dGlsL01ha2VmaWxlCkBAIC05MSw2ICs5MSw3IEBAIEhFQURF UlMgPSBhZGxlcjMyLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKICAgICAgICAgICB0ZWEuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICB0eC5oICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAg ICBmaWxtX2dyYWluX3BhcmFtcy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKyAgICAgICAgICB2aWRlb19oaW50X2luZm8uaAoKIEFSQ0hfSEVBREVSUyA9IGJz d2FwLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK ICAgICAgICAgICAgICAgIGludG1hdGguaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKQEAgLTE4OCw2ICsxODksNyBAQCBPQkpTLSQoQ09ORklHX0NVREEp ICAgICAgICAgICAgICAgICAgICAgKz0gaHdjb250ZXh0X2N1ZGEubwogT0JKUy0kKENPTkZJR19E M0QxMVZBKSAgICAgICAgICAgICAgICAgICs9IGh3Y29udGV4dF9kM2QxMXZhLm8KIE9CSlMtJChD T05GSUdfRFhWQTIpICAgICAgICAgICAgICAgICAgICArPSBod2NvbnRleHRfZHh2YTIubwogT0JK Uy0kKENPTkZJR19MSUJEUk0pICAgICAgICAgICAgICAgICAgICs9IGh3Y29udGV4dF9kcm0ubwor T0JKUy0kKENPTkZJR19MSUJYMjY0KSAgICAgICAgICAgICAgICAgICs9IHZpZGVvX2hpbnRfaW5m by5vCiBPQkpTLSQoQ09ORklHX01BQ09TX0tQRVJGKSAgICAgICAgICAgICAgKz0gbWFjb3Nfa3Bl cmYubwogT0JKUy0kKENPTkZJR19NRURJQUNPREVDKSAgICAgICAgICAgICAgICs9IGh3Y29udGV4 dF9tZWRpYWNvZGVjLm8KIE9CSlMtJChDT05GSUdfT1BFTkNMKSAgICAgICAgICAgICAgICAgICAr PSBod2NvbnRleHRfb3BlbmNsLm8KQEAgLTIxOSw2ICsyMjEsOCBAQCBTS0lQSEVBREVSUy0kKENP TkZJR19WVUxLQU4pICAgICAgICAgICArPSBod2NvbnRleHRfdnVsa2FuLmggdnVsa2FuLmggICBc CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWxrYW5fZnVuY3Rp b25zLmggICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2dWxrYW5fbG9hZGVyLmgKCitTS0lQSEVBREVSUy0kKENPTkZJR19MSUJYMjY0KSAgCSAg ICAgICArPSB2aWRlb19oaW50X2luZm8uaAorCiBURVNUUFJPR1MgPSBhZGxlcjMyICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAg ICBhZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAgICAgICAgICAgICBhZXNfY3RyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCmRpZmYgLS1naXQgYS9saWJhdnV0aWwvZnJhbWUuaCBi L2xpYmF2dXRpbC9mcmFtZS5oCmluZGV4IGE0OTEzMTVmMjUuLjBlNzY1ZTU0OTkgMTAwNjQ0Ci0t LSBhL2xpYmF2dXRpbC9mcmFtZS5oCisrKyBiL2xpYmF2dXRpbC9mcmFtZS5oCkBAIC0yMTQsNiAr MjE0LDE2IEBAIGVudW0gQVZGcmFtZVNpZGVEYXRhVHlwZSB7CiAgICAgICogQW1iaWVudCB2aWV3 aW5nIGVudmlyb25tZW50IG1ldGFkYXRhLCBhcyBkZWZpbmVkIGJ5IEguMjc0LgogICAgICAqLwog ICAgIEFWX0ZSQU1FX0RBVEFfQU1CSUVOVF9WSUVXSU5HX0VOVklST05NRU5ULAorCisgICAgLyoq CisgICAgICogUHJvdmlkZSBtYWNybyBibG9jayBlbmNvZGVyLXNwZWNpZmljIGhpbnRpbmcgaW5m b3JtYXRpb24gZm9yIHRoZSBlbmNvZGVyCisgICAgICogcHJvY2Vzc2luZy4gIEl0IGNhbiBiZSB1 c2VkIHRvIHBhc3MgaW5mb3JtYXRpb24gYWJvdXQgd2hpY2ggbWFjcm9ibG9jaworICAgICAqIGNh biBiZSBza2lwcGVkIGJlY2F1c2UgaXQgaGFzbid0IGNoYW5nZWQgZnJvbSB0aGUgY29ycmVzcG9u ZGluZyBvbmUgaW4KKyAgICAgKiB0aGUgcHJldmlvdXMgZnJhbWUuIFRoaXMgaXMgdXNlZnVsIGZv ciBhcHBsaWNhdGlvbnMgd2hpY2gga25vdyBpbgorICAgICAqIGFkdmFuY2UgdGhpcyBpbmZvcm1h dGlvbiB0byBzcGVlZCB1cCByZWFsLXRpbWUgZW5jb2RpbmcuICBDdXJyZW50bHkgb25seQorICAg ICAqIHVzZWQgYnkgbGlieDI2NC4KKyAgICAgKi8KKyAgICBBVl9GUkFNRV9EQVRBX1ZJREVPX0hJ TlQsCiB9OwoKIGVudW0gQVZBY3RpdmVGb3JtYXREZXNjcmlwdGlvbiB7CmRpZmYgLS1naXQgYS9s aWJhdnV0aWwvdmlkZW9faGludF9pbmZvLmMgYi9saWJhdnV0aWwvdmlkZW9faGludF9pbmZvLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYzkyMGJkNjIzMgotLS0gL2Rl di9udWxsCisrKyBiL2xpYmF2dXRpbC92aWRlb19oaW50X2luZm8uYwpAQCAtMCwwICsxLDg5IEBA CisvKgorICogQ29weXJpZ2h0IDIwMjMgRWxpYXMgQ2Fyb3R0aSA8ZWxpYXNjcnQgYXQgYW1hem9u IGRvdCBpdD4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCisgKgorICogRkZt cGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor ICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRv IHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKworI2luY2x1 ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAiYXZzdHJpbmcuaCIKKyNpbmNsdWRlICJmcmFtZS5o IgorI2luY2x1ZGUgIm1hY3Jvcy5oIgorI2luY2x1ZGUgIm1lbS5oIgorI2luY2x1ZGUgInZpZGVv X2hpbnRfaW5mby5oIgorCitBVlZpZGVvSGludCAqYXZfdmlkZW9faGludF9hbGxvYyhBVlZpZGVv UmVjdCAqcmVjdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbmJf cmVjdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVlZpZGVvSGludFR5cGUg dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCogb3V0X3NpemUp Cit7CisgICAgc3RydWN0IFRlc3RTdHJ1Y3QgeworICAgICAgICBBVlZpZGVvSGludCAgICBoaW50 OworICAgICAgICBBVlZpZGVvUmVjdCAgICByZWN0OworICAgIH07CisgICAgY29uc3Qgc2l6ZV90 IGJsb2Nrc19vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgVGVzdFN0cnVjdCwgcmVjdCk7CisgICAg c2l6ZV90IHNpemUgPSBibG9ja3Nfb2Zmc2V0OworICAgIEFWVmlkZW9IaW50ICpoaW50OworCisg ICAgKm91dF9zaXplID0gMDsKKyAgICBpZiAobmJfcmVjdHMgPiAoU0laRV9NQVggLSBzaXplKSAv IHNpemVvZihBVlZpZGVvUmVjdCkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHNpemUgKz0g c2l6ZW9mKEFWVmlkZW9SZWN0KSAqIG5iX3JlY3RzOworCisgICAgaGludCA9IGF2X21hbGxvY3oo c2l6ZSk7CisgICAgaWYgKCFoaW50KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGhpbnQt PnR5cGUgICAgICAgICAgPSB0eXBlOworICAgIGhpbnQtPm5iX3JlY3RzICAgICAgPSBuYl9yZWN0 czsKKyAgICBoaW50LT5ibG9ja3Nfb2Zmc2V0ID0gYmxvY2tzX29mZnNldDsKKworICAgIC8qIEp1 c3QgY29waWVzIHRoZSByZWN0cyBvdmVyIHRoZSBuZXdseSBhbGxvY2F0ZWQgYnVmZmVyICovCisg ICAgbWVtY3B5KCh1aW50OF90ICopaGludCArIGJsb2Nrc19vZmZzZXQsIHJlY3RzLCBzaXplb2Yo QVZWaWRlb1JlY3QpICogbmJfcmVjdHMpOworCisgICAgKm91dF9zaXplID0gc2l6ZTsKKworICAg IHJldHVybiBoaW50OworfQorCitBVlZpZGVvSGludCAqYXZfdmlkZW9faGludF9jcmVhdGVfc2lk ZV9kYXRhKEFWRnJhbWUgKmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBVlZpZGVvUmVjdCAqcmVjdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNpemVfdCBudW1fcmVjdHMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFWVmlkZW9IaW50VHlwZSB0eXBlKQoreworICAgIEFW VmlkZW9IaW50ICpoaW50OworICAgIEFWQnVmZmVyUmVmICpidWY7CisgICAgc2l6ZV90IHNpemUg PSAwOworCisgICAgaGludCA9IGF2X3ZpZGVvX2hpbnRfYWxsb2MocmVjdHMsIG51bV9yZWN0cywg dHlwZSwgJnNpemUpOworICAgIGlmICghaGludCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAg ICBidWYgPSBhdl9idWZmZXJfY3JlYXRlKCh1aW50OF90ICopaGludCwgc2l6ZSwgTlVMTCwgTlVM TCwgMCk7CisgICAgaWYgKCFidWYpIHsKKyAgICAgICAgYXZfZnJlZXAoJmhpbnQpOworICAgICAg ICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBpZiAoIWF2X2ZyYW1lX25ld19zaWRlX2RhdGFf ZnJvbV9idWYoZnJhbWUsIEFWX0ZSQU1FX0RBVEFfVklERU9fSElOVCwgYnVmKSkgeworICAgICAg ICBhdl9idWZmZXJfdW5yZWYoJmJ1Zik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKwor ICAgIHJldHVybiBoaW50OworfQorCmRpZmYgLS1naXQgYS9saWJhdnV0aWwvdmlkZW9faGludF9p bmZvLmggYi9saWJhdnV0aWwvdmlkZW9faGludF9pbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMC4uMjg0NDM5OGQxOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmF2dXRp bC92aWRlb19oaW50X2luZm8uaApAQCAtMCwwICsxLDg3IEBACisvKioKKyAqIENvcHlyaWdodCAy MDIzIEVsaWFzIENhcm90dGkgPGVsaWFzY3J0IGF0IGFtYXpvbiBkb3QgaXQ+CisgKgorICogVGhp cyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv biAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5z ZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z dG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNpZm5kZWYgQVZVVElMX1ZJREVPX0hJTlRf SU5GT19ICisjZGVmaW5lIEFWVVRJTF9WSURFT19ISU5UX0lORk9fSAorCisjaW5jbHVkZSA8c3Rk ZGVmLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSAibGliYXZ1dGlsL2F2YXNzZXJ0 LmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL2ZyYW1lLmgiCisKK3R5cGVkZWYgc3RydWN0IEFWVmlk ZW9SZWN0IHsKKyAgICB1aW50MzJfdCB4LCB5OworICAgIHVpbnQzMl90IHdpZHRoLCBoZWlnaHQ7 Cit9IEFWVmlkZW9SZWN0OworCit0eXBlZGVmIGVudW0gQVZWaWRlb0hpbnRUeXBlIHsKKyAgICAv KiBibG9ja3MgZGVsaW1pdCB0aGUgY29uc3RhbnQgYXJlYXMgKHVuY2hhbmdlZCksIGRlZmF1bHQg aXMgY2hhbmdlZCAqLworICAgIEFWX1ZJREVPX0hJTlRfQ09OU1RBTlQsCisKKyAgICAvKiBibG9j a3MgZGVsaW1pdCB0aGUgY29uc3RhbnQgYXJlYXMgKGNoYW5nZWQpLCBkZWZhdWx0IGlzIG5vdCBj aGFuZ2VkICovCisgICAgQVZfVklERU9fSElOVF9DSEFOR0VELAorfSBBVlZpZGVvSGludFR5cGU7 CisKK3R5cGVkZWYgc3RydWN0IEFWVmlkZW9IaW50IHsKKyAgICAvKioKKyAgICAgKiBOdW1iZXIg b2YgYmxvY2tzIGluIHRoZSBhcnJheS4KKyAgICAgKgorICAgICAqIE1heSBiZSAwLCBpbiB3aGlj aCBjYXNlIG5vIHBlci1ibG9jayBpbmZvcm1hdGlvbiBpcyBwcmVzZW50LiBJbiB0aGlzIGNhc2UK KyAgICAgKiB0aGUgdmFsdWVzIG9mIGJsb2Nrc19vZmZzZXQgLyBibG9ja19zaXplIGFyZSB1bnNw ZWNpZmllZCBhbmQgc2hvdWxkIG5vdAorICAgICAqIGJlIGFjY2Vzc2VkLgorICAgICAqLworICAg IGludCBuYl9yZWN0czsKKworICAgIC8qKgorICAgICAqIE9mZnNldCBpbiBieXRlcyBmcm9tIHRo ZSBiZWdpbm5pbmcgb2YgdGhpcyBzdHJ1Y3R1cmUgYXQgd2hpY2ggdGhlIGFycmF5CisgICAgICog b2YgYmxvY2tzIHN0YXJ0cy4KKyAgICAgKi8KKyAgICBzaXplX3QgYmxvY2tzX29mZnNldDsKKwor ICAgIEFWVmlkZW9IaW50VHlwZSB0eXBlOworfSBBVlZpZGVvSGludDsKKworc3RhdGljIGF2X2Fs d2F5c19pbmxpbmUgQVZWaWRlb1JlY3QqCithdl92aWRlb19oaW50X3JlY3RzKGNvbnN0IEFWVmlk ZW9IaW50ICpwYXIpCit7CisgICAgcmV0dXJuIChBVlZpZGVvUmVjdCAqKSgodWludDhfdCAqKXBh ciArIHBhci0+YmxvY2tzX29mZnNldCk7Cit9CisKKy8qKgorICogQWxsb2NhdGUgbWVtb3J5IGZv ciBhIHZlY3RvciBvZiBBVlZpZGVvUmVjdCBpbiB0aGUgZ2l2ZW4gQVZGcmFtZQorICoge0Bjb2Rl IGZyYW1lfSBhcyBBVkZyYW1lU2lkZURhdGEgb2YgdHlwZSBBVl9GUkFNRV9EQVRBX1ZJREVPX0hJ TlRfSU5GTy4KKyAqIFRoZSBzaWRlIGRhdGEgY29udGFpbnMgYSBsaXN0IG9mIHJlY3RhbmdsZXMg Zm9yIHRoZSBwb3J0aW9ucyBvZiB0aGUgZnJhbWUKKyAqIHdoaWNoIGNoYW5nZWQgZnJvbSB0aGUg bGFzdCBlbmNvZGVkIG9uZSAoYW5kIHRoZSByZW1haW5kZXIgYXJlIGFzc3VtZWQgdG8gYmUKKyAq IGNoYW5nZWQpLCBvciwgYWx0ZXJuYXRlbHkgKGRlcGVuZGluZyBvbiB0aGUgdHlwZSBwYXJhbWV0 ZXIpIHRoZSB1bmNoYW5nZWQKKyAqIG9uZXMgKGFuZCB0aGUgcmVtYW5pbmluZyBvbmVzIGFyZSB0 aG9zZSB3aGljaCBjaGFuZ2VkKS4KKyAqIE1hY3JvYmxvY2tzIHdpbGwgdGh1cyBiZSBoaW50ZWQg ZWl0aGVyIHRvIGJlIFBfU0tJUC1wZWQgb3IgZ28gdGhyb3VnaCB0aGUKKyAqIHJlZ3VsYXIgZW5j b2RpbmcgcHJvY2VkdXJlLgorICovCitBVlZpZGVvSGludCAqYXZfdmlkZW9faGludF9jcmVhdGVf c2lkZV9kYXRhKEFWRnJhbWUgKmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBVlZpZGVvUmVjdCAqcmVjdHMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBudW1fcmVjdHMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWVmlkZW9IaW50VHlwZSB0eXBlKTsKKworQVZW aWRlb0hpbnQgKmF2X3ZpZGVvX2hpbnRfYWxsb2MoQVZWaWRlb1JlY3QgKnJlY3RzLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG5iX3JlY3RzLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQVZWaWRlb0hpbnRUeXBlIHR5cGUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm91dF9zaXplKTsKKworI2VuZGlmIC8qIEFWVVRJ TF9WSURFT19ISU5UX0lORk9fSCAqLwotLQoyLjM0LjEKCg== --_002_c6d3eed119af4c08235eca8f3e7c72d66372961ccamelamazonit_ Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". --_002_c6d3eed119af4c08235eca8f3e7c72d66372961ccamelamazonit_--