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 B896D4630B for ; Sat, 13 May 2023 06:30:19 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 88A4468C059; Sat, 13 May 2023 09:30:17 +0300 (EEST) Received: from mail-vs1-f43.google.com (mail-vs1-f43.google.com [209.85.217.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5BA186801F2 for ; Sat, 13 May 2023 09:30:11 +0300 (EEST) Received: by mail-vs1-f43.google.com with SMTP id ada2fe7eead31-435f36ad948so2466412137.3 for ; Fri, 12 May 2023 23:30:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1683959410; x=1686551410; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=3bxnKF1rdg7gFkBPSKMdcbFLw0ZNSg7CBp07rM5wSTY=; b=KTKsbbnyMFkpG2uGop2B3s83nKR4Tas6O63EH2y4gxOxpv7+ZTSR/xTipyFJlC7bD5 0l3Fu5UIw/em99OxEyfr+FadnTME4Wfm8wzDpS/3zSVb035IsQ/XUsERDbN4cUILFHAQ 9Pbrvo+uUTzDlwIllrpbU2MRFq0NLu5gZD8cN/Or+HvBhWfbVjnHbjQhB7KXucWR7dbX erL0jfeYUT5Nk4Q272Cu6+XU21ZmziYRkNU6reBjHrzZHqSGbuoM0sigXHNsc4nXp35u wYQMtTTIN7EgKT1trKNQTT/Enf175yVbI8VTFry2qWiIRc8emRxmP/wvjjsNuxoIWyvT kRyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683959410; x=1686551410; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=3bxnKF1rdg7gFkBPSKMdcbFLw0ZNSg7CBp07rM5wSTY=; b=dpGQM3KIkDOTxcd9tN2VQWvWr59PnhbPywnsJqtPP5wpYgn0Pkwtb+TYOUFF9VD90t 5iU3Q0BcvfdXpGkVDMggb+/rAFail7XHFeY5d1AkUvj8eeZtxb8dAgrE9pfzW5UCu8gl mXEoptbjBVfYnK7tHllJfxtm3e5RPLcnXnODwTFKeEk9zy23N1p2a+W9AHcdwk+5A0dt CEw+z6avjnsO51nl9ZTuK9aIy6vRk+8Y4kooQFowGifNwBMmVVBaHSJQueEyUvCH5woE QiSp09AU3dsNez16BRolDVeOUTjIpDHMwE12c65B5K2ciFYeobiGfv+2bTAJW6AzoMtg dDdg== X-Gm-Message-State: AC+VfDxtYGUw8KwPywXbrIdh1+oxL7+QTuhFHpqoy5qjzQdQTYzSjG2t D73YP1wUE1fMRJ3PTfvG9RSI8J97a5Gm6NJSiHPeMJwL X-Google-Smtp-Source: ACHHUZ4qtZL7LpKBeDpN49kqozBiaOA7lO0dbv2ZlgwCNi+HBQztfjBFKnyM6oRWWg647v1BBlraDfU5pKCj+tsRYwE= X-Received: by 2002:a67:f5cc:0:b0:430:30ed:885b with SMTP id t12-20020a67f5cc000000b0043030ed885bmr11019478vso.22.1683959409844; Fri, 12 May 2023 23:30:09 -0700 (PDT) MIME-Version: 1.0 References: <20230512233647.GE1391451@pb2> In-Reply-To: <20230512233647.GE1391451@pb2> From: Paul B Mahol Date: Sat, 13 May 2023 08:29:37 +0200 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH] swresample: misc improvements 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: T24gU2F0LCBNYXkgMTMsIDIwMjMgYXQgMTozN+KAr0FNIE1pY2hhZWwgTmllZGVybWF5ZXIgPG1p Y2hhZWxAbmllZGVybWF5ZXIuY2M+Cndyb3RlOgoKPiBPbiBUaHUsIE1heSAxMSwgMjAyMyBhdCAw NzoxMzoxOVBNICswMjAwLCBQYXVsIEIgTWFob2wgd3JvdGU6Cj4gPiBBdHRhY2hlZC4KPiBbLi4u XQo+ID4gQEAgLTMzLDY0ICszMyw4NiBAQAo+ID4KPiA+Cj4gPiAgI2RlZmluZSBDT05WX0ZVTkNf TkFNRShkc3RfZm10LCBzcmNfZm10KSBjb252XyAjIyBzcmNfZm10ICMjIF90b18gIyMKPiBkc3Rf Zm10Cj4gPiArI2RlZmluZSBDT05WUF9GVU5DX05BTUUoZHN0X2ZtdCwgc3JjX2ZtdCkgY29udnBf ICMjIHNyY19mbXQgIyMgX3RvXyAjIwo+IGRzdF9mbXQKPiA+Cj4gPiAgLy9GSVhNRSByb3VuZGlu ZyA/Cj4gPiAtI2RlZmluZSBDT05WX0ZVTkMob2ZtdCwgb3R5cGUsIGlmbXQsIGV4cHIpXAo+ID4g KyNkZWZpbmUgQ09OVl9GVU5DKG9mbXQsIG90eXBlLCBpZm10LCBpdHlwZSwgZXhwcilcCj4gPiAr ICAgIFwKPiA+ICBzdGF0aWMgdm9pZCBDT05WX0ZVTkNfTkFNRShvZm10LCBpZm10KSh1aW50OF90 ICpwbywgY29uc3QgdWludDhfdCAqcGksCj4gaW50IGlzLCBpbnQgb3MsIHVpbnQ4X3QgKmVuZClc Cj4gPiAge1wKPiA+ICAgICAgdWludDhfdCAqZW5kMiA9IGVuZCAtIDMqb3M7XAo+ID4gICAgICB3 aGlsZShwbyA8IGVuZDIpe1wKPiA+ICsgICAgICAgIGl0eXBlIHggPSAqKGl0eXBlKilwaTtcCj4g PiAgICAgICAgICAqKG90eXBlKilwbyA9IGV4cHI7IHBpICs9IGlzOyBwbyArPSBvcztcCj4gPiAr ICAgICAgICB4ID0gKihpdHlwZSopcGk7XAo+ID4gICAgICAgICAgKihvdHlwZSopcG8gPSBleHBy OyBwaSArPSBpczsgcG8gKz0gb3M7XAo+ID4gKyAgICAgICAgeCA9ICooaXR5cGUqKXBpO1wKPiA+ ICAgICAgICAgICoob3R5cGUqKXBvID0gZXhwcjsgcGkgKz0gaXM7IHBvICs9IG9zO1wKPiA+ICsg ICAgICAgIHggPSAqKGl0eXBlKilwaTtcCj4gPiAgICAgICAgICAqKG90eXBlKilwbyA9IGV4cHI7 IHBpICs9IGlzOyBwbyArPSBvcztcCj4gPiAgICAgIH1cCj4gPiAgICAgIHdoaWxlKHBvIDwgZW5k KXtcCj4gPiArICAgICAgICBpdHlwZSB4ID0gKihpdHlwZSopcGk7XAo+ID4gICAgICAgICAgKihv dHlwZSopcG8gPSBleHByOyBwaSArPSBpczsgcG8gKz0gb3M7XAo+ID4gICAgICB9XAo+ID4gK31c Cj4gPiArXAo+ID4gK3N0YXRpYyB2b2lkIENPTlZQX0ZVTkNfTkFNRShvZm10LCBpZm10KSh1aW50 OF90ICpkZHN0LCBjb25zdCB1aW50OF90Cj4gKnNzcmMsIGludCBsZW4pXAo+ID4gK3tcCj4gPiAr ICAgIGNvbnN0IGl0eXBlICpzcmMgPSAoY29uc3QgaXR5cGUgKilzc3JjO1wKPiA+ICsgICAgb3R5 cGUgKmRzdCA9IChvdHlwZSAqKWRkc3Q7XAo+ID4gKyAgICBmb3IgKGludCBuID0gMDsgbiA8IGxl bjsgbisrKXtcCj4gPiArICAgICAgICBpdHlwZSB4ID0gc3JjW25dO1wKPiA+ICsgICAgICAgIGRz dFtuXSA9IGV4cHI7XAo+ID4gKyAgICB9XAo+ID4gIH0KPiA+Cj4gPiAgLy9GSVhNRSBwdXQgdGhp bmdzIGJlbG93IHVuZGVyIGlmZGVmcyBzbyB3ZSBkbyBub3Qgd2FzdGUgc3BhY2UgZm9yCj4gY2Fz ZXMgbm8gY29kZWMgd2lsbCBuZWVkCj4gPiAtQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfVTggLCB1 aW50OF90LCBBVl9TQU1QTEVfRk1UX1U4ICwgICooY29uc3QKPiB1aW50OF90KilwaSkKPiA+IC1D T05WX0ZVTkMoQVZfU0FNUExFX0ZNVF9TMTYsIGludDE2X3QsIEFWX1NBTVBMRV9GTVRfVTggLCAo Kihjb25zdAo+IHVpbnQ4X3QqKXBpIC0gMHg4MFUpPDw4KQo+ID4gLUNPTlZfRlVOQyhBVl9TQU1Q TEVfRk1UX1MzMiwgaW50MzJfdCwgQVZfU0FNUExFX0ZNVF9VOCAsICgqKGNvbnN0Cj4gdWludDhf dCopcGkgLSAweDgwVSk8PDI0KQo+ID4gLUNPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX1M2NCwgaW50 NjRfdCwgQVZfU0FNUExFX0ZNVF9VOCAsCj4gKHVpbnQ2NF90KSgoKihjb25zdCB1aW50OF90Kilw aSAtIDB4ODBVKSk8PDU2KQo+ID4gLUNPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX0ZMVCwgZmxvYXQg ICwgQVZfU0FNUExFX0ZNVF9VOCAsICgqKGNvbnN0Cj4gdWludDhfdCopcGkgLSAweDgwKSooMS4w Zi8gKDE8PDcpKSkKPiA+IC1DT05WX0ZVTkMoQVZfU0FNUExFX0ZNVF9EQkwsIGRvdWJsZSAsIEFW X1NBTVBMRV9GTVRfVTggLCAoKihjb25zdAo+IHVpbnQ4X3QqKXBpIC0gMHg4MCkqKDEuMCAvICgx PDw3KSkpCj4gPiAtQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfVTggLCB1aW50OF90LCBBVl9TQU1Q TEVfRk1UX1MxNiwgKCooY29uc3QKPiBpbnQxNl90KilwaT4+OCkgKyAweDgwKQo+ID4gLUNPTlZf RlVOQyhBVl9TQU1QTEVfRk1UX1MxNiwgaW50MTZfdCwgQVZfU0FNUExFX0ZNVF9TMTYsICAqKGNv bnN0Cj4gaW50MTZfdCopcGkpCj4gPiAtQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfUzMyLCBpbnQz Ml90LCBBVl9TQU1QTEVfRk1UX1MxNiwgKihjb25zdAo+IGludDE2X3QqKXBpICogKDEgPDwgMTYp KQo+ID4gLUNPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX1M2NCwgaW50NjRfdCwgQVZfU0FNUExFX0ZN VF9TMTYsCj4gKHVpbnQ2NF90KSgqKGNvbnN0IGludDE2X3QqKXBpKTw8NDgpCj4gPiAtQ09OVl9G VU5DKEFWX1NBTVBMRV9GTVRfRkxULCBmbG9hdCAgLCBBVl9TQU1QTEVfRk1UX1MxNiwgICooY29u c3QKPiBpbnQxNl90KilwaSooMS4wZi8gKDE8PDE1KSkpCj4gPiAtQ09OVl9GVU5DKEFWX1NBTVBM RV9GTVRfREJMLCBkb3VibGUgLCBBVl9TQU1QTEVfRk1UX1MxNiwgICooY29uc3QKPiBpbnQxNl90 KilwaSooMS4wIC8gKDE8PDE1KSkpCj4gPiAtQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfVTggLCB1 aW50OF90LCBBVl9TQU1QTEVfRk1UX1MzMiwgKCooY29uc3QKPiBpbnQzMl90KilwaT4+MjQpICsg MHg4MCkKPiA+IC1DT05WX0ZVTkMoQVZfU0FNUExFX0ZNVF9TMTYsIGludDE2X3QsIEFWX1NBTVBM RV9GTVRfUzMyLCAgKihjb25zdAo+IGludDMyX3QqKXBpPj4xNikKPiA+IC1DT05WX0ZVTkMoQVZf U0FNUExFX0ZNVF9TMzIsIGludDMyX3QsIEFWX1NBTVBMRV9GTVRfUzMyLCAgKihjb25zdAo+IGlu dDMyX3QqKXBpKQo+ID4gLUNPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX1M2NCwgaW50NjRfdCwgQVZf U0FNUExFX0ZNVF9TMzIsCj4gKHVpbnQ2NF90KSgqKGNvbnN0IGludDMyX3QqKXBpKTw8MzIpCj4g PiAtQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfRkxULCBmbG9hdCAgLCBBVl9TQU1QTEVfRk1UX1Mz MiwgICooY29uc3QKPiBpbnQzMl90KilwaSooMS4wZi8gKDFVPDwzMSkpKQo+ID4gLUNPTlZfRlVO QyhBVl9TQU1QTEVfRk1UX0RCTCwgZG91YmxlICwgQVZfU0FNUExFX0ZNVF9TMzIsICAqKGNvbnN0 Cj4gaW50MzJfdCopcGkqKDEuMCAvICgxVTw8MzEpKSkKPiA+IC1DT05WX0ZVTkMoQVZfU0FNUExF X0ZNVF9VOCAsIHVpbnQ4X3QsIEFWX1NBTVBMRV9GTVRfUzY0LCAoKihjb25zdAo+IGludDY0X3Qq KXBpPj41NikgKyAweDgwKQo+ID4gLUNPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX1MxNiwgaW50MTZf dCwgQVZfU0FNUExFX0ZNVF9TNjQsICAqKGNvbnN0Cj4gaW50NjRfdCopcGk+PjQ4KQo+ID4gLUNP TlZfRlVOQyhBVl9TQU1QTEVfRk1UX1MzMiwgaW50MzJfdCwgQVZfU0FNUExFX0ZNVF9TNjQsICAq KGNvbnN0Cj4gaW50NjRfdCopcGk+PjMyKQo+ID4gLUNPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX1M2 NCwgaW50NjRfdCwgQVZfU0FNUExFX0ZNVF9TNjQsICAqKGNvbnN0Cj4gaW50NjRfdCopcGkpCj4g PiAtQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfRkxULCBmbG9hdCAgLCBBVl9TQU1QTEVfRk1UX1M2 NCwgICooY29uc3QKPiBpbnQ2NF90KilwaSooMS4wZi8gKFVJTlQ2NF9DKDEpPDw2MykpKQo+ID4g LUNPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX0RCTCwgZG91YmxlICwgQVZfU0FNUExFX0ZNVF9TNjQs ICAqKGNvbnN0Cj4gaW50NjRfdCopcGkqKDEuMCAvIChVSU5UNjRfQygxKTw8NjMpKSkKPiA+IC1D T05WX0ZVTkMoQVZfU0FNUExFX0ZNVF9VOCAsIHVpbnQ4X3QsIEFWX1NBTVBMRV9GTVRfRkxULAo+ IGF2X2NsaXBfdWludDgoICBscmludGYoKihjb25zdCBmbG9hdCopcGkgKiAoMTw8NykpICsgMHg4 MCkpCj4gPiAtQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfUzE2LCBpbnQxNl90LCBBVl9TQU1QTEVf Rk1UX0ZMVCwKPiBhdl9jbGlwX2ludDE2KCAgbHJpbnRmKCooY29uc3QgZmxvYXQqKXBpICogKDE8 PDE1KSkpKQo+ID4gLUNPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX1MzMiwgaW50MzJfdCwgQVZfU0FN UExFX0ZNVF9GTFQsCj4gYXZfY2xpcGxfaW50MzIobGxyaW50ZigqKGNvbnN0IGZsb2F0KilwaSAq ICgxVTw8MzEpKSkpCj4gPiAtQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfUzY0LCBpbnQ2NF90LCBB Vl9TQU1QTEVfRk1UX0ZMVCwKPiBsbHJpbnRmKCooY29uc3QgZmxvYXQqKXBpICogKFVJTlQ2NF9D KDEpPDw2MykpKQo+ID4gLUNPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX0ZMVCwgZmxvYXQgICwgQVZf U0FNUExFX0ZNVF9GTFQsICooY29uc3QKPiBmbG9hdCopcGkpCj4gPiAtQ09OVl9GVU5DKEFWX1NB TVBMRV9GTVRfREJMLCBkb3VibGUgLCBBVl9TQU1QTEVfRk1UX0ZMVCwgKihjb25zdAo+IGZsb2F0 KilwaSkKPiA+IC1DT05WX0ZVTkMoQVZfU0FNUExFX0ZNVF9VOCAsIHVpbnQ4X3QsIEFWX1NBTVBM RV9GTVRfREJMLAo+IGF2X2NsaXBfdWludDgoICBscmludCgqKGNvbnN0IGRvdWJsZSopcGkgKiAo MTw8NykpICsgMHg4MCkpCj4gPiAtQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfUzE2LCBpbnQxNl90 LCBBVl9TQU1QTEVfRk1UX0RCTCwKPiBhdl9jbGlwX2ludDE2KCAgbHJpbnQoKihjb25zdCBkb3Vi bGUqKXBpICogKDE8PDE1KSkpKQo+ID4gLUNPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX1MzMiwgaW50 MzJfdCwgQVZfU0FNUExFX0ZNVF9EQkwsCj4gYXZfY2xpcGxfaW50MzIobGxyaW50KCooY29uc3Qg ZG91YmxlKilwaSAqICgxVTw8MzEpKSkpCj4gPiAtQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfUzY0 LCBpbnQ2NF90LCBBVl9TQU1QTEVfRk1UX0RCTCwgbGxyaW50KCooY29uc3QKPiBkb3VibGUqKXBp ICogKFVJTlQ2NF9DKDEpPDw2MykpKQo+ID4gLUNPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX0ZMVCwg ZmxvYXQgICwgQVZfU0FNUExFX0ZNVF9EQkwsICooY29uc3QKPiBkb3VibGUqKXBpKQo+ID4gLUNP TlZfRlVOQyhBVl9TQU1QTEVfRk1UX0RCTCwgZG91YmxlICwgQVZfU0FNUExFX0ZNVF9EQkwsICoo Y29uc3QKPiBkb3VibGUqKXBpKQo+ID4gLQo+ID4gLSNkZWZpbmUgRk1UX1BBSVJfRlVOQyhvdXQs IGluKSBbKG91dCkgKyBBVl9TQU1QTEVfRk1UX05CKihpbildID0KPiBDT05WX0ZVTkNfTkFNRShv dXQsIGluKQo+ID4gLQo+ID4gLXN0YXRpYyBjb252X2Z1bmNfdHlwZSAqIGNvbnN0Cj4gZm10X3Bh aXJfdG9fY29udl9mdW5jdGlvbnNbQVZfU0FNUExFX0ZNVF9OQipBVl9TQU1QTEVfRk1UX05CXSA9 IHsKPiA+ICtDT05WX0ZVTkMoQVZfU0FNUExFX0ZNVF9VOCAsIHVpbnQ4X3QsIEFWX1NBTVBMRV9G TVRfVTggLCB1aW50OF90LCB4KQo+ID4gK0NPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX1MxNiwgaW50 MTZfdCwgQVZfU0FNUExFX0ZNVF9VOCAsIHVpbnQ4X3QsICh4IC0KPiAweDgwVSk8PDgpCj4gPiAr Q09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfUzMyLCBpbnQzMl90LCBBVl9TQU1QTEVfRk1UX1U4ICwg dWludDhfdCwgKHggLQo+IDB4ODBVKTw8MjQpCj4gPiArQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRf UzY0LCBpbnQ2NF90LCBBVl9TQU1QTEVfRk1UX1U4ICwgdWludDhfdCwKPiAodWludDY0X3QpKHgg LSAweDgwVSk8PDU2KQo+ID4gK0NPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX0ZMVCwgZmxvYXQgICwg QVZfU0FNUExFX0ZNVF9VOCAsIHVpbnQ4X3QsICh4IC0KPiAweDgwKSooMS4wZi8gKDE8PDcpKSkK PiA+ICtDT05WX0ZVTkMoQVZfU0FNUExFX0ZNVF9EQkwsIGRvdWJsZSAsIEFWX1NBTVBMRV9GTVRf VTggLCB1aW50OF90LCAoeCAtCj4gMHg4MCkqKDEuMCAvICgxPDw3KSkpCj4gPiArQ09OVl9GVU5D KEFWX1NBTVBMRV9GTVRfVTggLCB1aW50OF90LCBBVl9TQU1QTEVfRk1UX1MxNiwgaW50MTZfdCwK PiAoeD4+OCkgKyAweDgwKQo+ID4gK0NPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX1MxNiwgaW50MTZf dCwgQVZfU0FNUExFX0ZNVF9TMTYsIGludDE2X3QsIHgpCj4gPiArQ09OVl9GVU5DKEFWX1NBTVBM RV9GTVRfUzMyLCBpbnQzMl90LCBBVl9TQU1QTEVfRk1UX1MxNiwgaW50MTZfdCwgeCAqCj4gKDEg PDwgMTYpKQo+ID4gK0NPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX1M2NCwgaW50NjRfdCwgQVZfU0FN UExFX0ZNVF9TMTYsIGludDE2X3QsCj4gKHVpbnQ2NF90KSh4KTw8NDgpCj4gPiArQ09OVl9GVU5D KEFWX1NBTVBMRV9GTVRfRkxULCBmbG9hdCAgLCBBVl9TQU1QTEVfRk1UX1MxNiwgaW50MTZfdCwK PiB4KigxLjBmLyAoMTw8MTUpKSkKPiA+ICtDT05WX0ZVTkMoQVZfU0FNUExFX0ZNVF9EQkwsIGRv dWJsZSAsIEFWX1NBTVBMRV9GTVRfUzE2LCBpbnQxNl90LAo+IHgqKDEuMCAvICgxPDwxNSkpKQo+ ID4gK0NPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX1U4ICwgdWludDhfdCwgQVZfU0FNUExFX0ZNVF9T MzIsIGludDMyX3QsCj4gKHg+PjI0KSArIDB4ODApCj4gPiArQ09OVl9GVU5DKEFWX1NBTVBMRV9G TVRfUzE2LCBpbnQxNl90LCBBVl9TQU1QTEVfRk1UX1MzMiwgaW50MzJfdCwgeD4+MTYpCj4gPiAr Q09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfUzMyLCBpbnQzMl90LCBBVl9TQU1QTEVfRk1UX1MzMiwg aW50MzJfdCwgeCkKPiA+ICtDT05WX0ZVTkMoQVZfU0FNUExFX0ZNVF9TNjQsIGludDY0X3QsIEFW X1NBTVBMRV9GTVRfUzMyLCBpbnQzMl90LAo+ICh1aW50NjRfdCkoeCk8PDMyKQo+ID4gK0NPTlZf RlVOQyhBVl9TQU1QTEVfRk1UX0ZMVCwgZmxvYXQgICwgQVZfU0FNUExFX0ZNVF9TMzIsIGludDMy X3QsCj4geCooMS4wZi8gKDFVPDwzMSkpKQo+ID4gK0NPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX0RC TCwgZG91YmxlICwgQVZfU0FNUExFX0ZNVF9TMzIsIGludDMyX3QsCj4geCooMS4wIC8gKDFVPDwz MSkpKQo+ID4gK0NPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX1U4ICwgdWludDhfdCwgQVZfU0FNUExF X0ZNVF9TNjQsIGludDY0X3QsCj4gKHg+PjU2KSArIDB4ODApCj4gPiArQ09OVl9GVU5DKEFWX1NB TVBMRV9GTVRfUzE2LCBpbnQxNl90LCBBVl9TQU1QTEVfRk1UX1M2NCwgaW50NjRfdCwgeD4+NDgp Cj4gPiArQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfUzMyLCBpbnQzMl90LCBBVl9TQU1QTEVfRk1U X1M2NCwgaW50NjRfdCwgeD4+MzIpCj4gPiArQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfUzY0LCBp bnQ2NF90LCBBVl9TQU1QTEVfRk1UX1M2NCwgaW50NjRfdCwgeCkKPiA+ICtDT05WX0ZVTkMoQVZf U0FNUExFX0ZNVF9GTFQsIGZsb2F0ICAsIEFWX1NBTVBMRV9GTVRfUzY0LCBpbnQ2NF90LAo+IHgq KDEuMGYvIChVSU5UNjRfQygxKTw8NjMpKSkKPiA+ICtDT05WX0ZVTkMoQVZfU0FNUExFX0ZNVF9E QkwsIGRvdWJsZSAsIEFWX1NBTVBMRV9GTVRfUzY0LCBpbnQ2NF90LAo+IHgqKDEuMCAvIChVSU5U NjRfQygxKTw8NjMpKSkKPiA+ICtDT05WX0ZVTkMoQVZfU0FNUExFX0ZNVF9VOCAsIHVpbnQ4X3Qs IEFWX1NBTVBMRV9GTVRfRkxULCBmbG9hdCwKPiBhdl9jbGlwX3VpbnQ4KCAgbHJpbnRmKHggKiAo MTw8NykpICsgMHg4MCkpCj4gPiArQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfUzE2LCBpbnQxNl90 LCBBVl9TQU1QTEVfRk1UX0ZMVCwgZmxvYXQsCj4gYXZfY2xpcF9pbnQxNiggIGxyaW50Zih4ICog KDE8PDE1KSkpKQo+ID4gK0NPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX1MzMiwgaW50MzJfdCwgQVZf U0FNUExFX0ZNVF9GTFQsIGZsb2F0LAo+IGF2X2NsaXBsX2ludDMyKGxscmludGYoeCAqICgxVTw8 MzEpKSkpCj4gPiArQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfUzY0LCBpbnQ2NF90LCBBVl9TQU1Q TEVfRk1UX0ZMVCwgZmxvYXQsCj4gbGxyaW50Zih4ICogKFVJTlQ2NF9DKDEpPDw2MykpKQo+ID4g K0NPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX0ZMVCwgZmxvYXQgICwgQVZfU0FNUExFX0ZNVF9GTFQs IGZsb2F0LCB4KQo+ID4gK0NPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX0RCTCwgZG91YmxlICwgQVZf U0FNUExFX0ZNVF9GTFQsIGZsb2F0LCB4KQo+ID4gK0NPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX1U4 ICwgdWludDhfdCwgQVZfU0FNUExFX0ZNVF9EQkwsIGRvdWJsZSwKPiBhdl9jbGlwX3VpbnQ4KCAg bHJpbnQoeCAqICgxPDw3KSkgKyAweDgwKSkKPiA+ICtDT05WX0ZVTkMoQVZfU0FNUExFX0ZNVF9T MTYsIGludDE2X3QsIEFWX1NBTVBMRV9GTVRfREJMLCBkb3VibGUsCj4gYXZfY2xpcF9pbnQxNigg IGxyaW50KHggKiAoMTw8MTUpKSkpCj4gPiArQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfUzMyLCBp bnQzMl90LCBBVl9TQU1QTEVfRk1UX0RCTCwgZG91YmxlLAo+IGF2X2NsaXBsX2ludDMyKGxscmlu dCh4ICogKDFVPDwzMSkpKSkKPiA+ICtDT05WX0ZVTkMoQVZfU0FNUExFX0ZNVF9TNjQsIGludDY0 X3QsIEFWX1NBTVBMRV9GTVRfREJMLCBkb3VibGUsCj4gbGxyaW50KHggKiAoVUlOVDY0X0MoMSk8 PDYzKSkpCj4gPiArQ09OVl9GVU5DKEFWX1NBTVBMRV9GTVRfRkxULCBmbG9hdCAgLCBBVl9TQU1Q TEVfRk1UX0RCTCwgZG91YmxlLCB4KQo+ID4gK0NPTlZfRlVOQyhBVl9TQU1QTEVfRk1UX0RCTCwg ZG91YmxlICwgQVZfU0FNUExFX0ZNVF9EQkwsIGRvdWJsZSwgeCkKPgo+IGkgdGhpbmsgdGhlIG5l dyBjYXNlcyBhcmUgbG9uZ2VyIGNvbnN0LCBpcyB0aGF0IGludGVuZGVkID8KPiAoaXQgd291bGQg Y2FzdCBjb25zdCB0byBub24gY29uc3QpCj4KCllvdSBtZWFuIEkgcmVtb3ZlZCBjb25zdCBmcm9t IG9sZCBtYWNybz8KQ2FuIGZpeCB0aGF0IGlmIHRoYXQgaXMgdGhlIGNhc2UuCgoKPgo+IGV4Y2Vw dCB0aGF0IHBhdGNoIExHVE0KPgo+IHRoeAo+Cj4gWy4uLl0KPgo+IC0tCj4gTWljaGFlbCAgICAg R251UEcgZmluZ2VycHJpbnQ6IDlGRjIxMjhCMTQ3RUY2NzMwQkFERjEzMzYxMUVDNzg3MDQwQjBG QUIKPgo+IFRoZSByZWFsIGViYXkgZGljdGlvbmFyeSwgcGFnZSAyCj4gIjEwMCUgcG9zaXRpdmUg ZmVlZGJhY2siIC0gIkFsbCBlaXRoZXIgZ290IHRoZWlyIG1vbmV5IGJhY2sgb3IgZGlkbnQKPiBj b21wbGFpbiIKPiAiQmVzdCBzZWxsZXIgZXZlciwgdmVyeSBob25lc3QiIC0gIlNlbGxlciByZWZ1 bmRlZCBidXllciBhZnRlciBmYWlsZWQgc2NhbSIKPiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwo+IGZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBmZm1w ZWctZGV2ZWxAZmZtcGVnLm9yZwo+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ZmbXBlZy1kZXZlbAo+Cj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVt YWlsCj4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vi c2NyaWJlIi4KPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBz Oi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3Jp YmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBl Zy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==