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 4417545E4E for ; Mon, 12 Jun 2023 17:28:28 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7686168C3D9; Mon, 12 Jun 2023 20:28:25 +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 D872368C1A2 for ; Mon, 12 Jun 2023 20:28:17 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.it; i=@amazon.it; q=dns/txt; s=amazon201209; t=1686590903; x=1718126903; h=from:to:date:message-id:references:in-reply-to: mime-version:subject; bh=aGacpNlQxTSHc0a8SE6kIwC4UsaXqB4OfjCRNeaFmkk=; b=t2AeRt04nd5yvkdSjhhMZVgBsGVDW2totz1N/L7Tn/VhrQAYyLZSJBA4 53NukZKXkjV0WZq8n8qHHBb73yhEvNXw58TxAOV9yPElyY1w1dptzH+ZX X1khi1Ukp5tn6S6GjpkQYLNIj4sUqWYC3AlBRwzhWK5pn5jW80oRQYtEw M=; X-Amazon-filename: 0001-Add-support-for-libx264-s-MB_INFO.patch X-IronPort-AV: E=Sophos;i="6.00,236,1681171200"; d="scan'208,223";a="9700185" 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-2b-m6i4x-f253a3a3.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; 12 Jun 2023 17:28:12 +0000 Received: from EX19D019EUA002.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan3.pdx.amazon.com [10.236.137.198]) by email-inbound-relay-pdx-2b-m6i4x-f253a3a3.us-west-2.amazon.com (Postfix) with ESMTPS id 5CCE382241 for ; Mon, 12 Jun 2023 17:28:12 +0000 (UTC) Received: from EX19D025EUC004.ant.amazon.com (10.252.61.200) by EX19D019EUA002.ant.amazon.com (10.252.50.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Mon, 12 Jun 2023 17:28:11 +0000 Received: from EX19D025EUC002.ant.amazon.com (10.252.61.247) by EX19D025EUC004.ant.amazon.com (10.252.61.200) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Mon, 12 Jun 2023 17:28:10 +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, 12 Jun 2023 17:28:10 +0000 From: "Carotti, Elias" To: "ffmpeg-devel@ffmpeg.org" Thread-Index: AQHZklb008JRkd8A/k+Jhp2hr/tC8K96zfIAgAGTRICACYqpAIABlfOA Date: Mon, 12 Jun 2023 17:28:10 +0000 Message-ID: References: <8eb9290f3c9cdae75b38c45a5d49ee624951a849.camel@amazon.it> <20230521231741.GB14958@mariano> <20230604152912.GC4274@mariano> <20230611171510.GA53039@mariano> In-Reply-To: <20230611171510.GA53039@mariano> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.1.212.15] Content-Type: multipart/mixed; boundary="_002_b1a707cc225c27be6c8dc3a9698df817818d7414camelamazonit_" 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_b1a707cc225c27be6c8dc3a9698df817818d7414camelamazonit_ Content-Type: text/plain; charset="utf-8" Content-ID: MIME-Version: 1.0 Content-Transfer-Encoding: base64 SGkgU3RlZmFubywKSGVyZSBpcyB0aGUgcmV2aXNlZCBwYXRjaCBhY2NvcmRpbmcgdG8geW91ciBz dWdnZXN0aW9ucy4gVGhpcyBzaG91bGQKYWxsb3cgZm9yIGVmZmljaWVudCBpbmxpbmluZyBvZiB0 aGUgbWV0aG9kcyBjb21wdXRpbmcgdGhlIG1hcCBvZgpza2lwcGVkIG1hY3JvYmxva3MuCkJlc3Qs wqAKRWxpYXMKCgpPbiBTdW4sIDIwMjMtMDYtMTEgYXQgMTk6MTUgKzAyMDAsIFN0ZWZhbm8gU2Fi YXRpbmkgd3JvdGU6Cj4gQ0FVVElPTjogVGhpcyBlbWFpbCBvcmlnaW5hdGVkIGZyb20gb3V0c2lk ZSBvZiB0aGUgb3JnYW5pemF0aW9uLiBEbwo+IG5vdCBjbGljayBsaW5rcyBvciBvcGVuIGF0dGFj aG1lbnRzIHVubGVzcyB5b3UgY2FuIGNvbmZpcm0gdGhlIHNlbmRlcgo+IGFuZCBrbm93IHRoZSBj b250ZW50IGlzIHNhZmUuCj4gCj4gCj4gCj4gT24gZGF0ZSBNb25kYXkgMjAyMy0wNi0wNSAxNToz MjozNSArMDAwMCwgQ2Fyb3R0aSwgRWxpYXMgd3JvdGU6Cj4gPiBIaSwKPiA+IHBsZWFzZSBmaW5k IGF0dGFjaGVkIHRoZSBwYXRjaCB3aGljaCBJIHVwZGF0ZWQgYWNjb3JkaW5nIHRvIHlvdXIKPiA+ IHN1Z2dlc3Rpb25zLgo+ID4gQmVzdCwKPiA+IEVsaWFzCj4gWy4uLl0KPiAKPiA+IEZyb20gODI4 OGQyYmQzNmZmZWQyOTE0MGQ0NmM0MmI2ZjU1MTVhOTA1ODgzNiBNb24gU2VwIDE3IDAwOjAwOjAw Cj4gPiAyMDAxCj4gPiBGcm9tOiBFbGlhcyBDYXJvdHRpIDxlbGlhc2NyIF9hdF8gYW1hem9uIF9k b3RfIGl0Pgo+ID4gRGF0ZTogV2VkLCAxOSBBcHIgMjAyMyAxMTo0OTozOSArMDIwMAo+ID4gU3Vi amVjdDogW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgbGlieDI2NCdzIE1CX0lORk8KPiA+IAo+ID4g bGlieDI2NCdzIHgyNjRfaW1hZ2VfcHJvcGVydGllc190LCB3aGljaCBpcyBwYXNzZWQgdG8gdGhl IGVuY29kaW5nCj4gPiBmdW5jdGlvbiwKPiA+IGNvbnRhaW5zIGEgZmllbGQgdG8gcGFzcyBkb3du IGluZm9ybWF0aW9uIG9uIHRoZSBwb3J0aW9ucyBvZiB0aGUKPiA+IGZyYW1lIHdoaWNoCj4gPiBj aGFuZ2VkIHdpdGggcmVzcGVjdCB0byB0aGUgcHJldmlvdXMgb25lICh1c2VkIGZvciBwcmVkaWN0 aW9uKSB0bwo+ID4gbWFyawo+ID4gdW5jaGFuZ2VkIG1hY3JvYmxvY2tzIFBfU0tJUC4KPiA+IC0t LQo+ID4gwqBsaWJhdmNvZGVjL2xpYngyNjQuY8KgwqDCoMKgwqDCoMKgIHwgOTQKPiA+ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+IMKgbGliYXZ1dGlsL01ha2VmaWxl wqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA0ICsrCj4gPiDCoGxpYmF2dXRpbC9mcmFtZS5owqDCoMKg wqDCoMKgwqDCoMKgwqAgfCAxMCArKysrCj4gPiDCoGxpYmF2dXRpbC92aWRlb19oaW50X2luZm8u YyB8IDg5Cj4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gwqBsaWJh dnV0aWwvdmlkZW9faGludF9pbmZvLmggfCA4Nwo+ID4gKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+ID4gwqA1IGZpbGVzIGNoYW5nZWQsIDI4NCBpbnNlcnRpb25zKCspCj4gPiDC oGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdnV0aWwvdmlkZW9faGludF9pbmZvLmMKPiA+IMKgY3Jl YXRlIG1vZGUgMTAwNjQ0IGxpYmF2dXRpbC92aWRlb19oaW50X2luZm8uaAo+ID4gCj4gPiBkaWZm IC0tZ2l0IGEvbGliYXZjb2RlYy9saWJ4MjY0LmMgYi9saWJhdmNvZGVjL2xpYngyNjQuYwo+ID4g aW5kZXggNTczNmYxZWZhNy4uMmNmNzc1NWVlYyAxMDA2NDQKPiA+IC0tLSBhL2xpYmF2Y29kZWMv bGlieDI2NC5jCj4gPiArKysgYi9saWJhdmNvZGVjL2xpYngyNjQuYwo+ID4gQEAgLTMwLDYgKzMw LDcgQEAKPiA+IMKgI2luY2x1ZGUgImxpYmF2dXRpbC9zdGVyZW8zZC5oIgo+ID4gwqAjaW5jbHVk ZSAibGliYXZ1dGlsL3RpbWUuaCIKPiA+IMKgI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRyZWFkd3Jp dGUuaCIKPiA+ICsjaW5jbHVkZSAibGliYXZ1dGlsL3ZpZGVvX2hpbnRfaW5mby5oIgo+ID4gwqAj aW5jbHVkZSAiYXZjb2RlYy5oIgo+ID4gwqAjaW5jbHVkZSAiY29kZWNfaW50ZXJuYWwuaCIKPiA+ IMKgI2luY2x1ZGUgImVuY29kZS5oIgo+ID4gQEAgLTQ4LDYgKzQ5LDEzIEBACj4gPiDCoC8vIGZy b20geDI2NC5oLCBmb3IgcXVhbnRfb2Zmc2V0cywgTWFjcm9ibG9ja3MgYXJlIDE2eDE2Cj4gPiDC oC8vIGJsb2NrcyBvZiBwaXhlbHMgKHdpdGggcmVzcGVjdCB0byB0aGUgbHVtYSBwbGFuZSkKPiA+ IMKgI2RlZmluZSBNQl9TSVpFIDE2Cj4gPiArI2RlZmluZSBNQl9MU0laRSA0Cj4gPiArI2RlZmlu ZSBNQl9GTE9PUih4KcKgwqDCoMKgwqAgKCh4KSA+PiAoTUJfTFNJWkUpKQo+ID4gKyNkZWZpbmUg TUJfQ0VJTCh4KcKgwqDCoMKgwqDCoCBNQl9GTE9PUigoeCkgKyAoTUJfU0laRSAtIDEpKQo+ID4g Kwo+ID4gK3R5cGVkZWYgdm9pZCAoKkFWTUJJbmZvQ29tcHV0ZUNvb3JkcykoY29uc3QgQVZWaWRl b1JlY3QgKnJlY3QsCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50ICptaW5feCwgaW50ICptYXhf eCwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgKm1pbl95LCBpbnQgKm1heF95KTsKPiA+IAo+ ID4gwqB0eXBlZGVmIHN0cnVjdCBYMjY0T3BhcXVlIHsKPiA+IMKgI2lmIEZGX0FQSV9SRU9SREVS RURfT1BBUVVFCj4gPiBAQCAtMTIzLDYgKzEzMSw4IEBAIHR5cGVkZWYgc3RydWN0IFgyNjRDb250 ZXh0IHsKPiA+IMKgwqDCoMKgwqAgKiBlbmNvdW50ZXIgYSBmcmFtZSB3aXRoIFJPSSBzaWRlIGRh dGEuCj4gPiDCoMKgwqDCoMKgICovCj4gPiDCoMKgwqDCoCBpbnQgcm9pX3dhcm5lZDsKPiA+ICsK PiA+ICvCoMKgwqAgaW50IG1iX2luZm87Cj4gPiDCoH0gWDI2NENvbnRleHQ7Cj4gPiAKPiA+IMKg c3RhdGljIHZvaWQgWDI2NF9sb2codm9pZCAqcCwgaW50IGxldmVsLCBjb25zdCBjaGFyICpmbXQs IHZhX2xpc3QKPiA+IGFyZ3MpCj4gPiBAQCAtMjk1LDYgKzMwNSw3IEBAIHN0YXRpYyB2b2lkIGZy ZWVfcGljdHVyZSh4MjY0X3BpY3R1cmVfdCAqcGljKQo+ID4gwqDCoMKgwqDCoMKgwqDCoCBhdl9m cmVlKHBpYy0+ZXh0cmFfc2VpLnBheWxvYWRzW2ldLnBheWxvYWQpOwo+ID4gwqDCoMKgwqAgYXZf ZnJlZXAoJnBpYy0+ZXh0cmFfc2VpLnBheWxvYWRzKTsKPiA+IMKgwqDCoMKgIGF2X2ZyZWVwKCZw aWMtPnByb3AucXVhbnRfb2Zmc2V0cyk7Cj4gPiArwqDCoMKgIGF2X2ZyZWVwKCZwaWMtPnByb3Au bWJfaW5mbyk7Cj4gPiDCoMKgwqDCoCBwaWMtPmV4dHJhX3NlaS5udW1fcGF5bG9hZHMgPSAwOwo+ ID4gwqB9Cj4gPiAKPiA+IEBAIC0zMjAsNiArMzMxLDczIEBAIHN0YXRpYyBlbnVtIEFWUGl4ZWxG b3JtYXQgY3NwX3RvX3BpeGZtdChpbnQKPiA+IGNzcCkKPiA+IMKgwqDCoMKgIHJldHVybiBBVl9Q SVhfRk1UX05PTkU7Cj4gPiDCoH0KPiA+IAo+ID4gK3N0YXRpYyB2b2lkIG1iaW5mb19jb21wdXRl X2NoYW5nZWRfY29vcmRzKGNvbnN0IEFWVmlkZW9SZWN0ICpyZWN0LAo+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgaW50ICptaW5feCwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGludCAqbWF4X3gsCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgKm1pbl95LAo+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50ICptYXhfeSkKPiA+ICt7Cj4gPiArwqDC oMKgICptaW5feSA9IE1CX0ZMT09SKHJlY3QtPnkpOwo+ID4gK8KgwqDCoCAqbWF4X3kgPSBNQl9D RUlMKHJlY3QtPnkgKyByZWN0LT5oZWlnaHQpOwo+ID4gK8KgwqDCoCAqbWluX3ggPSBNQl9GTE9P UihyZWN0LT54KTsKPiA+ICvCoMKgwqAgKm1heF94ID0gTUJfQ0VJTChyZWN0LT54ICsgcmVjdC0+ d2lkdGgpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBtYmluZm9fY29tcHV0ZV9jb25z dGFudF9jb29yZHMoY29uc3QgQVZWaWRlb1JlY3QKPiA+ICpyZWN0LAo+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBpbnQgKm1pbl94LAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBpbnQgKm1heF94LAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgKm1p bl95LAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgKm1heF95KQo+ID4gK3sK PiA+ICvCoMKgwqAgKm1pbl95ID0gTUJfQ0VJTChyZWN0LT55KTsKPiA+ICvCoMKgwqAgKm1heF95 ID0gTUJfRkxPT1IocmVjdC0+eSArIHJlY3QtPmhlaWdodCk7Cj4gPiArwqDCoMKgICptaW5feCA9 IE1CX0NFSUwocmVjdC0+eCk7Cj4gPiArwqDCoMKgICptYXhfeCA9IE1CX0ZMT09SKHJlY3QtPngg KyByZWN0LT53aWR0aCk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgc2V0dXBfbWJfaW5m byhBVkNvZGVjQ29udGV4dCAqY3R4LCB4MjY0X3BpY3R1cmVfdCAqcGljLAo+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25zdCBBVkZyYW1lICpm cmFtZSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgY29uc3QgQVZWaWRlb0hpbnQgKmluZm8pCj4gPiArewo+ID4gK8KgwqDCoCBpbnQgbWJfd2lk dGggPSAoZnJhbWUtPndpZHRoICsgTUJfU0laRSAtIDEpIC8gTUJfU0laRTsKPiA+ICvCoMKgwqAg aW50IG1iX2hlaWdodCA9IChmcmFtZS0+aGVpZ2h0ICsgTUJfU0laRSAtIDEpIC8gTUJfU0laRTsK PiA+ICvCoMKgwqAgaW50IG1iaW5mb19maWxsZXI7Cj4gPiArwqDCoMKgIGludCBtYmluZm9fbWFy a2VyOwo+ID4gK8KgwqDCoCBBVk1CSW5mb0NvbXB1dGVDb29yZHMgY29tcHV0ZV9jb29yZHNfZm47 Cj4gPiArCj4gPiArwqDCoMKgIGNvbnN0IEFWVmlkZW9SZWN0ICptYmluZm9fcmVjdHM7Cj4gPiAr wqDCoMKgIGludCBuYl9yZWN0czsKPiA+ICvCoMKgwqAgdWludDhfdCAqbWJpbmZvOwo+ID4gKwo+ ID4gK8KgwqDCoCBtYmluZm9fcmVjdHMgPSAoY29uc3QgQVZWaWRlb1JlY3QgKilhdl92aWRlb19o aW50X3JlY3RzKGluZm8pOwo+ID4gK8KgwqDCoCBuYl9yZWN0cyA9IGluZm8tPm5iX3JlY3RzOwo+ ID4gKwo+ID4gK8KgwqDCoCBtYmluZm8gPSBhdl9jYWxsb2MobWJfd2lkdGggKiBtYl9oZWlnaHQs IHNpemVvZigqbWJpbmZvKSk7Cj4gPiArwqDCoMKgIGlmICghbWJpbmZvKQo+ID4gK8KgwqDCoMKg wqDCoMKgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gPiArCj4gCj4gPiArwqDCoMKgIG1iaW5m b19maWxsZXLCoMKgwqDCoCA9IChpbmZvLT50eXBlID09IEFWX1ZJREVPX0hJTlRfQ0hBTkdFRCkg Pwo+ID4gWDI2NF9NQklORk9fQ09OU1RBTlQgOiAwOwo+ID4gK8KgwqDCoCBtYmluZm9fbWFya2Vy wqDCoMKgwqAgPSAoaW5mby0+dHlwZSA9PSBBVl9WSURFT19ISU5UX0NIQU5HRUQpID8gMAo+ID4g OiBYMjY0X01CSU5GT19DT05TVEFOVDsKPiA+ICvCoMKgwqAgY29tcHV0ZV9jb29yZHNfZm4gPSAo aW5mby0+dHlwZSA9PSBBVl9WSURFT19ISU5UX0NIQU5HRUQpID8KPiA+IG1iaW5mb19jb21wdXRl X2NoYW5nZWRfY29vcmRzIDogbWJpbmZvX2NvbXB1dGVfY29uc3RhbnRfY29vcmRzOwo+ID4gKwo+ ID4gK8KgwqDCoCBtZW1zZXQobWJpbmZvLCBtYmluZm9fZmlsbGVyLCBzaXplb2YoKm1iaW5mbykg KiBtYl93aWR0aCAqCj4gPiBtYl9oZWlnaHQpOwo+ID4gK8KgwqDCoCBmb3IgKGludCBpID0gMDsg aSA8IG5iX3JlY3RzOyBpKyspIHsKPiA+ICvCoMKgwqDCoMKgwqDCoCBpbnQgbWluX3gsIG1heF94 LCBtaW5feSwgbWF4X3k7Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqAgKCpjb21wdXRlX2Nvb3Jk c19mbikobWJpbmZvX3JlY3RzLCAmbWluX3gsICZtYXhfeCwgJm1pbl95LAo+ID4gJm1heF95KTsK PiA+ICvCoMKgwqDCoMKgwqDCoCBmb3IgKGludCBtYl95ID0gbWluX3k7IG1iX3kgPCBtYXhfeTsg KyttYl95KSB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtZW1zZXQobWJpbmZvICsgbWJf eSAqIG1iX3dpZHRoICsgbWluX3gsCj4gPiBtYmluZm9fbWFya2VyLCBtYXhfeCAtIG1pbl94KTsK PiA+ICvCoMKgwqDCoMKgwqDCoCB9Cj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqAgbWJpbmZvX3Jl Y3RzKys7Cj4gPiArwqDCoMKgIH0KPiAKPiBtYXliZQo+IAo+ICNkZWZpbmUgQ09NUFVURV9NQklO Rk8obWJpbmZvX2ZpbGxlcl8sIG1iaW5mb19tYXJrZXJfLAo+IGNvbXB1dGVfY29vcmRzX2ZuXykg XAo+IMKgwqDCoCBtZW1zZXQobWJpbmZvLCBtYmluZm9fZmlsbGVyXywgc2l6ZW9mKCptYmluZm8p ICogbWJfd2lkdGggKgo+IG1iX2hlaWdodCk7IFwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAK PiDCoMKgIFwKPiDCoMKgwqAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYl9yZWN0czsgaSsrKQo+IHvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBcCj4gwqDCoMKgwqDCoMKgwqAgaW50IG1pbl94LCBtYXhfeCwgbWluX3ksCj4gbWF4X3k7 wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBcCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gwqDCoCBcCj4gwqDCoMKgwqDC oMKgwqAgY29tcHV0ZV9jb29yZHNfZm5fKG1iaW5mb19yZWN0cywgJm1pbl94LCAmbWF4X3gsICZt aW5feSwKPiAmbWF4X3kpOyBcCj4gwqDCoMKgwqDCoMKgwqAgZm9yIChpbnQgbWJfeSA9IG1pbl95 OyBtYl95IDwgbWF4X3k7ICsrbWJfeSkKPiB7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBcCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtZW1zZXQobWJpbmZvICsgbWJfeSAqIG1i X3dpZHRoICsgbWluX3gsIG1iaW5mb19tYXJrZXJfLAo+IG1heF94IC0gbWluX3gpOyBcCj4gwqDC oMKgwqDCoMKgwqAKPiB9wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBcCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4g wqDCoCBcCj4gwqDCoMKgwqDCoMKgwqAKPiBtYmluZm9fcmVjdHMrKzvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgXAo+IMKgwqDCoAo+IH3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg XAo+IAo+IGlmIChpbmZvLT50eXBlID09IEFWX1ZJREVPX0hJTlRfQ0hBTkdFRCkgewo+IMKgwqDC oCBDT01QVVRFX01CSU5GTyhYMjY0X01CSU5GT19DT05TVEFOVCwgMCwKPiBtYmluZm9fY29tcHV0 ZV9jaGFuZ2VkX2Nvb3Jkcyk7Cj4gfSBlbHNlIC8qIGlmIChpbmZvLT50eXBlID09IEFWX1ZJREVP X0hJTlRfQ0hBTkdFRCkgKi8gewo+IMKgwqDCoCBDT01QVVRFX01CSU5GTygwLCBYMjY0X01CSU5G T19DT05TVEFOVCwKPiBtYmluZm9fY29tcHV0ZV9jb25zdGFudF9jb29yZHMpOwo+IH0KPiAKPiB0 aGlzIGFkZHMgdG8gc3BhdGlhbCBjb21wbGV4aXR5IGJ1dCBlbmFibGVzIHRoZSB1c2Ugb2YgaW5s aW5lZAo+IGZ1bmN0aW9ucyB0byBhdm9pZCB0aGUgZnVuY3Rpb24gY2FsbCBpbiB0aGUgbG9vcAo+ IAo+ID4gK8KgwqDCoCBwaWMtPnByb3AubWJfaW5mbyA9IG1iaW5mbzsKPiA+ICvCoMKgwqAgcGlj LT5wcm9wLm1iX2luZm9fZnJlZSA9IGF2X2ZyZWU7Cj4gPiArCj4gPiArwqDCoMKgIHJldHVybiAw Owo+ID4gK30KPiA+ICsKPiA+IMKgc3RhdGljIGludCBzZXR1cF9yb2koQVZDb2RlY0NvbnRleHQg KmN0eCwgeDI2NF9waWN0dXJlX3QgKnBpYywgaW50Cj4gPiBiaXRfZGVwdGgsCj4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgQVZGcmFtZSAqZnJhbWUs IGNvbnN0IHVpbnQ4X3QgKmRhdGEsCj4gPiBzaXplX3Qgc2l6ZSkKPiA+IMKgewo+ID4gQEAgLTQw NCw2ICs0ODIsNyBAQCBzdGF0aWMgaW50IHNldHVwX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICpjdHgs Cj4gPiBjb25zdCBBVkZyYW1lICpmcmFtZSwKPiA+IMKgwqDCoMKgIGludDY0X3Qgd2FsbGNsb2Nr ID0gMDsKPiA+IMKgwqDCoMKgIGludCBiaXRfZGVwdGgsIHJldDsKPiA+IMKgwqDCoMKgIEFWRnJh bWVTaWRlRGF0YSAqc2Q7Cj4gPiArwqDCoMKgIEFWRnJhbWVTaWRlRGF0YSAqbWJpbmZvX3NkOwo+ ID4gCj4gPiDCoMKgwqDCoCAqcHBpYyA9IE5VTEw7Cj4gPiDCoMKgwqDCoCBpZiAoIWZyYW1lKQo+ ID4gQEAgLTQ5OSw2ICs1NzgsMTcgQEAgRkZfRU5BQkxFX0RFUFJFQ0FUSU9OX1dBUk5JTkdTCj4g PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBmYWlsOwo+ID4gwqDCoMKgwqAgfQo+ID4g Cj4gPiArwqDCoMKgIG1iaW5mb19zZCA9IGF2X2ZyYW1lX2dldF9zaWRlX2RhdGEoZnJhbWUsCj4g PiBBVl9GUkFNRV9EQVRBX1ZJREVPX0hJTlQpOwo+ID4gK8KgwqDCoCBpZiAobWJpbmZvX3NkKSB7 Cj4gPiArwqDCoMKgwqDCoMKgwqAgaW50IHJldCA9IHNldHVwX21iX2luZm8oY3R4LCBwaWMsIGZy YW1lLCAoY29uc3QKPiA+IEFWVmlkZW9IaW50ICopbWJpbmZvX3NkLT5kYXRhKTsKPiA+ICvCoMKg wqDCoMKgwqDCoCBpZiAocmV0IDwgMCkgewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyog Tm8gbmVlZCB0byBmYWlsIGhlcmUsIHRoaXMgaXMgbm90IGZhdGFsLiBXZSBqdXN0Cj4gPiBwcm9j ZWVkIHdpdGggbm8KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBtYl9pbmZvIGFuZCBs b2cgYSBtZXNzYWdlICovCj4gPiArCj4gCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9s b2coY3R4LCBBVl9MT0dfV0FSTklORywgIm1iX2luZm8gc2V0dXAKPiA+IGZhaWx1cmVcbiIpOwo+ IAo+IG5pdCB0byBwcm92aWRlIG1vcmUgY29udGV4dDogInNldHVwX21iX2luZm8gZmFpbGVkIHdp dGggZXJyb3I6ICVzXG4iLAo+IGF2X3N0cmVycm9yKHJldCkKPiAKPiA+ICvCoMKgwqDCoMKgwqDC oCB9Cj4gPiArwqDCoMKgIH0KPiA+ICsKPiA+IMKgwqDCoMKgIGlmICh4NC0+dWR1X3NlaSkgewo+ ID4gwqDCoMKgwqDCoMKgwqDCoCBmb3IgKGludCBqID0gMDsgaiA8IGZyYW1lLT5uYl9zaWRlX2Rh dGE7IGorKykgewo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEFWRnJhbWVTaWRlRGF0YSAq c2lkZV9kYXRhID0gZnJhbWUtPnNpZGVfZGF0YVtqXTsKPiA+IEBAIC0xMTAyLDYgKzExOTIsOSBA QCBGRl9FTkFCTEVfREVQUkVDQVRJT05fV0FSTklOR1MKPiA+IMKgwqDCoMKgwqDCoMKgwqAgfQo+ ID4gwqDCoMKgwqAgfQo+ID4gCj4gPiArwqDCoMKgIHg0LT5wYXJhbXMuYW5hbHlzZS5iX21iX2lu Zm8gPSB4NC0+bWJfaW5mbzsKPiA+ICvCoMKgwqAgeDQtPnBhcmFtcy5hbmFseXNlLmJfZmFzdF9w c2tpcCA9IDE7Cj4gPiArCj4gPiDCoMKgwqDCoCAvLyB1cGRhdGUgQVZDb2RlY0NvbnRleHQgd2l0 aCB4MjY0IHBhcmFtZXRlcnMKPiA+IMKgwqDCoMKgIGF2Y3R4LT5oYXNfYl9mcmFtZXMgPSB4NC0+ cGFyYW1zLmlfYmZyYW1lID8KPiA+IMKgwqDCoMKgwqDCoMKgwqAgeDQtPnBhcmFtcy5pX2JmcmFt ZV9weXJhbWlkID8gMiA6IDEgOiAwOwo+ID4gQEAgLTEzMTEsNiArMTQwNCw3IEBAIHN0YXRpYyBj b25zdCBBVk9wdGlvbiBvcHRpb25zW10gPSB7Cj4gPiDCoMKgwqDCoCB7ICJub2lzZV9yZWR1Y3Rp b24iLCAiTm9pc2UKPiA+IHJlZHVjdGlvbiIswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE9GRlNFVChub2lzZV9yZWR1Y3Rpb24pLAo+ ID4gQVZfT1BUX1RZUEVfSU5ULCB7IC5pNjQgPSAtMSB9LCBJTlRfTUlOLCBJTlRfTUFYLCBWRSB9 LAo+ID4gwqDCoMKgwqAgeyAidWR1X3NlaSIswqDCoMKgwqDCoCAiVXNlIHVzZXIgZGF0YSB1bnJl Z2lzdGVyZWQgU0VJIGlmCj4gPiBhdmFpbGFibGUiLMKgwqDCoMKgwqAgT0ZGU0VUKHVkdV9zZWkp LMKgIEFWX09QVF9UWVBFX0JPT0wswqDCoCB7IC5pNjQgPSAwCj4gPiB9LCAwLCAxLCBWRSB9LAo+ ID4gwqDCoMKgwqAgeyAieDI2NC1wYXJhbXMiLMKgICJPdmVycmlkZSB0aGUgeDI2NCBjb25maWd1 cmF0aW9uIHVzaW5nIGEgOi0KPiA+IHNlcGFyYXRlZCBsaXN0IG9mIGtleT12YWx1ZSBwYXJhbWV0 ZXJzIiwgT0ZGU0VUKHgyNjRfcGFyYW1zKSwKPiA+IEFWX09QVF9UWVBFX0RJQ1QsIHsgMCB9LCAw LCAwLCBWRSB9LAo+ID4gK8KgwqDCoCB7ICJtYl9pbmZvIizCoMKgwqDCoMKgICJTZXQgbWJfaW5m byBkYXRhIHRocm91Z2ggQVZTaWRlRGF0YSwgb25seQo+ID4gdXNlZnVsIHdoZW4gdXNlZCBmcm9t IHRoZSBBUEkiLCBPRkZTRVQobWJfaW5mbyksIEFWX09QVF9UWVBFX0JPT0wsCj4gPiB7IC5pNjQg PSAwIH0sIDAsIDEsIFZFIH0sCj4gPiDCoMKgwqDCoCB7IE5VTEwgfSwKPiA+IMKgfTsKPiBbLi4u XQo+ID4gwqBlbnVtIEFWQWN0aXZlRm9ybWF0RGVzY3JpcHRpb24gewo+ID4gZGlmZiAtLWdpdCBh L2xpYmF2dXRpbC92aWRlb19oaW50X2luZm8uYwo+ID4gYi9saWJhdnV0aWwvdmlkZW9faGludF9p bmZvLmMKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAwMDAwLi5jOTIw YmQ2MjMyCj4gPiAtLS0gL2Rldi9udWxsCj4gPiArKysgYi9saWJhdnV0aWwvdmlkZW9faGludF9p bmZvLmMKPiA+IEBAIC0wLDAgKzEsODkgQEAKPiA+ICsvKgo+ID4gKyAqIENvcHlyaWdodCAyMDIz IEVsaWFzIENhcm90dGkgPGVsaWFzY3J0IGF0IGFtYXpvbiBkb3QgaXQ+Cj4gPiArICoKPiA+ICsg KiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuCj4gPiArICoKPiA+ICsgKiBGRm1wZWcgaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCj4gPiArICogbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+ ID4gKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlcgo+ID4gKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlcgo+ID4gdmVyc2lvbi4KPiA+ICsgKgo+ID4gKyAqIEZGbXBlZyBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+ID4gKyAq IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCj4gPiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLsKgIFNlZSB0aGUKPiA+IEdOVQo+ID4gKyAqIExlc3NlciBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4gPiArICoKPiA+ICsgKiBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwKPiA+IFB1YmxpYwo+ ID4gKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy ZWUgU29mdHdhcmUKPiA+ICsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BCj4gPiAwMjExMC0xMzAxIFVTQQo+ID4gKyAqLwo+ID4g Kwo+ID4gKyNpbmNsdWRlIDxzdHJpbmcuaD4KPiA+ICsKPiA+ICsjaW5jbHVkZSAiYXZzdHJpbmcu aCIKPiA+ICsjaW5jbHVkZSAiZnJhbWUuaCIKPiA+ICsjaW5jbHVkZSAibWFjcm9zLmgiCj4gPiAr I2luY2x1ZGUgIm1lbS5oIgo+ID4gKyNpbmNsdWRlICJ2aWRlb19oaW50X2luZm8uaCIKPiA+ICsK PiA+ICtBVlZpZGVvSGludCAqYXZfdmlkZW9faGludF9hbGxvYyhBVlZpZGVvUmVjdCAqcmVjdHMs Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzaXplX3QgbmJfcmVjdHMsCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBBVlZpZGVvSGludFR5 cGUgdHlwZSwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemVfdCogb3V0X3NpemUpCj4gPiArewo+ID4gK8KgwqDC oCBzdHJ1Y3QgVGVzdFN0cnVjdCB7Cj4gPiArwqDCoMKgwqDCoMKgwqAgQVZWaWRlb0hpbnTCoMKg wqAgaGludDsKPiA+ICvCoMKgwqDCoMKgwqDCoCBBVlZpZGVvUmVjdMKgwqDCoCByZWN0Owo+ID4g K8KgwqDCoCB9Owo+IAo+ID4gK8KgwqDCoCBjb25zdCBzaXplX3QgYmxvY2tzX29mZnNldCA9IG9m ZnNldG9mKHN0cnVjdCBUZXN0U3RydWN0LAo+ID4gcmVjdCk7Cj4gPiArwqDCoMKgIHNpemVfdCBz aXplID0gYmxvY2tzX29mZnNldDsKPiA+ICvCoMKgwqAgQVZWaWRlb0hpbnQgKmhpbnQ7Cj4gPiAr Cj4gPiArwqDCoMKgICpvdXRfc2l6ZSA9IDA7Cj4gPiArwqDCoMKgIGlmIChuYl9yZWN0cyA+IChT SVpFX01BWCAtIHNpemUpIC8gc2l6ZW9mKEFWVmlkZW9SZWN0KSkKPiA+ICvCoMKgwqDCoMKgwqDC oCByZXR1cm4gTlVMTDsKPiA+ICvCoMKgwqAgc2l6ZSArPSBzaXplb2YoQVZWaWRlb1JlY3QpICog bmJfcmVjdHM7Cj4gPiArCj4gPiArwqDCoMKgIGhpbnQgPSBhdl9tYWxsb2N6KHNpemUpOwo+ID4g K8KgwqDCoCBpZiAoIWhpbnQpCj4gPiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIE5VTEw7Cj4gPiAr Cj4gPiArwqDCoMKgIGhpbnQtPnR5cGXCoMKgwqDCoMKgwqDCoMKgwqAgPSB0eXBlOwo+ID4gK8Kg wqDCoCBoaW50LT5uYl9yZWN0c8KgwqDCoMKgwqAgPSBuYl9yZWN0czsKPiA+ICvCoMKgwqAgaGlu dC0+YmxvY2tzX29mZnNldCA9IGJsb2Nrc19vZmZzZXQ7Cj4gPiArCj4gPiArwqDCoMKgIC8qIEp1 c3QgY29waWVzIHRoZSByZWN0cyBvdmVyIHRoZSBuZXdseSBhbGxvY2F0ZWQgYnVmZmVyICovCj4g PiArwqDCoMKgIG1lbWNweSgodWludDhfdCAqKWhpbnQgKyBibG9ja3Nfb2Zmc2V0LCByZWN0cywK PiA+IHNpemVvZihBVlZpZGVvUmVjdCkgKiBuYl9yZWN0cyk7Cj4gPiArCj4gPiArwqDCoMKgICpv dXRfc2l6ZSA9IHNpemU7Cj4gPiArCj4gPiArwqDCoMKgIHJldHVybiBoaW50Owo+ID4gK30KPiA+ ICsKPiA+ICtBVlZpZGVvSGludCAqYXZfdmlkZW9faGludF9jcmVhdGVfc2lkZV9kYXRhKEFWRnJh bWUgKmZyYW1lLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEFWVmlkZW9SZWN0 ICpyZWN0cywKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaXplX3QgbnVtX3Jl Y3RzLAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEFWVmlkZW9IaW50VHlwZSB0 eXBlKQo+ID4gK3sKPiA+ICvCoMKgwqAgQVZWaWRlb0hpbnQgKmhpbnQ7Cj4gPiArwqDCoMKgIEFW QnVmZmVyUmVmICpidWY7Cj4gPiArwqDCoMKgIHNpemVfdCBzaXplID0gMDsKPiA+ICsKPiA+ICvC oMKgwqAgaGludCA9IGF2X3ZpZGVvX2hpbnRfYWxsb2MocmVjdHMsIG51bV9yZWN0cywgdHlwZSwg JnNpemUpOwo+ID4gK8KgwqDCoCBpZiAoIWhpbnQpCj4gPiArwqDCoMKgwqDCoMKgwqAgcmV0dXJu IE5VTEw7Cj4gPiArCj4gPiArwqDCoMKgIGJ1ZiA9IGF2X2J1ZmZlcl9jcmVhdGUoKHVpbnQ4X3Qg KiloaW50LCBzaXplLCBOVUxMLCBOVUxMLCAwKTsKPiA+ICvCoMKgwqAgaWYgKCFidWYpIHsKPiA+ ICvCoMKgwqDCoMKgwqDCoCBhdl9mcmVlcCgmaGludCk7Cj4gPiArwqDCoMKgwqDCoMKgwqAgcmV0 dXJuIE5VTEw7Cj4gPiArwqDCoMKgIH0KPiA+ICsKPiA+ICvCoMKgwqAgaWYgKCFhdl9mcmFtZV9u ZXdfc2lkZV9kYXRhX2Zyb21fYnVmKGZyYW1lLAo+ID4gQVZfRlJBTUVfREFUQV9WSURFT19ISU5U LCBidWYpKSB7Cj4gPiArwqDCoMKgwqDCoMKgwqAgYXZfYnVmZmVyX3VucmVmKCZidWYpOwo+ID4g K8KgwqDCoMKgwqDCoMKgIHJldHVybiBOVUxMOwo+ID4gK8KgwqDCoCB9Cj4gPiArCj4gPiArwqDC oMKgIHJldHVybiBoaW50Owo+ID4gK30KPiA+ICsKPiA+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwv dmlkZW9faGludF9pbmZvLmgKPiA+IGIvbGliYXZ1dGlsL3ZpZGVvX2hpbnRfaW5mby5oCj4gPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAwMDAwMC4uMjg0NDM5OGQxOAo+ID4g LS0tIC9kZXYvbnVsbAo+IAo+ID4gKysrIGIvbGliYXZ1dGlsL3ZpZGVvX2hpbnRfaW5mby5oCj4g Cj4gc3RyaXAgdGhlIF9pbmZvIHBhcnQgc2luY2UgdG8gaGF2ZSBzaW1wbGUgbWFwcGluZyBiZXR3 ZWVuIGRhdGEKPiBzdHJ1Y3R1cmUgYW5kIGZpbGUgbmFtZXMKPiAKPiBbLi4uXQo+IAo+IExvb2tz IGdvb2QgdG8gbWUgb3RoZXJ3aXNlLCBtYXliZSBNaWNoYWVsL0FudG9uIG9yIHNvbWVvbmUgZWxz ZSB3YW50Cj4gdG8gaGF2ZSBhIGxvb2s/Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZmZtcGVnLWRl dmVsQGZmbXBlZy5vcmcKPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1w ZWctZGV2ZWwKPiAKPiBUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwK PiBmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnwqB3aXRoIHN1YmplY3QgInVuc3Vic2Ny aWJlIi4KCgoKCk5JQ0UgU1JMLCB2aWFsZSBNb250ZSBHcmFwcGEgMy81LCAyMDEyNCBNaWxhbm8s IEl0YWxpYSwgUmVnaXN0cm8gZGVsbGUgSW1wcmVzZSBkaSBNaWxhbm8gTW9uemEgQnJpYW56YSBM b2RpIFJFQSBuLiAyMDk2ODgyLCBDYXBpdGFsZSBTb2NpYWxlOiAxMC4zMjksMTQgRVVSIGkudi4s IENvZC4gRmlzYy4gZSBQLklWQSAwMTEzMzA1MDA1MiwgU29jaWV0YSBjb24gU29jaW8gVW5pY28K Cgo= --_002_b1a707cc225c27be6c8dc3a9698df817818d7414camelamazonit_ 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=15963; creation-date="Mon, 12 Jun 2023 17:28:10 GMT"; modification-date="Mon, 12 Jun 2023 17:28:10 GMT" Content-ID: Content-Transfer-Encoding: base64 RnJvbSAwZTc5NzkyNTAyMzFlZGJlMGI4NDVjZWU5NmM0NzNiYzZlMDdkNDZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFbGlhcyBDYXJvdHRpIDxlbGlhc2NydCBfYXRfIGFtYXpvbiBf ZG90XyBpdD4KRGF0ZTogV2VkLCAxOSBBcHIgMjAyMyAxMTo0OTozOSArMDIwMApTdWJqZWN0OiBb UEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBsaWJ4MjY0J3MgTUJfSU5GTwoKbGlieDI2NCdzIHgyNjRf aW1hZ2VfcHJvcGVydGllc190LCB3aGljaCBpcyBwYXNzZWQgdG8gdGhlIGVuY29kaW5nIGZ1bmN0 aW9uLApjb250YWlucyBhIGZpZWxkIHRvIHBhc3MgZG93biBpbmZvcm1hdGlvbiBvbiB0aGUgcG9y dGlvbnMgb2YgdGhlIGZyYW1lIHdoaWNoCmNoYW5nZWQgd2l0aCByZXNwZWN0IHRvIHRoZSBwcmV2 aW91cyBvbmUgKHVzZWQgZm9yIHByZWRpY3Rpb24pIHRvIG1hcmsKdW5jaGFuZ2VkIG1hY3JvYmxv Y2tzIFBfU0tJUC4KLS0tCiBsaWJhdmNvZGVjL2xpYngyNjQuYyAgIHwgOTEgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWJhdnV0aWwvTWFrZWZpbGUgICAgIHwg IDQgKysKIGxpYmF2dXRpbC9mcmFtZS5oICAgICAgfCAxMCArKysrKwogbGliYXZ1dGlsL3ZpZGVv X2hpbnQuYyB8IDg5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBs aWJhdnV0aWwvdmlkZW9faGludC5oIHwgODcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAyODEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IGxpYmF2dXRpbC92aWRlb19oaW50LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJh dnV0aWwvdmlkZW9faGludC5oCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9saWJ4MjY0LmMgYi9s aWJhdmNvZGVjL2xpYngyNjQuYwppbmRleCA1NzM2ZjFlZmE3Li5jNDJlN2FkMzlkIDEwMDY0NAot LS0gYS9saWJhdmNvZGVjL2xpYngyNjQuYworKysgYi9saWJhdmNvZGVjL2xpYngyNjQuYwpAQCAt MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImxpYmF2dXRpbC9zdGVyZW8zZC5oIgogI2luY2x1ZGUg ImxpYmF2dXRpbC90aW1lLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL2ludHJlYWR3cml0ZS5oIgor I2luY2x1ZGUgImxpYmF2dXRpbC92aWRlb19oaW50LmgiCiAjaW5jbHVkZSAiYXZjb2RlYy5oIgog I2luY2x1ZGUgImNvZGVjX2ludGVybmFsLmgiCiAjaW5jbHVkZSAiZW5jb2RlLmgiCkBAIC00OCw2 ICs0OSw5IEBACiAvLyBmcm9tIHgyNjQuaCwgZm9yIHF1YW50X29mZnNldHMsIE1hY3JvYmxvY2tz IGFyZSAxNngxNgogLy8gYmxvY2tzIG9mIHBpeGVscyAod2l0aCByZXNwZWN0IHRvIHRoZSBsdW1h IHBsYW5lKQogI2RlZmluZSBNQl9TSVpFIDE2CisjZGVmaW5lIE1CX0xTSVpFIDQKKyNkZWZpbmUg TUJfRkxPT1IoeCkgICAgICAoKHgpID4+IChNQl9MU0laRSkpCisjZGVmaW5lIE1CX0NFSUwoeCkg ICAgICAgTUJfRkxPT1IoKHgpICsgKE1CX1NJWkUgLSAxKSkKCiB0eXBlZGVmIHN0cnVjdCBYMjY0 T3BhcXVlIHsKICNpZiBGRl9BUElfUkVPUkRFUkVEX09QQVFVRQpAQCAtMTIzLDYgKzEyNyw4IEBA IHR5cGVkZWYgc3RydWN0IFgyNjRDb250ZXh0IHsKICAgICAgKiBlbmNvdW50ZXIgYSBmcmFtZSB3 aXRoIFJPSSBzaWRlIGRhdGEuCiAgICAgICovCiAgICAgaW50IHJvaV93YXJuZWQ7CisKKyAgICBp bnQgbWJfaW5mbzsKIH0gWDI2NENvbnRleHQ7Cgogc3RhdGljIHZvaWQgWDI2NF9sb2codm9pZCAq cCwgaW50IGxldmVsLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykKQEAgLTI5NSw2ICsz MDEsNyBAQCBzdGF0aWMgdm9pZCBmcmVlX3BpY3R1cmUoeDI2NF9waWN0dXJlX3QgKnBpYykKICAg ICAgICAgYXZfZnJlZShwaWMtPmV4dHJhX3NlaS5wYXlsb2Fkc1tpXS5wYXlsb2FkKTsKICAgICBh dl9mcmVlcCgmcGljLT5leHRyYV9zZWkucGF5bG9hZHMpOwogICAgIGF2X2ZyZWVwKCZwaWMtPnBy b3AucXVhbnRfb2Zmc2V0cyk7CisgICAgYXZfZnJlZXAoJnBpYy0+cHJvcC5tYl9pbmZvKTsKICAg ICBwaWMtPmV4dHJhX3NlaS5udW1fcGF5bG9hZHMgPSAwOwogfQoKQEAgLTMyMCw2ICszMjcsNzQg QEAgc3RhdGljIGVudW0gQVZQaXhlbEZvcm1hdCBjc3BfdG9fcGl4Zm10KGludCBjc3ApCiAgICAg cmV0dXJuIEFWX1BJWF9GTVRfTk9ORTsKIH0KCitzdGF0aWMgdm9pZCBhdl9hbHdheXNfaW5saW5l IG1iaW5mb19jb21wdXRlX2NoYW5nZWRfY29vcmRzKGNvbnN0IEFWVmlkZW9SZWN0ICpyZWN0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgKm1pbl94LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQgKm1heF94LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKm1pbl95LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKm1heF95 KQoreworICAgICptaW5feSA9IE1CX0ZMT09SKHJlY3QtPnkpOworICAgICptYXhfeSA9IE1CX0NF SUwocmVjdC0+eSArIHJlY3QtPmhlaWdodCk7CisgICAgKm1pbl94ID0gTUJfRkxPT1IocmVjdC0+ eCk7CisgICAgKm1heF94ID0gTUJfQ0VJTChyZWN0LT54ICsgcmVjdC0+d2lkdGgpOworfQorCitz dGF0aWMgdm9pZCBhdl9hbHdheXNfaW5saW5lIG1iaW5mb19jb21wdXRlX2NvbnN0YW50X2Nvb3Jk cyhjb25zdCBBVlZpZGVvUmVjdCAqcmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqbWluX3gsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKm1heF94 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50ICptaW5feSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCAqbWF4X3kpCit7CisgICAgKm1pbl95ID0gTUJfQ0VJ TChyZWN0LT55KTsKKyAgICAqbWF4X3kgPSBNQl9GTE9PUihyZWN0LT55ICsgcmVjdC0+aGVpZ2h0 KTsKKyAgICAqbWluX3ggPSBNQl9DRUlMKHJlY3QtPngpOworICAgICptYXhfeCA9IE1CX0ZMT09S KHJlY3QtPnggKyByZWN0LT53aWR0aCk7Cit9CisKK3N0YXRpYyBpbnQgc2V0dXBfbWJfaW5mbyhB VkNvZGVjQ29udGV4dCAqY3R4LCB4MjY0X3BpY3R1cmVfdCAqcGljLAorICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IEFWRnJhbWUgKmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IEFWVmlkZW9IaW50ICppbmZvKQoreworICAgIGludCBtYl93aWR0aCA9IChmcmFtZS0+ d2lkdGggKyBNQl9TSVpFIC0gMSkgLyBNQl9TSVpFOworICAgIGludCBtYl9oZWlnaHQgPSAoZnJh bWUtPmhlaWdodCArIE1CX1NJWkUgLSAxKSAvIE1CX1NJWkU7CisKKyAgICBjb25zdCBBVlZpZGVv UmVjdCAqbWJpbmZvX3JlY3RzOworICAgIGludCBuYl9yZWN0czsKKyAgICB1aW50OF90ICptYmlu Zm87CisKKyAgICBtYmluZm9fcmVjdHMgPSAoY29uc3QgQVZWaWRlb1JlY3QgKilhdl92aWRlb19o aW50X3JlY3RzKGluZm8pOworICAgIG5iX3JlY3RzID0gaW5mby0+bmJfcmVjdHM7CisKKyAgICBt YmluZm8gPSBhdl9jYWxsb2MobWJfd2lkdGggKiBtYl9oZWlnaHQsIHNpemVvZigqbWJpbmZvKSk7 CisgICAgaWYgKCFtYmluZm8pCisgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CisKKyNk ZWZpbmUgQ09NUFVURV9NQklORk8obWJpbmZvX2ZpbGxlcl8sIG1iaW5mb19tYXJrZXJfLCBjb21w dXRlX2Nvb3Jkc19mbl8pIFwKKyAgICBtZW1zZXQobWJpbmZvLCBtYmluZm9fZmlsbGVyXywgc2l6 ZW9mKCptYmluZm8pICogbWJfd2lkdGggKiBtYl9oZWlnaHQpOyBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYl9yZWN0czsgaSsrKSB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgICAgIGludCBtaW5feCwgbWF4X3gsIG1pbl95LCBtYXhf eTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgICAgIGNvbXB1dGVfY29vcmRzX2ZuXyhtYmluZm9fcmVjdHMsICZtaW5feCwgJm1heF94LCAm bWluX3ksICZtYXhfeSk7IFwKKyAgICAgICAgZm9yIChpbnQgbWJfeSA9IG1pbl95OyBtYl95IDwg bWF4X3k7ICsrbWJfeSkgeyAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIG1lbXNldCht YmluZm8gKyBtYl95ICogbWJfd2lkdGggKyBtaW5feCwgbWJpbmZvX21hcmtlcl8sIG1heF94IC0g bWluX3gpOyBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIG1i aW5mb19yZWN0cysrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisKKyAgICBpZiAoaW5mby0+dHlwZSA9PSBBVl9WSURF T19ISU5UX0NIQU5HRUQpIHsKKyAgICAgICAgQ09NUFVURV9NQklORk8oWDI2NF9NQklORk9fQ09O U1RBTlQsIDAsIG1iaW5mb19jb21wdXRlX2NoYW5nZWRfY29vcmRzKTsKKyAgICB9IGVsc2UgLyog aWYgKGluZm8tPnR5cGUgPT0gQVZfVklERU9fSElOVF9DSEFOR0VEKSAqLyB7CisgICAgICAgIENP TVBVVEVfTUJJTkZPKDAsIFgyNjRfTUJJTkZPX0NPTlNUQU5ULCBtYmluZm9fY29tcHV0ZV9jb25z dGFudF9jb29yZHMpOworICAgIH0KKworICAgIHBpYy0+cHJvcC5tYl9pbmZvID0gbWJpbmZvOwor ICAgIHBpYy0+cHJvcC5tYl9pbmZvX2ZyZWUgPSBhdl9mcmVlOworCisgICAgcmV0dXJuIDA7Cit9 CisKIHN0YXRpYyBpbnQgc2V0dXBfcm9pKEFWQ29kZWNDb250ZXh0ICpjdHgsIHgyNjRfcGljdHVy ZV90ICpwaWMsIGludCBiaXRfZGVwdGgsCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBVkZy YW1lICpmcmFtZSwgY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IHNpemUpCiB7CkBAIC00MDQs NiArNDc5LDcgQEAgc3RhdGljIGludCBzZXR1cF9mcmFtZShBVkNvZGVjQ29udGV4dCAqY3R4LCBj b25zdCBBVkZyYW1lICpmcmFtZSwKICAgICBpbnQ2NF90IHdhbGxjbG9jayA9IDA7CiAgICAgaW50 IGJpdF9kZXB0aCwgcmV0OwogICAgIEFWRnJhbWVTaWRlRGF0YSAqc2Q7CisgICAgQVZGcmFtZVNp ZGVEYXRhICptYmluZm9fc2Q7CgogICAgICpwcGljID0gTlVMTDsKICAgICBpZiAoIWZyYW1lKQpA QCAtNDk5LDYgKzU3NSwxNyBAQCBGRl9FTkFCTEVfREVQUkVDQVRJT05fV0FSTklOR1MKICAgICAg ICAgICAgIGdvdG8gZmFpbDsKICAgICB9CgorICAgIG1iaW5mb19zZCA9IGF2X2ZyYW1lX2dldF9z aWRlX2RhdGEoZnJhbWUsIEFWX0ZSQU1FX0RBVEFfVklERU9fSElOVCk7CisgICAgaWYgKG1iaW5m b19zZCkgeworICAgICAgICBpbnQgcmV0ID0gc2V0dXBfbWJfaW5mbyhjdHgsIHBpYywgZnJhbWUs IChjb25zdCBBVlZpZGVvSGludCAqKW1iaW5mb19zZC0+ZGF0YSk7CisgICAgICAgIGlmIChyZXQg PCAwKSB7CisgICAgICAgICAgICAvKiBObyBuZWVkIHRvIGZhaWwgaGVyZSwgdGhpcyBpcyBub3Qg ZmF0YWwuIFdlIGp1c3QgcHJvY2VlZCB3aXRoIG5vCisgICAgICAgICAgICAgKiBtYl9pbmZvIGFu ZCBsb2cgYSBtZXNzYWdlICovCisKKyAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19XQVJO SU5HLCAic2V0dXBfbWJfaW5mbyBmYWlsZWQgd2l0aCBlcnJvcjogJXNcbiIsIGF2X2VycjJzdHIo cmV0KSk7CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAoeDQtPnVkdV9zZWkpIHsKICAgICAg ICAgZm9yIChpbnQgaiA9IDA7IGogPCBmcmFtZS0+bmJfc2lkZV9kYXRhOyBqKyspIHsKICAgICAg ICAgICAgIEFWRnJhbWVTaWRlRGF0YSAqc2lkZV9kYXRhID0gZnJhbWUtPnNpZGVfZGF0YVtqXTsK QEAgLTExMDIsNiArMTE4OSw5IEBAIEZGX0VOQUJMRV9ERVBSRUNBVElPTl9XQVJOSU5HUwogICAg ICAgICB9CiAgICAgfQoKKyAgICB4NC0+cGFyYW1zLmFuYWx5c2UuYl9tYl9pbmZvID0geDQtPm1i X2luZm87CisgICAgeDQtPnBhcmFtcy5hbmFseXNlLmJfZmFzdF9wc2tpcCA9IDE7CisKICAgICAv LyB1cGRhdGUgQVZDb2RlY0NvbnRleHQgd2l0aCB4MjY0IHBhcmFtZXRlcnMKICAgICBhdmN0eC0+ aGFzX2JfZnJhbWVzID0geDQtPnBhcmFtcy5pX2JmcmFtZSA/CiAgICAgICAgIHg0LT5wYXJhbXMu aV9iZnJhbWVfcHlyYW1pZCA/IDIgOiAxIDogMDsKQEAgLTEzMTEsNiArMTQwMSw3IEBAIHN0YXRp YyBjb25zdCBBVk9wdGlvbiBvcHRpb25zW10gPSB7CiAgICAgeyAibm9pc2VfcmVkdWN0aW9uIiwg Ik5vaXNlIHJlZHVjdGlvbiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9GRlNFVChu b2lzZV9yZWR1Y3Rpb24pLCBBVl9PUFRfVFlQRV9JTlQsIHsgLmk2NCA9IC0xIH0sIElOVF9NSU4s IElOVF9NQVgsIFZFIH0sCiAgICAgeyAidWR1X3NlaSIsICAgICAgIlVzZSB1c2VyIGRhdGEgdW5y ZWdpc3RlcmVkIFNFSSBpZiBhdmFpbGFibGUiLCAgICAgIE9GRlNFVCh1ZHVfc2VpKSwgIEFWX09Q VF9UWVBFX0JPT0wsICAgeyAuaTY0ID0gMCB9LCAwLCAxLCBWRSB9LAogICAgIHsgIngyNjQtcGFy YW1zIiwgICJPdmVycmlkZSB0aGUgeDI2NCBjb25maWd1cmF0aW9uIHVzaW5nIGEgOi1zZXBhcmF0 ZWQgbGlzdCBvZiBrZXk9dmFsdWUgcGFyYW1ldGVycyIsIE9GRlNFVCh4MjY0X3BhcmFtcyksIEFW X09QVF9UWVBFX0RJQ1QsIHsgMCB9LCAwLCAwLCBWRSB9LAorICAgIHsgIm1iX2luZm8iLCAgICAg ICJTZXQgbWJfaW5mbyBkYXRhIHRocm91Z2ggQVZTaWRlRGF0YSwgb25seSB1c2VmdWwgd2hlbiB1 c2VkIGZyb20gdGhlIEFQSSIsIE9GRlNFVChtYl9pbmZvKSwgQVZfT1BUX1RZUEVfQk9PTCwgeyAu aTY0ID0gMCB9LCAwLCAxLCBWRSB9LAogICAgIHsgTlVMTCB9LAogfTsKCmRpZmYgLS1naXQgYS9s aWJhdnV0aWwvTWFrZWZpbGUgYi9saWJhdnV0aWwvTWFrZWZpbGUKaW5kZXggZGM5MDEyZjlhOC4u MGVmMmI0MDY0ZCAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL01ha2VmaWxlCisrKyBiL2xpYmF2dXRp bC9NYWtlZmlsZQpAQCAtOTEsNiArOTEsNyBAQCBIRUFERVJTID0gYWRsZXIzMi5oICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAg dGVhLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAgICAgICAgICAgdHguaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgZmlsbV9ncmFpbl9wYXJhbXMuaCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgdmlk ZW9faGludC5oCgogQVJDSF9IRUFERVJTID0gYnN3YXAuaCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgaW50bWF0aC5oICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMTg4LDYg KzE4OSw3IEBAIE9CSlMtJChDT05GSUdfQ1VEQSkgICAgICAgICAgICAgICAgICAgICArPSBod2Nv bnRleHRfY3VkYS5vCiBPQkpTLSQoQ09ORklHX0QzRDExVkEpICAgICAgICAgICAgICAgICAgKz0g aHdjb250ZXh0X2QzZDExdmEubwogT0JKUy0kKENPTkZJR19EWFZBMikgICAgICAgICAgICAgICAg ICAgICs9IGh3Y29udGV4dF9keHZhMi5vCiBPQkpTLSQoQ09ORklHX0xJQkRSTSkgICAgICAgICAg ICAgICAgICAgKz0gaHdjb250ZXh0X2RybS5vCitPQkpTLSQoQ09ORklHX0xJQlgyNjQpICAgICAg ICAgICAgICAgICAgKz0gdmlkZW9faGludC5vCiBPQkpTLSQoQ09ORklHX01BQ09TX0tQRVJGKSAg ICAgICAgICAgICAgKz0gbWFjb3Nfa3BlcmYubwogT0JKUy0kKENPTkZJR19NRURJQUNPREVDKSAg ICAgICAgICAgICAgICs9IGh3Y29udGV4dF9tZWRpYWNvZGVjLm8KIE9CSlMtJChDT05GSUdfT1BF TkNMKSAgICAgICAgICAgICAgICAgICArPSBod2NvbnRleHRfb3BlbmNsLm8KQEAgLTIxOSw2ICsy MjEsOCBAQCBTS0lQSEVBREVSUy0kKENPTkZJR19WVUxLQU4pICAgICAgICAgICArPSBod2NvbnRl eHRfdnVsa2FuLmggdnVsa2FuLmggICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2dWxrYW5fZnVuY3Rpb25zLmggICAgICAgICAgICBcCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWxrYW5fbG9hZGVyLmgKCitTS0lQSEVBREVS Uy0kKENPTkZJR19MSUJYMjY0KSAgCSAgICAgICArPSB2aWRlb19oaW50LmgKKwogVEVTVFBST0dT ID0gYWRsZXIzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogICAgICAgICAgICAgYWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgYWVzX2N0ciAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApkaWZmIC0tZ2l0IGEv bGliYXZ1dGlsL2ZyYW1lLmggYi9saWJhdnV0aWwvZnJhbWUuaAppbmRleCBhNDkxMzE1ZjI1Li4w ZTc2NWU1NDk5IDEwMDY0NAotLS0gYS9saWJhdnV0aWwvZnJhbWUuaAorKysgYi9saWJhdnV0aWwv ZnJhbWUuaApAQCAtMjE0LDYgKzIxNCwxNiBAQCBlbnVtIEFWRnJhbWVTaWRlRGF0YVR5cGUgewog ICAgICAqIEFtYmllbnQgdmlld2luZyBlbnZpcm9ubWVudCBtZXRhZGF0YSwgYXMgZGVmaW5lZCBi eSBILjI3NC4KICAgICAgKi8KICAgICBBVl9GUkFNRV9EQVRBX0FNQklFTlRfVklFV0lOR19FTlZJ Uk9OTUVOVCwKKworICAgIC8qKgorICAgICAqIFByb3ZpZGUgbWFjcm8gYmxvY2sgZW5jb2Rlci1z cGVjaWZpYyBoaW50aW5nIGluZm9ybWF0aW9uIGZvciB0aGUgZW5jb2RlcgorICAgICAqIHByb2Nl c3NpbmcuICBJdCBjYW4gYmUgdXNlZCB0byBwYXNzIGluZm9ybWF0aW9uIGFib3V0IHdoaWNoIG1h Y3JvYmxvY2sKKyAgICAgKiBjYW4gYmUgc2tpcHBlZCBiZWNhdXNlIGl0IGhhc24ndCBjaGFuZ2Vk IGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgb25lIGluCisgICAgICogdGhlIHByZXZpb3VzIGZyYW1l LiBUaGlzIGlzIHVzZWZ1bCBmb3IgYXBwbGljYXRpb25zIHdoaWNoIGtub3cgaW4KKyAgICAgKiBh ZHZhbmNlIHRoaXMgaW5mb3JtYXRpb24gdG8gc3BlZWQgdXAgcmVhbC10aW1lIGVuY29kaW5nLiAg Q3VycmVudGx5IG9ubHkKKyAgICAgKiB1c2VkIGJ5IGxpYngyNjQuCisgICAgICovCisgICAgQVZf RlJBTUVfREFUQV9WSURFT19ISU5ULAogfTsKCiBlbnVtIEFWQWN0aXZlRm9ybWF0RGVzY3JpcHRp b24gewpkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL3ZpZGVvX2hpbnQuYyBiL2xpYmF2dXRpbC92aWRl b19oaW50LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYTYzODg5MWQ0 NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmF2dXRpbC92aWRlb19oaW50LmMKQEAgLTAsMCArMSw4 OSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDIzIEVsaWFzIENhcm90dGkgPGVsaWFzY3J0IGF0IGFt YXpvbiBkb3QgaXQ+CisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgorICoKKyAq IEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH TlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0 ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNp bmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgImF2c3RyaW5nLmgiCisjaW5jbHVkZSAiZnJh bWUuaCIKKyNpbmNsdWRlICJtYWNyb3MuaCIKKyNpbmNsdWRlICJtZW0uaCIKKyNpbmNsdWRlICJ2 aWRlb19oaW50LmgiCisKK0FWVmlkZW9IaW50ICphdl92aWRlb19oaW50X2FsbG9jKEFWVmlkZW9S ZWN0ICpyZWN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuYl9y ZWN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWVmlkZW9IaW50VHlwZSB0 eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90KiBvdXRfc2l6ZSkK K3sKKyAgICBzdHJ1Y3QgVGVzdFN0cnVjdCB7CisgICAgICAgIEFWVmlkZW9IaW50ICAgIGhpbnQ7 CisgICAgICAgIEFWVmlkZW9SZWN0ICAgIHJlY3Q7CisgICAgfTsKKyAgICBjb25zdCBzaXplX3Qg YmxvY2tzX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBUZXN0U3RydWN0LCByZWN0KTsKKyAgICBz aXplX3Qgc2l6ZSA9IGJsb2Nrc19vZmZzZXQ7CisgICAgQVZWaWRlb0hpbnQgKmhpbnQ7CisKKyAg ICAqb3V0X3NpemUgPSAwOworICAgIGlmIChuYl9yZWN0cyA+IChTSVpFX01BWCAtIHNpemUpIC8g c2l6ZW9mKEFWVmlkZW9SZWN0KSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgc2l6ZSArPSBz aXplb2YoQVZWaWRlb1JlY3QpICogbmJfcmVjdHM7CisKKyAgICBoaW50ID0gYXZfbWFsbG9jeihz aXplKTsKKyAgICBpZiAoIWhpbnQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaGludC0+ dHlwZSAgICAgICAgICA9IHR5cGU7CisgICAgaGludC0+bmJfcmVjdHMgICAgICA9IG5iX3JlY3Rz OworICAgIGhpbnQtPmJsb2Nrc19vZmZzZXQgPSBibG9ja3Nfb2Zmc2V0OworCisgICAgLyogSnVz dCBjb3BpZXMgdGhlIHJlY3RzIG92ZXIgdGhlIG5ld2x5IGFsbG9jYXRlZCBidWZmZXIgKi8KKyAg ICBtZW1jcHkoKHVpbnQ4X3QgKiloaW50ICsgYmxvY2tzX29mZnNldCwgcmVjdHMsIHNpemVvZihB VlZpZGVvUmVjdCkgKiBuYl9yZWN0cyk7CisKKyAgICAqb3V0X3NpemUgPSBzaXplOworCisgICAg cmV0dXJuIGhpbnQ7Cit9CisKK0FWVmlkZW9IaW50ICphdl92aWRlb19oaW50X2NyZWF0ZV9zaWRl X2RhdGEoQVZGcmFtZSAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFWVmlkZW9SZWN0ICpyZWN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZV90IG51bV9yZWN0cywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQVZWaWRlb0hpbnRUeXBlIHR5cGUpCit7CisgICAgQVZW aWRlb0hpbnQgKmhpbnQ7CisgICAgQVZCdWZmZXJSZWYgKmJ1ZjsKKyAgICBzaXplX3Qgc2l6ZSA9 IDA7CisKKyAgICBoaW50ID0gYXZfdmlkZW9faGludF9hbGxvYyhyZWN0cywgbnVtX3JlY3RzLCB0 eXBlLCAmc2l6ZSk7CisgICAgaWYgKCFoaW50KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAg IGJ1ZiA9IGF2X2J1ZmZlcl9jcmVhdGUoKHVpbnQ4X3QgKiloaW50LCBzaXplLCBOVUxMLCBOVUxM LCAwKTsKKyAgICBpZiAoIWJ1ZikgeworICAgICAgICBhdl9mcmVlcCgmaGludCk7CisgICAgICAg IHJldHVybiBOVUxMOworICAgIH0KKworICAgIGlmICghYXZfZnJhbWVfbmV3X3NpZGVfZGF0YV9m cm9tX2J1ZihmcmFtZSwgQVZfRlJBTUVfREFUQV9WSURFT19ISU5ULCBidWYpKSB7CisgICAgICAg IGF2X2J1ZmZlcl91bnJlZigmYnVmKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisg ICAgcmV0dXJuIGhpbnQ7Cit9CisKZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC92aWRlb19oaW50Lmgg Yi9saWJhdnV0aWwvdmlkZW9faGludC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAuLmY3ZDExM2ZiOTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJhdnV0aWwvdmlkZW9faGlu dC5oCkBAIC0wLDAgKzEsODcgQEAKKy8qKgorICogQ29weXJpZ2h0IDIwMjMgRWxpYXMgQ2Fyb3R0 aSA8ZWxpYXNjcnQgYXQgYW1hem9uIGRvdCBpdD4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBv ZiBGRm1wZWcuCisgKgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGlj ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBGRm1w ZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZt cGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJ bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEz MDEgVVNBCisgKi8KKworI2lmbmRlZiBBVlVUSUxfVklERU9fSElOVF9ICisjZGVmaW5lIEFWVVRJ TF9WSURFT19ISU5UX0gKKworI2luY2x1ZGUgPHN0ZGRlZi5oPgorI2luY2x1ZGUgPHN0ZGludC5o PgorI2luY2x1ZGUgImxpYmF2dXRpbC9hdmFzc2VydC5oIgorI2luY2x1ZGUgImxpYmF2dXRpbC9m cmFtZS5oIgorCit0eXBlZGVmIHN0cnVjdCBBVlZpZGVvUmVjdCB7CisgICAgdWludDMyX3QgeCwg eTsKKyAgICB1aW50MzJfdCB3aWR0aCwgaGVpZ2h0OworfSBBVlZpZGVvUmVjdDsKKwordHlwZWRl ZiBlbnVtIEFWVmlkZW9IaW50VHlwZSB7CisgICAgLyogYmxvY2tzIGRlbGltaXQgdGhlIGNvbnN0 YW50IGFyZWFzICh1bmNoYW5nZWQpLCBkZWZhdWx0IGlzIGNoYW5nZWQgKi8KKyAgICBBVl9WSURF T19ISU5UX0NPTlNUQU5ULAorCisgICAgLyogYmxvY2tzIGRlbGltaXQgdGhlIGNvbnN0YW50IGFy ZWFzIChjaGFuZ2VkKSwgZGVmYXVsdCBpcyBub3QgY2hhbmdlZCAqLworICAgIEFWX1ZJREVPX0hJ TlRfQ0hBTkdFRCwKK30gQVZWaWRlb0hpbnRUeXBlOworCit0eXBlZGVmIHN0cnVjdCBBVlZpZGVv SGludCB7CisgICAgLyoqCisgICAgICogTnVtYmVyIG9mIGJsb2NrcyBpbiB0aGUgYXJyYXkuCisg ICAgICoKKyAgICAgKiBNYXkgYmUgMCwgaW4gd2hpY2ggY2FzZSBubyBwZXItYmxvY2sgaW5mb3Jt YXRpb24gaXMgcHJlc2VudC4gSW4gdGhpcyBjYXNlCisgICAgICogdGhlIHZhbHVlcyBvZiBibG9j a3Nfb2Zmc2V0IC8gYmxvY2tfc2l6ZSBhcmUgdW5zcGVjaWZpZWQgYW5kIHNob3VsZCBub3QKKyAg ICAgKiBiZSBhY2Nlc3NlZC4KKyAgICAgKi8KKyAgICBpbnQgbmJfcmVjdHM7CisKKyAgICAvKioK KyAgICAgKiBPZmZzZXQgaW4gYnl0ZXMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgc3RydWN0 dXJlIGF0IHdoaWNoIHRoZSBhcnJheQorICAgICAqIG9mIGJsb2NrcyBzdGFydHMuCisgICAgICov CisgICAgc2l6ZV90IGJsb2Nrc19vZmZzZXQ7CisKKyAgICBBVlZpZGVvSGludFR5cGUgdHlwZTsK K30gQVZWaWRlb0hpbnQ7CisKK3N0YXRpYyBhdl9hbHdheXNfaW5saW5lIEFWVmlkZW9SZWN0Kgor YXZfdmlkZW9faGludF9yZWN0cyhjb25zdCBBVlZpZGVvSGludCAqcGFyKQoreworICAgIHJldHVy biAoQVZWaWRlb1JlY3QgKikoKHVpbnQ4X3QgKilwYXIgKyBwYXItPmJsb2Nrc19vZmZzZXQpOwor fQorCisvKioKKyAqIEFsbG9jYXRlIG1lbW9yeSBmb3IgYSB2ZWN0b3Igb2YgQVZWaWRlb1JlY3Qg aW4gdGhlIGdpdmVuIEFWRnJhbWUKKyAqIHtAY29kZSBmcmFtZX0gYXMgQVZGcmFtZVNpZGVEYXRh IG9mIHR5cGUgQVZfRlJBTUVfREFUQV9WSURFT19ISU5UX0lORk8uCisgKiBUaGUgc2lkZSBkYXRh IGNvbnRhaW5zIGEgbGlzdCBvZiByZWN0YW5nbGVzIGZvciB0aGUgcG9ydGlvbnMgb2YgdGhlIGZy YW1lCisgKiB3aGljaCBjaGFuZ2VkIGZyb20gdGhlIGxhc3QgZW5jb2RlZCBvbmUgKGFuZCB0aGUg cmVtYWluZGVyIGFyZSBhc3N1bWVkIHRvIGJlCisgKiBjaGFuZ2VkKSwgb3IsIGFsdGVybmF0ZWx5 IChkZXBlbmRpbmcgb24gdGhlIHR5cGUgcGFyYW1ldGVyKSB0aGUgdW5jaGFuZ2VkCisgKiBvbmVz IChhbmQgdGhlIHJlbWFuaW5pbmcgb25lcyBhcmUgdGhvc2Ugd2hpY2ggY2hhbmdlZCkuCisgKiBN YWNyb2Jsb2NrcyB3aWxsIHRodXMgYmUgaGludGVkIGVpdGhlciB0byBiZSBQX1NLSVAtcGVkIG9y IGdvIHRocm91Z2ggdGhlCisgKiByZWd1bGFyIGVuY29kaW5nIHByb2NlZHVyZS4KKyAqLworQVZW aWRlb0hpbnQgKmF2X3ZpZGVvX2hpbnRfY3JlYXRlX3NpZGVfZGF0YShBVkZyYW1lICpmcmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZWaWRlb1JlY3Qg KnJlY3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl X3QgbnVtX3JlY3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBVlZpZGVvSGludFR5cGUgdHlwZSk7CisKK0FWVmlkZW9IaW50ICphdl92aWRlb19oaW50X2Fs bG9jKEFWVmlkZW9SZWN0ICpyZWN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNpemVfdCBuYl9yZWN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWVmlk ZW9IaW50VHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90 ICpvdXRfc2l6ZSk7CisKKyNlbmRpZiAvKiBBVlVUSUxfVklERU9fSElOVF9IICovCi0tCjIuMzQu MQoK --_002_b1a707cc225c27be6c8dc3a9698df817818d7414camelamazonit_ 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_b1a707cc225c27be6c8dc3a9698df817818d7414camelamazonit_--