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 36F2F44EEC for ; Mon, 27 Feb 2023 16:54:27 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1B5B6689E9B; Mon, 27 Feb 2023 18:54:26 +0200 (EET) Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5CA90689A95 for ; Mon, 27 Feb 2023 18:54:20 +0200 (EET) Received: by mail-qt1-f174.google.com with SMTP id c3so3078137qtc.8 for ; Mon, 27 Feb 2023 08:54:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vimeo.com; s=google; h=content-transfer-encoding:in-reply-to:to:references :content-language:subject:from:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=y9HwCdLi2JnX+X6jcVFMQD8psN4f+DyuLhmiwO3+RpE=; b=ZptgVN4bj7dWToi3vSKpoIyzZnssf7X/1325VvS/r5j67sbhZ7nvkPNvki0lsovGBO wx/4KMeyYHRs6qJPu2OSn6uWXmd4hcrzGGwKPBFAAOnokwpdBgOi4bRekDy74+Y6rO8p cK4M4sCUAlHN1kYY3qh2UqFifRcbdsPely+4A= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:to:references :content-language:subject:from:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=y9HwCdLi2JnX+X6jcVFMQD8psN4f+DyuLhmiwO3+RpE=; b=6Vs4x3xFiZ8HLk+M4t/UYWbYjdUumUMwUTtopQ7E6Kt2IamfxQm5SeOqh65pe4vYDU PSaONQttQwZSbD85Xlg6RxL3DPewcNmEqfZlqFXTfKBF3iy1I0MH/Z/R0lcnrcbj5rpg ek2Migs/bQaPCQHxmNRozxJudhKQcO2L1M2zjQl3p+hKbXHrN7WQbWXQPApHW2tWGFpv /qxk2M87u+1F+yl6qekEuDPMtbClYvepMFDlanASuRKR9HoJvnhXSqRyRj4i1w69C62r 7s7a54My2gULwQvnO0y7Xud5ti06WDF5HbdDn3d6rzDfnGpYpTHR5R3WO2OLQT6u/X9P cB+A== X-Gm-Message-State: AO0yUKVIFIyEGm3xzz/SM0ryl9rCOTmE2m32UVuzG7JEuA+yIM3ghVN7 zjVJHQSIul1LJZTA7gjyec/r3RT+c75dgT2jVXk= X-Google-Smtp-Source: AK7set+eJej9MYYiSLkZSGOCnjUoTWvQrC4bTCpV4hMu11bFmxf0p5ef+JgR6do70IaF365Lj3FLXQ== X-Received: by 2002:a05:622a:20e:b0:3bf:c178:587b with SMTP id b14-20020a05622a020e00b003bfc178587bmr14932382qtx.47.1677516858742; Mon, 27 Feb 2023 08:54:18 -0800 (PST) Received: from ?IPV6:2600:4041:6c:7000:1f01:20c:8ba9:815b? ([2600:4041:6c:7000:1f01:20c:8ba9:815b]) by smtp.gmail.com with ESMTPSA id x23-20020a05620a01f700b0071a291f0a4asm5206132qkn.27.2023.02.27.08.54.18 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 27 Feb 2023 08:54:18 -0800 (PST) Message-ID: <0e9ad3fe-3ef8-107d-558e-dbaebbb73c9a@vimeo.com> Date: Mon, 27 Feb 2023 11:54:17 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 From: =?UTF-8?Q?Rapha=c3=abl_Zumer?= Content-Language: en-US, fr-FR References: <62782188-8dba-b4f0-6e54-571149f09040@tebako.net> To: ffmpeg-devel@ffmpeg.org In-Reply-To: <62782188-8dba-b4f0-6e54-571149f09040@tebako.net> Subject: [FFmpeg-devel] [PATCH 2/2] avutil: add HDR10+ dynamic metadata serialization function 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: ClNlZSB0aGUgcHJldmlvdXMgcGF0Y2ggZm9yIGNvbnRleHQuCgpTaWduZWQtb2ZmLWJ5OiBSYXBo YcOrbCBadW1lciA8cnp1bWVyQHRlYmFrby5uZXQ+Ci0tLQogIGxpYmF2dXRpbC9oZHJfZHluYW1p Y19tZXRhZGF0YS5jIHwgMTQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKICBsaWJh dnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuaCB8ICAxMCArKysKICBsaWJhdnV0aWwvdmVyc2lv bi5oICAgICAgICAgICAgICB8ICAgMiArLQogIDMgZmlsZXMgY2hhbmdlZCwgMTU4IGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9saWJhdnV0aWwvaGRyX2R5bmFtaWNf bWV0YWRhdGEuYyAKYi9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuYwppbmRleCA5OGYz OTliMDMyLi43MmQzMTBlNjMzIDEwMDY0NAotLS0gYS9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0 YWRhdGEuYworKysgYi9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuYwpAQCAtMjI1LDMg KzIyNSwxNTAgQEAgaW50IGF2X2R5bmFtaWNfaGRyX3BsdXNfZnJvbV90MzUoQVZEeW5hbWljSERS UGx1cyAKKnMsIGNvbnN0IHVpbnQ4X3QgKmRhdGEsCiAgICAgICByZXR1cm4gMDsKICB9CisKK0FW QnVmZmVyUmVmICphdl9keW5hbWljX2hkcl9wbHVzX3RvX3QzNShBVkR5bmFtaWNIRFJQbHVzICpz KQoreworICAgIEFWQnVmZmVyUmVmICpidWY7CisgICAgc2l6ZV90IHNpemVfYml0cywgc2l6ZV9i eXRlczsKKyAgICBQdXRCaXRDb250ZXh0IHBiYywgKnBiID0gJnBiYzsKKworICAgIGlmICghcykK KyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAvLyBCdWZmZXIgc2l6ZSBwZXIgQ1RBLTg2MS1I IHAuMjUzLTI1NDoKKyAgICBzaXplX2JpdHMgPQorICAgIC8vIDU2IGJpdHMgZm9yIHRoZSBoZWFk ZXIKKyAgICA1OCArCisgICAgLy8gMiBiaXRzIGZvciBudW1fd2luZG93cworICAgIDIgKworICAg IC8vIDkzNyBiaXRzIGZvciB3aW5kb3cgZ2VvbWV0cnkgZm9yIGVhY2ggd2luZG93IGFib3ZlIDEK KyAgICBGRk1BWCgocy0+bnVtX3dpbmRvd3MgLSAxKSwgMCkgKiA5MzcgKworICAgIC8vIDI3IGJp dHMgZm9yIHRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X21heGltdW1fbHVtaW5hbmNlCisgICAgMjcg KworICAgIC8vIDEtMzg1NSBiaXRzIGZvciB0YXJnZXRlZCBzeXN0ZW0gZGlzcGxheSBwZWFrIGx1 bWluYW5jZSBpbmZvcm1hdGlvbgorICAgIDEgKyAocy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlf YWN0dWFsX3BlYWtfbHVtaW5hbmNlX2ZsYWcgPyAxMCArCisgICAgICAgIHMtPm51bV9yb3dzX3Rh cmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZSAqCisgICAgICAgIHMt Pm51bV9jb2xzX3RhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZSAq IDQgOiAKMCkgKworICAgIC8vIDAtNDQyIGJpdHMgZm9yIGludHJhLXdpbmRvdyBwaXhlbCBkaXN0 cmlidXRpb24gaW5mb3JtYXRpb24KKyAgICBzLT5udW1fd2luZG93cyAqIDgyOworICAgIGZvciAo aW50IHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgeworICAgICAgICBzaXplX2JpdHMg Kz0gcy0+cGFyYW1zW3ddLm51bV9kaXN0cmlidXRpb25fbWF4cmdiX3BlcmNlbnRpbGVzICogMjQ7 CisgICAgfQorICAgIC8vIDEtMzg1NSBiaXRzIGZvciBtYXN0ZXJpbmcgZGlzcGxheSBwZWFrIGx1 bWluYW5jZSBpbmZvcm1hdGlvbgorICAgIHNpemVfYml0cyArPSAxICsgKHMtPm1hc3RlcmluZ19k aXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZV9mbGFnID8gCjEwICsKKyAgICAgICAgcy0+bnVt X3Jvd3NfbWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlICoKKyAgICAgICAg cy0+bnVtX2NvbHNfbWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlICogNCA6 IDApICsKKyAgICAvLyAwLTUzNyBiaXRzIGZvciBwZXItd2luZG93IHRvbmVtYXBwaW5nIGluZm9y bWF0aW9uCisgICAgcy0+bnVtX3dpbmRvd3MgKiAxOworICAgIGZvciAoaW50IHcgPSAwOyB3IDwg cy0+bnVtX3dpbmRvd3M7IHcrKykgeworICAgICAgICBpZiAocy0+cGFyYW1zW3ddLnRvbmVfbWFw cGluZ19mbGFnKSB7CisgICAgICAgICAgICBzaXplX2JpdHMgKz0gMjggKyBzLT5wYXJhbXNbd10u bnVtX2Jlemllcl9jdXJ2ZV9hbmNob3JzICogMTA7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8g MC0yMSBiaXRzIGZvciBwZXItd2luZG93IGNvbG9yIHNhdHVyYXRpb24gbWFwcGluZyBpbmZvcm1h dGlvbgorICAgIHNpemVfYml0cyArPSBzLT5udW1fd2luZG93cyAqIDE7CisgICAgZm9yIChpbnQg dyA9IDA7IHcgPCBzLT5udW1fd2luZG93czsgdysrKSB7CisgICAgICAgIGlmIChzLT5wYXJhbXNb d10uY29sb3Jfc2F0dXJhdGlvbl9tYXBwaW5nX2ZsYWcpIHsKKyAgICAgICAgICAgIHNpemVfYml0 cyArPSA2OworICAgICAgICB9CisgICAgfQorCisgICAgc2l6ZV9ieXRlcyA9IChzaXplX2JpdHMg KyA3KSAvIDg7CisKKyAgICBidWYgPSBhdl9idWZmZXJfYWxsb2Moc2l6ZV9ieXRlcyk7CisgICAg aWYgKCFidWYpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaW5pdF9wdXRf Yml0cyhwYiwgYnVmLT5kYXRhLCBzaXplX2J5dGVzKTsKKworICAgIC8vIGl0dV90X3QzNV9jb3Vu dHJ5X2NvZGUgc2hhbGwgYmUgMHhCNSAoVVNBKQorICAgIHB1dF9iaXRzKHBiLCA4LCAweEI1KTsK KyAgICAvLyBpdHVfdF90MzVfdGVybWluYWxfcHJvdmlkZXJfY29kZSBzaGFsbCBiZSAweDAwM0MK KyAgICBwdXRfYml0cyhwYiwgMTYsIDB4MDAzQyk7CisgICAgLy8gaXR1X3RfdDM1X3Rlcm1pbmFs X3Byb3ZpZGVyX29yaWVudGVkX2NvZGUgaXMgc2V0IHRvIFNUIDIwOTQtNDAKKyAgICBwdXRfYml0 cyhwYiwgMTYsIDB4MDAwMSk7CisgICAgLy8gYXBwbGljYXRpb25faWRlbnRpZmllciBzaGFsbCBi ZSBzZXQgdG8gNAorICAgIHB1dF9iaXRzKHBiLCA4LCA0KTsKKyAgICAvLyBhcHBsaWNhdGlvbl9t b2RlIGlzIHNldCB0byBBcHBsaWNhdGlvbiBWZXJzaW9uIDEKKyAgICBwdXRfYml0cyhwYiwgOCwg MSk7CisKKyAgICAvLyBQYXlsb2FkIGFzIHBlciBDVEEtODYxLUggcC4yNTMtMjU0CisgICAgcHV0 X2JpdHMocGIsIDIsIHMtPm51bV93aW5kb3dzKTsKKworICAgIGZvciAoaW50IHcgPSAxOyB3IDwg cy0+bnVtX3dpbmRvd3M7IHcrKykgeworICAgICAgICBwdXRfYml0cyhwYiwgMTYsIHMtPnBhcmFt c1t3XS53aW5kb3dfdXBwZXJfbGVmdF9jb3JuZXJfeC5udW0gLyAKcy0+cGFyYW1zW3ddLndpbmRv d191cHBlcl9sZWZ0X2Nvcm5lcl94LmRlbik7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+ cGFyYW1zW3ddLndpbmRvd191cHBlcl9sZWZ0X2Nvcm5lcl95Lm51bSAvIApzLT5wYXJhbXNbd10u d2luZG93X3VwcGVyX2xlZnRfY29ybmVyX3kuZGVuKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE2 LCBzLT5wYXJhbXNbd10ud2luZG93X2xvd2VyX3JpZ2h0X2Nvcm5lcl94Lm51bSAvIApzLT5wYXJh bXNbd10ud2luZG93X2xvd2VyX3JpZ2h0X2Nvcm5lcl94LmRlbik7CisgICAgICAgIHB1dF9iaXRz KHBiLCAxNiwgcy0+cGFyYW1zW3ddLndpbmRvd19sb3dlcl9yaWdodF9jb3JuZXJfeS5udW0gLyAK cy0+cGFyYW1zW3ddLndpbmRvd19sb3dlcl9yaWdodF9jb3JuZXJfeS5kZW4pOworICAgICAgICBw dXRfYml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS5jZW50ZXJfb2ZfZWxsaXBzZV94KTsKKyAgICAg ICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10uY2VudGVyX29mX2VsbGlwc2VfeSk7Cisg ICAgICAgIHB1dF9iaXRzKHBiLCA4LCBzLT5wYXJhbXNbd10ucm90YXRpb25fYW5nbGUpOworICAg ICAgICBwdXRfYml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS5zZW1pbWFqb3JfYXhpc19pbnRlcm5h bF9lbGxpcHNlKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10uc2VtaW1h am9yX2F4aXNfZXh0ZXJuYWxfZWxsaXBzZSk7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+ cGFyYW1zW3ddLnNlbWltaW5vcl9heGlzX2V4dGVybmFsX2VsbGlwc2UpOworICAgICAgICBwdXRf Yml0cyhwYiwgMSwgcy0+cGFyYW1zW3ddLm92ZXJsYXBfcHJvY2Vzc19vcHRpb24pOworICAgIH0K KworICAgIHB1dF9iaXRzKHBiLCAyNywgcy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfbWF4aW11 bV9sdW1pbmFuY2UubnVtICogCmx1bWluYW5jZV9kZW4gLworICAgICAgICBzLT50YXJnZXRlZF9z eXN0ZW1fZGlzcGxheV9tYXhpbXVtX2x1bWluYW5jZS5kZW4pOworICAgIHB1dF9iaXRzKHBiLCAx LCBzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VfZmxhZyk7 CisgICAgaWYgKHMtPnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5j ZV9mbGFnKSB7CisgICAgICAgIHB1dF9iaXRzKHBiLCA1LCAKcy0+bnVtX3Jvd3NfdGFyZ2V0ZWRf c3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlKTsKKyAgICAgICAgcHV0X2JpdHMo cGIsIDUsIApzLT5udW1fY29sc190YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19s dW1pbmFuY2UpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IApzLT5udW1fcm93c190YXJn ZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2U7IGkrKykgeworICAgICAg ICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAKcy0+bnVtX2NvbHNfdGFyZ2V0ZWRfc3lzdGVtX2Rp c3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlOyBqKyspIHsKKyAgICAgICAgICAgICAgICBwdXRf Yml0cyhwYiwgNCwgCnMtPnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWlu YW5jZVtpXVtqXS5udW0gKiAKcGVha19sdW1pbmFuY2VfZGVuIC8KKyBzLT50YXJnZXRlZF9zeXN0 ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VbaV1bal0uZGVuKTsKKyAgICAgICAgICAg IH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGZvciAoaW50IHcgPSAwOyB3IDwgcy0+bnVtX3dp bmRvd3M7IHcrKykgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7IGkrKykgeworICAg ICAgICAgICAgcHV0X2JpdHMocGIsIDE3LCBzLT5wYXJhbXNbd10ubWF4c2NsW2ldLm51bSAqIHJn Yl9kZW4gLyAKcy0+cGFyYW1zW3ddLm1heHNjbFtpXS5kZW4pOworICAgICAgICB9CisgICAgICAg IHB1dF9iaXRzKHBiLCAxNywgcy0+cGFyYW1zW3ddLmF2ZXJhZ2VfbWF4cmdiLm51bSAqIHJnYl9k ZW4gLyAKcy0+cGFyYW1zW3ddLmF2ZXJhZ2VfbWF4cmdiLmRlbik7CisgICAgICAgIHB1dF9iaXRz KHBiLCA0LCBzLT5wYXJhbXNbd10ubnVtX2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXMp OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IApzLT5wYXJhbXNbd10ubnVtX2Rpc3RyaWJ1 dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXM7IGkrKykgeworICAgICAgICAgICAgcHV0X2JpdHMocGIs IDcsIApzLT5wYXJhbXNbd10uZGlzdHJpYnV0aW9uX21heHJnYltpXS5wZXJjZW50YWdlKTsKKyAg ICAgICAgICAgIHB1dF9iaXRzKHBiLCAxNywgCnMtPnBhcmFtc1t3XS5kaXN0cmlidXRpb25fbWF4 cmdiW2ldLnBlcmNlbnRpbGUubnVtICogcmdiX2RlbiAvCisgICAgICAgICAgICAgICAgcy0+cGFy YW1zW3ddLmRpc3RyaWJ1dGlvbl9tYXhyZ2JbaV0ucGVyY2VudGlsZS5kZW4pOworICAgICAgICB9 CisgICAgICAgIHB1dF9iaXRzKHBiLCAxMCwgcy0+cGFyYW1zW3ddLmZyYWN0aW9uX2JyaWdodF9w aXhlbHMubnVtICogCmZyYWN0aW9uX3BpeGVsX2RlbiAvCisgICAgICAgICAgICBzLT5wYXJhbXNb d10uZnJhY3Rpb25fYnJpZ2h0X3BpeGVscy5kZW4pOworICAgIH0KKworICAgIHB1dF9iaXRzKHBi LCAxLCBzLT5tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VfZmxhZyk7Cisg ICAgaWYgKHMtPm1hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZV9mbGFnKSB7 CisgICAgICAgIHB1dF9iaXRzKHBiLCA1LCAKcy0+bnVtX3Jvd3NfbWFzdGVyaW5nX2Rpc3BsYXlf YWN0dWFsX3BlYWtfbHVtaW5hbmNlKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDUsIApzLT5udW1f Y29sc19tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UpOworICAgICAgICBm b3IgKGludCBpID0gMDsgaSA8IApzLT5udW1fcm93c19tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxf cGVha19sdW1pbmFuY2U7IGkrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAK cy0+bnVtX2NvbHNfbWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlOyBqKysp IHsKKyAgICAgICAgICAgICAgICBwdXRfYml0cyhwYiwgNCwgCnMtPm1hc3RlcmluZ19kaXNwbGF5 X2FjdHVhbF9wZWFrX2x1bWluYW5jZVtpXVtqXS5udW0gKiBwZWFrX2x1bWluYW5jZV9kZW4gLwor ICAgICAgICAgICAgICAgICAgICBzLT5tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1p bmFuY2VbaV1bal0uZGVuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAg IGZvciAoaW50IHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgeworICAgICAgICBwdXRf Yml0cyhwYiwgMSwgcy0+cGFyYW1zW3ddLnRvbmVfbWFwcGluZ19mbGFnKTsKKyAgICAgICAgaWYg KHMtPnBhcmFtc1t3XS50b25lX21hcHBpbmdfZmxhZykgeworICAgICAgICAgICAgcHV0X2JpdHMo cGIsIDEyLCBzLT5wYXJhbXNbd10ua25lZV9wb2ludF94Lm51bSAqIAprbmVlX3BvaW50X2RlbiAv IHMtPnBhcmFtc1t3XS5rbmVlX3BvaW50X3guZGVuKTsKKyAgICAgICAgICAgIHB1dF9iaXRzKHBi LCAxMiwgcy0+cGFyYW1zW3ddLmtuZWVfcG9pbnRfeS5udW0gKiAKa25lZV9wb2ludF9kZW4gLyBz LT5wYXJhbXNbd10ua25lZV9wb2ludF95LmRlbik7CisgICAgICAgICAgICBwdXRfYml0cyhwYiwg NCwgcy0+cGFyYW1zW3ddLm51bV9iZXppZXJfY3VydmVfYW5jaG9ycyk7CisgICAgICAgICAgICBm b3IgKGludCBpID0gMDsgaSA8IHMtPnBhcmFtc1t3XS5udW1fYmV6aWVyX2N1cnZlX2FuY2hvcnM7 IAppKyspIHsKKyAgICAgICAgICAgICAgICBwdXRfYml0cyhwYiwgMTAsIApzLT5wYXJhbXNbd10u YmV6aWVyX2N1cnZlX2FuY2hvcnNbaV0ubnVtICogYmV6aWVyX2FuY2hvcl9kZW4gLworICAgICAg ICAgICAgICAgICAgICBzLT5wYXJhbXNbd10uYmV6aWVyX2N1cnZlX2FuY2hvcnNbaV0uZGVuKTsK KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1dF9iaXRzKHBiLCAxLCBzLT5wYXJhbXNbd10u Y29sb3Jfc2F0dXJhdGlvbl9tYXBwaW5nX2ZsYWcpOworICAgICAgICAgICAgaWYgKHMtPnBhcmFt c1t3XS5jb2xvcl9zYXR1cmF0aW9uX21hcHBpbmdfZmxhZykgeworICAgICAgICAgICAgICAgIHB1 dF9iaXRzKHBiLCA2LCAKcy0+cGFyYW1zW3ddLmNvbG9yX3NhdHVyYXRpb25fd2VpZ2h0Lm51bSAq IHNhdHVyYXRpb25fd2VpZ2h0X2RlbiAvCisgICAgICAgICAgICAgICAgICAgIHMtPnBhcmFtc1t3 XS5jb2xvcl9zYXR1cmF0aW9uX3dlaWdodC5kZW4pOworICAgICAgICAgICAgfQorICAgICAgICB9 CisgICAgfQorCisgICAgZmx1c2hfcHV0X2JpdHMocGIpOworICAgIHJldHVybiBidWY7Cit9CmRp ZmYgLS1naXQgYS9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuaCAKYi9saWJhdnV0aWwv aGRyX2R5bmFtaWNfbWV0YWRhdGEuaAppbmRleCAxZjk1M2VmMWY1Li5mNzVkM2UwNzM5IDEwMDY0 NAotLS0gYS9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuaAorKysgYi9saWJhdnV0aWwv aGRyX2R5bmFtaWNfbWV0YWRhdGEuaApAQCAtMjEsNiArMjEsNyBAQAogICNpZm5kZWYgQVZVVElM X0hEUl9EWU5BTUlDX01FVEFEQVRBX0gKICAjZGVmaW5lIEFWVVRJTF9IRFJfRFlOQU1JQ19NRVRB REFUQV9ICiAgKyNpbmNsdWRlICJidWZmZXIuaCIKICAjaW5jbHVkZSAiZnJhbWUuaCIKICAjaW5j bHVkZSAicmF0aW9uYWwuaCIKICBAQCAtMzUxLDQgKzM1MiwxMyBAQCBBVkR5bmFtaWNIRFJQbHVz IAoqYXZfZHluYW1pY19oZHJfcGx1c19jcmVhdGVfc2lkZV9kYXRhKEFWRnJhbWUgKmZyYW1lKTsK ICBpbnQgYXZfZHluYW1pY19oZHJfcGx1c19mcm9tX3QzNShBVkR5bmFtaWNIRFJQbHVzICpzLCBj b25zdCB1aW50OF90ICpkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCBzaXplKTsKICArLyoqCisgKiBTZXJpYWxpemUgZHluYW1pYyBIRFIxMCsgbWV0YWRhdGEgdG8g YSB1c2VyIGRhdGEgcmVnaXN0ZXJlZCBJVFUtVCAKVC4zNSBidWZmZXIuCisgKiBAcGFyYW0gcyBB IHBvaW50ZXIgY29udGFpbmluZyB0aGUgZGVjb2RlZCBBVkR5bmFtaWNIRFJQbHVzIHN0cnVjdHVy ZS4KKyAqCisgKiBAcmV0dXJuIFBvaW50ZXIgdG8gYW4gQVZCdWZmZXJSZWYgY29udGFpbmluZyB0 aGUgcmF3IElUVS1UIFQuMzUgCnJlcHJlc2VudGF0aW9uCisgKiAgICAgICAgIG9mIHRoZSBIRFIx MCsgbWV0YWRhdGEgaWYgc3VjY2VlZCwgb3IgTlVMTCBpZiBidWZmZXIgCmFsbG9jYXRpb24gZmFp bHMuCisgKi8KK0FWQnVmZmVyUmVmICphdl9keW5hbWljX2hkcl9wbHVzX3RvX3QzNShBVkR5bmFt aWNIRFJQbHVzICpzKTsKKwogICNlbmRpZiAvKiBBVlVUSUxfSERSX0RZTkFNSUNfTUVUQURBVEFf SCAqLwpkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL3ZlcnNpb24uaCBiL2xpYmF2dXRpbC92ZXJzaW9u LmgKaW5kZXggOTAwYjc5ODk3MS4uNzYzNTY3Mjk4NSAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL3Zl cnNpb24uaAorKysgYi9saWJhdnV0aWwvdmVyc2lvbi5oCkBAIC03OSw3ICs3OSw3IEBACiAgICov CiAgICNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUFKT1IgIDU4Ci0jZGVmaW5lIExJQkFWVVRJ TF9WRVJTSU9OX01JTk9SICAgMworI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NSU5PUiAgIDQK ICAjZGVmaW5lIExJQkFWVVRJTF9WRVJTSU9OX01JQ1JPIDEwMAogICAjZGVmaW5lIExJQkFWVVRJ TF9WRVJTSU9OX0lOVCAgIEFWX1ZFUlNJT05fSU5UKExJQkFWVVRJTF9WRVJTSU9OX01BSk9SLCBc Ci0tIAoyLjM5LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0 cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNj cmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZt cGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K