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 ESMTPS id 542E84B6E8 for ; Sat, 1 Mar 2025 13:52:31 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 266D068DF4D; Sat, 1 Mar 2025 15:52:26 +0200 (EET) Received: from smtp.waider.ie (smtp.waider.ie [52.31.250.228]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0DE7268DF45 for ; Sat, 1 Mar 2025 15:52:20 +0200 (EET) Received: from smtpclient.apple (unknown [109.255.224.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.waider.ie (Postfix) with ESMTPSA id 1D15541B85 for ; Sat, 1 Mar 2025 13:52:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=waider.ie; s=waider_ie; t=1740837139; bh=ND6WOo8orYjtTrdxfxypMRMsWUO5Txu1maNwVdgQSL0=; h=Content-Type:Mime-Version:Subject:To:From:In-Reply-To:Date: Content-Transfer-Encoding:Message-Id:References; b=SuxnSgCLlfsGGFApbiRRxtRa1lwNFlJYdgk3g8seTYOc6hSVGtAcd/gU1pS4YTK2N n1CHUUQO39R4TH5FPDTP9FvP+DE2Mvr8LbBoupsHjCEg4A7g4sb8v+DFgLpVPnV1M6 7KPQPRSBWeEchUTYxqVNn3Icv4xptBZVIk+VCGKU= Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.400.131.1.6\)) To: FFmpeg development discussions and patches From: Ronan Waide In-Reply-To: Date: Sat, 1 Mar 2025 13:52:11 +0000 Message-Id: References: <1D1812F5-DB2A-4847-89DB-EF3A1A6C9BCF@waider.ie> Organization: Poor, at best X-Mailer: Apple Mail (2.3826.400.131.1.6) X-Spam-Status: No, score=-102.9 required=5.0 tests=ALL_TRUSTED,BAYES_00, URIBL_BLOCKED,URIBL_DBL_BLOCKED_OPENDNS,URIBL_ZEN_BLOCKED_OPENDNS, USER_IN_WELCOMELIST,USER_IN_WHITELIST autolearn=ham autolearn_force=no version=3.4.3 X-Spam-Checker-Version: SpamAssassin 3.4.3 (2019-12-06) on ec2.waider.ie Subject: Re: [FFmpeg-devel] [PATCH] dvbsubenc: add a disable_2bpp option to work around some decoders. 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 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: PiBPbiAxIE1hciAyMDI1LCBhdCAxMjo1NSwgU29mdCBXb3JrcyA8c29mdHdvcmt6LWF0LWhvdG1h aWwuY29tQGZmbXBlZy5vcmc+IHdyb3RlOgo+IAo+IAo+IAo+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQo+PiBGcm9tOiBmZm1wZWctZGV2ZWwgPGZmbXBlZy1kZXZlbC1ib3VuY2VzQGZmbXBl Zy5vcmc+IE9uIEJlaGFsZiBPZiBXYWlkZXIKPj4gU2VudDogU2Ftc3RhZywgMS4gTcOkcnogMjAy NSAxMjo0Mwo+PiBUbzogZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPj4gU3ViamVjdDogW0ZGbXBl Zy1kZXZlbF0gW1BBVENIXSBkdmJzdWJlbmM6IGFkZCBhIGRpc2FibGVfMmJwcCBvcHRpb24gdG8K Pj4gd29yayBhcm91bmQgc29tZSBkZWNvZGVycy4KPj4gCj4+IEFzIG5vdGVkIGluIHRoZSBjb2Rl IGluIHNldmVyYWwgcGxhY2VzLCBzb21lIERWQiBzdWJ0aXRsZSBkZWNvZGVycwo+PiBkb24ndCBo YW5kbGUgMmJwcCBjb2xvci4gVGhpcyBwYXRjaCBhZGRzIGEgZGlzYWJsZV8yYnBwIG9wdGlvbiB3 aGljaAo+PiBkaXNhYmxlcyB0aGUgMmJwcCBmb3JtYXQ7IHN1YnRpdGxlcyB3aGljaCB3b3VsZCB1 c2UgMmJwcCB3aWxsIGJlIGJ1bXBlZAo+PiB1cCB0byA0YnBwLgo+PiAKPj4gU2lnbmVkLW9mZi1i eTogUm9uYW4gV2FpZGUgPHdhaWRlckB3YWlkZXIuaWU+Cj4+IC0tLQo+PiBkb2MvZW5jb2RlcnMu dGV4aSAgICAgIHwgMjQgKysrKysrKysrKysrCj4+IGxpYmF2Y29kZWMvZHZic3ViZW5jLmMgfCA4 NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KPj4gMiBmaWxlcyBj aGFuZ2VkLCA5MiBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKPj4gCj4+IGRpZmYgLS1n aXQgYS9kb2MvZW5jb2RlcnMudGV4aSBiL2RvYy9lbmNvZGVycy50ZXhpCj4+IGluZGV4IGYzZmNj MWFhNjAuLmQ2ZGM5MmEwNDcgMTAwNjQ0Cj4+IC0tLSBhL2RvYy9lbmNvZGVycy50ZXhpCj4+ICsr KyBiL2RvYy9lbmNvZGVycy50ZXhpCj4+IEBAIC00NDg0LDYgKzQ0ODQsMzAgQEAgUmVkdWNlcyBk ZXRhaWwgYnV0IGF0dGVtcHRzIHRvIHByZXNlcnZlIGNvbG9yIGF0Cj4+IGV4dHJlbWVseSBsb3cg Yml0cmF0ZXMuCj4+IEBjaGFwdGVyIFN1YnRpdGxlcyBFbmNvZGVycwo+PiBAYyBtYW4gYmVnaW4g U1VCVElUTEVTIEVOQ09ERVJTCj4+IAo+PiArQHNlY3Rpb24gZHZic3ViCj4+ICsKPj4gK1RoaXMg Y29kZWMgZW5jb2RlcyB0aGUgYml0bWFwIHN1YnRpdGxlIGZvcm1hdCB0aGF0IGlzIHVzZWQgaW4g RFZCCj4+ICticm9hZGNhc3RzIGFuZCByZWNvcmRpbmdzLiBUaGUgYml0bWFwcyBhcmUgdHlwaWNh bGx5IGVtYmVkZGVkIGluIGEKPj4gK2NvbnRhaW5lciBzdWNoIGFzIE1QRUctVFMgYXMgYSBzZXBh cmF0ZSBzdHJlYW0uCj4+ICsKPj4gK0BzdWJzZWN0aW9uIE9wdGlvbnMKPj4gKwo+PiArQHRhYmxl IEBvcHRpb24KPj4gK0BpdGVtIGRpc2FibGVfMmJwcCBAdmFye2Jvb2xlYW59Cj4+ICtEaXNhYmxl IHRoZSAyIGJpdHMtcGVyLXBpeGVsIGVuY29kaW5nIGZvcm1hdC4KPj4gKwo+PiArRFZCIHN1cHBv cnRzIDIsIDQsIGFuZCA4IGJpdHMtcGVyLXBpeGVsIGNvbG9yIGxvb2t1cCB0YWJsZXMuIEhvd2V2 ZXIsCj4+ICtub3QgYWxsIHBsYXllcnMgc3VwcG9ydCBvciBwcm9wZXJseSBzdXBwb3J0IDIgYml0 cy1wZXItcGl4ZWwsCj4+ICtyZXN1bHRpbmcgaW4gdW51c2FibGUgc3VidGl0bGVzLgo+PiArQHRh YmxlIEBvcHRpb24KPj4gK0BpdGVtIDAKPj4gK1RoZSAyIGJpdHMtcGVyLXBpeGVsIGVuY29kaW5n IGZvcm1hdCB3aWxsIGJlIHVzZWQgZm9yIHN1YnRpdGxlcyB3aXRoIDQKPj4gK2NvbG9ycyBvciBs ZXNzLiAoZGVmYXVsdCkKPj4gK0BpdGVtIDEKPj4gK1RoZSAyIGJpdHMtcGVyLXBpeGVsIGVuY29k aW5nIGZvcm1hdCB3aWxsIGJlIGRpc2FibGVkLCBhbmQgc3VidGl0bGVzCj4+ICt3aXRoIDQgY29s b3JzIG9yIGxlc3Mgd2lsbCB1c2UgYSA0IGJpdHMtcGVyLXBpeGVsIGZvcm1hdC4KPj4gK0BlbmQg dGFibGUKPj4gKwo+PiBAc2VjdGlvbiBkdmRzdWIKPj4gCj4+IFRoaXMgY29kZWMgZW5jb2RlcyB0 aGUgYml0bWFwIHN1YnRpdGxlIGZvcm1hdCB0aGF0IGlzIHVzZWQgaW4gRFZEcy4KPj4gZGlmZiAt LWdpdCBhL2xpYmF2Y29kZWMvZHZic3ViZW5jLmMgYi9saWJhdmNvZGVjL2R2YnN1YmVuYy5jCj4+ IGluZGV4IDgyMmUzYTUzMDkuLjcyN2E3NWU5MDEgMTAwNjQ0Cj4+IC0tLSBhL2xpYmF2Y29kZWMv ZHZic3ViZW5jLmMKPj4gKysrIGIvbGliYXZjb2RlYy9kdmJzdWJlbmMuYwo+PiBAQCAtMjIsOSAr MjIsMTMgQEAKPj4gI2luY2x1ZGUgImJ5dGVzdHJlYW0uaCIKPj4gI2luY2x1ZGUgImNvZGVjX2lu dGVybmFsLmgiCj4+ICNpbmNsdWRlICJsaWJhdnV0aWwvY29sb3JzcGFjZS5oIgo+PiArI2luY2x1 ZGUgImxpYmF2dXRpbC9vcHQuaCIKPj4gCj4+IHR5cGVkZWYgc3RydWN0IERWQlN1YnRpdGxlQ29u dGV4dCB7Cj4+ICsgICAgQVZDbGFzcyAqIGNsYXNzOwo+PiAgICBpbnQgb2JqZWN0X3ZlcnNpb247 Cj4+ICsgICAgaW50IGRpc2FibGVfMmJwcDsKPj4gKyAgICBpbnQgbWluX2NvbG9yczsKPj4gfSBE VkJTdWJ0aXRsZUNvbnRleHQ7Cj4+IAo+PiAjZGVmaW5lIFBVVEJJVFMyKHZhbClcCj4+IEBAIC0z OCw2ICs0MiwxOCBAQCB0eXBlZGVmIHN0cnVjdCBEVkJTdWJ0aXRsZUNvbnRleHQgewo+PiAgICB9 XAo+PiB9Cj4+IAo+PiArc3RhdGljIGludCBkdmJzdWJfaW5pdChBVkNvZGVjQ29udGV4dCAqYXZj dHgpCj4+ICt7Cj4+ICsgICAgRFZCU3VidGl0bGVDb250ZXh0ICpzID0gYXZjdHgtPnByaXZfZGF0 YTsKPj4gKyAgICBpZiAocy0+ZGlzYWJsZV8yYnBwKSB7Cj4+ICsgICAgICAgIGF2X2xvZyhhdmN0 eCwgQVZfTE9HX0RFQlVHLCAiRGlzYWJsaW5nIDJicHAgc3VidGl0bGVzLlxuIik7Cj4+ICsgICAg ICAgIHMtPm1pbl9jb2xvcnMgPSAxNjsKPj4gKyAgICB9IGVsc2Ugewo+PiArICAgICAgICBzLT5t aW5fY29sb3JzID0gMDsKPj4gKyAgICB9Cj4+ICsgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4g c3RhdGljIGludCBkdmJfZW5jb2RlX3JsZTIodWludDhfdCAqKnBxLCBpbnQgYnVmX3NpemUsCj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqYml0bWFwLCBpbnQgbGlu ZXNpemUsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHcsIGludCBoKQo+PiBAQCAt MzI2LDE4ICszNDIsMjIgQEAgc3RhdGljIGludCBkdmJzdWJfZW5jb2RlKEFWQ29kZWNDb250ZXh0 ICphdmN0eCwKPj4gdWludDhfdCAqb3V0YnVmLCBpbnQgYnVmX3NpemUsCj4+IAo+PiAgICBpZiAo aC0+bnVtX3JlY3RzKSB7Cj4+ICAgICAgICBmb3IgKGNsdXRfaWQgPSAwOyBjbHV0X2lkIDwgaC0+ bnVtX3JlY3RzOyBjbHV0X2lkKyspIHsKPj4gLSAgICAgICAgICAgIGlmIChidWZfc2l6ZSA8IDYg KyBoLT5yZWN0c1tjbHV0X2lkXS0+bmJfY29sb3JzICogNikKPj4gKyAgICAgICAgICAgIGludCBu Yl9jb2xvcnMgPSBzLT5taW5fY29sb3JzID4gaC0+cmVjdHNbY2x1dF9pZF0tCj4+PiBuYl9jb2xv cnMKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHMtPm1pbl9jb2xvcnMKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6IGgtPnJlY3RzW2NsdXRfaWRdLT5uYl9jb2xvcnM7 Cj4+ICsKPj4gKyAgICAgICAgICAgIGlmIChidWZfc2l6ZSA8IDYgKyBuYl9jb2xvcnMgKiA2KQo+ PiAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUl9CVUZGRVJfVE9PX1NNQUxMOwo+PiAKPj4g ICAgICAgICAgICAvKiBDTFVUIHNlZ21lbnQgKi8KPj4gCj4+IC0gICAgICAgICAgICBpZiAoaC0+ cmVjdHNbY2x1dF9pZF0tPm5iX2NvbG9ycyA8PSA0KSB7Cj4+ICsgICAgICAgICAgICBpZiAobmJf Y29sb3JzIDw9IDQpIHsKPj4gICAgICAgICAgICAgICAgLyogMiBicHAsIHNvbWUgZGVjb2RlcnMg ZG8gbm90IHN1cHBvcnQgaXQgY29ycmVjdGx5ICovCj4+ICAgICAgICAgICAgICAgIGJwcF9pbmRl eCA9IDA7Cj4+IC0gICAgICAgICAgICB9IGVsc2UgaWYgKGgtPnJlY3RzW2NsdXRfaWRdLT5uYl9j b2xvcnMgPD0gMTYpIHsKPj4gKyAgICAgICAgICAgIH0gZWxzZSBpZiAobmJfY29sb3JzIDw9IDE2 KSB7Cj4+ICAgICAgICAgICAgICAgIC8qIDQgYnBwLCBzdGFuZGFyZCBlbmNvZGluZyAqLwo+PiAg ICAgICAgICAgICAgICBicHBfaW5kZXggPSAxOwo+PiAtICAgICAgICAgICAgfSBlbHNlIGlmICho LT5yZWN0c1tjbHV0X2lkXS0+bmJfY29sb3JzIDw9IDI1Nikgewo+PiArICAgICAgICAgICAgfSBl bHNlIGlmIChuYl9jb2xvcnMgPD0gMjU2KSB7Cj4+ICAgICAgICAgICAgICAgIC8qIDggYnBwLCBz dGFuZGFyZCBlbmNvZGluZyAqLwo+PiAgICAgICAgICAgICAgICBicHBfaW5kZXggPSAyOwo+PiAg ICAgICAgICAgIH0gZWxzZSB7Cj4+IEBAIC0zNTQsMTYgKzM3NCwyNCBAQCBzdGF0aWMgaW50IGR2 YnN1Yl9lbmNvZGUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAo+PiB1aW50OF90ICpvdXRidWYsIGlu dCBidWZfc2l6ZSwKPj4gICAgICAgICAgICAqcSsrID0gY2x1dF9pZDsKPj4gICAgICAgICAgICAq cSsrID0gKDAgPDwgNCkgfCAweGY7IC8qIHZlcnNpb24gPSAwICovCj4+IAo+PiAtICAgICAgICAg ICAgZm9yKGkgPSAwOyBpIDwgaC0+cmVjdHNbY2x1dF9pZF0tPm5iX2NvbG9yczsgaSsrKSB7Cj4+ ICsgICAgICAgICAgICBmb3IoaSA9IDA7IGkgPCBuYl9jb2xvcnM7IGkrKykgewo+PiAgICAgICAg ICAgICAgICAqcSsrID0gaTsgLyogY2x1dF9lbnRyeV9pZCAqLwo+PiAgICAgICAgICAgICAgICAq cSsrID0gKDEgPDwgKDcgLSBicHBfaW5kZXgpKSB8ICgweGYgPDwgMSkgfCAxOyAvKiAyCj4+IGJp dHMvcGl4ZWwgZnVsbCByYW5nZSAqLwo+PiAgICAgICAgICAgICAgICB7Cj4+ICAgICAgICAgICAg ICAgICAgICBpbnQgYSwgciwgZywgYjsKPj4gLSAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg eD0gKCh1aW50MzJfdCopaC0+cmVjdHNbY2x1dF9pZF0tCj4+PiBkYXRhWzFdKVtpXTsKPj4gLSAg ICAgICAgICAgICAgICAgICAgYSA9ICh4ID4+IDI0KSAmIDB4ZmY7Cj4+IC0gICAgICAgICAgICAg ICAgICAgIHIgPSAoeCA+PiAxNikgJiAweGZmOwo+PiAtICAgICAgICAgICAgICAgICAgICBnID0g KHggPj4gIDgpICYgMHhmZjsKPj4gLSAgICAgICAgICAgICAgICAgICAgYiA9ICh4ID4+ICAwKSAm IDB4ZmY7Cj4+ICsgICAgICAgICAgICAgICAgICAgIGlmIChpIDwgaC0+cmVjdHNbY2x1dF9pZF0t Pm5iX2NvbG9ycykgewo+PiArICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgeD0gKCh1 aW50MzJfdCopaC0+cmVjdHNbY2x1dF9pZF0tCj4+PiBkYXRhWzFdKVtpXTsKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgIGEgPSAoeCA+PiAyNCkgJiAweGZmOwo+PiArICAgICAgICAgICAgICAg ICAgICAgICAgciA9ICh4ID4+IDE2KSAmIDB4ZmY7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICBnID0gKHggPj4gIDgpICYgMHhmZjsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGIgPSAo eCA+PiAgMCkgJiAweGZmOwo+PiArICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgLyogcGFkIG91dCB0aGUgQ0xVVCAqLwo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgYSA9IDA7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICByID0gMDsK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGcgPSAwOwo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgYiA9IDA7Cj4+ICsgICAgICAgICAgICAgICAgICAgIH0KPj4gCj4+ICAgICAgICAgICAg ICAgICAgICAqcSsrID0gUkdCX1RPX1lfQ0NJUihyLCBnLCBiKTsKPj4gICAgICAgICAgICAgICAg ICAgICpxKysgPSBSR0JfVE9fVl9DQ0lSKHIsIGcsIGIsIDApOwo+PiBAQCAtMzczLDcgKzQwMSw3 IEBAIHN0YXRpYyBpbnQgZHZic3ViX2VuY29kZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4+IHVp bnQ4X3QgKm91dGJ1ZiwgaW50IGJ1Zl9zaXplLAo+PiAgICAgICAgICAgIH0KPj4gCj4+ICAgICAg ICAgICAgYnl0ZXN0cmVhbV9wdXRfYmUxNigmcHNlZ19sZW4sIHEgLSBwc2VnX2xlbiAtIDIpOwo+ PiAtICAgICAgICAgICAgYnVmX3NpemUgLT0gNiArIGgtPnJlY3RzW2NsdXRfaWRdLT5uYl9jb2xv cnMgKiA2Owo+PiArICAgICAgICAgICAgYnVmX3NpemUgLT0gNiArIG5iX2NvbG9ycyAqIDY7Cj4+ ICAgICAgICB9Cj4+IAo+PiAgICAgICAgaWYgKGJ1Zl9zaXplIDwgaC0+bnVtX3JlY3RzICogMjIp Cj4+IEBAIC0zODEsMTQgKzQwOSwxNyBAQCBzdGF0aWMgaW50IGR2YnN1Yl9lbmNvZGUoQVZDb2Rl Y0NvbnRleHQgKmF2Y3R4LAo+PiB1aW50OF90ICpvdXRidWYsIGludCBidWZfc2l6ZSwKPj4gICAg ICAgIGZvciAocmVnaW9uX2lkID0gMDsgcmVnaW9uX2lkIDwgaC0+bnVtX3JlY3RzOyByZWdpb25f aWQrKykgewo+PiAKPj4gICAgICAgICAgICAvKiByZWdpb24gY29tcG9zaXRpb24gc2VnbWVudCAq Lwo+PiArICAgICAgICAgICAgaW50IG5iX2NvbG9ycyA9IHMtPm1pbl9jb2xvcnMgPiBoLT5yZWN0 c1tyZWdpb25faWRdLQo+Pj4gbmJfY29sb3JzCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPyBzLT5taW5fY29sb3JzCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBoLT5y ZWN0c1tyZWdpb25faWRdLT5uYl9jb2xvcnM7Cj4+IAo+PiAtICAgICAgICAgICAgaWYgKGgtPnJl Y3RzW3JlZ2lvbl9pZF0tPm5iX2NvbG9ycyA8PSA0KSB7Cj4+ICsgICAgICAgICAgICBpZiAobmJf Y29sb3JzIDw9IDQpIHsKPj4gICAgICAgICAgICAgICAgLyogMiBicHAsIHNvbWUgZGVjb2RlcnMg ZG8gbm90IHN1cHBvcnQgaXQgY29ycmVjdGx5ICovCj4+ICAgICAgICAgICAgICAgIGJwcF9pbmRl eCA9IDA7Cj4+IC0gICAgICAgICAgICB9IGVsc2UgaWYgKGgtPnJlY3RzW3JlZ2lvbl9pZF0tPm5i X2NvbG9ycyA8PSAxNikgewo+PiArICAgICAgICAgICAgfSBlbHNlIGlmIChuYl9jb2xvcnMgPD0g MTYpIHsKPj4gICAgICAgICAgICAgICAgLyogNCBicHAsIHN0YW5kYXJkIGVuY29kaW5nICovCj4+ ICAgICAgICAgICAgICAgIGJwcF9pbmRleCA9IDE7Cj4+IC0gICAgICAgICAgICB9IGVsc2UgaWYg KGgtPnJlY3RzW3JlZ2lvbl9pZF0tPm5iX2NvbG9ycyA8PSAyNTYpIHsKPj4gKyAgICAgICAgICAg IH0gZWxzZSBpZiAobmJfY29sb3JzIDw9IDI1Nikgewo+PiAgICAgICAgICAgICAgICAvKiA4IGJw cCwgc3RhbmRhcmQgZW5jb2RpbmcgKi8KPj4gICAgICAgICAgICAgICAgYnBwX2luZGV4ID0gMjsK Pj4gICAgICAgICAgICB9IGVsc2Ugewo+PiBAQCAtNDI0LDE3ICs0NTUsMjEgQEAgc3RhdGljIGlu dCBkdmJzdWJfZW5jb2RlKEFWQ29kZWNDb250ZXh0ICphdmN0eCwKPj4gdWludDhfdCAqb3V0YnVm LCBpbnQgYnVmX3NpemUsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHVpbnQ4X3QgKmJpdG1hcCwgaW50IGxpbmVzaXplLAo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgdywgaW50IGgpOwo+PiAKPj4gKyAgICAgICAgICAgIGludCBuYl9jb2xv cnMgPSBzLT5taW5fY29sb3JzID4gaC0+cmVjdHNbb2JqZWN0X2lkXS0KPj4+IG5iX2NvbG9ycwo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHMtPm1pbl9jb2xvcnMKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBoLT5yZWN0c1tvYmplY3RfaWRdLT5uYl9j b2xvcnM7Cj4+ICsKPj4gICAgICAgICAgICBpZiAoYnVmX3NpemUgPCAxMykKPj4gICAgICAgICAg ICAgICAgcmV0dXJuIEFWRVJST1JfQlVGRkVSX1RPT19TTUFMTDsKPj4gCj4+ICAgICAgICAgICAg LyogYnBwX2luZGV4IG1hdGhzICovCj4+IC0gICAgICAgICAgICBpZiAoaC0+cmVjdHNbb2JqZWN0 X2lkXS0+bmJfY29sb3JzIDw9IDQpIHsKPj4gKyAgICAgICAgICAgIGlmIChuYl9jb2xvcnMgPD0g NCkgewo+PiAgICAgICAgICAgICAgICAvKiAyIGJwcCwgc29tZSBkZWNvZGVycyBkbyBub3Qgc3Vw cG9ydCBpdCBjb3JyZWN0bHkgKi8KPj4gICAgICAgICAgICAgICAgZHZiX2VuY29kZV9ybGUgPSBk dmJfZW5jb2RlX3JsZTI7Cj4+IC0gICAgICAgICAgICB9IGVsc2UgaWYgKGgtPnJlY3RzW29iamVj dF9pZF0tPm5iX2NvbG9ycyA8PSAxNikgewo+PiArICAgICAgICAgICAgfSBlbHNlIGlmIChuYl9j b2xvcnMgPD0gMTYpIHsKPj4gICAgICAgICAgICAgICAgLyogNCBicHAsIHN0YW5kYXJkIGVuY29k aW5nICovCj4+ICAgICAgICAgICAgICAgIGR2Yl9lbmNvZGVfcmxlID0gZHZiX2VuY29kZV9ybGU0 Owo+PiAtICAgICAgICAgICAgfSBlbHNlIGlmIChoLT5yZWN0c1tvYmplY3RfaWRdLT5uYl9jb2xv cnMgPD0gMjU2KSB7Cj4+ICsgICAgICAgICAgICB9IGVsc2UgaWYgKG5iX2NvbG9ycyA8PSAyNTYp IHsKPj4gICAgICAgICAgICAgICAgLyogOCBicHAsIHN0YW5kYXJkIGVuY29kaW5nICovCj4+ICAg ICAgICAgICAgICAgIGR2Yl9lbmNvZGVfcmxlID0gZHZiX2VuY29kZV9ybGU4Owo+PiAgICAgICAg ICAgIH0gZWxzZSB7Cj4+IEBAIC01MDYsNiArNTQxLDIwIEBAIHN0YXRpYyBpbnQgZHZic3ViX2Vu Y29kZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4+IHVpbnQ4X3QgKm91dGJ1ZiwgaW50IGJ1Zl9z aXplLAo+PiAgICByZXR1cm4gcSAtIG91dGJ1ZjsKPj4gfQo+PiAKPj4gKyNkZWZpbmUgT0ZGU0VU KHgpIG9mZnNldG9mKERWQlN1YnRpdGxlQ29udGV4dCwgeCkKPj4gKyNkZWZpbmUgU0UgQVZfT1BU X0ZMQUdfU1VCVElUTEVfUEFSQU0gfCBBVl9PUFRfRkxBR19FTkNPRElOR19QQVJBTQo+PiArc3Rh dGljIGNvbnN0IEFWT3B0aW9uIG9wdGlvbnNbXSA9IHsKPj4gKyAgICB7ImRpc2FibGVfMmJwcCIs ICJkaXNhYmxlIHRoZSAyYnBwIHN1YnRpdGxlIGVuY29kZXIiLAo+PiBPRkZTRVQoZGlzYWJsZV8y YnBwKSwgQVZfT1BUX1RZUEVfQk9PTCwgey5pNjQgPSAwfSwgMCwgMSwgU0V9LAo+PiArICAgIHsg TlVMTCB9LAo+PiArfTsKPj4gKwo+PiArc3RhdGljIGNvbnN0IEFWQ2xhc3MgZHZic3ViZW5jX2Ns YXNzID0gewo+PiArICAgIC5jbGFzc19uYW1lID0gIkRWQlNVQiBzdWJ0aXRsZSBlbmNvZGVyIiwK Pj4gKyAgICAuaXRlbV9uYW1lICA9IGF2X2RlZmF1bHRfaXRlbV9uYW1lLAo+PiArICAgIC5vcHRp b24gICAgID0gb3B0aW9ucywKPj4gKyAgICAudmVyc2lvbiAgICA9IExJQkFWVVRJTF9WRVJTSU9O X0lOVCwKPj4gK307Cj4+ICsKPj4gY29uc3QgRkZDb2RlYyBmZl9kdmJzdWJfZW5jb2RlciA9IHsK Pj4gICAgLnAubmFtZSAgICAgICAgID0gImR2YnN1YiIsCj4+ICAgIENPREVDX0xPTkdfTkFNRSgi RFZCIHN1YnRpdGxlcyIpLAo+PiBAQCAtNTEzLDQgKzU2Miw2IEBAIGNvbnN0IEZGQ29kZWMgZmZf ZHZic3ViX2VuY29kZXIgPSB7Cj4+ICAgIC5wLmlkICAgICAgICAgICA9IEFWX0NPREVDX0lEX0RW Ql9TVUJUSVRMRSwKPj4gICAgLnByaXZfZGF0YV9zaXplID0gc2l6ZW9mKERWQlN1YnRpdGxlQ29u dGV4dCksCj4+ICAgIEZGX0NPREVDX0VOQ09ERV9TVUJfQ0IoZHZic3ViX2VuY29kZSksCj4+ICsg ICAgLmluaXQgICAgICAgICAgID0gZHZic3ViX2luaXQsCj4+ICsgICAgLnAucHJpdl9jbGFzcyAg ID0gJmR2YnN1YmVuY19jbGFzcywKPj4gfTsKPj4gLS0KPiAKPiBIaSwKPiAKPiB0aGFua3MgZm9y IHlvdXIgY29udHJpYnV0aW9uLgo+IAo+IFlvdXIgcGF0Y2ggZmFpbHMgdG8gYXBwbHk6Cj4gaHR0 cHM6Ly9wYXRjaHdvcmsuZmZtcGVnLm9yZy9wcm9qZWN0L2ZmbXBlZy9wYXRjaC8xRDE4MTJGNS1E QjJBLTQ4NDctODlEQi1FRjNBMUE2QzlCQ0ZAd2FpZGVyLmllLwo+IAo+IEl0IGFwcGVhcnMgdG8g YmUgY3JlYXRlZCBhZ2FpbnN0IGFuIG9sZGVyIHZlcnNpb24gb2YgdGhlIGNvZGUuIFBhdGNoZXMg bmVlZCB0byBiZSBtYWRlIHdpdGggdGhlIGN1cnJlbnQgSEVBRCBvZiB0aGUgbWFzdGVyIGJyYW5j aCBhcyB0aGUgYmFzZS4KPiAKPiBCZXN0LAo+IHN3CgpIdWgsIHdlaXJkIC0gSSB0aG91Z2h0IEkn ZCBkb25lIGEgYGdpdCBwdWxsIC0tcmViYXNlYCBiZWZvcmUgc3VibWl0dGluZy4gSSBkaWQgZmlu ZCBhbiBlcnJvciBpbiB0aGUgZG9jIGNoYW5nZXMgSSBtYWRlIHNvIEkgbmVlZCB0byByZXN1Ym1p dCBhbnl3YXkuCgpDaGVlcnMsCldhaWRlci4KLS0gClJvbmFuIFdhaWRlCndhaWRlckB3YWlkZXIu aWUKCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZm bXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9m Zm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwg dmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9y ZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K