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 31408405A8 for ; Sat, 22 Jul 2023 22:49:08 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AE38068C675; Sun, 23 Jul 2023 01:49:05 +0300 (EEST) Received: from mail-oa1-f43.google.com (mail-oa1-f43.google.com [209.85.160.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F1EA268C0FC for ; Sun, 23 Jul 2023 01:48:58 +0300 (EEST) Received: by mail-oa1-f43.google.com with SMTP id 586e51a60fabf-1ba79f16f4cso2422498fac.3 for ; Sat, 22 Jul 2023 15:48:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690066137; x=1690670937; h=content-transfer-encoding:in-reply-to:content-language:references :to:from:subject:user-agent:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=UwkJFT0Kqsvn32XfHMX6UTL/QdEmI89/sxY0+QzOwEI=; b=acV386BHwOByl2yjgrIdLQ+xuylnMpP2UwRNmI7Nc8GJG/oXcRJUxx6rUd0KCt7bh5 er8MBrAhah9etuMyrTeSEV3EL7H6KN++CH3pawKI17Jk18hwpdkUw+Vw1VkH0iUWPYQj Pdq0lKvI8lMJnh1XqgzvK5VZiTnycNyPoehHLyHjMhm+1Sj4jUH0LbPhvKFoTnnYi0QT FA/XSve85AugFBzr0J3g3C/1UFMqowDjQVVEjykPzW0Jp/HnWW86fP9YYEWvpG6u2yid xMaO0z77ARm5WQJxVvqpQ2N3/rdqdx0HjCgzn2/H1SdCyxvxX/IhSO5+mgVpzu335g/3 yawQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690066137; x=1690670937; h=content-transfer-encoding:in-reply-to:content-language:references :to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=UwkJFT0Kqsvn32XfHMX6UTL/QdEmI89/sxY0+QzOwEI=; b=hJKWydIApcps324gSASDQlUnfsHc1JJAdSXFAX1hvN9bbGJkNAZRAzuREFJkZZcOch 4HO1BgUTpT0Zt0CyF+3reui+tzeW7ejsOkHzVKL2wxaNeOB6mXMcMS+ubNameVzy5OQq L+MaV9hwrwkjcrpuq2dq8ql/Ka44o755jQYLd3vdv8OPSUjDxe6OI60k9MlPz5jXqArc itDnw2sHiYwUIKbWK9fJp6JQUtdnfAXPuGhe03XKQLSF9vLmDyMjhPYTsDC1GOoQgxeG VELpgnpAx6nW9bxPYtPUYtPMyFYCcXfLjdYDX1zg9smMAhhHYaTvN6HvuGNdYfOwPwoc OaqQ== X-Gm-Message-State: ABy/qLZP7KQzynTSgYyiNHkq1rO6iX6fBX62Fhrx6f8bv9jWHADierbb 38HYaWjV11sMfiIbFLo4ZQZfqA7qBU8= X-Google-Smtp-Source: APBJJlEWlgAoRABbvdDbrtgxPPqZrfR4xFqVn9rmTKVVwpN+R7YT9iM/sfVxcV3Z34xjYU+1X+bIHg== X-Received: by 2002:a05:6871:825:b0:1b0:4be9:5f0 with SMTP id q37-20020a056871082500b001b04be905f0mr6398753oap.52.1690066136844; Sat, 22 Jul 2023 15:48:56 -0700 (PDT) Received: from [192.168.0.16] (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id eg48-20020a05687098b000b001bae8727a35sm788737oab.7.2023.07.22.15.48.55 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 22 Jul 2023 15:48:56 -0700 (PDT) Message-ID: Date: Sat, 22 Jul 2023 19:49:07 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 From: James Almer To: ffmpeg-devel@ffmpeg.org References: <20230720203415.41757-1-jamrial@gmail.com> Content-Language: en-US In-Reply-To: <20230720203415.41757-1-jamrial@gmail.com> Subject: Re: [FFmpeg-devel] [PATCH 01/13] avcodec/avcodec: add side data to AVCodecContext 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gNy8yMC8yMDIzIDU6MzQgUE0sIEphbWVzIEFsbWVyIHdyb3RlOgo+IFNpZ25lZC1vZmYtYnk6 IEphbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT4KPiAtLS0KPiAgIGxpYmF2Y29kZWMvYXZj b2RlYy5jICB8ICAyICsrCj4gICBsaWJhdmNvZGVjL2F2Y29kZWMuaCAgfCAgOCArKysrKwo+ICAg bGliYXZjb2RlYy9hdnBhY2tldC5jIHwgODQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwo+ICAgbGliYXZjb2RlYy9wYWNrZXQuaCAgIHwgNTQgKysrKysrKysrKysr KysrKysrKysrKysrKysrKwo+ICAgNCBmaWxlcyBjaGFuZ2VkLCAxNDggaW5zZXJ0aW9ucygrKQo+ IAo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2F2Y29kZWMuYyBiL2xpYmF2Y29kZWMvYXZjb2Rl Yy5jCj4gaW5kZXggMzQwYWJlODMwZS4uMTY4NjllOTdmMiAxMDA2NDQKPiAtLS0gYS9saWJhdmNv ZGVjL2F2Y29kZWMuYwo+ICsrKyBiL2xpYmF2Y29kZWMvYXZjb2RlYy5jCj4gQEAgLTQ2Nyw2ICs0 NjcsOCBAQCBhdl9jb2xkIGludCBhdmNvZGVjX2Nsb3NlKEFWQ29kZWNDb250ZXh0ICphdmN0eCkK PiAgICAgICAgICAgYXZfZnJlZXAoJmF2Y3R4LT5pbnRlcm5hbCk7Cj4gICAgICAgfQo+ICAgCj4g KyAgICBhdl9wYWNrZXRfZnJlZV9zaWRlX2RhdGFfc2V0KCZhdmN0eC0+c2lkZV9kYXRhX3NldCk7 Cj4gKwo+ICAgICAgIGZvciAoaSA9IDA7IGkgPCBhdmN0eC0+bmJfY29kZWRfc2lkZV9kYXRhOyBp KyspCj4gICAgICAgICAgIGF2X2ZyZWVwKCZhdmN0eC0+Y29kZWRfc2lkZV9kYXRhW2ldLmRhdGEp Owo+ICAgICAgIGF2X2ZyZWVwKCZhdmN0eC0+Y29kZWRfc2lkZV9kYXRhKTsKPiBkaWZmIC0tZ2l0 IGEvbGliYXZjb2RlYy9hdmNvZGVjLmggYi9saWJhdmNvZGVjL2F2Y29kZWMuaAo+IGluZGV4IGZl NDFlY2MzYzkuLjI5MDJlY2Y2Y2IgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9hdmNvZGVjLmgK PiArKysgYi9saWJhdmNvZGVjL2F2Y29kZWMuaAo+IEBAIC0yMTAyLDYgKzIxMDIsMTQgQEAgdHlw ZWRlZiBzdHJ1Y3QgQVZDb2RlY0NvbnRleHQgewo+ICAgICAgICAqICAgYW4gZXJyb3IuCj4gICAg ICAgICovCj4gICAgICAgaW50NjRfdCBmcmFtZV9udW07Cj4gKwo+ICsgICAgLyoqCj4gKyAgICAg KiBBZGRpdGlvbmFsIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBlbnRpcmUgc3RyZWFtLgo+ICsg ICAgICoKPiArICAgICAqIC0gZGVjb2Rpbmc6IHNldCBieSB1c2VyCj4gKyAgICAgKiAtIGVuY29k aW5nOiB1bnVzZWQKPiArICAgICAqLwo+ICsgICAgQVZQYWNrZXRTaWRlRGF0YVNldCBzaWRlX2Rh dGFfc2V0OwoKVGhpcyBuYW1lIGlzIGFsc28gdXNlZCBpbiBhIHBhdGNoc2V0IGJ5IEphbiBFa3N0 csO2bSB0aGF0IGFkZGVkIGEgc2ltaWxhciAKc3RydWN0IGJ1dCBmb3IgQVZGcmFtZVNpZGVEYXRh LiBJIHVzZWQgaXQgaGVyZSBmb3IgdGhpcyBmaXJzdCBpdGVyYXRpb24sIApidXQgaWYgaGlzIHBh dGNoc2V0IGFsc28gZ29lcyBpbiwgd2UgbmVlZCBub24gY29uZmxpY3RpbmcgbmFtZXMuCgo+ICAg fSBBVkNvZGVjQ29udGV4dDsKPiAgIAo+ICAgLyoqCj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMv YXZwYWNrZXQuYyBiL2xpYmF2Y29kZWMvYXZwYWNrZXQuYwo+IGluZGV4IDVmZWY2NWU5N2EuLmY1 Njk3MzE0MDMgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9hdnBhY2tldC5jCj4gKysrIGIvbGli YXZjb2RlYy9hdnBhY2tldC5jCj4gQEAgLTY0NSwzICs2NDUsODcgQEAgaW50IGZmX3NpZGVfZGF0 YV9zZXRfcHJmdChBVlBhY2tldCAqcGt0LCBpbnQ2NF90IHRpbWVzdGFtcCkKPiAgIAo+ICAgICAg IHJldHVybiAwOwo+ICAgfQo+ICsKPiArQVZQYWNrZXRTaWRlRGF0YSAqYXZfcGFja2V0X2dldF9z aWRlX2RhdGFfZnJvbV9zZXQoY29uc3QgQVZQYWNrZXRTaWRlRGF0YVNldCAqc2V0LAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIEFWUGFj a2V0U2lkZURhdGFUeXBlIHR5cGUpCj4gK3sKPiArICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2V0 LT5uYl9zaWRlX2RhdGE7IGkrKykKPiArICAgICAgICBpZiAoc2V0LT5zaWRlX2RhdGFbaV0udHlw ZSA9PSB0eXBlKQo+ICsgICAgICAgICAgICByZXR1cm4gJnNldC0+c2lkZV9kYXRhW2ldOwo+ICsK PiArICAgIHJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGFkZF9zaWRlX2RhdGFf dG9fc2V0KEFWUGFja2V0U2lkZURhdGFTZXQgKnNldCwKPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBVlBhY2tldFNpZGVEYXRhICoqcHNkLAo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGVudW0gQVZQYWNrZXRTaWRlRGF0YVR5cGUgdHlwZSwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkYXRhLCBzaXplX3Qgc2l6ZSkKPiArewo+ ICsgICAgQVZQYWNrZXRTaWRlRGF0YSAqc2QsICp0bXA7Cj4gKwo+ICsgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBzZXQtPm5iX3NpZGVfZGF0YTsgaSsrKSB7Cj4gKyAgICAgICAgc2QgPSAmc2V0LT5z aWRlX2RhdGFbaV07Cj4gKwo+ICsgICAgICAgIGlmIChzZC0+dHlwZSA9PSB0eXBlKSB7Cj4gKyAg ICAgICAgICAgIGF2X2ZyZWVwKCZzZC0+ZGF0YSk7Cj4gKyAgICAgICAgICAgIHNkLT5kYXRhID0g ZGF0YTsKPiArICAgICAgICAgICAgc2QtPnNpemUgPSBzaXplOwo+ICsgICAgICAgICAgICAqcHNk ID0gc2Q7Cj4gKyAgICAgICAgICAgIHJldHVybiAwOwo+ICsgICAgICAgIH0KPiArICAgIH0KPiAr Cj4gKyAgICBpZiAoc2V0LT5uYl9zaWRlX2RhdGEgKyAxVSA+IEZGTUlOKElOVF9NQVgsIFNJWkVf TUFYIC8gc2l6ZW9mKCp0bXApKSkKPiArICAgICAgICByZXR1cm4gQVZFUlJPUihFUkFOR0UpOwo+ ICsKPiArICAgIHRtcCA9IGF2X3JlYWxsb2NfYXJyYXkoc2V0LT5zaWRlX2RhdGEsIHNldC0+bmJf c2lkZV9kYXRhICsgMSwgc2l6ZW9mKCp0bXApKTsKPiArICAgIGlmICghdG1wKQo+ICsgICAgICAg IHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gKwo+ICsgICAgc2V0LT5zaWRlX2RhdGEgPSB0bXA7 Cj4gKyAgICBzZXQtPm5iX3NpZGVfZGF0YSsrOwo+ICsKPiArICAgIHNkID0gJnNldC0+c2lkZV9k YXRhW3NldC0+bmJfc2lkZV9kYXRhIC0gMV07Cj4gKyAgICBzZC0+dHlwZSA9IHR5cGU7Cj4gKyAg ICBzZC0+ZGF0YSA9IGRhdGE7Cj4gKyAgICBzZC0+c2l6ZSA9IHNpemU7Cj4gKyAgICAqcHNkID0g c2Q7Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK2ludCBhdl9wYWNrZXRfYWRkX3Np ZGVfZGF0YV90b19zZXQoQVZQYWNrZXRTaWRlRGF0YVNldCAqc2V0LAo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGVudW0gQVZQYWNrZXRTaWRlRGF0YVR5cGUgdHlwZSwKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkYXRhLCBzaXplX3Qg c2l6ZSkKPiArewo+ICsgICAgQVZQYWNrZXRTaWRlRGF0YSAqc2Q7Cj4gKwo+ICsgICAgcmV0dXJu IGFkZF9zaWRlX2RhdGFfdG9fc2V0KHNldCwgJnNkLCB0eXBlLCBkYXRhLCBzaXplKTsKPiArfQo+ ICsKPiArQVZQYWNrZXRTaWRlRGF0YSAqYXZfcGFja2V0X25ld19zaWRlX2RhdGFfdG9fc2V0KEFW UGFja2V0U2lkZURhdGFTZXQgKnNldCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGVudW0gQVZQYWNrZXRTaWRlRGF0YVR5cGUgdHlwZSwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXpl KQo+ICt7Cj4gKyAgICBBVlBhY2tldFNpZGVEYXRhICpzZCA9IE5VTEw7Cj4gKyAgICB1aW50OF90 ICpkYXRhID0gYXZfbWFsbG9jKHNpemUpOwo+ICsgICAgaW50IHJldDsKPiArCj4gKyAgICBpZiAo IWRhdGEpCj4gKyAgICAgICAgcmV0dXJuIE5VTEw7Cj4gKwo+ICsgICAgcmV0ID0gYWRkX3NpZGVf ZGF0YV90b19zZXQoc2V0LCAmc2QsIHR5cGUsIGRhdGEsIHNpemUpOwo+ICsgICAgaWYgKHJldCA8 IDApCj4gKyAgICAgICAgYXZfZnJlZXAoJmRhdGEpOwo+ICsKPiArICAgIHJldHVybiBzZDsKPiAr fQo+ICsKPiArdm9pZCBhdl9wYWNrZXRfZnJlZV9zaWRlX2RhdGFfc2V0KEFWUGFja2V0U2lkZURh dGFTZXQgKnNldCkKPiArewo+ICsgICAgaW50IGk7Cj4gKyAgICBmb3IgKGkgPSAwOyBpIDwgc2V0 LT5uYl9zaWRlX2RhdGE7IGkrKykKPiArICAgICAgICBhdl9mcmVlcCgmc2V0LT5zaWRlX2RhdGFb aV0uZGF0YSk7Cj4gKyAgICBhdl9mcmVlcCgmc2V0LT5zaWRlX2RhdGEpOwo+ICsgICAgc2V0LT5u Yl9zaWRlX2RhdGEgPSAwOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvcGFja2V0Lmgg Yi9saWJhdmNvZGVjL3BhY2tldC5oCj4gaW5kZXggZjI4ZTdlNzAxMS4uNTkwYzJiZjE1YSAxMDA2 NDQKPiAtLS0gYS9saWJhdmNvZGVjL3BhY2tldC5oCj4gKysrIGIvbGliYXZjb2RlYy9wYWNrZXQu aAo+IEBAIC0zMTgsNiArMzE4LDE0IEBAIHR5cGVkZWYgc3RydWN0IEFWUGFja2V0U2lkZURhdGEg ewo+ICAgICAgIGVudW0gQVZQYWNrZXRTaWRlRGF0YVR5cGUgdHlwZTsKPiAgIH0gQVZQYWNrZXRT aWRlRGF0YTsKPiAgIAo+ICsvKioKPiArICogU3RydWN0dXJlIHRvIGhvbGQgYSBzZXQgb2YgQVZQ YWNrZXRTaWRlRGF0YVNldAo+ICsgKi8KPiArdHlwZWRlZiBzdHJ1Y3QgQVZQYWNrZXRTaWRlRGF0 YVNldCB7Cj4gKyAgICBBVlBhY2tldFNpZGVEYXRhICpzaWRlX2RhdGE7CgpJIGNhbiBhbHRlcm5h dGl2ZWx5IG1ha2UgdGhpcyBwb2ludGVyIHRvIHBvaW50ZXIsIHRvIGJlIGluIGxpbmUgd2l0aCAK QVZGcmFtZVNpZGVEYXRhIGluIEFWRnJhbWUuIEl0IHdvdWxkIG1ha2UgaXQgc2ltcGxlIHRvIGFk ZCBhIGZ1bmN0aW9uIHRvIApyZW1vdmUgYSBzaW5nbGUgZW50cnkgZnJvbSB0aGUgYXJyYXksIGJ1 dCBpdCBtYXkgbm90IGJlIHdvcnRoIHRoZSBleHRyYSAKYWxsb2NhdGlvbiBvdmVyaGVhZC4KCj4g KyAgICBpbnQgICAgICAgICAgICBuYl9zaWRlX2RhdGE7Cj4gK30gQVZQYWNrZXRTaWRlRGF0YVNl dDsKClRoZSByZWFzb24gaSBpbnRyb2R1Y2VkIHRoaXMgc3RydWN0IGlzIHRvIHNpbXBsaWZ5IHRo ZSBoZWxwZXIgZnVuY3Rpb25zIApkZWZpbmVkIGJlbG93LCB0byBiZSBnZW5lcmljIGFuZCB1c2Fi bGUgZm9yIGJvdGggdGhlIGF2Y3R4IGFuZCBjb2RlY3BhciAKc2lkZSBkYXRhIGFycmF5cyBhbHNv IGludHJvZHVjZWQgaW4gdGhpcyBwYXRjaHNldC4KSSB3YXMgdG9sZCBzYWlkIGhlbHBlcnMgY291 bGQgdGFrZSBhIHBvaW50ZXIgdG8gcG9pbnRlciB0byAKQVZQYWNrZXRTaWRlRGF0YSBhbmQgYSBw b2ludGVyIHRvIGEgc2l6ZV90LCBlc3NlbnRpYWxseSBlbXVsYXRpbmcgdGhlIApzdHJ1Y3QgYXMg c2VwYXJhdGUgZnVuY3Rpb24gYXJndW1lbnRzLCBidXQgcGVyc29uYWxseSBpIGZpbmQgdGhhdCBw cmV0dHkgCnVnbHkuCgpJbiB0aGUgbG9uZyBydW4sIEFWUGFja2V0IGNvdWxkIHVzZSB0aGlzIHN0 cnVjdCB0b28sIHRvIG1ha2UgaXQgCmNvbnNpc3RlbnQgYWNyb3NzIHRoZSBjb2RlYmFzZS4gSXQg d291bGQgZ2l2ZSB1cyB0aGUgY2hhbmNlIHRvIG1ha2UgCnBhY2tldCBzaWRlIGRhdGEgcmVmZXJl bmNlIGNvdW50ZWQgdG9vLCBhcyB3ZSBjYW4ndCBleHBlY3QgZXhpc3RpbmcgCnVzZXJzIHRvIGNo YW5nZSBob3cgdGhleSBjdXJyZW50bHkgYWNjZXNzIGF2cGFja2V0LT5zaWRlX2RhdGEsIGJ1dCAK dGhhdCdzIGEgZGlzY3Vzc2lvbiBmb3IgYW5vdGhlciB0aW1lLgoKPiArCj4gICAvKioKPiAgICAq IFRoaXMgc3RydWN0dXJlIHN0b3JlcyBjb21wcmVzc2VkIGRhdGEuIEl0IGlzIHR5cGljYWxseSBl eHBvcnRlZCBieSBkZW11eGVycwo+ICAgICogYW5kIHRoZW4gcGFzc2VkIGFzIGlucHV0IHRvIGRl Y29kZXJzLCBvciByZWNlaXZlZCBhcyBvdXRwdXQgZnJvbSBlbmNvZGVycyBhbmQKPiBAQCAtNzI0 LDYgKzczMiw1MiBAQCBpbnQgYXZfcGFja2V0X21ha2Vfd3JpdGFibGUoQVZQYWNrZXQgKnBrdCk7 Cj4gICAgKi8KPiAgIHZvaWQgYXZfcGFja2V0X3Jlc2NhbGVfdHMoQVZQYWNrZXQgKnBrdCwgQVZS YXRpb25hbCB0Yl9zcmMsIEFWUmF0aW9uYWwgdGJfZHN0KTsKPiAgIAo+ICsvKioKPiArICogQWxs b2NhdGUgYSBuZXcgc2lkZSBkYXRhIGVudHJ5IGludG8gdG8gYSBzZXQuCj4gKyAqCj4gKyAqIEBw YXJhbSBzZXQgYSBzZXQgdG8gd2hpY2ggdGhlIHNpZGUgZGF0YSBzaG91bGQgYmUgYWRkZWQKPiAr ICogQHBhcmFtIHR5cGUgc2lkZSBkYXRhIHR5cGUKPiArICogQHBhcmFtIHNpemUgc2lkZSBkYXRh IHNpemUKPiArICogQHJldHVybiBwb2ludGVyIHRvIGZyZXNobHkgYWxsb2NhdGVkIHNpZGUgZGF0 YSBlbnRyeSBvciBOVUxMIG90aGVyd2lzZS4KPiArICovCj4gK0FWUGFja2V0U2lkZURhdGEgKmF2 X3BhY2tldF9uZXdfc2lkZV9kYXRhX3RvX3NldChBVlBhY2tldFNpZGVEYXRhU2V0ICpzZXQsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIEFW UGFja2V0U2lkZURhdGFUeXBlIHR5cGUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSk7CgpBbHRlcm5hdGl2ZWx5LCB0aGVzZSBm dW5jdGlvbnMgY291bGQgYmUgCmF2X3BhY2tldF9zaWRlX2RhdGFfe25ldyxhZGQsZ2V0fSgpLCB0 byB1c2UgYSBuZXcgbmFtZXNwYWNlIGJhc2VkIG9uIHRoZSAKbmV3IHN0cnVjdC4gT3BpbmlvbnMg d2VsY29tZS4KCj4gKwo+ICsvKioKPiArICogV3JhcCBhbiBleGlzdGluZyBhcnJheSBhcyBhIHBh Y2tldCBzaWRlIGRhdGEgaW50byBhIHNldC4KPiArICoKPiArICogQHBhcmFtIHNldCBhIHNldCB0 byB3aGljaCB0aGUgc2lkZSBkYXRhIHNob3VsZCBiZSBhZGRlZAo+ICsgKiBAcGFyYW0gdHlwZSBz aWRlIGluZm9ybWF0aW9uIHR5cGUKPiArICogQHBhcmFtIGRhdGEgdGhlIHNpZGUgZGF0YSBhcnJh eS4gSXQgbXVzdCBiZSBhbGxvY2F0ZWQgd2l0aCB0aGUgYXZfbWFsbG9jKCkKPiArICogICAgICAg ICAgICAgZmFtaWx5IG9mIGZ1bmN0aW9ucy4gVGhlIG93bmVyc2hpcCBvZiB0aGUgZGF0YSBpcyB0 cmFuc2ZlcnJlZCB0bwo+ICsgKiAgICAgICAgICAgICBwa3QuCj4gKyAqIEBwYXJhbSBzaXplIHNp ZGUgaW5mb3JtYXRpb24gc2l6ZQo+ICsgKiBAcmV0dXJuIGEgbm9uLW5lZ2F0aXZlIG51bWJlciBv biBzdWNjZXNzLCBhIG5lZ2F0aXZlIEFWRVJST1IgY29kZSBvbgo+ICsgKiAgICAgICAgIGZhaWx1 cmUuIE9uIGZhaWx1cmUsIHRoZSBzZXQgaXMgdW5jaGFuZ2VkIGFuZCB0aGUgZGF0YSByZW1haW5z Cj4gKyAqICAgICAgICAgb3duZWQgYnkgdGhlIGNhbGxlci4KPiArICovCj4gK2ludCBhdl9wYWNr ZXRfYWRkX3NpZGVfZGF0YV90b19zZXQoQVZQYWNrZXRTaWRlRGF0YVNldCAqc2V0LAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gQVZQYWNrZXRTaWRlRGF0YVR5cGUg dHlwZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpkYXRh LCBzaXplX3Qgc2l6ZSk7Cj4gKwo+ICsvKioKPiArICogR2V0IHNpZGUgaW5mb3JtYXRpb24gZnJv bSBzZXQuCj4gKyAqCj4gKyAqIEBwYXJhbSBzZXQgYSBzZXQgZnJvbSB3aGljaCB0aGUgc2lkZSBk YXRhIHNob3VsZCBiZSBmZXRjaGVkCj4gKyAqIEBwYXJhbSB0eXBlIGRlc2lyZWQgc2lkZSBpbmZv cm1hdGlvbiB0eXBlCj4gKyAqIEByZXR1cm4gcG9pbnRlciB0byBzaWRlIGRhdGEgaWYgcHJlc2Vu dCBvciBOVUxMIG90aGVyd2lzZQo+ICsgKi8KPiArQVZQYWNrZXRTaWRlRGF0YSAqYXZfcGFja2V0 X2dldF9zaWRlX2RhdGFfZnJvbV9zZXQoY29uc3QgQVZQYWNrZXRTaWRlRGF0YVNldCAqc2V0LAo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVt IEFWUGFja2V0U2lkZURhdGFUeXBlIHR5cGUpOwo+ICsKPiArLyoqCj4gKyAqIENvbnZlbmllbmNl IGZ1bmN0aW9uIHRvIGZyZWUgYWxsIHRoZSBzaWRlIGRhdGEgc3RvcmVkIGluIGEgc2V0Lgo+ICsg Kgo+ICsgKiBAcGFyYW0gc2V0IGEgc2V0Cj4gKyAqLwo+ICt2b2lkIGF2X3BhY2tldF9mcmVlX3Np ZGVfZGF0YV9zZXQoQVZQYWNrZXRTaWRlRGF0YVNldCAqc2V0KTsKPiArCj4gICAvKioKPiAgICAq IEB9Cj4gICAgKi8KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRw czovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2Ny aWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1w ZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=