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 B33F246303 for ; Wed, 14 Jun 2023 17:27:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8012368B3CA; Wed, 14 Jun 2023 20:27:02 +0300 (EEST) Received: from mail-vs1-f51.google.com (mail-vs1-f51.google.com [209.85.217.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4DA4F68A892 for ; Wed, 14 Jun 2023 20:26:56 +0300 (EEST) Received: by mail-vs1-f51.google.com with SMTP id ada2fe7eead31-43f519c0888so298569137.3 for ; Wed, 14 Jun 2023 10:26:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686763615; x=1689355615; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=OVyy+t3CBMwK5diwMnLLAC8BTaX0E6oKxUvwXAiELNo=; b=LBaA+uarBexSg0ZeUoY00bxxU72T+4hsniox4IEIu45ASL9Kbf9HuEV3VnDGCNHiIK nObiBB7x9UuIcHouTg6n+0gdTO2CFYtmIl9JNtuLrNutlZAmiCoKy80mQ1JFDUQTr89s ibB+dFYkOFCIrv9qTa0vIIoH8QCqoNoh6G3NkdDUWmC/LrPiRC1mw1fB7mTtTsfhbYEC v8YlnOiuNtuhayoET5YsoVRnQHAjvYRTuWzwZjlYNhO7bnMjLVsX56Ow/P21AngIUKvo ROoNBEVyfsHjPWk/ezF4uaj8NMXf96v+w1K/5Yp9KcYOfbml+ioS70dL7ZHIQbPZ0ev7 mC7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686763615; x=1689355615; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=OVyy+t3CBMwK5diwMnLLAC8BTaX0E6oKxUvwXAiELNo=; b=S+Q5Q6dShefym9K4hMBzIGrrOGaPlK4pGkhmABDgmx8Hj8H72gr/epj8Py8WN0bo86 6aVrU6/9a9F246c/vjik9v+UCa3kR4+7DBxe5T1ST9/vU6AXaoRZsCMxWctcu9khsl6X CQurDzIx690wSFhaHFs05bTnDikEBUUMYBbsis1XC0JrGaNlt96eiul6Dj39BQeAxSpq /7h1eYd1AtXuPoolb05Sw9ITMIXag0i9wiYEHIYpJ0rvQICbwn5R95CcnvtwgKRaNmw+ jxxv4SI4D3bPWwwzjeQLcVkJc+zonVOehXcDfP1EIcJ8zaHMwcwxgLkte0LPp8qjvTZV Lynw== X-Gm-Message-State: AC+VfDyRp1jLp6pX3vhzhIGytUC88Z5P6ixzmOTnAOc2Q83c28U4Vayv RLy/r94vg/vHmc+iDfxTMuF1+EhriZ/J6icBsU66z0dj X-Google-Smtp-Source: ACHHUZ5FqtKTPyOgW64/Di5IUiiZtVfXulKuAYeVF6BC6RYMptvf2P/JkuYeNTRgEv4YTNvWb9E+Lltb/dD6Vuv2W20= X-Received: by 2002:a67:f4d8:0:b0:43b:3b54:11db with SMTP id s24-20020a67f4d8000000b0043b3b5411dbmr8154442vsn.23.1686763614797; Wed, 14 Jun 2023 10:26:54 -0700 (PDT) MIME-Version: 1.0 From: Paul B Mahol Date: Wed, 14 Jun 2023 19:26:34 +0200 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="00000000000015604505fe1a42ec" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] avfilter/vf_drawtext: additions 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: --00000000000015604505fe1a42ec Content-Type: text/plain; charset="UTF-8" Set of patches attached extending drawtext filter with libharfbuzz. Will apply if nobody comments within week. --00000000000015604505fe1a42ec Content-Type: text/x-patch; charset="US-ASCII"; name="0006-avfilter-vf_drawtext-implement-text-alignment.patch" Content-Disposition: attachment; filename="0006-avfilter-vf_drawtext-implement-text-alignment.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_livzfbet2 RnJvbSBhMDI0MzEzNGI0YjYwMjA1YTM1OWMxMWNlYzdjMjM3MjIyZDY1MzQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB5ZXRoaWUgPGtsaW1rbGltQHRpc2NhbGkuaXQ+CkRhdGU6IEZy aSwgMjYgTWF5IDIwMjMgMTI6NTE6MDUgKzAyMDAKU3ViamVjdDogW1BBVENIIDYvOF0gYXZmaWx0 ZXIvdmZfZHJhd3RleHQ6IGltcGxlbWVudCB0ZXh0IGFsaWdubWVudAoKVGV4dCBjYW4gbm93IGJl IGFsaWduZWQgdmVydGljYWxseSAodG9wLCBtaWRkbGUsIGJvdHRvbSkgYW5kIGhvcml6b250YWxs eSAobGVmdCwgY2VudGVyLCByaWdodCkKcmVsYXRpdmUgdG8gdGhlIGJhY2tncm91bmQgYm94LgoK U2lnbmVkLW9mZi1ieTogUGF1bCBCIE1haG9sIDxvbmVtZGFAZ21haWwuY29tPgotLS0KIGRvYy9m aWx0ZXJzLnRleGkgICAgICAgICAgfCAgNiArKysrKwogbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQu YyB8IDUxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMiBmaWxlcyBj aGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9j L2ZpbHRlcnMudGV4aSBiL2RvYy9maWx0ZXJzLnRleGkKaW5kZXggNWM1MDg4MjZlMy4uMzJjMDQw Y2ZlMiAxMDA2NDQKLS0tIGEvZG9jL2ZpbHRlcnMudGV4aQorKysgYi9kb2MvZmlsdGVycy50ZXhp CkBAIC0xMjMzMiw2ICsxMjMzMiwxMiBAQCBUaGUgZGVmYXVsdCB2YWx1ZSBvZiBAdmFye2JveGNv bG9yfSBpcyAid2hpdGUiLgogQGl0ZW0gbGluZV9zcGFjaW5nCiBTZXQgdGhlIGxpbmUgc3BhY2lu ZyBpbiBwaXhlbHMuIFRoZSBkZWZhdWx0IHZhbHVlIG9mIEB2YXJ7bGluZV9zcGFjaW5nfSBpcyAw LgogCitAaXRlbSB0ZXh0X2FsaWduCitTZXQgdGhlIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIGFs aWdubWVudCBvZiB0aGUgdGV4dCB3aXRoIHJlc3BlY3QgdG8gdGhlIGJveCBib3VuZGFyaWVzLgor VGhlIHZhbHVlIG11c3QgY29udGFpbiBleGFjdGx5IHR3byBsZXR0ZXJzLCBvbmUgZm9yIHRoZSB2 ZXJ0aWNhbCBhbGlnbm1lbnQgKFQ9dG9wLAorTT1taWRkbGUsIEI9Ym90dG9tKSBhbmQgb25lIGZv ciB0aGUgaG9yaXpvbnRhbCBhbGlnbm1lbnQgKEw9bGVmdCwgQz1jZW50ZXIsIFI9cmlnaHQpLgor UGxlYXNlIG5vdGUgdGhhdCB0YWIgY2hhcmFjdGVycyBhcmUgb25seSBzdXBwb3J0ZWQgd2l0aCB0 aGUgbGVmdCBob3Jpem9udGFsIGFsaWdubWVudC4KKwogQGl0ZW0gYm9yZGVydwogU2V0IHRoZSB3 aWR0aCBvZiB0aGUgYm9yZGVyIHRvIGJlIGRyYXduIGFyb3VuZCB0aGUgdGV4dCB1c2luZyBAdmFy e2JvcmRlcmNvbG9yfS4KIFRoZSBkZWZhdWx0IHZhbHVlIG9mIEB2YXJ7Ym9yZGVyd30gaXMgMC4K ZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMgYi9saWJhdmZpbHRlci92Zl9k cmF3dGV4dC5jCmluZGV4IDQxNzczMzU5NmQuLmUxNDcxOTY4NDQgMTAwNjQ0Ci0tLSBhL2xpYmF2 ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMKKysrIGIvbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYwpAQCAt MzA5LDEyICszMDksMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgRHJhd1RleHRDb250ZXh0IHsKIAogICAg IGludCBib3h3OyAgICAgICAgICAgICAgICAgICAgICAgLy8vPCB0aGUgdmFsdWUgb2YgdGhlIGJv eHcgcGFyYW1ldGVyCiAgICAgaW50IGJveGg7ICAgICAgICAgICAgICAgICAgICAgICAvLy88IHRo ZSB2YWx1ZSBvZiB0aGUgYm94aCBwYXJhbWV0ZXIKKyAgICB1aW50OF90ICp0ZXh0X2FsaWduOyAg ICAgICAgICAgIC8vLzwgdGhlIGhvcml6b250YWwgYW5kIHZlcnRpY2FsIHRleHQgYWxpZ25tZW50 CiAKICAgICBUZXh0TGluZSAqbGluZXM7ICAgICAgICAgICAgICAgIC8vLzwgY29tcHV0ZWQgaW5m b3JtYXRpb24gYWJvdXQgdGV4dCBsaW5lcwogICAgIGludCBsaW5lX2NvdW50OyAgICAgICAgICAg ICAgICAgLy8vPCB0aGUgbnVtYmVyIG9mIHRleHQgbGluZXMKICAgICB1aW50MzJfdCAqdGFiX2Ns dXN0ZXJzOyAgICAgICAgIC8vLzwgdGhlIHBvc2l0aW9uIG9mIHRhYiBjaGFyYWN0ZXJzIGluIHRo ZSB0ZXh0CiAgICAgaW50IHRhYl9jb3VudDsgICAgICAgICAgICAgICAgICAvLy88IHRoZSBudW1i ZXIgb2YgdGFiIGNoYXJhY3RlcnMKICAgICBpbnQgYmxhbmtfYWR2YW5jZTY0OyAgICAgICAgICAg IC8vLzwgdGhlIHNpemUgb2YgdGhlIHNwYWNlIGNoYXJhY3RlcgorICAgIGludCB0YWJfd2Fybmlu Z19wcmludGVkOyAgICAgICAgLy8vPCBlbnN1cmUgdGhlIHRhYiB3YXJuaW5nIHRvIGJlIHByaW50 ZWQgb25seSBvbmNlCiB9IERyYXdUZXh0Q29udGV4dDsKIAogI2RlZmluZSBPRkZTRVQoeCkgb2Zm c2V0b2YoRHJhd1RleHRDb250ZXh0LCB4KQpAQCAtMzMzLDYgKzMzNSw3IEBAIHN0YXRpYyBjb25z dCBBVk9wdGlvbiBkcmF3dGV4dF9vcHRpb25zW109IHsKICAgICB7ImJveGJvcmRlcnciLCAgICAg InNldCBib3ggYm9yZGVycyB3aWR0aCIsIE9GRlNFVChib3hib3JkZXJ3KSwgICAgICAgICBBVl9P UFRfVFlQRV9TVFJJTkcsIHsuc3RyPSIwIn0sICAgMCwgMCwgRkxBR1N9LAogICAgIHsibGluZV9z cGFjaW5nIiwgICAic2V0IGxpbmUgc3BhY2luZyBpbiBwaXhlbHMiLCBPRkZTRVQobGluZV9zcGFj aW5nKSwgIEFWX09QVF9UWVBFX0lOVCwgICAgey5pNjQ9MH0sICAgICBJTlRfTUlOLCBJTlRfTUFY LCBGTEFHU30sCiAgICAgeyJmb250c2l6ZSIsICAgICAgICJzZXQgZm9udCBzaXplIiwgICAgICAg ICBPRkZTRVQoZm9udHNpemVfZXhwciksICAgICAgQVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0cj1O VUxMfSwgIDAsIDAsIEZMQUdTfSwKKyAgICB7InRleHRfYWxpZ24iLCAgICAgInNldCB0ZXh0IGFs aWdubWVudCIsICAgIE9GRlNFVCh0ZXh0X2FsaWduKSwgICAgICAgICBBVl9PUFRfVFlQRV9TVFJJ TkcsIHsuc3RyPSJUTCJ9LCAgMCwgMCwgRkxBR1N9LAogICAgIHsieCIsICAgICAgICAgICAgICAi c2V0IHggZXhwcmVzc2lvbiIsICAgICAgT0ZGU0VUKHhfZXhwciksICAgICAgICAgICAgIEFWX09Q VF9UWVBFX1NUUklORywgey5zdHI9IjAifSwgICAwLCAwLCBGTEFHU30sCiAgICAgeyJ5IiwgICAg ICAgICAgICAgICJzZXQgeSBleHByZXNzaW9uIiwgICAgICBPRkZTRVQoeV9leHByKSwgICAgICAg ICAgICAgQVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0cj0iMCJ9LCAgIDAsIDAsIEZMQUdTfSwKICAg ICB7ImJveHciLCAgICAgICAgICAgInNldCBib3ggd2lkdGgiLCAgICAgICAgIE9GRlNFVChib3h3 KSwgICAgICAgICAgICAgICBBVl9PUFRfVFlQRV9JTlQsICAgIHsuaTY0PTB9LCAgICAgMCwgSU5U X01BWCwgRkxBR1N9LApAQCAtODUxLDYgKzg1NCwxOSBAQCBzdGF0aWMgaW50IHN0cmluZ190b19h cnJheShjb25zdCBjaGFyICpzb3VyY2UsIGludCAqcmVzdWx0LCBpbnQgcmVzdWx0X3NpemUpCiAg ICAgcmV0dXJuIGNvdW50ZXI7CiB9CiAKK3N0YXRpYyBpbnQgdmFsaWRhdGVfdGV4dF9hbGlnbihj aGFyKiB0ZXh0X2FsaWduKQoreworICAgIGludCBlcnIgPSAwOworICAgIGlmIChzdHJsZW4odGV4 dF9hbGlnbikgIT0gMgorICAgICAgICB8fCBzdHJjaHIoIkxDUlRNQiIsIHRleHRfYWxpZ25bMF0p ID09IE5VTEwgfHwgc3RyY2hyKCJMQ1JUTUIiLCB0ZXh0X2FsaWduWzFdKSA9PSBOVUxMCisgICAg ICAgIHx8IChzdHJjaHIoIlRNQiIsIHRleHRfYWxpZ25bMF0pICE9IE5VTEwgJiYgc3RyY2hyKCJM Q1IiLCB0ZXh0X2FsaWduWzFdKSA9PSBOVUxMKQorICAgICAgICB8fCAoc3RyY2hyKCJMQ1IiLCB0 ZXh0X2FsaWduWzBdKSAhPSBOVUxMICYmIHN0cmNocigiVE1CIiwgdGV4dF9hbGlnblsxXSkgPT0g TlVMTCkpIHsKKyAgICAgICAgZXJyID0gQVZFUlJPUihFSU5WQUwpOworICAgIH0KKworICAgIHJl dHVybiBlcnI7Cit9CisKIHN0YXRpYyBhdl9jb2xkIGludCBpbml0KEFWRmlsdGVyQ29udGV4dCAq Y3R4KQogewogICAgIGludCBlcnI7CkBAIC05MTYsNiArOTMyLDE0IEBAIHN0YXRpYyBhdl9jb2xk IGludCBpbml0KEFWRmlsdGVyQ29udGV4dCAqY3R4KQogICAgICAgICByZXR1cm4gQVZFUlJPUihF SU5WQUwpOwogICAgIH0KIAorICAgIGlmICgoZXJyID0gdmFsaWRhdGVfdGV4dF9hbGlnbihzLT50 ZXh0X2FsaWduKSkpIHsKKyAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLAorICAgICAg ICAgICAgICAgIlRoZSB2YWx1ZSBwcm92aWRlZCBmb3IgcGFyYW1ldGVyICd0ZXh0X2FsaWduJyBp cyBub3QgdmFsaWQsXG4iKTsKKyAgICAgICAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLAorICAg ICAgICAgICAgICAgInBsZWFzZSBzcGVjaWZ5IGEgdHdvIGNoYXJhY3RlcnMgc3RyaW5nIGNvbnRh aW5pbmcgb25seSBvbmUgbGV0dGVyIGZvciBob3Jpem9udGFsIGFsaWdubWVudCAoJ0xDUicpIGFu ZCBvbmUgZm9yIHZlcnRpY2FsIGFsaWdubWVudCAoJ1RNQicpXG4iKTsKKyAgICAgICAgcmV0dXJu IGVycjsKKyAgICB9CisKICNpZiBDT05GSUdfTElCRlJJQklESQogICAgIGlmIChzLT50ZXh0X3No YXBpbmcpCiAgICAgICAgIGlmICgoZXJyID0gc2hhcGVfdGV4dChjdHgpKSA8IDApCkBAIC0xNDg2 LDEzICsxNTEwLDMyIEBAIHN0YXRpYyBpbnQgZHJhd19nbHlwaHMoRHJhd1RleHRDb250ZXh0ICpz LCBBVkZyYW1lICpmcmFtZSwKICAgICBHbHlwaCBkdW1teSA9IHsgMCB9LCAqZ2x5cGg7CiAgICAg RlRfQml0bWFwIGJpdG1hcDsKICAgICBGVF9CaXRtYXBHbHlwaCBiX2dseXBoOworICAgIHVpbnQ4 X3Qgal9jZW50ZXIgPSAwLCBqX3JpZ2h0ID0gMCwgal9taWRkbGUgPSAwLCBqX2JvdHRvbSA9IDA7 CisgICAgaW50IGxpbmVfdywgb2Zmc2V0X3kgPSAwOwogICAgIGludCBjbGlwX3ggPSAwLCBjbGlw X3kgPSAwOwogCisgICAgal9jZW50ZXIgPSBzdHJzdHIocy0+dGV4dF9hbGlnbiwgIkMiKSA+IDA7 CisgICAgal9yaWdodCA9IHN0cnN0cihzLT50ZXh0X2FsaWduLCAiUiIpID4gMDsKKyAgICBqX21p ZGRsZSA9IHN0cnN0cihzLT50ZXh0X2FsaWduLCAiTSIpID4gMDsKKyAgICBqX2JvdHRvbSA9IHN0 cnN0cihzLT50ZXh0X2FsaWduLCAiQiIpID4gMDsKKworICAgIGlmIChqX21pZGRsZSkgeworICAg ICAgICBvZmZzZXRfeSA9IChzLT5ib3hfaGVpZ2h0IC0gbWV0cmljcy0+aGVpZ2h0KSAvIDI7Cisg ICAgfSBlbHNlIGlmIChqX2JvdHRvbSkgeworICAgICAgICBvZmZzZXRfeSA9IHMtPmJveF9oZWln aHQgLSBtZXRyaWNzLT5oZWlnaHQ7CisgICAgfQorCisgICAgaWYgKChqX3JpZ2h0IHx8IGpfY2Vu dGVyKSAmJiAhcy0+dGFiX3dhcm5pbmdfcHJpbnRlZCAmJiBzLT50YWJfY291bnQgPiAwKSB7Cisg ICAgICAgIHMtPnRhYl93YXJuaW5nX3ByaW50ZWQgPSAxOworICAgICAgICBhdl9sb2cocywgQVZf TE9HX1dBUk5JTkcsICJUYWIgY2hhcmFjdGVycyBhcmUgb25seSBzdXBwb3J0ZWQgd2l0aCBsZWZ0 IGhvcml6b250YWwgYWxpZ25tZW50XG4iKTsKKyAgICB9CisKICAgICBjbGlwX3ggPSBGRk1JTiht ZXRyaWNzLT5yZWN0X3ggKyBzLT5ib3hfd2lkdGggKyBzLT5iYl9yaWdodCwgZnJhbWUtPndpZHRo KTsKICAgICBjbGlwX3kgPSBGRk1JTihtZXRyaWNzLT5yZWN0X3kgKyBzLT5ib3hfaGVpZ2h0ICsg cy0+YmJfYm90dG9tLCBmcmFtZS0+aGVpZ2h0KTsKIAogICAgIGZvciAobCA9IDA7IGwgPCBzLT5s aW5lX2NvdW50OyArK2wpIHsKICAgICAgICAgVGV4dExpbmUgKmxpbmUgPSAmcy0+bGluZXNbbF07 CisgICAgICAgIGxpbmVfdyA9IFBPU19DRUlMKGxpbmUtPndpZHRoNjQsIDY0KTsKICAgICAgICAg Zm9yIChnID0gMDsgZyA8IGxpbmUtPmhiX2RhdGEuZ2x5cGhfY291bnQ7ICsrZykgewogICAgICAg ICAgICAgaW5mbyA9ICZsaW5lLT5nbHlwaHNbZ107CiAgICAgICAgICAgICBkdW1teS5mb250c2l6 ZSA9IHMtPmZvbnRzaXplOwpAQCAtMTUwNiwxMCArMTU0OSwxNiBAQCBzdGF0aWMgaW50IGRyYXdf Z2x5cGhzKERyYXdUZXh0Q29udGV4dCAqcywgQVZGcmFtZSAqZnJhbWUsCiAgICAgICAgICAgICBi X2dseXBoID0gYm9yZGVydyA/IGdseXBoLT5ib3JkZXJfYmdseXBoW2lkeF0gOiBnbHlwaC0+Ymds eXBoW2lkeF07CiAgICAgICAgICAgICBiaXRtYXAgPSBiX2dseXBoLT5iaXRtYXA7CiAgICAgICAg ICAgICB4MSA9IHggKyBpbmZvLT54ICsgYl9nbHlwaC0+bGVmdDsKLSAgICAgICAgICAgIHkxID0g eSArIGluZm8tPnkgLSBiX2dseXBoLT50b3A7CisgICAgICAgICAgICB5MSA9IHkgKyBpbmZvLT55 IC0gYl9nbHlwaC0+dG9wICsgb2Zmc2V0X3k7CiAgICAgICAgICAgICB3MSA9IGJpdG1hcC53aWR0 aDsKICAgICAgICAgICAgIGgxID0gYml0bWFwLnJvd3M7CiAKKyAgICAgICAgICAgIGlmIChqX2Nl bnRlcikgeworICAgICAgICAgICAgICAgIHgxICs9IChzLT5ib3hfd2lkdGggLSBsaW5lX3cpIC8g MjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoal9yaWdodCkgeworICAgICAgICAgICAgICAgIHgx ICs9IHMtPmJveF93aWR0aCAtIGxpbmVfdzsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAg Ly8gT2Zmc2V0IG9mIHRoZSBnbHlwaCdzIGJpdG1hcCBpbiB0aGUgdmlzaWJsZSByZWdpb24KICAg ICAgICAgICAgIGR4ID0gZHkgPSAwOwogICAgICAgICAgICAgaWYgKHgxIDwgbWV0cmljcy0+cmVj dF94IC0gcy0+YmJfbGVmdCkgewotLSAKMi4zOS4xCgo= --00000000000015604505fe1a42ec Content-Type: text/x-patch; charset="US-ASCII"; name="0005-avfilter-vf_drawtext-add-expression-variables-to-con.patch" Content-Disposition: attachment; filename="0005-avfilter-vf_drawtext-add-expression-variables-to-con.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_livzfbgf3 RnJvbSAyNDJiYzg5YjMwYTE3MTRkYzEyODdhNGVhOTI1YWMyZmE3NjdmY2MxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB5ZXRoaWUgPGtsaW1rbGltQHRpc2NhbGkuaXQ+CkRhdGU6IEZy aSwgMjYgTWF5IDIwMjMgMTI6NDY6MTAgKzAyMDAKU3ViamVjdDogW1BBVENIIDUvOF0gYXZmaWx0 ZXIvdmZfZHJhd3RleHQ6IGFkZCBleHByZXNzaW9uIHZhcmlhYmxlcyB0byBjb250cm9sCiBmb250 IGFzY2VudC9kZXNjZW50CgpUaGUgZm9sbG93aW5nIG5ldyB2YXJpYWJsZXMgY2FuIGJlIHVzZWQg aW4gdGhlIHggYW5kIHkgZXhwcmVzc2lvbnM6IGZvbnRfYSwgZm9udF9kLCB0b3BfYSwgYm90dG9t X2QuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+Ci0tLQog ZG9jL2ZpbHRlcnMudGV4aSAgICAgICAgICB8IDEyICsrKysrKysrKysrKwogbGliYXZmaWx0ZXIv dmZfZHJhd3RleHQuYyB8IDEyICsrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyNCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZG9jL2ZpbHRlcnMudGV4aSBiL2RvYy9maWx0ZXJzLnRl eGkKaW5kZXggYTQ1N2NlOTlmZi4uNWM1MDg4MjZlMyAxMDA2NDQKLS0tIGEvZG9jL2ZpbHRlcnMu dGV4aQorKysgYi9kb2MvZmlsdGVycy50ZXhpCkBAIC0xMjU0NSw2ICsxMjU0NSwxOCBAQCBjb250 YWluZWQgaW4gdGhlIHJlbmRlcmVkIHRleHQsIGl0IGlzIGVxdWl2YWxlbnQgdG8gQHZhcnthc2Nl bnR9IC0KIG1heGltdW0gZ2x5cGggd2lkdGgsIHRoYXQgaXMgdGhlIG1heGltdW0gd2lkdGggZm9y IGFsbCB0aGUgZ2x5cGhzCiBjb250YWluZWQgaW4gdGhlIHJlbmRlcmVkIHRleHQKIAorQGl0ZW0g Zm9udF9hCit0aGUgYXNjZW50IHNpemUgZGVmaW5lZCBpbiB0aGUgZm9udCBtZXRyaWNzCisKK0Bp dGVtIGZvbnRfZAordGhlIGRlc2NlbnQgc2l6ZSBkZWZpbmVkIGluIHRoZSBmb250IG1ldHJpY3MK KworQGl0ZW0gdG9wX2EKK3RoZSBtYXhpbXVtIGFzY2VuZGVyIG9mIHRoZSBnbHlwaHMgb2YgdGhl IGZpcnN0IHRleHQgbGluZQorCitAaXRlbSBib3R0b21fZAordGhlIG1heGltdW0gZGVzY2VuZGVy IG9mIHRoZSBnbHlwaHMgb2YgdGhlIGxhc3QgdGV4dCBsaW5lCisKIEBpdGVtIG4KIHRoZSBudW1i ZXIgb2YgaW5wdXQgZnJhbWUsIHN0YXJ0aW5nIGZyb20gMAogCmRpZmYgLS1naXQgYS9saWJhdmZp bHRlci92Zl9kcmF3dGV4dC5jIGIvbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYwppbmRleCBiOTcx ZWViZGY0Li40MTc3MzM1OTZkIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci92Zl9kcmF3dGV4dC5j CisrKyBiL2xpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMKQEAgLTg5LDYgKzg5LDEwIEBAIHN0YXRp YyBjb25zdCBjaGFyICpjb25zdCB2YXJfbmFtZXNbXSA9IHsKICAgICAibWF4X2dseXBoX2QiLCAi ZGVzY2VudCIsIC8vLzwgbWluIGdseXBoIGRlc2NlbmRlcgogICAgICJtYXhfZ2x5cGhfaCIsICAg ICAgICAgICAgLy8vPCBtYXggZ2x5cGggaGVpZ2h0CiAgICAgIm1heF9nbHlwaF93IiwgICAgICAg ICAgICAvLy88IG1heCBnbHlwaCB3aWR0aAorICAgICJmb250X2EiLCAgICAgICAgICAgICAgICAg Ly8vPCBmb250LWRlZmluZWQgYXNjZW50CisgICAgImZvbnRfZCIsICAgICAgICAgICAgICAgICAv Ly88IGZvbnQtZGVmaW5lZCBkZXNjZW50CisgICAgInRvcF9hIiwgICAgICAgICAgICAgICAgICAv Ly88IG1heCBnbHlwaCBhc2NlbmRlciBvZiB0aGUgdG9wIGxpbmUKKyAgICAiYm90dG9tX2QiLCAg ICAgICAgICAgICAgIC8vLzwgbWF4IGdseXBoIGRlc2NlbmRlciBvZiB0aGUgYm90dG9tIGxpbmUK ICAgICAibiIsICAgICAgICAgICAgICAgICAgICAgIC8vLzwgbnVtYmVyIG9mIGZyYW1lCiAgICAg InNhciIsCiAgICAgInQiLCAgICAgICAgICAgICAgICAgICAgICAvLy88IHRpbWVzdGFtcCBleHBy ZXNzZWQgaW4gc2Vjb25kcwpAQCAtMTM2LDYgKzE0MCwxMCBAQCBlbnVtIHZhcl9uYW1lIHsKICAg ICBWQVJfTUFYX0dMWVBIX0QsIFZBUl9ERVNDRU5ULAogICAgIFZBUl9NQVhfR0xZUEhfSCwKICAg ICBWQVJfTUFYX0dMWVBIX1csCisgICAgVkFSX0ZPTlRfQSwKKyAgICBWQVJfRk9OVF9ELAorICAg IFZBUl9UT1BfQSwKKyAgICBWQVJfQk9UVE9NX0QsCiAgICAgVkFSX04sCiAgICAgVkFSX1NBUiwK ICAgICBWQVJfVCwKQEAgLTE4MDAsOCArMTgwOCwxMiBAQCBzdGF0aWMgaW50IGRyYXdfdGV4dChB VkZpbHRlckNvbnRleHQgKmN0eCwgQVZGcmFtZSAqZnJhbWUpCiAgICAgcy0+dmFyX3ZhbHVlc1tW QVJfTUFYX0dMWVBIX1ddID0gcy0+bWF4X2dseXBoX3c7CiAgICAgcy0+dmFyX3ZhbHVlc1tWQVJf TUFYX0dMWVBIX0hdID0gcy0+bWF4X2dseXBoX2g7CiAgICAgcy0+dmFyX3ZhbHVlc1tWQVJfTUFY X0dMWVBIX0FdID0gcy0+dmFyX3ZhbHVlc1tWQVJfQVNDRU5UXSA9IFBPU19DRUlMKG1ldHJpY3Mu bWF4X3k2NCwgNjQpOworICAgIHMtPnZhcl92YWx1ZXNbVkFSX0ZPTlRfQV0gPSBzLT5mYWNlLT5z aXplLT5tZXRyaWNzLmFzY2VuZGVyIC8gNjQ7CiAgICAgcy0+dmFyX3ZhbHVlc1tWQVJfTUFYX0dM WVBIX0RdID0gcy0+dmFyX3ZhbHVlc1tWQVJfREVTQ0VOVF0gPSBQT1NfQ0VJTChtZXRyaWNzLm1p bl95NjQsIDY0KTsKKyAgICBzLT52YXJfdmFsdWVzW1ZBUl9GT05UX0RdID0gLXMtPmZhY2UtPnNp emUtPm1ldHJpY3MuZGVzY2VuZGVyIC8gNjQ7CiAKKyAgICBzLT52YXJfdmFsdWVzW1ZBUl9UT1Bf QV0gPSBQT1NfQ0VJTChtZXRyaWNzLm9mZnNldF90b3A2NCwgNjQpOworICAgIHMtPnZhcl92YWx1 ZXNbVkFSX0JPVFRPTV9EXSA9IC1QT1NfQ0VJTChtZXRyaWNzLm9mZnNldF9ib3R0b202NCwgNjQp OwogICAgIHMtPnZhcl92YWx1ZXNbVkFSX0xJTkVfSF0gPSBzLT52YXJfdmFsdWVzW1ZBUl9MSF0g PSBtZXRyaWNzLmxpbmVfaGVpZ2h0NjQgLyA2NC47CiAKICAgICBpZiAocy0+dGV4dF9zb3VyY2Ug PT0gQVZfRlJBTUVfREFUQV9ERVRFQ1RJT05fQkJPWEVTKSB7Ci0tIAoyLjM5LjEKCg== --00000000000015604505fe1a42ec Content-Type: text/x-patch; charset="US-ASCII"; name="0004-avfilter-vf_drawtext-add-options-for-size-of-the-bac.patch" Content-Disposition: attachment; filename="0004-avfilter-vf_drawtext-add-options-for-size-of-the-bac.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_livzfbht4 RnJvbSBiZjJlOTQ2ODJiOTM3ZDYyOWY5NzVlZmQyNjFkMzVhNzczOWIyYzIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB5ZXRoaWUgPGtsaW1rbGltQHRpc2NhbGkuaXQ+CkRhdGU6IFdl ZCwgMTQgSnVuIDIwMjMgMTg6MzU6NDUgKzAyMDAKU3ViamVjdDogW1BBVENIIDQvOF0gYXZmaWx0 ZXIvdmZfZHJhd3RleHQ6IGFkZCBvcHRpb25zIGZvciBzaXplIG9mIHRoZQogYmFja2dyb3VuZCBi b3gKClNpZ25lZC1vZmYtYnk6IFBhdWwgQiBNYWhvbCA8b25lbWRhQGdtYWlsLmNvbT4KLS0tCiBk b2MvZmlsdGVycy50ZXhpICAgICAgICAgIHwgIDggKysrKysrKysKIGxpYmF2ZmlsdGVyL3ZmX2Ry YXd0ZXh0LmMgfCAyMiArKysrKysrKysrKysrKysrLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDI0 IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2ZpbHRlcnMu dGV4aSBiL2RvYy9maWx0ZXJzLnRleGkKaW5kZXggZGI0ZmI3ZWNlNC4uYTQ1N2NlOTlmZiAxMDA2 NDQKLS0tIGEvZG9jL2ZpbHRlcnMudGV4aQorKysgYi9kb2MvZmlsdGVycy50ZXhpCkBAIC0xMjQy Niw2ICsxMjQyNiwxNCBAQCBmZm1wZWctdXRpbHMgbWFudWFsLGZmbXBlZy11dGlsc30uCiAKIFRo ZSBkZWZhdWx0IHZhbHVlIG9mIEB2YXJ7c2hhZG93Y29sb3J9IGlzICJibGFjayIuCiAKK0BpdGVt IGJveHcKK1NldCB0aGUgd2lkdGggb2YgdGhlIGJveCB0byBiZSBkcmF3biBhcm91bmQgdGV4dC4K K1RoZSBkZWZhdWx0IHZhbHVlIG9mIEB2YXJ7Ym94d30gaXMgY29tcHV0ZWQgYXV0b21hdGljYWxs eSB0byBtYXRjaCB0aGUgdGV4dCB3aWR0aAorCitAaXRlbSBib3hoCitTZXQgdGhlIGhlaWdodCBv ZiB0aGUgYm94IHRvIGJlIGRyYXduIGFyb3VuZCB0ZXh0LgorVGhlIGRlZmF1bHQgdmFsdWUgb2Yg QHZhcntib3hofSBpcyBjb21wdXRlZCBhdXRvbWF0aWNhbGx5IHRvIG1hdGNoIHRoZSB0ZXh0IGhl aWdodAorCiBAaXRlbSBzaGFkb3d4CiBAaXRlbSBzaGFkb3d5CiBUaGUgeCBhbmQgeSBvZmZzZXRz IGZvciB0aGUgdGV4dCBzaGFkb3cgcG9zaXRpb24gd2l0aCByZXNwZWN0IHRvIHRoZQpkaWZmIC0t Z2l0IGEvbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYyBiL2xpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0 LmMKaW5kZXggMDdhNzc1ZjkzMy4uYjk3MWVlYmRmNCAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIv dmZfZHJhd3RleHQuYworKysgYi9saWJhdmZpbHRlci92Zl9kcmF3dGV4dC5jCkBAIC0yNjIsNiAr MjYyLDggQEAgdHlwZWRlZiBzdHJ1Y3QgRHJhd1RleHRDb250ZXh0IHsKICAgICBpbnQgYmJfcmln aHQ7ICAgICAgICAgICAgICAgICAgIC8vLzwgdGhlIHNpemUgb2YgdGhlIHJpZ2h0IGJveCBib3Jk ZXIKICAgICBpbnQgYmJfYm90dG9tOyAgICAgICAgICAgICAgICAgIC8vLzwgdGhlIHNpemUgb2Yg dGhlIGJvdHRvbSBib3ggYm9yZGVyCiAgICAgaW50IGJiX2xlZnQ7ICAgICAgICAgICAgICAgICAg ICAvLy88IHRoZSBzaXplIG9mIHRoZSBsZWZ0IGJveCBib3JkZXIKKyAgICBpbnQgYm94X3dpZHRo OyAgICAgICAgICAgICAgICAgIC8vLzwgdGhlIHdpZHRoIG9mIGJveAorICAgIGludCBib3hfaGVp Z2h0OyAgICAgICAgICAgICAgICAgLy8vPCB0aGUgaGVpZ2h0IG9mIGJveAogICAgIGludCB0YWJz aXplOyAgICAgICAgICAgICAgICAgICAgLy8vPCB0YWIgc2l6ZQogICAgIGludCBmaXhfYm91bmRz OyAgICAgICAgICAgICAgICAgLy8vPCBkbyB3ZSBsZXQgaXQgZ28gb3V0IG9mIGZyYW1lIGJvdW5k cyAtIHQvZgogCkBAIC0yOTcsNiArMjk5LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgRHJhd1RleHRDb250 ZXh0IHsKICNlbmRpZgogICAgIEFWRGljdGlvbmFyeSAqbWV0YWRhdGE7CiAKKyAgICBpbnQgYm94 dzsgICAgICAgICAgICAgICAgICAgICAgIC8vLzwgdGhlIHZhbHVlIG9mIHRoZSBib3h3IHBhcmFt ZXRlcgorICAgIGludCBib3hoOyAgICAgICAgICAgICAgICAgICAgICAgLy8vPCB0aGUgdmFsdWUg b2YgdGhlIGJveGggcGFyYW1ldGVyCisKICAgICBUZXh0TGluZSAqbGluZXM7ICAgICAgICAgICAg ICAgIC8vLzwgY29tcHV0ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGV4dCBsaW5lcwogICAgIGludCBs aW5lX2NvdW50OyAgICAgICAgICAgICAgICAgLy8vPCB0aGUgbnVtYmVyIG9mIHRleHQgbGluZXMK ICAgICB1aW50MzJfdCAqdGFiX2NsdXN0ZXJzOyAgICAgICAgIC8vLzwgdGhlIHBvc2l0aW9uIG9m IHRhYiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0CkBAIC0zMjIsNiArMzI3LDggQEAgc3RhdGljIGNv bnN0IEFWT3B0aW9uIGRyYXd0ZXh0X29wdGlvbnNbXT0gewogICAgIHsiZm9udHNpemUiLCAgICAg ICAic2V0IGZvbnQgc2l6ZSIsICAgICAgICAgT0ZGU0VUKGZvbnRzaXplX2V4cHIpLCAgICAgIEFW X09QVF9UWVBFX1NUUklORywgey5zdHI9TlVMTH0sICAwLCAwLCBGTEFHU30sCiAgICAgeyJ4Iiwg ICAgICAgICAgICAgICJzZXQgeCBleHByZXNzaW9uIiwgICAgICBPRkZTRVQoeF9leHByKSwgICAg ICAgICAgICAgQVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0cj0iMCJ9LCAgIDAsIDAsIEZMQUdTfSwK ICAgICB7InkiLCAgICAgICAgICAgICAgInNldCB5IGV4cHJlc3Npb24iLCAgICAgIE9GRlNFVCh5 X2V4cHIpLCAgICAgICAgICAgICBBVl9PUFRfVFlQRV9TVFJJTkcsIHsuc3RyPSIwIn0sICAgMCwg MCwgRkxBR1N9LAorICAgIHsiYm94dyIsICAgICAgICAgICAic2V0IGJveCB3aWR0aCIsICAgICAg ICAgT0ZGU0VUKGJveHcpLCAgICAgICAgICAgICAgIEFWX09QVF9UWVBFX0lOVCwgICAgey5pNjQ9 MH0sICAgICAwLCBJTlRfTUFYLCBGTEFHU30sCisgICAgeyJib3hoIiwgICAgICAgICAgICJzZXQg Ym94IGhlaWdodCIsICAgICAgICBPRkZTRVQoYm94aCksICAgICAgICAgICAgICAgQVZfT1BUX1RZ UEVfSU5ULCAgICB7Lmk2ND0wfSwgICAgIDAsIElOVF9NQVgsIEZMQUdTfSwKICAgICB7InNoYWRv d3giLCAgICAgICAgInNldCBzaGFkb3cgeCBvZmZzZXQiLCAgIE9GRlNFVChzaGFkb3d4KSwgICAg ICAgICAgICBBVl9PUFRfVFlQRV9JTlQsICAgIHsuaTY0PTB9LCAgICAgSU5UX01JTiwgSU5UX01B WCwgRkxBR1N9LAogICAgIHsic2hhZG93eSIsICAgICAgICAic2V0IHNoYWRvdyB5IG9mZnNldCIs ICAgT0ZGU0VUKHNoYWRvd3kpLCAgICAgICAgICAgIEFWX09QVF9UWVBFX0lOVCwgICAgey5pNjQ9 MH0sICAgICBJTlRfTUlOLCBJTlRfTUFYLCBGTEFHU30sCiAgICAgeyJib3JkZXJ3IiwgICAgICAg ICJzZXQgYm9yZGVyIHdpZHRoIiwgICAgICBPRkZTRVQoYm9yZGVydyksICAgICAgICAgICAgQVZf T1BUX1RZUEVfSU5ULCAgICB7Lmk2ND0wfSwgICAgIElOVF9NSU4sIElOVF9NQVgsIEZMQUdTfSwK QEAgLTE0NzMsOCArMTQ4MCw4IEBAIHN0YXRpYyBpbnQgZHJhd19nbHlwaHMoRHJhd1RleHRDb250 ZXh0ICpzLCBBVkZyYW1lICpmcmFtZSwKICAgICBGVF9CaXRtYXBHbHlwaCBiX2dseXBoOwogICAg IGludCBjbGlwX3ggPSAwLCBjbGlwX3kgPSAwOwogCi0gICAgY2xpcF94ID0gRkZNSU4obWV0cmlj cy0+cmVjdF94ICsgbWV0cmljcy0+d2lkdGggKyBzLT5iYl9yaWdodCwgZnJhbWUtPndpZHRoKTsK LSAgICBjbGlwX3kgPSBGRk1JTihtZXRyaWNzLT5yZWN0X3kgKyBtZXRyaWNzLT5oZWlnaHQgKyBz LT5iYl9ib3R0b20sIGZyYW1lLT5oZWlnaHQpOworICAgIGNsaXBfeCA9IEZGTUlOKG1ldHJpY3Mt PnJlY3RfeCArIHMtPmJveF93aWR0aCArIHMtPmJiX3JpZ2h0LCBmcmFtZS0+d2lkdGgpOworICAg IGNsaXBfeSA9IEZGTUlOKG1ldHJpY3MtPnJlY3RfeSArIHMtPmJveF9oZWlnaHQgKyBzLT5iYl9i b3R0b20sIGZyYW1lLT5oZWlnaHQpOwogCiAgICAgZm9yIChsID0gMDsgbCA8IHMtPmxpbmVfY291 bnQ7ICsrbCkgewogICAgICAgICBUZXh0TGluZSAqbGluZSA9ICZzLT5saW5lc1tsXTsKQEAgLTE5 MDcsNiArMTkxNCw5IEBAIHN0YXRpYyBpbnQgZHJhd190ZXh0KEFWRmlsdGVyQ29udGV4dCAqY3R4 LCBBVkZyYW1lICpmcmFtZSkKICAgICBtZXRyaWNzLnJlY3RfeCA9IHMtPng7CiAgICAgbWV0cmlj cy5yZWN0X3kgPSBzLT55OwogCisgICAgcy0+Ym94X3dpZHRoID0gcy0+Ym94dyA9PSAwID8gbWV0 cmljcy53aWR0aCA6IHMtPmJveHc7CisgICAgcy0+Ym94X2hlaWdodCA9IHMtPmJveGggPT0gMCA/ IG1ldHJpY3MuaGVpZ2h0IDogcy0+Ym94aDsKKwogICAgIGlmICghcy0+ZHJhd19ib3gpIHsKICAg ICAgICAgLy8gQ3JlYXRlIGEgYm9yZGVyIGZvciB0aGUgY2xpcHBpbmcgcmVnaW9uIHRvIHRha2Ug aW50byBhY2NvdW50IHN1YnBpeGVsCiAgICAgICAgIC8vIGVycm9ycyBpbiB0ZXh0IG1lYXN1cmVt ZW50IGFuZCBlZmZlY3RzLgpAQCAtMTkyMCwxNiArMTkzMCwxNiBAQCBzdGF0aWMgaW50IGRyYXdf dGV4dChBVkZpbHRlckNvbnRleHQgKmN0eCwgQVZGcmFtZSAqZnJhbWUpCiAgICAgLyogQ2hlY2sg aWYgdGhlIHdob2xlIGJveCBpcyBvdXQgb2YgdGhlIGZyYW1lICovCiAgICAgaXNfb3V0c2lkZSA9 IG1ldHJpY3MucmVjdF94IC0gcy0+YmJfbGVmdCA+PSB3aWR0aCB8fAogICAgICAgICAgICAgICAg ICAgICBtZXRyaWNzLnJlY3RfeSAtIHMtPmJiX3RvcCA+PSBoZWlnaHQgfHwKLSAgICAgICAgICAg ICAgICAgICAgbWV0cmljcy5yZWN0X3ggKyBtZXRyaWNzLndpZHRoICsgcy0+YmJfcmlnaHQgPD0g MCB8fAotICAgICAgICAgICAgICAgICAgICBtZXRyaWNzLnJlY3RfeSArIG1ldHJpY3MuaGVpZ2h0 ICsgcy0+YmJfYm90dG9tIDw9IDA7CisgICAgICAgICAgICAgICAgICAgIG1ldHJpY3MucmVjdF94 ICsgcy0+Ym94X3dpZHRoICsgcy0+YmJfcmlnaHQgPD0gMCB8fAorICAgICAgICAgICAgICAgICAg ICBtZXRyaWNzLnJlY3RfeSArIHMtPmJveF9oZWlnaHQgKyBzLT5iYl9ib3R0b20gPD0gMDsKIAog ICAgIGlmICghaXNfb3V0c2lkZSkgewogICAgICAgICAvKiBkcmF3IGJveCAqLwogICAgICAgICBp ZiAocy0+ZHJhd19ib3gpIHsKICAgICAgICAgICAgIHJlY194ID0gbWV0cmljcy5yZWN0X3ggLSBz LT5iYl9sZWZ0OwogICAgICAgICAgICAgcmVjX3kgPSBtZXRyaWNzLnJlY3RfeSAtIHMtPmJiX3Rv cDsKLSAgICAgICAgICAgIHJlY193aWR0aCA9IG1ldHJpY3Mud2lkdGggKyBzLT5iYl9yaWdodCAr IHMtPmJiX2xlZnQ7Ci0gICAgICAgICAgICByZWNfaGVpZ2h0ID0gbWV0cmljcy5oZWlnaHQgKyBz LT5iYl9ib3R0b20gKyBzLT5iYl90b3A7CisgICAgICAgICAgICByZWNfd2lkdGggPSBzLT5ib3hf d2lkdGggKyBzLT5iYl9yaWdodCArIHMtPmJiX2xlZnQ7CisgICAgICAgICAgICByZWNfaGVpZ2h0 ID0gcy0+Ym94X2hlaWdodCArIHMtPmJiX2JvdHRvbSArIHMtPmJiX3RvcDsKICAgICAgICAgICAg IGZmX2JsZW5kX3JlY3RhbmdsZSgmcy0+ZGMsICZib3hjb2xvciwKICAgICAgICAgICAgICAgICBm cmFtZS0+ZGF0YSwgZnJhbWUtPmxpbmVzaXplLCB3aWR0aCwgaGVpZ2h0LAogICAgICAgICAgICAg ICAgIHJlY194LCByZWNfeSwgcmVjX3dpZHRoLCByZWNfaGVpZ2h0KTsKLS0gCjIuMzkuMQoK --00000000000015604505fe1a42ec Content-Type: text/x-patch; charset="US-ASCII"; name="0007-avfilter-vf_drawtext-add-y_align-option.patch" Content-Disposition: attachment; filename="0007-avfilter-vf_drawtext-add-y_align-option.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_livzfbdg1 RnJvbSAzYWMyZmUxNGFiYjM1YzUwNTlhM2Q4NjA1NmYzYTdiNTI3MjMzZmJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB5ZXRoaWUgPGtsaW1rbGltQHRpc2NhbGkuaXQ+CkRhdGU6IFdl ZCwgMTQgSnVuIDIwMjMgMTg6NTg6MzIgKzAyMDAKU3ViamVjdDogW1BBVENIIDcvOF0gYXZmaWx0 ZXIvdmZfZHJhd3RleHQ6IGFkZCB5X2FsaWduIG9wdGlvbgoKVGhlIG5ldyB5X2FsaWduIG9wdGlv biBzcGVjaWZpZXMgaWYgdGhlIHVzZXIgcHJvdmlkZWQgeSB2YWx1ZQppcyByZWZlcnJlZCB0byB0 aGUgdG9wIG9mIHRoZSB0ZXh0LCB0byB0aGUgZm9udCBiYXNlbGluZSBvciB0byB0aGUKdG9wIG9m IHRoZSBmb250CgpTaWduZWQtb2ZmLWJ5OiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+ Ci0tLQogZG9jL2ZpbHRlcnMudGV4aSAgICAgICAgICB8IDEwICsrKysrKysrKwogbGliYXZmaWx0 ZXIvdmZfZHJhd3RleHQuYyB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kb2MvZmlsdGVycy50ZXhpIGIvZG9jL2ZpbHRlcnMudGV4aQppbmRleCAz MmMwNDBjZmUyLi5iZGFkYzhiMWVlIDEwMDY0NAotLS0gYS9kb2MvZmlsdGVycy50ZXhpCisrKyBi L2RvYy9maWx0ZXJzLnRleGkKQEAgLTEyMzM4LDYgKzEyMzM4LDE2IEBAIFRoZSB2YWx1ZSBtdXN0 IGNvbnRhaW4gZXhhY3RseSB0d28gbGV0dGVycywgb25lIGZvciB0aGUgdmVydGljYWwgYWxpZ25t ZW50IChUPXRvCiBNPW1pZGRsZSwgQj1ib3R0b20pIGFuZCBvbmUgZm9yIHRoZSBob3Jpem9udGFs IGFsaWdubWVudCAoTD1sZWZ0LCBDPWNlbnRlciwgUj1yaWdodCkuCiBQbGVhc2Ugbm90ZSB0aGF0 IHRhYiBjaGFyYWN0ZXJzIGFyZSBvbmx5IHN1cHBvcnRlZCB3aXRoIHRoZSBsZWZ0IGhvcml6b250 YWwgYWxpZ25tZW50LgogCitAaXRlbSB5X2FsaWduCitTcGVjaWZ5IHdoYXQgdGhlIEB2YXJ7eX0g dmFsdWUgaXMgcmVmZXJyZWQgdG8uIFBvc3NpYmxlIHZhbHVlcyBhcmU6CitAaXRlbWl6ZSBAYnVs bGV0CitAaXRlbSBAY29kZXt0ZXh0fSB0aGUgdG9wIG9mIHRoZSBoaWdoZXN0IGdseXBoIG9mIHRo ZSBmaXJzdCB0ZXh0IGxpbmUgaXMgcGxhY2VkIGF0IEB2YXJ7eX0KK0BpdGVtIEBjb2Rle2Jhc2Vs aW5lfSB0aGUgYmFzZWxpbmUgb2YgdGhlIGZpcnN0IHRleHQgbGluZSBpcyBwbGFjZWQgYXQgQHZh cnt5fQorQGl0ZW0gQGNvZGV7Zm9udH0gdGhlIGJhc2VsaW5lIG9mIHRoZSBmaXJzdCB0ZXh0IGxp bmUgaXMgcGxhY2VkIGF0IEB2YXJ7eX0gcGx1cyB0aGUKKyAgICBhc2NlbnQgKGluIHBpeGVscykg ZGVmaW5lZCBpbiB0aGUgZm9udCBtZXRyaWNzCitAZW5kIGl0ZW1pemUKK1RoZSBkZWZhdWx0IHZh bHVlIG9mIEB2YXJ7eV9hbGlnbn0gaXMgInRleHQiIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5 LgorCiBAaXRlbSBib3JkZXJ3CiBTZXQgdGhlIHdpZHRoIG9mIHRoZSBib3JkZXIgdG8gYmUgZHJh d24gYXJvdW5kIHRoZSB0ZXh0IHVzaW5nIEB2YXJ7Ym9yZGVyY29sb3J9LgogVGhlIGRlZmF1bHQg dmFsdWUgb2YgQHZhcntib3JkZXJ3fSBpcyAwLgpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvdmZf ZHJhd3RleHQuYyBiL2xpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMKaW5kZXggZTE0NzE5Njg0NC4u NTliYTNlNDBjMCAxMDA2NDQKLS0tIGEvbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYworKysgYi9s aWJhdmZpbHRlci92Zl9kcmF3dGV4dC5jCkBAIC0xNzEsNiArMTcxLDEyIEBAIGVudW0gZXhwYW5z aW9uX21vZGUgewogICAgIEVYUF9TVFJGVElNRSwKIH07CiAKK2VudW0geV9hbGlnbm1lbnQgewor ICAgIFlBX1RFWFQsCisgICAgWUFfQkFTRUxJTkUsCisgICAgWUFfRk9OVCwKK307CisKIHR5cGVk ZWYgc3RydWN0IEhhcmZidXp6RGF0YSB7CiAgICAgaGJfYnVmZmVyX3QqIGJ1ZjsKICAgICBoYl9m b250X3QqIGZvbnQ7CkBAIC0zMTAsNiArMzE2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgRHJhd1RleHRD b250ZXh0IHsKICAgICBpbnQgYm94dzsgICAgICAgICAgICAgICAgICAgICAgIC8vLzwgdGhlIHZh bHVlIG9mIHRoZSBib3h3IHBhcmFtZXRlcgogICAgIGludCBib3hoOyAgICAgICAgICAgICAgICAg ICAgICAgLy8vPCB0aGUgdmFsdWUgb2YgdGhlIGJveGggcGFyYW1ldGVyCiAgICAgdWludDhfdCAq dGV4dF9hbGlnbjsgICAgICAgICAgICAvLy88IHRoZSBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCB0 ZXh0IGFsaWdubWVudAorICAgIGludCB5X2FsaWduOyAgICAgICAgICAgICAgICAgICAgLy8vPCB0 aGUgdmFsdWUgb2YgdGhlIHlfYWxpZ24gcGFyYW1ldGVyCiAKICAgICBUZXh0TGluZSAqbGluZXM7 ICAgICAgICAgICAgICAgIC8vLzwgY29tcHV0ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGV4dCBsaW5l cwogICAgIGludCBsaW5lX2NvdW50OyAgICAgICAgICAgICAgICAgLy8vPCB0aGUgbnVtYmVyIG9m IHRleHQgbGluZXMKQEAgLTM1Myw2ICszNjAsMTAgQEAgc3RhdGljIGNvbnN0IEFWT3B0aW9uIGRy YXd0ZXh0X29wdGlvbnNbXT0gewogICAgICAgICB7Im5vbmUiLCAgICAgInNldCBubyBleHBhbnNp b24iLCAgICAgICAgICAgICAgICAgICAgT0ZGU0VUKGV4cF9tb2RlKSwgQVZfT1BUX1RZUEVfQ09O U1QsIHsuaTY0PUVYUF9OT05FfSwgICAgIDAsIDAsIEZMQUdTLCAiZXhwYW5zaW9uIn0sCiAgICAg ICAgIHsibm9ybWFsIiwgICAic2V0IG5vcm1hbCBleHBhbnNpb24iLCAgICAgICAgICAgICAgICBP RkZTRVQoZXhwX21vZGUpLCBBVl9PUFRfVFlQRV9DT05TVCwgey5pNjQ9RVhQX05PUk1BTH0sICAg MCwgMCwgRkxBR1MsICJleHBhbnNpb24ifSwKICAgICAgICAgeyJzdHJmdGltZSIsICJzZXQgc3Ry ZnRpbWUgZXhwYW5zaW9uIChkZXByZWNhdGVkKSIsIE9GRlNFVChleHBfbW9kZSksIEFWX09QVF9U WVBFX0NPTlNULCB7Lmk2ND1FWFBfU1RSRlRJTUV9LCAwLCAwLCBGTEFHUywgImV4cGFuc2lvbiJ9 LAorICAgIHsieV9hbGlnbiIsICAgInNldCB0aGUgeSBhbGlnbm1lbnQiLCAgICBPRkZTRVQoeV9h bGlnbiksIEFWX09QVF9UWVBFX0lOVCwgIHsuaTY0PVlBX1RFWFR9LCAwLCAyLCBGTEFHUywgInlf YWxpZ24ifSwKKyAgICAgICAgeyJ0ZXh0IiwgICAgICJ5IGlzIHJlZmVycmVkIHRvIHRoZSB0b3Ag b2YgdGhlIGZpcnN0IHRleHQgbGluZSIsIE9GRlNFVCh5X2FsaWduKSwgQVZfT1BUX1RZUEVfQ09O U1QsIHsuaTY0PVlBX1RFWFR9LCAgICAgMCwgMCwgRkxBR1MsICJ5X2FsaWduIn0sCisgICAgICAg IHsiYmFzZWxpbmUiLCAieSBpcyByZWZlcnJlZCB0byB0aGUgYmFzZWxpbmUgb2YgdGhlIGZpcnN0 IGxpbmUiLCBPRkZTRVQoeV9hbGlnbiksIEFWX09QVF9UWVBFX0NPTlNULCB7Lmk2ND1ZQV9CQVNF TElORX0sIDAsIDAsIEZMQUdTLCAieV9hbGlnbiJ9LAorICAgICAgICB7ImZvbnQiLCAgICAgInkg aXMgcmVmZXJyZWQgdG8gdGhlIGZvbnQgZGVmaW5lZCBsaW5lIG1ldHJpY3MiLCAgT0ZGU0VUKHlf YWxpZ24pLCBBVl9PUFRfVFlQRV9DT05TVCwgey5pNjQ9WUFfRk9OVH0sICAgICAwLCAwLCBGTEFH UywgInlfYWxpZ24ifSwKIAogICAgIHsidGltZWNvZGUiLCAgICAgICAgInNldCBpbml0aWFsIHRp bWVjb2RlIiwgICAgICAgICAgICAgT0ZGU0VUKHRjX29wdF9zdHJpbmcpLCBBVl9PUFRfVFlQRV9T VFJJTkcsICAgey5zdHI9TlVMTH0sIDAsIDAsIEZMQUdTfSwKICAgICB7InRjMjRobWF4IiwgICAg ICAgICJzZXQgMjQgaG91cnMgbWF4ICh0aW1lY29kZSBvbmx5KSIsIE9GRlNFVCh0YzI0aG1heCks ICAgICAgQVZfT1BUX1RZUEVfQk9PTCwgICAgIHsuaTY0PTB9LCAgICAwLCAxLCBGTEFHU30sCkBA IC05NTgsMTEgKzk2OSwxMyBAQCBzdGF0aWMgYXZfY29sZCBpbnQgaW5pdChBVkZpbHRlckNvbnRl eHQgKmN0eCkKICAgICBpZiAoKGVyciA9IHVwZGF0ZV9mb250c2l6ZShjdHgpKSA8IDApCiAgICAg ICAgIHJldHVybiBlcnI7CiAKKyAgICAvLyBBbHdheXMgaW5pdCB0aGUgc3Ryb2tlciwgbWF5IGJl IG5lZWRlZCBpZiBib3JkZXJ3IGlzIHNldCB2aWEgY29tbWFuZAorICAgIGlmIChGVF9TdHJva2Vy X05ldyhzLT5saWJyYXJ5LCAmcy0+c3Ryb2tlcikpIHsKKyAgICAgICAgYXZfbG9nKGN0eCwgQVZf TE9HX0VSUk9SLCAiQ291bGQgbm90IGluaXQgRlQgc3Ryb2tlclxuIik7CisgICAgICAgIHJldHVy biBBVkVSUk9SX0VYVEVSTkFMOworICAgIH0KKwogICAgIGlmIChzLT5ib3JkZXJ3KSB7Ci0gICAg ICAgIGlmIChGVF9TdHJva2VyX05ldyhzLT5saWJyYXJ5LCAmcy0+c3Ryb2tlcikpIHsKLSAgICAg ICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19FUlJPUiwgIkNvdWx0IG5vdCBpbml0IEZUIHN0cm9r ZXJcbiIpOwotICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfRVhURVJOQUw7Ci0gICAgICAgIH0K ICAgICAgICAgRlRfU3Ryb2tlcl9TZXQocy0+c3Ryb2tlciwgcy0+Ym9yZGVydyA8PCA2LCBGVF9T VFJPS0VSX0xJTkVDQVBfUk9VTkQsCiAgICAgICAgICAgICAgICAgICAgICAgIEZUX1NUUk9LRVJf TElORUpPSU5fUk9VTkQsIDApOwogICAgIH0KQEAgLTE2MzQsNyArMTY0Nyw2IEBAIHN0YXRpYyBp bnQgbWVhc3VyZV90ZXh0KEFWRmlsdGVyQ29udGV4dCAqY3R4LCBUZXh0TWV0cmljcyAqbWV0cmlj cykKICAgICBpbnQgbGluZV9jb3VudCA9IDA7CiAgICAgdWludDMyX3QgY29kZSA9IDA7CiAgICAg R2x5cGggKmdseXBoID0gTlVMTDsKLSAgICBpbnQgaGVpZ2h0NjQ7CiAKICAgICBpbnQgaSwgdGFi X2lkeCA9IDAsIGxhc3RfdGFiX2lkeCA9IDAsIGxpbmVfb2Zmc2V0ID0gMDsKICAgICBjaGFyKiBw OwpAQCAtMTc1MywxMCArMTc2NSwxMyBAQCBjb250aW51ZV9vbl9mYWlsZWQyOgogICAgIG1ldHJp Y3MtPmxpbmVfaGVpZ2h0NjQgPSBzLT5mYWNlLT5zaXplLT5tZXRyaWNzLmhlaWdodDsKIAogICAg IG1ldHJpY3MtPndpZHRoID0gUE9TX0NFSUwod2lkdGg2NCwgNjQpOwotICAgIGhlaWdodDY0ID0g KG1ldHJpY3MtPmxpbmVfaGVpZ2h0NjQgKyBzLT5saW5lX3NwYWNpbmcgKiA2NCkgKgotICAgICAg ICAoRkZNQVgoMCwgbGluZV9jb3VudCAtIDEpKSArIGZpcnN0X21heF95NjQgLSBjdXJfbWluX3k2 NDsKLSAgICBtZXRyaWNzLT5oZWlnaHQgPSBQT1NfQ0VJTChoZWlnaHQ2NCwgNjQpOwotCisgICAg aWYgKHMtPnlfYWxpZ24gPT0gWUFfRk9OVCkgeworICAgICAgICBtZXRyaWNzLT5oZWlnaHQgPSBQ T1NfQ0VJTChtZXRyaWNzLT5saW5lX2hlaWdodDY0ICogbGluZV9jb3VudCwgNjQpOworICAgIH0g ZWxzZSB7CisgICAgICAgIGludCBoZWlnaHQ2NCA9IChtZXRyaWNzLT5saW5lX2hlaWdodDY0ICsg cy0+bGluZV9zcGFjaW5nICogNjQpICoKKyAgICAgICAgICAgIChGRk1BWCgwLCBsaW5lX2NvdW50 IC0gMSkpICsgZmlyc3RfbWF4X3k2NCAtIGN1cl9taW5feTY0OworICAgICAgICBtZXRyaWNzLT5o ZWlnaHQgPSBQT1NfQ0VJTChoZWlnaHQ2NCwgNjQpOworICAgIH0KICAgICBtZXRyaWNzLT5vZmZz ZXRfdG9wNjQgPSBmaXJzdF9tYXhfeTY0OwogICAgIG1ldHJpY3MtPm9mZnNldF9yaWdodDY0ID0g bGFzdF9tYXhfeDY0OwogICAgIG1ldHJpY3MtPm9mZnNldF9ib3R0b202NCA9IGN1cl9taW5feTY0 OwpAQCAtMTkyOSw3ICsxOTQ0LDEzIEBAIHN0YXRpYyBpbnQgZHJhd190ZXh0KEFWRmlsdGVyQ29u dGV4dCAqY3R4LCBBVkZyYW1lICpmcmFtZSkKICAgICB4ID0gMDsKICAgICB5ID0gMDsKICAgICB4 NjQgPSAoaW50KShzLT54ICogNjQuKTsKLSAgICB5NjQgPSAoaW50KShzLT55ICogNjQuICsgbWV0 cmljcy5vZmZzZXRfdG9wNjQpOworICAgIGlmIChzLT55X2FsaWduID09IFlBX0ZPTlQpIHsKKyAg ICAgICAgeTY0ID0gKGludCkocy0+eSAqIDY0LiArIHMtPmZhY2UtPnNpemUtPm1ldHJpY3MuYXNj ZW5kZXIpOworICAgIH0gZWxzZSBpZiAocy0+eV9hbGlnbiA9PSBZQV9CQVNFTElORSkgeworICAg ICAgICB5NjQgPSAoaW50KShzLT55ICogNjQuKTsKKyAgICB9IGVsc2UgeworICAgICAgICB5NjQg PSAoaW50KShzLT55ICogNjQuICsgbWV0cmljcy5vZmZzZXRfdG9wNjQpOworICAgIH0KIAogICAg IGZvciAoaW50IGwgPSAwOyBsIDwgcy0+bGluZV9jb3VudDsgKytsKSB7CiAgICAgICAgIFRleHRM aW5lICpsaW5lID0gJnMtPmxpbmVzW2xdOwpAQCAtMTk3Myw3ICsxOTk0LDExIEBAIHN0YXRpYyBp bnQgZHJhd190ZXh0KEFWRmlsdGVyQ29udGV4dCAqY3R4LCBBVkZyYW1lICpmcmFtZSkKICAgICB9 CiAKICAgICBtZXRyaWNzLnJlY3RfeCA9IHMtPng7Ci0gICAgbWV0cmljcy5yZWN0X3kgPSBzLT55 OworICAgIGlmIChzLT55X2FsaWduID09IFlBX0JBU0VMSU5FKSB7CisgICAgICAgIG1ldHJpY3Mu cmVjdF95ID0gcy0+eSAtIG1ldHJpY3Mub2Zmc2V0X3RvcDY0IC8gNjQ7CisgICAgfSBlbHNlIHsK KyAgICAgICAgbWV0cmljcy5yZWN0X3kgPSBzLT55OworICAgIH0KIAogICAgIHMtPmJveF93aWR0 aCA9IHMtPmJveHcgPT0gMCA/IG1ldHJpY3Mud2lkdGggOiBzLT5ib3h3OwogICAgIHMtPmJveF9o ZWlnaHQgPSBzLT5ib3hoID09IDAgPyBtZXRyaWNzLmhlaWdodCA6IHMtPmJveGg7Ci0tIAoyLjM5 LjEKCg== --00000000000015604505fe1a42ec Content-Type: text/x-patch; charset="US-ASCII"; name="0008-avfilter-vf_drawtext-add-support-for-commands.patch" Content-Disposition: attachment; filename="0008-avfilter-vf_drawtext-add-support-for-commands.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_livzfb8j0 RnJvbSA1MDBmY2VhMWY2YzFiYmNlZjQ3NmMwZDYyZDNkYzg1MDQyNmRjYzZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB5ZXRoaWUgPGtsaW1rbGltQHRpc2NhbGkuaXQ+CkRhdGU6IEZy aSwgMjYgTWF5IDIwMjMgMTM6MDY6NDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDgvOF0gYXZmaWx0 ZXIvdmZfZHJhd3RleHQ6IGFkZCBzdXBwb3J0IGZvciBjb21tYW5kcwoKU2lnbmVkLW9mZi1ieTog UGF1bCBCIE1haG9sIDxvbmVtZGFAZ21haWwuY29tPgotLS0KIGRvYy9maWx0ZXJzLnRleGkgICAg ICAgICAgfCAyNSArKysrKysrKysrKy0KIGxpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMgfCA4MiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwg ODQgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2ZpbHRl cnMudGV4aSBiL2RvYy9maWx0ZXJzLnRleGkKaW5kZXggYmRhZGM4YjFlZS4uMjQwOTA4ZjlhZCAx MDA2NDQKLS0tIGEvZG9jL2ZpbHRlcnMudGV4aQorKysgYi9kb2MvZmlsdGVycy50ZXhpCkBAIC0x MjczOSwxMSArMTI3MzksMzQgQEAgRnVsbCBmaWx0ZXIgaW52b2NhdGlvbiB3aXRoIHNlbmRjbWQg d291bGQgbG9vayBsaWtlIHRoaXM6CiBAZXhhbXBsZQogc2VuZGNtZD1jPSc1Ni4wIGRyYXd0ZXh0 IHJlaW5pdCBmb250c2l6ZT01Nlw6Zm9udGNvbG9yPWdyZWVuXDp0ZXh0PUhlbGxvXFwgV29ybGQn CiBAZW5kIGV4YW1wbGUKLUBlbmQgdGFibGUKIAogSWYgdGhlIGVudGlyZSBhcmd1bWVudCBjYW4n dCBiZSBwYXJzZWQgb3IgYXBwbGllZCBhcyB2YWxpZCB2YWx1ZXMgdGhlbiB0aGUgZmlsdGVyIHdp bGwKIGNvbnRpbnVlIHdpdGggaXRzIGV4aXN0aW5nIHBhcmFtZXRlcnMuCiAKK0BlbmQgdGFibGUK KworVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSBhbHNvIHN1cHBvcnRlZCBhcyBAcmVme2NvbW1h bmRzfToKKworQGl0ZW1pemUgQGJ1bGxldAorQGl0ZW0geAorQGl0ZW0geQorQGl0ZW0gYWxwaGEK K0BpdGVtIGZvbnRzaXplCitAaXRlbSBmb250Y29sb3IKK0BpdGVtIGJveGNvbG9yCitAaXRlbSBi b3JkZXJjb2xvcgorQGl0ZW0gc2hhZG93Y29sb3IKK0BpdGVtIGJveAorQGl0ZW0gYm94dworQGl0 ZW0gYm94aAorQGl0ZW0gYm94Ym9yZGVydworQGl0ZW0gbGluZV9zcGFjaW5nCitAaXRlbSB0ZXh0 X2FsaWduCitAaXRlbSBzaGFkb3d4CitAaXRlbSBzaGFkb3d5CitAaXRlbSBib3JkZXJ3CitAZW5k IGl0ZW1pemUKKwogQHN1YnNlY3Rpb24gRXhhbXBsZXMKIAogQGl0ZW1pemUKZGlmZiAtLWdpdCBh L2xpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMgYi9saWJhdmZpbHRlci92Zl9kcmF3dGV4dC5jCmlu ZGV4IDU5YmEzZTQwYzAuLjRjNWM1ZDhiZDYgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZmX2Ry YXd0ZXh0LmMKKysrIGIvbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYwpAQCAtMzI4LDI5ICszMjgs MzAgQEAgdHlwZWRlZiBzdHJ1Y3QgRHJhd1RleHRDb250ZXh0IHsKIAogI2RlZmluZSBPRkZTRVQo eCkgb2Zmc2V0b2YoRHJhd1RleHRDb250ZXh0LCB4KQogI2RlZmluZSBGTEFHUyBBVl9PUFRfRkxB R19GSUxURVJJTkdfUEFSQU18QVZfT1BUX0ZMQUdfVklERU9fUEFSQU0KKyNkZWZpbmUgVEZMQUdT IEFWX09QVF9GTEFHX0ZJTFRFUklOR19QQVJBTXxBVl9PUFRfRkxBR19WSURFT19QQVJBTXxBVl9P UFRfRkxBR19SVU5USU1FX1BBUkFNCiAKIHN0YXRpYyBjb25zdCBBVk9wdGlvbiBkcmF3dGV4dF9v cHRpb25zW109IHsKICAgICB7ImZvbnRmaWxlIiwgICAgICAgInNldCBmb250IGZpbGUiLCAgICAg ICAgIE9GRlNFVChmb250ZmlsZSksICAgICAgICAgICBBVl9PUFRfVFlQRV9TVFJJTkcsIHsuc3Ry PU5VTEx9LCAgMCwgMCwgRkxBR1N9LAotICAgIHsidGV4dCIsICAgICAgICAgICAic2V0IHRleHQi LCAgICAgICAgICAgICAgT0ZGU0VUKHRleHQpLCAgICAgICAgICAgICAgIEFWX09QVF9UWVBFX1NU UklORywgey5zdHI9TlVMTH0sICAwLCAwLCBGTEFHU30sCisgICAgeyJ0ZXh0IiwgICAgICAgICAg ICJzZXQgdGV4dCIsICAgICAgICAgICAgICBPRkZTRVQodGV4dCksICAgICAgICAgICAgICAgQVZf T1BUX1RZUEVfU1RSSU5HLCB7LnN0cj1OVUxMfSwgIDAsIDAsIFRGTEFHU30sCiAgICAgeyJ0ZXh0 ZmlsZSIsICAgICAgICJzZXQgdGV4dCBmaWxlIiwgICAgICAgICBPRkZTRVQodGV4dGZpbGUpLCAg ICAgICAgICAgQVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0cj1OVUxMfSwgIDAsIDAsIEZMQUdTfSwK LSAgICB7ImZvbnRjb2xvciIsICAgICAgInNldCBmb3JlZ3JvdW5kIGNvbG9yIiwgIE9GRlNFVChm b250Y29sb3IucmdiYSksICAgICBBVl9PUFRfVFlQRV9DT0xPUiwgIHsuc3RyPSJibGFjayJ9LCAw LCAwLCBGTEFHU30sCisgICAgeyJmb250Y29sb3IiLCAgICAgICJzZXQgZm9yZWdyb3VuZCBjb2xv ciIsICBPRkZTRVQoZm9udGNvbG9yLnJnYmEpLCAgICAgQVZfT1BUX1RZUEVfQ09MT1IsICB7LnN0 cj0iYmxhY2sifSwgMCwgMCwgVEZMQUdTfSwKICAgICB7ImZvbnRjb2xvcl9leHByIiwgInNldCBm b3JlZ3JvdW5kIGNvbG9yIGV4cHJlc3Npb24iLCBPRkZTRVQoZm9udGNvbG9yX2V4cHIpLCBBVl9P UFRfVFlQRV9TVFJJTkcsIHsuc3RyPSIifSwgMCwgMCwgRkxBR1N9LAotICAgIHsiYm94Y29sb3Ii LCAgICAgICAic2V0IGJveCBjb2xvciIsICAgICAgICAgT0ZGU0VUKGJveGNvbG9yLnJnYmEpLCAg ICAgIEFWX09QVF9UWVBFX0NPTE9SLCAgey5zdHI9IndoaXRlIn0sIDAsIDAsIEZMQUdTfSwKLSAg ICB7ImJvcmRlcmNvbG9yIiwgICAgInNldCBib3JkZXIgY29sb3IiLCAgICAgIE9GRlNFVChib3Jk ZXJjb2xvci5yZ2JhKSwgICBBVl9PUFRfVFlQRV9DT0xPUiwgIHsuc3RyPSJibGFjayJ9LCAwLCAw LCBGTEFHU30sCi0gICAgeyJzaGFkb3djb2xvciIsICAgICJzZXQgc2hhZG93IGNvbG9yIiwgICAg ICBPRkZTRVQoc2hhZG93Y29sb3IucmdiYSksICAgQVZfT1BUX1RZUEVfQ09MT1IsICB7LnN0cj0i YmxhY2sifSwgMCwgMCwgRkxBR1N9LAotICAgIHsiYm94IiwgICAgICAgICAgICAic2V0IGJveCIs ICAgICAgICAgICAgICAgT0ZGU0VUKGRyYXdfYm94KSwgICAgICAgICAgIEFWX09QVF9UWVBFX0JP T0wsICAgey5pNjQ9MH0sICAgICAwLCAxLCBGTEFHU30sCi0gICAgeyJib3hib3JkZXJ3IiwgICAg ICJzZXQgYm94IGJvcmRlcnMgd2lkdGgiLCBPRkZTRVQoYm94Ym9yZGVydyksICAgICAgICAgQVZf T1BUX1RZUEVfU1RSSU5HLCB7LnN0cj0iMCJ9LCAgIDAsIDAsIEZMQUdTfSwKLSAgICB7ImxpbmVf c3BhY2luZyIsICAgInNldCBsaW5lIHNwYWNpbmcgaW4gcGl4ZWxzIiwgT0ZGU0VUKGxpbmVfc3Bh Y2luZyksICBBVl9PUFRfVFlQRV9JTlQsICAgIHsuaTY0PTB9LCAgICAgSU5UX01JTiwgSU5UX01B WCwgRkxBR1N9LAotICAgIHsiZm9udHNpemUiLCAgICAgICAic2V0IGZvbnQgc2l6ZSIsICAgICAg ICAgT0ZGU0VUKGZvbnRzaXplX2V4cHIpLCAgICAgIEFWX09QVF9UWVBFX1NUUklORywgey5zdHI9 TlVMTH0sICAwLCAwLCBGTEFHU30sCi0gICAgeyJ0ZXh0X2FsaWduIiwgICAgICJzZXQgdGV4dCBh bGlnbm1lbnQiLCAgICBPRkZTRVQodGV4dF9hbGlnbiksICAgICAgICAgQVZfT1BUX1RZUEVfU1RS SU5HLCB7LnN0cj0iVEwifSwgIDAsIDAsIEZMQUdTfSwKLSAgICB7IngiLCAgICAgICAgICAgICAg InNldCB4IGV4cHJlc3Npb24iLCAgICAgIE9GRlNFVCh4X2V4cHIpLCAgICAgICAgICAgICBBVl9P UFRfVFlQRV9TVFJJTkcsIHsuc3RyPSIwIn0sICAgMCwgMCwgRkxBR1N9LAotICAgIHsieSIsICAg ICAgICAgICAgICAic2V0IHkgZXhwcmVzc2lvbiIsICAgICAgT0ZGU0VUKHlfZXhwciksICAgICAg ICAgICAgIEFWX09QVF9UWVBFX1NUUklORywgey5zdHI9IjAifSwgICAwLCAwLCBGTEFHU30sCi0g ICAgeyJib3h3IiwgICAgICAgICAgICJzZXQgYm94IHdpZHRoIiwgICAgICAgICBPRkZTRVQoYm94 dyksICAgICAgICAgICAgICAgQVZfT1BUX1RZUEVfSU5ULCAgICB7Lmk2ND0wfSwgICAgIDAsIElO VF9NQVgsIEZMQUdTfSwKLSAgICB7ImJveGgiLCAgICAgICAgICAgInNldCBib3ggaGVpZ2h0Iiwg ICAgICAgIE9GRlNFVChib3hoKSwgICAgICAgICAgICAgICBBVl9PUFRfVFlQRV9JTlQsICAgIHsu aTY0PTB9LCAgICAgMCwgSU5UX01BWCwgRkxBR1N9LAotICAgIHsic2hhZG93eCIsICAgICAgICAi c2V0IHNoYWRvdyB4IG9mZnNldCIsICAgT0ZGU0VUKHNoYWRvd3gpLCAgICAgICAgICAgIEFWX09Q VF9UWVBFX0lOVCwgICAgey5pNjQ9MH0sICAgICBJTlRfTUlOLCBJTlRfTUFYLCBGTEFHU30sCi0g ICAgeyJzaGFkb3d5IiwgICAgICAgICJzZXQgc2hhZG93IHkgb2Zmc2V0IiwgICBPRkZTRVQoc2hh ZG93eSksICAgICAgICAgICAgQVZfT1BUX1RZUEVfSU5ULCAgICB7Lmk2ND0wfSwgICAgIElOVF9N SU4sIElOVF9NQVgsIEZMQUdTfSwKLSAgICB7ImJvcmRlcnciLCAgICAgICAgInNldCBib3JkZXIg d2lkdGgiLCAgICAgIE9GRlNFVChib3JkZXJ3KSwgICAgICAgICAgICBBVl9PUFRfVFlQRV9JTlQs ICAgIHsuaTY0PTB9LCAgICAgSU5UX01JTiwgSU5UX01BWCwgRkxBR1N9LAotICAgIHsidGFic2l6 ZSIsICAgICAgICAic2V0IHRhYiBzaXplIiwgICAgICAgICAgT0ZGU0VUKHRhYnNpemUpLCAgICAg ICAgICAgIEFWX09QVF9UWVBFX0lOVCwgICAgey5pNjQ9NH0sICAgICAwLCBJTlRfTUFYLCBGTEFH U30sCisgICAgeyJib3hjb2xvciIsICAgICAgICJzZXQgYm94IGNvbG9yIiwgICAgICAgICBPRkZT RVQoYm94Y29sb3IucmdiYSksICAgICAgQVZfT1BUX1RZUEVfQ09MT1IsICB7LnN0cj0id2hpdGUi fSwgMCwgMCwgVEZMQUdTfSwKKyAgICB7ImJvcmRlcmNvbG9yIiwgICAgInNldCBib3JkZXIgY29s b3IiLCAgICAgIE9GRlNFVChib3JkZXJjb2xvci5yZ2JhKSwgICBBVl9PUFRfVFlQRV9DT0xPUiwg IHsuc3RyPSJibGFjayJ9LCAwLCAwLCBURkxBR1N9LAorICAgIHsic2hhZG93Y29sb3IiLCAgICAi c2V0IHNoYWRvdyBjb2xvciIsICAgICAgT0ZGU0VUKHNoYWRvd2NvbG9yLnJnYmEpLCAgIEFWX09Q VF9UWVBFX0NPTE9SLCAgey5zdHI9ImJsYWNrIn0sIDAsIDAsIFRGTEFHU30sCisgICAgeyJib3gi LCAgICAgICAgICAgICJzZXQgYm94IiwgICAgICAgICAgICAgICBPRkZTRVQoZHJhd19ib3gpLCAg ICAgICAgICAgQVZfT1BUX1RZUEVfQk9PTCwgICB7Lmk2ND0wfSwgICAgIDAsIDEsIFRGTEFHU30s CisgICAgeyJib3hib3JkZXJ3IiwgICAgICJzZXQgYm94IGJvcmRlcnMgd2lkdGgiLCBPRkZTRVQo Ym94Ym9yZGVydyksICAgICAgICAgQVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0cj0iMCJ9LCAgIDAs IDAsIFRGTEFHU30sCisgICAgeyJsaW5lX3NwYWNpbmciLCAgICJzZXQgbGluZSBzcGFjaW5nIGlu IHBpeGVscyIsIE9GRlNFVChsaW5lX3NwYWNpbmcpLCAgQVZfT1BUX1RZUEVfSU5ULCAgICB7Lmk2 ND0wfSwgICAgIElOVF9NSU4sIElOVF9NQVgsIFRGTEFHU30sCisgICAgeyJmb250c2l6ZSIsICAg ICAgICJzZXQgZm9udCBzaXplIiwgICAgICAgICBPRkZTRVQoZm9udHNpemVfZXhwciksICAgICAg QVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0cj1OVUxMfSwgIDAsIDAsIFRGTEFHU30sCisgICAgeyJ0 ZXh0X2FsaWduIiwgICAgICJzZXQgdGV4dCBhbGlnbm1lbnQiLCAgICBPRkZTRVQodGV4dF9hbGln biksICAgICAgICAgQVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0cj0iVEwifSwgIDAsIDAsIFRGTEFH U30sCisgICAgeyJ4IiwgICAgICAgICAgICAgICJzZXQgeCBleHByZXNzaW9uIiwgICAgICBPRkZT RVQoeF9leHByKSwgICAgICAgICAgICAgQVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0cj0iMCJ9LCAg IDAsIDAsIFRGTEFHU30sCisgICAgeyJ5IiwgICAgICAgICAgICAgICJzZXQgeSBleHByZXNzaW9u IiwgICAgICBPRkZTRVQoeV9leHByKSwgICAgICAgICAgICAgQVZfT1BUX1RZUEVfU1RSSU5HLCB7 LnN0cj0iMCJ9LCAgIDAsIDAsIFRGTEFHU30sCisgICAgeyJib3h3IiwgICAgICAgICAgICJzZXQg Ym94IHdpZHRoIiwgICAgICAgICBPRkZTRVQoYm94dyksICAgICAgICAgICAgICAgQVZfT1BUX1RZ UEVfSU5ULCAgICB7Lmk2ND0wfSwgICAgIDAsIElOVF9NQVgsIFRGTEFHU30sCisgICAgeyJib3ho IiwgICAgICAgICAgICJzZXQgYm94IGhlaWdodCIsICAgICAgICBPRkZTRVQoYm94aCksICAgICAg ICAgICAgICAgQVZfT1BUX1RZUEVfSU5ULCAgICB7Lmk2ND0wfSwgICAgIDAsIElOVF9NQVgsIFRG TEFHU30sCisgICAgeyJzaGFkb3d4IiwgICAgICAgICJzZXQgc2hhZG93IHggb2Zmc2V0IiwgICBP RkZTRVQoc2hhZG93eCksICAgICAgICAgICAgQVZfT1BUX1RZUEVfSU5ULCAgICB7Lmk2ND0wfSwg ICAgIElOVF9NSU4sIElOVF9NQVgsIFRGTEFHU30sCisgICAgeyJzaGFkb3d5IiwgICAgICAgICJz ZXQgc2hhZG93IHkgb2Zmc2V0IiwgICBPRkZTRVQoc2hhZG93eSksICAgICAgICAgICAgQVZfT1BU X1RZUEVfSU5ULCAgICB7Lmk2ND0wfSwgICAgIElOVF9NSU4sIElOVF9NQVgsIFRGTEFHU30sCisg ICAgeyJib3JkZXJ3IiwgICAgICAgICJzZXQgYm9yZGVyIHdpZHRoIiwgICAgICBPRkZTRVQoYm9y ZGVydyksICAgICAgICAgICAgQVZfT1BUX1RZUEVfSU5ULCAgICB7Lmk2ND0wfSwgICAgIElOVF9N SU4sIElOVF9NQVgsIFRGTEFHU30sCisgICAgeyJ0YWJzaXplIiwgICAgICAgICJzZXQgdGFiIHNp emUiLCAgICAgICAgICBPRkZTRVQodGFic2l6ZSksICAgICAgICAgICAgQVZfT1BUX1RZUEVfSU5U LCAgICB7Lmk2ND00fSwgICAgIDAsIElOVF9NQVgsIFRGTEFHU30sCiAgICAgeyJiYXNldGltZSIs ICAgICAgICJzZXQgYmFzZSB0aW1lIiwgICAgICAgICBPRkZTRVQoYmFzZXRpbWUpLCAgICAgICAg ICAgQVZfT1BUX1RZUEVfSU5UNjQsICB7Lmk2ND1BVl9OT1BUU19WQUxVRX0sIElOVDY0X01JTiwg SU5UNjRfTUFYLCBGTEFHU30sCiAjaWYgQ09ORklHX0xJQkZPTlRDT05GSUcKICAgICB7ICJmb250 IiwgICAgICAgICJGb250IG5hbWUiLCAgICAgICAgICAgIE9GRlNFVChmb250KSwgICAgICAgICAg ICAgICBBVl9PUFRfVFlQRV9TVFJJTkcsIHsgLnN0ciA9ICJTYW5zIiB9LCAgICAgICAgICAgLmZs YWdzID0gRkxBR1MgfSwKQEAgLTM2MCw3ICszNjEsNyBAQCBzdGF0aWMgY29uc3QgQVZPcHRpb24g ZHJhd3RleHRfb3B0aW9uc1tdPSB7CiAgICAgICAgIHsibm9uZSIsICAgICAic2V0IG5vIGV4cGFu c2lvbiIsICAgICAgICAgICAgICAgICAgICBPRkZTRVQoZXhwX21vZGUpLCBBVl9PUFRfVFlQRV9D T05TVCwgey5pNjQ9RVhQX05PTkV9LCAgICAgMCwgMCwgRkxBR1MsICJleHBhbnNpb24ifSwKICAg ICAgICAgeyJub3JtYWwiLCAgICJzZXQgbm9ybWFsIGV4cGFuc2lvbiIsICAgICAgICAgICAgICAg IE9GRlNFVChleHBfbW9kZSksIEFWX09QVF9UWVBFX0NPTlNULCB7Lmk2ND1FWFBfTk9STUFMfSwg ICAwLCAwLCBGTEFHUywgImV4cGFuc2lvbiJ9LAogICAgICAgICB7InN0cmZ0aW1lIiwgInNldCBz dHJmdGltZSBleHBhbnNpb24gKGRlcHJlY2F0ZWQpIiwgT0ZGU0VUKGV4cF9tb2RlKSwgQVZfT1BU X1RZUEVfQ09OU1QsIHsuaTY0PUVYUF9TVFJGVElNRX0sIDAsIDAsIEZMQUdTLCAiZXhwYW5zaW9u In0sCi0gICAgeyJ5X2FsaWduIiwgICAic2V0IHRoZSB5IGFsaWdubWVudCIsICAgIE9GRlNFVCh5 X2FsaWduKSwgQVZfT1BUX1RZUEVfSU5ULCAgey5pNjQ9WUFfVEVYVH0sIDAsIDIsIEZMQUdTLCAi eV9hbGlnbiJ9LAorICAgIHsieV9hbGlnbiIsICAgInNldCB0aGUgeSBhbGlnbm1lbnQiLCAgICBP RkZTRVQoeV9hbGlnbiksIEFWX09QVF9UWVBFX0lOVCwgIHsuaTY0PVlBX1RFWFR9LCAwLCAyLCBU RkxBR1MsICJ5X2FsaWduIn0sCiAgICAgICAgIHsidGV4dCIsICAgICAieSBpcyByZWZlcnJlZCB0 byB0aGUgdG9wIG9mIHRoZSBmaXJzdCB0ZXh0IGxpbmUiLCBPRkZTRVQoeV9hbGlnbiksIEFWX09Q VF9UWVBFX0NPTlNULCB7Lmk2ND1ZQV9URVhUfSwgICAgIDAsIDAsIEZMQUdTLCAieV9hbGlnbiJ9 LAogICAgICAgICB7ImJhc2VsaW5lIiwgInkgaXMgcmVmZXJyZWQgdG8gdGhlIGJhc2VsaW5lIG9m IHRoZSBmaXJzdCBsaW5lIiwgT0ZGU0VUKHlfYWxpZ24pLCBBVl9PUFRfVFlQRV9DT05TVCwgey5p NjQ9WUFfQkFTRUxJTkV9LCAwLCAwLCBGTEFHUywgInlfYWxpZ24ifSwKICAgICAgICAgeyJmb250 IiwgICAgICJ5IGlzIHJlZmVycmVkIHRvIHRoZSBmb250IGRlZmluZWQgbGluZSBtZXRyaWNzIiwg IE9GRlNFVCh5X2FsaWduKSwgQVZfT1BUX1RZUEVfQ09OU1QsIHsuaTY0PVlBX0ZPTlR9LCAgICAg MCwgMCwgRkxBR1MsICJ5X2FsaWduIn0sCkBAIC0zNzEsNyArMzcyLDcgQEAgc3RhdGljIGNvbnN0 IEFWT3B0aW9uIGRyYXd0ZXh0X29wdGlvbnNbXT0gewogICAgIHsiciIsICAgICAgICAgICAgICAg InNldCByYXRlICh0aW1lY29kZSBvbmx5KSIsICAgICAgICAgT0ZGU0VUKHRjX3JhdGUpLCAgICAg ICBBVl9PUFRfVFlQRV9SQVRJT05BTCwgey5kYmw9MH0sICAgIDAsIElOVF9NQVgsIEZMQUdTfSwK ICAgICB7InJhdGUiLCAgICAgICAgICAgICJzZXQgcmF0ZSAodGltZWNvZGUgb25seSkiLCAgICAg ICAgIE9GRlNFVCh0Y19yYXRlKSwgICAgICAgQVZfT1BUX1RZUEVfUkFUSU9OQUwsIHsuZGJsPTB9 LCAgICAwLCBJTlRfTUFYLCBGTEFHU30sCiAgICAgeyJyZWxvYWQiLCAgICAgICAgICAicmVsb2Fk IHRleHQgZmlsZSBhdCBzcGVjaWZpZWQgZnJhbWUgaW50ZXJ2YWwiLCBPRkZTRVQocmVsb2FkKSwg QVZfT1BUX1RZUEVfSU5ULCB7Lmk2ND0wfSwgICAgMCwgSU5UX01BWCwgRkxBR1N9LAotICAgIHsi YWxwaGEiLCAgICAgICAgICAgImFwcGx5IGFscGhhIHdoaWxlIHJlbmRlcmluZyIsICAgICAgT0ZG U0VUKGFfZXhwciksICAgICAgICBBVl9PUFRfVFlQRV9TVFJJTkcsICAgey5zdHIgPSAiMSJ9LCAu ZmxhZ3MgPSBGTEFHU30sCisgICAgeyJhbHBoYSIsICAgICAgICAgICAiYXBwbHkgYWxwaGEgd2hp bGUgcmVuZGVyaW5nIiwgICAgICBPRkZTRVQoYV9leHByKSwgICAgICAgIEFWX09QVF9UWVBFX1NU UklORywgICB7LnN0ciA9ICIxIn0sIC5mbGFncyA9IFRGTEFHU30sCiAgICAgeyJmaXhfYm91bmRz IiwgICAgICAiY2hlY2sgYW5kIGZpeCB0ZXh0IGNvb3JkcyB0byBhdm9pZCBjbGlwcGluZyIsIE9G RlNFVChmaXhfYm91bmRzKSwgQVZfT1BUX1RZUEVfQk9PTCwgey5pNjQ9MH0sIDAsIDEsIEZMQUdT fSwKICAgICB7InN0YXJ0X251bWJlciIsICAgICJzdGFydCBmcmFtZSBudW1iZXIgZm9yIG4vZnJh bWVfbnVtIHZhcmlhYmxlIiwgT0ZGU0VUKHN0YXJ0X251bWJlciksIEFWX09QVF9UWVBFX0lOVCwg ey5pNjQ9MH0sIDAsIElOVF9NQVgsIEZMQUdTfSwKICAgICB7InRleHRfc291cmNlIiwgICAgICJ0 aGUgc291cmNlIG9mIHRleHQiLCBPRkZTRVQodGV4dF9zb3VyY2Vfc3RyaW5nKSwgQVZfT1BUX1RZ UEVfU1RSSU5HLCB7LnN0cj1OVUxMfSwgMCwgMSwgRkxBR1MgfSwKQEAgLTk5OCw2ICs5OTksMjMg QEAgc3RhdGljIGludCBxdWVyeV9mb3JtYXRzKEFWRmlsdGVyQ29udGV4dCAqY3R4KQogICAgIHJl dHVybiBmZl9zZXRfY29tbW9uX2Zvcm1hdHMoY3R4LCBmZl9kcmF3X3N1cHBvcnRlZF9waXhlbF9m b3JtYXRzKDApKTsKIH0KIAorc3RhdGljIGludCBnbHlwaF9lbnVfYm9yZGVyX2ZyZWUodm9pZCAq b3BhcXVlLCB2b2lkICplbGVtKQoreworICAgIEdseXBoICpnbHlwaCA9IGVsZW07CisKKyAgICBp ZiAoZ2x5cGgtPmJvcmRlcl9nbHlwaCAhPSBOVUxMKSB7CisgICAgICAgIGZvciAoaW50IHQgPSAw OyB0IDwgMTY7ICsrdCkgeworICAgICAgICAgICAgaWYgKGdseXBoLT5ib3JkZXJfYmdseXBoW3Rd ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBGVF9Eb25lX0dseXBoKChGVF9HbHlwaClnbHlw aC0+Ym9yZGVyX2JnbHlwaFt0XSk7CisgICAgICAgICAgICAgICAgZ2x5cGgtPmJvcmRlcl9iZ2x5 cGhbdF0gPSBOVUxMOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEZUX0RvbmVf R2x5cGgoZ2x5cGgtPmJvcmRlcl9nbHlwaCk7CisgICAgICAgIGdseXBoLT5ib3JkZXJfZ2x5cGgg PSBOVUxMOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBnbHlwaF9lbnVf ZnJlZSh2b2lkICpvcGFxdWUsIHZvaWQgKmVsZW0pCiB7CiAgICAgR2x5cGggKmdseXBoID0gZWxl bTsKQEAgLTExMjAsOCArMTEzOCwyOCBAQCBzdGF0aWMgaW50IGNvbW1hbmQoQVZGaWx0ZXJDb250 ZXh0ICpjdHgsIGNvbnN0IGNoYXIgKmNtZCwgY29uc3QgY2hhciAqYXJnLCBjaGFyCiAKICAgICAg ICAgY3R4LT5wcml2ID0gbmV3OwogICAgICAgICByZXR1cm4gY29uZmlnX2lucHV0KGN0eC0+aW5w dXRzWzBdKTsKLSAgICB9IGVsc2UKLSAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PU1lTKTsKKyAg ICB9IGVsc2UgeworICAgICAgICBpbnQgb2xkX2JvcmRlcncgPSBvbGQtPmJvcmRlcnc7CisgICAg ICAgIGlmICgocmV0ID0gZmZfZmlsdGVyX3Byb2Nlc3NfY29tbWFuZChjdHgsIGNtZCwgYXJnLCBy ZXMsIHJlc19sZW4sIGZsYWdzKSkgPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAg ICAgICB9CisgICAgICAgIGlmIChvbGQtPmJvcmRlcncgIT0gb2xkX2JvcmRlcncpIHsKKyAgICAg ICAgICAgIEZUX1N0cm9rZXJfU2V0KG9sZC0+c3Ryb2tlciwgb2xkLT5ib3JkZXJ3IDw8IDYsIEZU X1NUUk9LRVJfTElORUNBUF9ST1VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEZUX1NUUk9L RVJfTElORUpPSU5fUk9VTkQsIDApOworICAgICAgICAgICAgLy8gRGlzcG9zZSB0aGUgb2xkIGJv cmRlciBnbHlwaHMKKyAgICAgICAgICAgIGF2X3RyZWVfZW51bWVyYXRlKG9sZC0+Z2x5cGhzLCBO VUxMLCBOVUxMLCBnbHlwaF9lbnVfYm9yZGVyX2ZyZWUpOworICAgICAgICB9IGVsc2UgaWYgKHN0 cmNtcChjbWQsICJ0ZXh0X2FsaWduIikgPT0gMCkgeworICAgICAgICAgICAgaWYgKHZhbGlkYXRl X3RleHRfYWxpZ24ob2xkLT50ZXh0X2FsaWduKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgYXZf bG9nKGN0eCwgQVZfTE9HX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAiSW52YWxpZCBjb21t YW5kIHZhbHVlICclcycgZm9yICd0ZXh0X2FsaWduJ1xuIiwgb2xkLT50ZXh0X2FsaWduKTsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAoY21kLCAiZm9udHNpemUiKSA9 PSAwKSB7CisgICAgICAgICAgICBhdl9leHByX2ZyZWUob2xkLT5mb250c2l6ZV9wZXhwcik7Cisg ICAgICAgICAgICBvbGQtPmZvbnRzaXplX3BleHByID0gTlVMTDsKKyAgICAgICAgICAgIG9sZC0+ YmxhbmtfYWR2YW5jZTY0ID0gMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY29uZmlnX2lu cHV0KGN0eC0+aW5wdXRzWzBdKTsKKyAgICB9CiAKIGZhaWw6CiAgICAgYXZfbG9nKGN0eCwgQVZf TE9HX0VSUk9SLCAiRmFpbGVkIHRvIHByb2Nlc3MgY29tbWFuZC4gQ29udGludWluZyB3aXRoIGV4 aXN0aW5nIHBhcmFtZXRlcnMuXG4iKTsKLS0gCjIuMzkuMQoK --00000000000015604505fe1a42ec Content-Type: text/x-patch; charset="US-ASCII"; name="0001-avfilter-vf_drawtext-cosmetics.patch" Content-Disposition: attachment; filename="0001-avfilter-vf_drawtext-cosmetics.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_livzfblx7 RnJvbSBlMjRlNzNhOTQ4NTA2MDEyNzY1MTA2ZWE1YjI0OWFiNDgwMmEyZjI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB5ZXRoaWUgPGtsaW1rbGltQHRpc2NhbGkuaXQ+CkRhdGU6IE1v biwgMTUgTWF5IDIwMjMgMTc6MDA6MzAgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvOF0gYXZmaWx0 ZXIvdmZfZHJhd3RleHQ6IGNvc21ldGljcwoKU2lnbmVkLW9mZi1ieTogUGF1bCBCIE1haG9sIDxv bmVtZGFAZ21haWwuY29tPgotLS0KIGxpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMgfCA4OSArKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NCBp bnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92 Zl9kcmF3dGV4dC5jIGIvbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYwppbmRleCA3MWFiODUxNDYy Li4wYzRkYjNlYzUzIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci92Zl9kcmF3dGV4dC5jCisrKyBi L2xpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMKQEAgLTc4LDggKzc4LDggQEAgc3RhdGljIGNvbnN0 IGNoYXIgKmNvbnN0IHZhcl9uYW1lc1tdID0gewogICAgICJsaW5lX2giLCAibGgiLCAgICAgICAg ICAgLy8vPCBsaW5lIGhlaWdodCwgc2FtZSBhcyBtYXhfZ2x5cGhfaAogICAgICJtYWluX2giLCAi aCIsICJIIiwgICAgICAgLy8vPCBoZWlnaHQgb2YgdGhlIGlucHV0IHZpZGVvCiAgICAgIm1haW5f dyIsICJ3IiwgIlciLCAgICAgICAvLy88IHdpZHRoICBvZiB0aGUgaW5wdXQgdmlkZW8KLSAgICAi bWF4X2dseXBoX2EiLCAiYXNjZW50IiwgIC8vLzwgbWF4IGdseXBoIGFzY2VudAotICAgICJtYXhf Z2x5cGhfZCIsICJkZXNjZW50IiwgLy8vPCBtaW4gZ2x5cGggZGVzY2VudAorICAgICJtYXhfZ2x5 cGhfYSIsICJhc2NlbnQiLCAgLy8vPCBtYXggZ2x5cGggYXNjZW5kZXIKKyAgICAibWF4X2dseXBo X2QiLCAiZGVzY2VudCIsIC8vLzwgbWluIGdseXBoIGRlc2NlbmRlcgogICAgICJtYXhfZ2x5cGhf aCIsICAgICAgICAgICAgLy8vPCBtYXggZ2x5cGggaGVpZ2h0CiAgICAgIm1heF9nbHlwaF93Iiwg ICAgICAgICAgICAvLy88IG1heCBnbHlwaCB3aWR0aAogICAgICJuIiwgICAgICAgICAgICAgICAg ICAgICAgLy8vPCBudW1iZXIgb2YgZnJhbWUKQEAgLTE2MSw3ICsxNjEsNyBAQCB0eXBlZGVmIHN0 cnVjdCBEcmF3VGV4dENvbnRleHQgewogICAgIGludCBleHBfbW9kZTsgICAgICAgICAgICAgICAg ICAgLy8vPCBleHBhbnNpb24gbW9kZSB0byB1c2UgZm9yIHRoZSB0ZXh0CiAgICAgaW50IHJlaW5p dDsgICAgICAgICAgICAgICAgICAgICAvLy88IHRlbGxzIGlmIHRoZSBmaWx0ZXIgaXMgYmVpbmcg cmVpbml0ZWQKICNpZiBDT05GSUdfTElCRk9OVENPTkZJRwotICAgIHVpbnQ4X3QgKmZvbnQ7ICAg ICAgICAgICAgICAvLy88IGZvbnQgdG8gYmUgdXNlZAorICAgIHVpbnQ4X3QgKmZvbnQ7ICAgICAg ICAgICAgICAgICAgLy8vPCBmb250IHRvIGJlIHVzZWQKICNlbmRpZgogICAgIHVpbnQ4X3QgKmZv bnRmaWxlOyAgICAgICAgICAgICAgLy8vPCBmb250IHRvIGJlIHVzZWQKICAgICB1aW50OF90ICp0 ZXh0OyAgICAgICAgICAgICAgICAgIC8vLzwgdGV4dCB0byBiZSBkcmF3bgpAQCAtMjI3LDI1ICsy MjcsMjUgQEAgdHlwZWRlZiBzdHJ1Y3QgRHJhd1RleHRDb250ZXh0IHsKICNkZWZpbmUgRkxBR1Mg QVZfT1BUX0ZMQUdfRklMVEVSSU5HX1BBUkFNfEFWX09QVF9GTEFHX1ZJREVPX1BBUkFNCiAKIHN0 YXRpYyBjb25zdCBBVk9wdGlvbiBkcmF3dGV4dF9vcHRpb25zW109IHsKLSAgICB7ImZvbnRmaWxl IiwgICAgInNldCBmb250IGZpbGUiLCAgICAgICAgT0ZGU0VUKGZvbnRmaWxlKSwgICAgICAgICAg IEFWX09QVF9UWVBFX1NUUklORywgey5zdHI9TlVMTH0sICAwLCAwLCBGTEFHU30sCi0gICAgeyJ0 ZXh0IiwgICAgICAgICJzZXQgdGV4dCIsICAgICAgICAgICAgIE9GRlNFVCh0ZXh0KSwgICAgICAg ICAgICAgICBBVl9PUFRfVFlQRV9TVFJJTkcsIHsuc3RyPU5VTEx9LCAgMCwgMCwgRkxBR1N9LAot ICAgIHsidGV4dGZpbGUiLCAgICAic2V0IHRleHQgZmlsZSIsICAgICAgICBPRkZTRVQodGV4dGZp bGUpLCAgICAgICAgICAgQVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0cj1OVUxMfSwgIDAsIDAsIEZM QUdTfSwKLSAgICB7ImZvbnRjb2xvciIsICAgInNldCBmb3JlZ3JvdW5kIGNvbG9yIiwgT0ZGU0VU KGZvbnRjb2xvci5yZ2JhKSwgICAgIEFWX09QVF9UWVBFX0NPTE9SLCAgey5zdHI9ImJsYWNrIn0s IDAsIDAsIEZMQUdTfSwKKyAgICB7ImZvbnRmaWxlIiwgICAgICAgInNldCBmb250IGZpbGUiLCAg ICAgICAgIE9GRlNFVChmb250ZmlsZSksICAgICAgICAgICBBVl9PUFRfVFlQRV9TVFJJTkcsIHsu c3RyPU5VTEx9LCAgMCwgMCwgRkxBR1N9LAorICAgIHsidGV4dCIsICAgICAgICAgICAic2V0IHRl eHQiLCAgICAgICAgICAgICAgT0ZGU0VUKHRleHQpLCAgICAgICAgICAgICAgIEFWX09QVF9UWVBF X1NUUklORywgey5zdHI9TlVMTH0sICAwLCAwLCBGTEFHU30sCisgICAgeyJ0ZXh0ZmlsZSIsICAg ICAgICJzZXQgdGV4dCBmaWxlIiwgICAgICAgICBPRkZTRVQodGV4dGZpbGUpLCAgICAgICAgICAg QVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0cj1OVUxMfSwgIDAsIDAsIEZMQUdTfSwKKyAgICB7ImZv bnRjb2xvciIsICAgICAgInNldCBmb3JlZ3JvdW5kIGNvbG9yIiwgIE9GRlNFVChmb250Y29sb3Iu cmdiYSksICAgICBBVl9PUFRfVFlQRV9DT0xPUiwgIHsuc3RyPSJibGFjayJ9LCAwLCAwLCBGTEFH U30sCiAgICAgeyJmb250Y29sb3JfZXhwciIsICJzZXQgZm9yZWdyb3VuZCBjb2xvciBleHByZXNz aW9uIiwgT0ZGU0VUKGZvbnRjb2xvcl9leHByKSwgQVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0cj0i In0sIDAsIDAsIEZMQUdTfSwKLSAgICB7ImJveGNvbG9yIiwgICAgInNldCBib3ggY29sb3IiLCAg ICAgICAgT0ZGU0VUKGJveGNvbG9yLnJnYmEpLCAgICAgIEFWX09QVF9UWVBFX0NPTE9SLCAgey5z dHI9IndoaXRlIn0sIDAsIDAsIEZMQUdTfSwKLSAgICB7ImJvcmRlcmNvbG9yIiwgInNldCBib3Jk ZXIgY29sb3IiLCAgICAgT0ZGU0VUKGJvcmRlcmNvbG9yLnJnYmEpLCAgIEFWX09QVF9UWVBFX0NP TE9SLCAgey5zdHI9ImJsYWNrIn0sIDAsIDAsIEZMQUdTfSwKLSAgICB7InNoYWRvd2NvbG9yIiwg InNldCBzaGFkb3cgY29sb3IiLCAgICAgT0ZGU0VUKHNoYWRvd2NvbG9yLnJnYmEpLCAgIEFWX09Q VF9UWVBFX0NPTE9SLCAgey5zdHI9ImJsYWNrIn0sIDAsIDAsIEZMQUdTfSwKLSAgICB7ImJveCIs ICAgICAgICAgInNldCBib3giLCAgICAgICAgICAgICAgT0ZGU0VUKGRyYXdfYm94KSwgICAgICAg ICAgIEFWX09QVF9UWVBFX0JPT0wsICAgey5pNjQ9MH0sICAgICAwLCAgICAgICAgMSAgICAgICAs IEZMQUdTfSwKLSAgICB7ImJveGJvcmRlcnciLCAgInNldCBib3ggYm9yZGVyIHdpZHRoIiwgT0ZG U0VUKGJveGJvcmRlcncpLCAgICAgICAgIEFWX09QVF9UWVBFX0lOVCwgICAgey5pNjQ9MH0sICAg ICBJTlRfTUlOLCAgSU5UX01BWCAsIEZMQUdTfSwKLSAgICB7ImxpbmVfc3BhY2luZyIsICAic2V0 IGxpbmUgc3BhY2luZyBpbiBwaXhlbHMiLCBPRkZTRVQobGluZV9zcGFjaW5nKSwgICBBVl9PUFRf VFlQRV9JTlQsICAgIHsuaTY0PTB9LCAgICAgSU5UX01JTiwgIElOVF9NQVgsRkxBR1N9LAotICAg IHsiZm9udHNpemUiLCAgICAic2V0IGZvbnQgc2l6ZSIsICAgICAgICBPRkZTRVQoZm9udHNpemVf ZXhwciksICAgICAgQVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0cj1OVUxMfSwgIDAsIDAgLCBGTEFH U30sCi0gICAgeyJ4IiwgICAgICAgICAgICJzZXQgeCBleHByZXNzaW9uIiwgICAgIE9GRlNFVCh4 X2V4cHIpLCAgICAgICAgICAgICBBVl9PUFRfVFlQRV9TVFJJTkcsIHsuc3RyPSIwIn0sICAgMCwg MCwgRkxBR1N9LAotICAgIHsieSIsICAgICAgICAgICAic2V0IHkgZXhwcmVzc2lvbiIsICAgICBP RkZTRVQoeV9leHByKSwgICAgICAgICAgICAgQVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0cj0iMCJ9 LCAgIDAsIDAsIEZMQUdTfSwKLSAgICB7InNoYWRvd3giLCAgICAgInNldCBzaGFkb3cgeCBvZmZz ZXQiLCAgT0ZGU0VUKHNoYWRvd3gpLCAgICAgICAgICAgIEFWX09QVF9UWVBFX0lOVCwgICAgey5p NjQ9MH0sICAgICBJTlRfTUlOLCAgSU5UX01BWCAsIEZMQUdTfSwKLSAgICB7InNoYWRvd3kiLCAg ICAgInNldCBzaGFkb3cgeSBvZmZzZXQiLCAgT0ZGU0VUKHNoYWRvd3kpLCAgICAgICAgICAgIEFW X09QVF9UWVBFX0lOVCwgICAgey5pNjQ9MH0sICAgICBJTlRfTUlOLCAgSU5UX01BWCAsIEZMQUdT fSwKLSAgICB7ImJvcmRlcnciLCAgICAgInNldCBib3JkZXIgd2lkdGgiLCAgICAgT0ZGU0VUKGJv cmRlcncpLCAgICAgICAgICAgIEFWX09QVF9UWVBFX0lOVCwgICAgey5pNjQ9MH0sICAgICBJTlRf TUlOLCAgSU5UX01BWCAsIEZMQUdTfSwKLSAgICB7InRhYnNpemUiLCAgICAgInNldCB0YWIgc2l6 ZSIsICAgICAgICAgT0ZGU0VUKHRhYnNpemUpLCAgICAgICAgICAgIEFWX09QVF9UWVBFX0lOVCwg ICAgey5pNjQ9NH0sICAgICAwLCAgICAgICAgSU5UX01BWCAsIEZMQUdTfSwKLSAgICB7ImJhc2V0 aW1lIiwgICAgInNldCBiYXNlIHRpbWUiLCAgICAgICAgT0ZGU0VUKGJhc2V0aW1lKSwgICAgICAg ICAgIEFWX09QVF9UWVBFX0lOVDY0LCAgey5pNjQ9QVZfTk9QVFNfVkFMVUV9LCBJTlQ2NF9NSU4s IElOVDY0X01BWCAsIEZMQUdTfSwKKyAgICB7ImJveGNvbG9yIiwgICAgICAgInNldCBib3ggY29s b3IiLCAgICAgICAgIE9GRlNFVChib3hjb2xvci5yZ2JhKSwgICAgICBBVl9PUFRfVFlQRV9DT0xP UiwgIHsuc3RyPSJ3aGl0ZSJ9LCAwLCAwLCBGTEFHU30sCisgICAgeyJib3JkZXJjb2xvciIsICAg ICJzZXQgYm9yZGVyIGNvbG9yIiwgICAgICBPRkZTRVQoYm9yZGVyY29sb3IucmdiYSksICAgQVZf T1BUX1RZUEVfQ09MT1IsICB7LnN0cj0iYmxhY2sifSwgMCwgMCwgRkxBR1N9LAorICAgIHsic2hh ZG93Y29sb3IiLCAgICAic2V0IHNoYWRvdyBjb2xvciIsICAgICAgT0ZGU0VUKHNoYWRvd2NvbG9y LnJnYmEpLCAgIEFWX09QVF9UWVBFX0NPTE9SLCAgey5zdHI9ImJsYWNrIn0sIDAsIDAsIEZMQUdT fSwKKyAgICB7ImJveCIsICAgICAgICAgICAgInNldCBib3giLCAgICAgICAgICAgICAgIE9GRlNF VChkcmF3X2JveCksICAgICAgICAgICBBVl9PUFRfVFlQRV9CT09MLCAgIHsuaTY0PTB9LCAgICAg MCwgMSwgRkxBR1N9LAorICAgIHsiYm94Ym9yZGVydyIsICAgICAic2V0IGJveCBib3JkZXJzIHdp ZHRoIiwgT0ZGU0VUKGJveGJvcmRlcncpLCAgICAgICAgIEFWX09QVF9UWVBFX0lOVCwgICAgey5p NjQ9MH0sICAgICBJTlRfTUlOLCBJTlRfTUFYLCBGTEFHU30sCisgICAgeyJsaW5lX3NwYWNpbmci LCAgICJzZXQgbGluZSBzcGFjaW5nIGluIHBpeGVscyIsIE9GRlNFVChsaW5lX3NwYWNpbmcpLCAg QVZfT1BUX1RZUEVfSU5ULCAgICB7Lmk2ND0wfSwgICAgIElOVF9NSU4sIElOVF9NQVgsIEZMQUdT fSwKKyAgICB7ImZvbnRzaXplIiwgICAgICAgInNldCBmb250IHNpemUiLCAgICAgICAgIE9GRlNF VChmb250c2l6ZV9leHByKSwgICAgICBBVl9PUFRfVFlQRV9TVFJJTkcsIHsuc3RyPU5VTEx9LCAg MCwgMCwgRkxBR1N9LAorICAgIHsieCIsICAgICAgICAgICAgICAic2V0IHggZXhwcmVzc2lvbiIs ICAgICAgT0ZGU0VUKHhfZXhwciksICAgICAgICAgICAgIEFWX09QVF9UWVBFX1NUUklORywgey5z dHI9IjAifSwgICAwLCAwLCBGTEFHU30sCisgICAgeyJ5IiwgICAgICAgICAgICAgICJzZXQgeSBl eHByZXNzaW9uIiwgICAgICBPRkZTRVQoeV9leHByKSwgICAgICAgICAgICAgQVZfT1BUX1RZUEVf U1RSSU5HLCB7LnN0cj0iMCJ9LCAgIDAsIDAsIEZMQUdTfSwKKyAgICB7InNoYWRvd3giLCAgICAg ICAgInNldCBzaGFkb3cgeCBvZmZzZXQiLCAgIE9GRlNFVChzaGFkb3d4KSwgICAgICAgICAgICBB Vl9PUFRfVFlQRV9JTlQsICAgIHsuaTY0PTB9LCAgICAgSU5UX01JTiwgSU5UX01BWCwgRkxBR1N9 LAorICAgIHsic2hhZG93eSIsICAgICAgICAic2V0IHNoYWRvdyB5IG9mZnNldCIsICAgT0ZGU0VU KHNoYWRvd3kpLCAgICAgICAgICAgIEFWX09QVF9UWVBFX0lOVCwgICAgey5pNjQ9MH0sICAgICBJ TlRfTUlOLCBJTlRfTUFYLCBGTEFHU30sCisgICAgeyJib3JkZXJ3IiwgICAgICAgICJzZXQgYm9y ZGVyIHdpZHRoIiwgICAgICBPRkZTRVQoYm9yZGVydyksICAgICAgICAgICAgQVZfT1BUX1RZUEVf SU5ULCAgICB7Lmk2ND0wfSwgICAgIElOVF9NSU4sIElOVF9NQVgsIEZMQUdTfSwKKyAgICB7InRh YnNpemUiLCAgICAgICAgInNldCB0YWIgc2l6ZSIsICAgICAgICAgIE9GRlNFVCh0YWJzaXplKSwg ICAgICAgICAgICBBVl9PUFRfVFlQRV9JTlQsICAgIHsuaTY0PTR9LCAgICAgMCwgSU5UX01BWCwg RkxBR1N9LAorICAgIHsiYmFzZXRpbWUiLCAgICAgICAic2V0IGJhc2UgdGltZSIsICAgICAgICAg T0ZGU0VUKGJhc2V0aW1lKSwgICAgICAgICAgIEFWX09QVF9UWVBFX0lOVDY0LCAgey5pNjQ9QVZf Tk9QVFNfVkFMVUV9LCBJTlQ2NF9NSU4sIElOVDY0X01BWCwgRkxBR1N9LAogI2lmIENPTkZJR19M SUJGT05UQ09ORklHCiAgICAgeyAiZm9udCIsICAgICAgICAiRm9udCBuYW1lIiwgICAgICAgICAg ICBPRkZTRVQoZm9udCksICAgICAgICAgICAgICAgQVZfT1BUX1RZUEVfU1RSSU5HLCB7IC5zdHIg PSAiU2FucyIgfSwgICAgICAgICAgIC5mbGFncyA9IEZMQUdTIH0sCiAjZW5kaWYKQEAgLTI1Niwx NSArMjU2LDE1IEBAIHN0YXRpYyBjb25zdCBBVk9wdGlvbiBkcmF3dGV4dF9vcHRpb25zW109IHsK ICAgICAgICAgeyJzdHJmdGltZSIsICJzZXQgc3RyZnRpbWUgZXhwYW5zaW9uIChkZXByZWNhdGVk KSIsIE9GRlNFVChleHBfbW9kZSksIEFWX09QVF9UWVBFX0NPTlNULCB7Lmk2ND1FWFBfU1RSRlRJ TUV9LCAwLCAwLCBGTEFHUywgImV4cGFuc2lvbiJ9LAogCiAgICAgeyJ0aW1lY29kZSIsICAgICAg ICAic2V0IGluaXRpYWwgdGltZWNvZGUiLCAgICAgICAgICAgICBPRkZTRVQodGNfb3B0X3N0cmlu ZyksIEFWX09QVF9UWVBFX1NUUklORywgICB7LnN0cj1OVUxMfSwgMCwgMCwgRkxBR1N9LAotICAg IHsidGMyNGhtYXgiLCAgICAgICAgInNldCAyNCBob3VycyBtYXggKHRpbWVjb2RlIG9ubHkpIiwg T0ZGU0VUKHRjMjRobWF4KSwgICAgICBBVl9PUFRfVFlQRV9CT09MLCAgICAgey5pNjQ9MH0sICAg ICAgICAgICAwLCAgICAgICAgMSwgRkxBR1N9LAotICAgIHsidGltZWNvZGVfcmF0ZSIsICAgInNl dCByYXRlICh0aW1lY29kZSBvbmx5KSIsICAgICAgICAgT0ZGU0VUKHRjX3JhdGUpLCAgICAgICBB Vl9PUFRfVFlQRV9SQVRJT05BTCwgey5kYmw9MH0sICAgICAgICAgICAwLCAgSU5UX01BWCwgRkxB R1N9LAotICAgIHsiciIsICAgICAgICAgICAgICAgInNldCByYXRlICh0aW1lY29kZSBvbmx5KSIs ICAgICAgICAgT0ZGU0VUKHRjX3JhdGUpLCAgICAgICBBVl9PUFRfVFlQRV9SQVRJT05BTCwgey5k Ymw9MH0sICAgICAgICAgICAwLCAgSU5UX01BWCwgRkxBR1N9LAotICAgIHsicmF0ZSIsICAgICAg ICAgICAgInNldCByYXRlICh0aW1lY29kZSBvbmx5KSIsICAgICAgICAgT0ZGU0VUKHRjX3JhdGUp LCAgICAgICBBVl9PUFRfVFlQRV9SQVRJT05BTCwgey5kYmw9MH0sICAgICAgICAgICAwLCAgSU5U X01BWCwgRkxBR1N9LAotICAgIHsicmVsb2FkIiwgICAgICJyZWxvYWQgdGV4dCBmaWxlIGF0IHNw ZWNpZmllZCBmcmFtZSBpbnRlcnZhbCIsIE9GRlNFVChyZWxvYWQpLCAgICAgQVZfT1BUX1RZUEVf SU5ULCB7Lmk2ND0wfSwgMCwgSU5UX01BWCwgRkxBR1N9LAotICAgIHsgImFscGhhIiwgICAgICAg ImFwcGx5IGFscGhhIHdoaWxlIHJlbmRlcmluZyIsIE9GRlNFVChhX2V4cHIpLCAgICAgIEFWX09Q VF9UWVBFX1NUUklORywgeyAuc3RyID0gIjEiICAgICB9LCAgICAgICAgICAuZmxhZ3MgPSBGTEFH UyB9LAotICAgIHsiZml4X2JvdW5kcyIsICJjaGVjayBhbmQgZml4IHRleHQgY29vcmRzIHRvIGF2 b2lkIGNsaXBwaW5nIiwgT0ZGU0VUKGZpeF9ib3VuZHMpLCBBVl9PUFRfVFlQRV9CT09MLCB7Lmk2 ND0wfSwgMCwgMSwgRkxBR1N9LAotICAgIHsic3RhcnRfbnVtYmVyIiwgInN0YXJ0IGZyYW1lIG51 bWJlciBmb3Igbi9mcmFtZV9udW0gdmFyaWFibGUiLCBPRkZTRVQoc3RhcnRfbnVtYmVyKSwgQVZf T1BUX1RZUEVfSU5ULCB7Lmk2ND0wfSwgMCwgSU5UX01BWCwgRkxBR1N9LAotICAgIHsidGV4dF9z b3VyY2UiLCAidGhlIHNvdXJjZSBvZiB0ZXh0IiwgT0ZGU0VUKHRleHRfc291cmNlX3N0cmluZyks IEFWX09QVF9UWVBFX1NUUklORywgey5zdHI9TlVMTH0sIDAsIDEsIEZMQUdTIH0sCisgICAgeyJ0 YzI0aG1heCIsICAgICAgICAic2V0IDI0IGhvdXJzIG1heCAodGltZWNvZGUgb25seSkiLCBPRkZT RVQodGMyNGhtYXgpLCAgICAgIEFWX09QVF9UWVBFX0JPT0wsICAgICB7Lmk2ND0wfSwgICAgMCwg MSwgRkxBR1N9LAorICAgIHsidGltZWNvZGVfcmF0ZSIsICAgInNldCByYXRlICh0aW1lY29kZSBv bmx5KSIsICAgICAgICAgT0ZGU0VUKHRjX3JhdGUpLCAgICAgICBBVl9PUFRfVFlQRV9SQVRJT05B TCwgey5kYmw9MH0sICAgIDAsIElOVF9NQVgsIEZMQUdTfSwKKyAgICB7InIiLCAgICAgICAgICAg ICAgICJzZXQgcmF0ZSAodGltZWNvZGUgb25seSkiLCAgICAgICAgIE9GRlNFVCh0Y19yYXRlKSwg ICAgICAgQVZfT1BUX1RZUEVfUkFUSU9OQUwsIHsuZGJsPTB9LCAgICAwLCBJTlRfTUFYLCBGTEFH U30sCisgICAgeyJyYXRlIiwgICAgICAgICAgICAic2V0IHJhdGUgKHRpbWVjb2RlIG9ubHkpIiwg ICAgICAgICBPRkZTRVQodGNfcmF0ZSksICAgICAgIEFWX09QVF9UWVBFX1JBVElPTkFMLCB7LmRi bD0wfSwgICAgMCwgSU5UX01BWCwgRkxBR1N9LAorICAgIHsicmVsb2FkIiwgICAgICAgICAgInJl bG9hZCB0ZXh0IGZpbGUgYXQgc3BlY2lmaWVkIGZyYW1lIGludGVydmFsIiwgT0ZGU0VUKHJlbG9h ZCksIEFWX09QVF9UWVBFX0lOVCwgey5pNjQ9MH0sICAgIDAsIElOVF9NQVgsIEZMQUdTfSwKKyAg ICB7ImFscGhhIiwgICAgICAgICAgICJhcHBseSBhbHBoYSB3aGlsZSByZW5kZXJpbmciLCAgICAg IE9GRlNFVChhX2V4cHIpLCAgICAgICAgQVZfT1BUX1RZUEVfU1RSSU5HLCAgIHsuc3RyID0gIjEi fSwgLmZsYWdzID0gRkxBR1N9LAorICAgIHsiZml4X2JvdW5kcyIsICAgICAgImNoZWNrIGFuZCBm aXggdGV4dCBjb29yZHMgdG8gYXZvaWQgY2xpcHBpbmciLCBPRkZTRVQoZml4X2JvdW5kcyksIEFW X09QVF9UWVBFX0JPT0wsIHsuaTY0PTB9LCAwLCAxLCBGTEFHU30sCisgICAgeyJzdGFydF9udW1i ZXIiLCAgICAic3RhcnQgZnJhbWUgbnVtYmVyIGZvciBuL2ZyYW1lX251bSB2YXJpYWJsZSIsIE9G RlNFVChzdGFydF9udW1iZXIpLCBBVl9PUFRfVFlQRV9JTlQsIHsuaTY0PTB9LCAwLCBJTlRfTUFY LCBGTEFHU30sCisgICAgeyJ0ZXh0X3NvdXJjZSIsICAgICAidGhlIHNvdXJjZSBvZiB0ZXh0Iiwg T0ZGU0VUKHRleHRfc291cmNlX3N0cmluZyksIEFWX09QVF9UWVBFX1NUUklORywgey5zdHI9TlVM TH0sIDAsIDEsIEZMQUdTIH0sCiAKICNpZiBDT05GSUdfTElCRlJJQklESQogICAgIHsidGV4dF9z aGFwaW5nIiwgImF0dGVtcHQgdG8gc2hhcGUgdGV4dCBiZWZvcmUgZHJhd2luZyIsIE9GRlNFVCh0 ZXh0X3NoYXBpbmcpLCBBVl9PUFRfVFlQRV9CT09MLCB7Lmk2ND0xfSwgMCwgMSwgRkxBR1N9LApA QCAtMzI0LDkgKzMyNCw5IEBAIHN0YXRpYyBpbnQgZ2x5cGhfY21wKGNvbnN0IHZvaWQgKmtleSwg Y29uc3Qgdm9pZCAqYikKICAgICBpbnQ2NF90IGRpZmYgPSAoaW50NjRfdClhLT5jb2RlIC0gKGlu dDY0X3QpYmItPmNvZGU7CiAKICAgICBpZiAoZGlmZiAhPSAwKQotICAgICAgICAgcmV0dXJuIGRp ZmYgPiAwID8gMSA6IC0xOworICAgICAgICByZXR1cm4gZGlmZiA+IDAgPyAxIDogLTE7CiAgICAg ZWxzZQotICAgICAgICAgcmV0dXJuIEZGRElGRlNJR04oKGludDY0X3QpYS0+Zm9udHNpemUsIChp bnQ2NF90KWJiLT5mb250c2l6ZSk7CisgICAgICAgIHJldHVybiBGRkRJRkZTSUdOKChpbnQ2NF90 KWEtPmZvbnRzaXplLCAoaW50NjRfdCliYi0+Zm9udHNpemUpOwogfQogCiAvKioKQEAgLTQ0Nyw3 ICs0NDcsNiBAQCBzdGF0aWMgYXZfY29sZCBpbnQgdXBkYXRlX2ZvbnRzaXplKEFWRmlsdGVyQ29u dGV4dCAqY3R4KQogICAgICAgICAgICByZXR1cm4gZXJyOwogCiAgICAgICAgIHNpemUgPSBhdl9l eHByX2V2YWwocy0+Zm9udHNpemVfcGV4cHIsIHMtPnZhcl92YWx1ZXMsICZzLT5wcm5nKTsKLQog ICAgICAgICBpZiAoIWlzbmFuKHNpemUpKSB7CiAgICAgICAgICAgICByb3VuZGVkc2l6ZSA9IHJv dW5kKHNpemUpOwogICAgICAgICAgICAgLy8gdGVzdCBmb3Igb3ZlcmZsb3cgYmVmb3JlIGNhc3QK QEAgLTQ1NSw3ICs0NTQsNiBAQCBzdGF0aWMgYXZfY29sZCBpbnQgdXBkYXRlX2ZvbnRzaXplKEFW RmlsdGVyQ29udGV4dCAqY3R4KQogICAgICAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19F UlJPUiwgImZvbnRzaXplIG92ZXJmbG93XG4iKTsKICAgICAgICAgICAgICAgICByZXR1cm4gQVZF UlJPUihFSU5WQUwpOwogICAgICAgICAgICAgfQotCiAgICAgICAgICAgICBmb250c2l6ZSA9IHJv dW5kZWRzaXplOwogICAgICAgICB9CiAgICAgfQpAQCAtNTU2LDcgKzU1NCw3IEBAIHN0YXRpYyBp bnQgbG9hZF9mb250X2ZvbnRjb25maWcoQVZGaWx0ZXJDb250ZXh0ICpjdHgpCiAgICAgICAgIGdv dG8gZmFpbDsKICAgICB9CiAKLSAgICBhdl9sb2coY3R4LCBBVl9MT0dfSU5GTywgIlVzaW5nIFwi JXNcIlxuIiwgZmlsZW5hbWUpOworICAgIGF2X2xvZyhjdHgsIEFWX0xPR19WRVJCT1NFLCAiVXNp bmcgXCIlc1wiXG4iLCBmaWxlbmFtZSk7CiAgICAgaWYgKHBhcnNlX2VycikKICAgICAgICAgcy0+ ZGVmYXVsdF9mb250c2l6ZSA9IHNpemUgKyAwLjU7CiAKQEAgLTY5OCw2ICs2OTYsNyBAQCBzdGF0 aWMgaW50IHNoYXBlX3RleHQoQVZGaWx0ZXJDb250ZXh0ICpjdHgpCiAgICAgcy0+dGV4dCA9IHRt cDsKICAgICBsZW4gPSBmcmliaWRpX3VuaWNvZGVfdG9fY2hhcnNldChGUklCSURJX0NIQVJfU0VU X1VURjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pY29kZXN0ciwg bGVuLCBzLT50ZXh0KTsKKwogICAgIHJldCA9IDA7CiAKIG91dDoKQEAgLTg4OCwxNSArODg3LDE1 IEBAIHN0YXRpYyBpbnQgY29uZmlnX2lucHV0KEFWRmlsdGVyTGluayAqaW5saW5rKQogICAgIGZm X2RyYXdfY29sb3IoJnMtPmRjLCAmcy0+Ym9yZGVyY29sb3IsIHMtPmJvcmRlcmNvbG9yLnJnYmEp OwogICAgIGZmX2RyYXdfY29sb3IoJnMtPmRjLCAmcy0+Ym94Y29sb3IsICAgIHMtPmJveGNvbG9y LnJnYmEpOwogCi0gICAgcy0+dmFyX3ZhbHVlc1tWQVJfd10gICAgID0gcy0+dmFyX3ZhbHVlc1tW QVJfV10gICAgID0gcy0+dmFyX3ZhbHVlc1tWQVJfTUFJTl9XXSA9IGlubGluay0+dzsKLSAgICBz LT52YXJfdmFsdWVzW1ZBUl9oXSAgICAgPSBzLT52YXJfdmFsdWVzW1ZBUl9IXSAgICAgPSBzLT52 YXJfdmFsdWVzW1ZBUl9NQUlOX0hdID0gaW5saW5rLT5oOwotICAgIHMtPnZhcl92YWx1ZXNbVkFS X1NBUl0gICA9IGlubGluay0+c2FtcGxlX2FzcGVjdF9yYXRpby5udW0gPyBhdl9xMmQoaW5saW5r LT5zYW1wbGVfYXNwZWN0X3JhdGlvKSA6IDE7Ci0gICAgcy0+dmFyX3ZhbHVlc1tWQVJfREFSXSAg ID0gKGRvdWJsZSlpbmxpbmstPncgLyBpbmxpbmstPmggKiBzLT52YXJfdmFsdWVzW1ZBUl9TQVJd OwotICAgIHMtPnZhcl92YWx1ZXNbVkFSX0hTVUJdICA9IDEgPDwgcy0+ZGMuaHN1Yl9tYXg7Ci0g ICAgcy0+dmFyX3ZhbHVlc1tWQVJfVlNVQl0gID0gMSA8PCBzLT5kYy52c3ViX21heDsKLSAgICBz LT52YXJfdmFsdWVzW1ZBUl9YXSAgICAgPSBOQU47Ci0gICAgcy0+dmFyX3ZhbHVlc1tWQVJfWV0g ICAgID0gTkFOOwotICAgIHMtPnZhcl92YWx1ZXNbVkFSX1RdICAgICA9IE5BTjsKKyAgICBzLT52 YXJfdmFsdWVzW1ZBUl93XSAgICA9IHMtPnZhcl92YWx1ZXNbVkFSX1ddID0gcy0+dmFyX3ZhbHVl c1tWQVJfTUFJTl9XXSA9IGlubGluay0+dzsKKyAgICBzLT52YXJfdmFsdWVzW1ZBUl9oXSAgICA9 IHMtPnZhcl92YWx1ZXNbVkFSX0hdID0gcy0+dmFyX3ZhbHVlc1tWQVJfTUFJTl9IXSA9IGlubGlu ay0+aDsKKyAgICBzLT52YXJfdmFsdWVzW1ZBUl9TQVJdICA9IGlubGluay0+c2FtcGxlX2FzcGVj dF9yYXRpby5udW0gPyBhdl9xMmQoaW5saW5rLT5zYW1wbGVfYXNwZWN0X3JhdGlvKSA6IDE7Cisg ICAgcy0+dmFyX3ZhbHVlc1tWQVJfREFSXSAgPSAoZG91YmxlKWlubGluay0+dyAvIGlubGluay0+ aCAqIHMtPnZhcl92YWx1ZXNbVkFSX1NBUl07CisgICAgcy0+dmFyX3ZhbHVlc1tWQVJfSFNVQl0g PSAxIDw8IHMtPmRjLmhzdWJfbWF4OworICAgIHMtPnZhcl92YWx1ZXNbVkFSX1ZTVUJdID0gMSA8 PCBzLT5kYy52c3ViX21heDsKKyAgICBzLT52YXJfdmFsdWVzW1ZBUl9YXSAgICA9IE5BTjsKKyAg ICBzLT52YXJfdmFsdWVzW1ZBUl9ZXSAgICA9IE5BTjsKKyAgICBzLT52YXJfdmFsdWVzW1ZBUl9U XSAgICA9IE5BTjsKIAogICAgIGF2X2xmZ19pbml0KCZzLT5wcm5nLCBhdl9nZXRfcmFuZG9tX3Nl ZWQoKSk7CiAKQEAgLTE0MjMsNyArMTQyMiw3IEBAIHN0YXRpYyBpbnQgZHJhd190ZXh0KEFWRmls dGVyQ29udGV4dCAqY3R4LCBBVkZyYW1lICpmcmFtZSwKIAogICAgIGF2X2JwcmludF9jbGVhcihi cCk7CiAKLSAgICBpZihzLT5iYXNldGltZSAhPSBBVl9OT1BUU19WQUxVRSkKKyAgICBpZiAocy0+ YmFzZXRpbWUgIT0gQVZfTk9QVFNfVkFMVUUpCiAgICAgICAgIG5vdz0gZnJhbWUtPnB0cyphdl9x MmQoY3R4LT5pbnB1dHNbMF0tPnRpbWVfYmFzZSkgKyBzLT5iYXNldGltZS8xMDAwMDAwOwogCiAg ICAgc3dpdGNoIChzLT5leHBfbW9kZSkgewotLSAKMi4zOS4xCgo= --00000000000015604505fe1a42ec Content-Type: text/x-patch; charset="US-ASCII"; name="0003-avfilter-vf_drawtext-extend-boxborderw-option.patch" Content-Disposition: attachment; filename="0003-avfilter-vf_drawtext-extend-boxborderw-option.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_livzfbj85 RnJvbSBhZWJiN2FmYWZmYzMxZjRjMmRiMmFkNDQ2M2NkZDUyMGYyZTliYTU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB5ZXRoaWUgPGtsaW1rbGltQHRpc2NhbGkuaXQ+CkRhdGU6IEZy aSwgMjYgTWF5IDIwMjMgMTI6MjE6MzEgKzAyMDAKU3ViamVjdDogW1BBVENIIDMvOF0gYXZmaWx0 ZXIvdmZfZHJhd3RleHQ6IGV4dGVuZCBib3hib3JkZXJ3IG9wdGlvbgoKQWRkcyBzdXBwb3J0IGZv ciBkaWZmZXJlbnQgYm9yZGVyIHNpemUgaW4gZWFjaCBkaXJlY3Rpb24uCgpTaWduZWQtb2ZmLWJ5 OiBQYXVsIEIgTWFob2wgPG9uZW1kYUBnbWFpbC5jb20+Ci0tLQogZG9jL2ZpbHRlcnMudGV4aSAg ICAgICAgICB8IDEyICsrKysrKysrKysrLQogbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYyB8IDQx ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogMiBmaWxlcyBjaGFuZ2Vk LCA0OSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9maWx0 ZXJzLnRleGkgYi9kb2MvZmlsdGVycy50ZXhpCmluZGV4IGIxMDE2NTY5NWUuLmRiNGZiN2VjZTQg MTAwNjQ0Ci0tLSBhL2RvYy9maWx0ZXJzLnRleGkKKysrIGIvZG9jL2ZpbHRlcnMudGV4aQpAQCAt MTIzMTEsNyArMTIzMTEsMTcgQEAgVGhlIGRlZmF1bHQgdmFsdWUgb2YgQHZhcntib3h9IGlzIDAu CiAKIEBpdGVtIGJveGJvcmRlcncKIFNldCB0aGUgd2lkdGggb2YgdGhlIGJvcmRlciB0byBiZSBk cmF3biBhcm91bmQgdGhlIGJveCB1c2luZyBAdmFye2JveGNvbG9yfS4KLVRoZSBkZWZhdWx0IHZh bHVlIG9mIEB2YXJ7Ym94Ym9yZGVyd30gaXMgMC4KK1RoZSB2YWx1ZSBtdXN0IGJlIHNwZWNpZmll ZCB1c2luZyBvbmUgb2YgdGhlIGZvbGxvd2luZyBmb3JtYXRzOgorQGl0ZW1pemUgQGJ1bGxldAor QGl0ZW0gQGNvZGV7Ym94Ym9yZGVydz0xMH0gc2V0IHRoZSB3aWR0aCBvZiBhbGwgdGhlIGJvcmRl cnMgdG8gMTAKK0BpdGVtIEBjb2Rle2JveGJvcmRlcnc9MTB8MjB9IHNldCB0aGUgd2lkdGggb2Yg dGhlIHRvcCBhbmQgYm90dG9tIGJvcmRlcnMgdG8gMTAKKyAgICBhbmQgdGhlIHdpZHRoIG9mIHRo ZSBsZWZ0IGFuZCByaWdodCBib3JkZXJzIHRvIDIwCitAaXRlbSBAY29kZXtib3hib3JkZXJ3PTEw fDIwfDMwfSBzZXQgdGhlIHdpZHRoIG9mIHRoZSB0b3AgYm9yZGVyIHRvIDEwLCB0aGUgd2lkdGgK KyAgICBvZiB0aGUgYm90dG9tIGJvcmRlciB0byAzMCBhbmQgdGhlIHdpZHRoIG9mIHRoZSBsZWZ0 IGFuZCByaWdodCBib3JkZXJzIHRvIDIwCitAaXRlbSBAY29kZXtib3hib3JkZXJ3PTEwfDIwfDMw fDQwfSBzZXQgdGhlIGJvcmRlcnMgd2lkdGggdG8gMTAgKHRvcCksIDIwIChyaWdodCksCisgICAg MzAgKGJvdHRvbSksIDQwIChsZWZ0KQorQGVuZCBpdGVtaXplCitUaGUgZGVmYXVsdCB2YWx1ZSBv ZiBAdmFye2JveGJvcmRlcnd9IGlzICIwIi4KIAogQGl0ZW0gYm94Y29sb3IKIFRoZSBjb2xvciB0 byBiZSB1c2VkIGZvciBkcmF3aW5nIGJveCBhcm91bmQgdGV4dC4gRm9yIHRoZSBzeW50YXggb2Yg dGhpcwpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYyBiL2xpYmF2ZmlsdGVy L3ZmX2RyYXd0ZXh0LmMKaW5kZXggYmRhYjU5MWVmZC4uMDdhNzc1ZjkzMyAxMDA2NDQKLS0tIGEv bGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYworKysgYi9saWJhdmZpbHRlci92Zl9kcmF3dGV4dC5j CkBAIC0yNTYsNyArMjU2LDggQEAgdHlwZWRlZiBzdHJ1Y3QgRHJhd1RleHRDb250ZXh0IHsKIAog ICAgIGludCBsaW5lX3NwYWNpbmc7ICAgICAgICAgICAgICAgLy8vPCBsaW5lcyBzcGFjaW5nIGlu IHBpeGVscwogICAgIHNob3J0IGludCBkcmF3X2JveDsgICAgICAgICAgICAgLy8vPCBkcmF3IGJv eCBhcm91bmQgdGV4dCAtIHRydWUgb3IgZmFsc2UKLSAgICBpbnQgYm94Ym9yZGVydzsgICAgICAg ICAgICAgICAgIC8vLzwgYm94IGJvcmRlciB3aWR0aAorICAgIGNoYXIgKmJveGJvcmRlcnc7ICAg ICAgICAgICAgICAgLy8vPCBib3ggYm9yZGVyIHdpZHRoIChwYWRkaW5nKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8vICBhbGxvd2VkIGZvcm1hdHM6ICJhbGwiLCAidmVy dHxvcml6IiwgInRvcHxyaWdodHxib3R0b218bGVmdCIKICAgICBpbnQgYmJfdG9wOyAgICAgICAg ICAgICAgICAgICAgIC8vLzwgdGhlIHNpemUgb2YgdGhlIHRvcCBib3ggYm9yZGVyCiAgICAgaW50 IGJiX3JpZ2h0OyAgICAgICAgICAgICAgICAgICAvLy88IHRoZSBzaXplIG9mIHRoZSByaWdodCBi b3ggYm9yZGVyCiAgICAgaW50IGJiX2JvdHRvbTsgICAgICAgICAgICAgICAgICAvLy88IHRoZSBz aXplIG9mIHRoZSBib3R0b20gYm94IGJvcmRlcgpAQCAtMzE2LDcgKzMxNyw3IEBAIHN0YXRpYyBj b25zdCBBVk9wdGlvbiBkcmF3dGV4dF9vcHRpb25zW109IHsKICAgICB7ImJvcmRlcmNvbG9yIiwg ICAgInNldCBib3JkZXIgY29sb3IiLCAgICAgIE9GRlNFVChib3JkZXJjb2xvci5yZ2JhKSwgICBB Vl9PUFRfVFlQRV9DT0xPUiwgIHsuc3RyPSJibGFjayJ9LCAwLCAwLCBGTEFHU30sCiAgICAgeyJz aGFkb3djb2xvciIsICAgICJzZXQgc2hhZG93IGNvbG9yIiwgICAgICBPRkZTRVQoc2hhZG93Y29s b3IucmdiYSksICAgQVZfT1BUX1RZUEVfQ09MT1IsICB7LnN0cj0iYmxhY2sifSwgMCwgMCwgRkxB R1N9LAogICAgIHsiYm94IiwgICAgICAgICAgICAic2V0IGJveCIsICAgICAgICAgICAgICAgT0ZG U0VUKGRyYXdfYm94KSwgICAgICAgICAgIEFWX09QVF9UWVBFX0JPT0wsICAgey5pNjQ9MH0sICAg ICAwLCAxLCBGTEFHU30sCi0gICAgeyJib3hib3JkZXJ3IiwgICAgICJzZXQgYm94IGJvcmRlcnMg d2lkdGgiLCBPRkZTRVQoYm94Ym9yZGVydyksICAgICAgICAgQVZfT1BUX1RZUEVfSU5ULCAgICB7 Lmk2ND0wfSwgICAgIDAsIElOVF9NQVgsIEZMQUdTfSwKKyAgICB7ImJveGJvcmRlcnciLCAgICAg InNldCBib3ggYm9yZGVycyB3aWR0aCIsIE9GRlNFVChib3hib3JkZXJ3KSwgICAgICAgICBBVl9P UFRfVFlQRV9TVFJJTkcsIHsuc3RyPSIwIn0sICAgMCwgMCwgRkxBR1N9LAogICAgIHsibGluZV9z cGFjaW5nIiwgICAic2V0IGxpbmUgc3BhY2luZyBpbiBwaXhlbHMiLCBPRkZTRVQobGluZV9zcGFj aW5nKSwgIEFWX09QVF9UWVBFX0lOVCwgICAgey5pNjQ9MH0sICAgICBJTlRfTUlOLCBJTlRfTUFY LCBGTEFHU30sCiAgICAgeyJmb250c2l6ZSIsICAgICAgICJzZXQgZm9udCBzaXplIiwgICAgICAg ICBPRkZTRVQoZm9udHNpemVfZXhwciksICAgICAgQVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0cj1O VUxMfSwgIDAsIDAsIEZMQUdTfSwKICAgICB7IngiLCAgICAgICAgICAgICAgInNldCB4IGV4cHJl c3Npb24iLCAgICAgIE9GRlNFVCh4X2V4cHIpLCAgICAgICAgICAgICBBVl9PUFRfVFlQRV9TVFJJ TkcsIHsuc3RyPSIwIn0sICAgMCwgMCwgRkxBR1N9LApAQCAtODE4LDYgKzgxOSwyMyBAQCBlcnJv cjoKICAgICByZXR1cm4gcmV0OwogfQogCisvLyBDb252ZXJ0IGEgc3RyaW5nIGZvcm1hdHRlZCBh cyAibjF8bjJ8Li4ufG5OIiBpbnRvIGFuIGludGVnZXIgYXJyYXkKK3N0YXRpYyBpbnQgc3RyaW5n X3RvX2FycmF5KGNvbnN0IGNoYXIgKnNvdXJjZSwgaW50ICpyZXN1bHQsIGludCByZXN1bHRfc2l6 ZSkKK3sKKyAgICBpbnQgY291bnRlciA9IDAsIHNpemUgPSBzdHJsZW4oc291cmNlKSArIDE7Cisg ICAgY2hhciAqc2F2ZXB0ciwgKmN1cnZhbCwgKmR1cCA9IGF2X21hbGxvYyhzaXplKTsKKyAgICBp ZiAoIWR1cCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgYXZfc3RybGNweShkdXAsIHNvdXJjZSwg c2l6ZSk7CisgICAgaWYgKHJlc3VsdF9zaXplID4gMCAmJiAoY3VydmFsID0gYXZfc3RydG9rKGR1 cCwgInwiLCAmc2F2ZXB0cikpKSB7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIHJlc3VsdFtj b3VudGVyKytdID0gYXRvaShjdXJ2YWwpOworICAgICAgICB9IHdoaWxlICgoY3VydmFsID0gYXZf c3RydG9rKE5VTEwsICJ8IiwgJnNhdmVwdHIpKSAmJiBjb3VudGVyIDwgcmVzdWx0X3NpemUpOwor ICAgIH0KKyAgICBhdl9mcmVlKGR1cCk7CisgICAgcmV0dXJuIGNvdW50ZXI7Cit9CisKIHN0YXRp YyBhdl9jb2xkIGludCBpbml0KEFWRmlsdGVyQ29udGV4dCAqY3R4KQogewogICAgIGludCBlcnI7 CkBAIC0xNzk2LDcgKzE4MTQsMjQgQEAgc3RhdGljIGludCBkcmF3X3RleHQoQVZGaWx0ZXJDb250 ZXh0ICpjdHgsIEFWRnJhbWUgKmZyYW1lKQogICAgIHVwZGF0ZV9jb2xvcl93aXRoX2FscGhhKHMs ICZib3hjb2xvciAgICwgcy0+Ym94Y29sb3IgICApOwogCiAgICAgaWYgKHMtPmRyYXdfYm94ICYm IHMtPmJveGJvcmRlcncpIHsKLSAgICAgICAgcy0+YmJfdG9wID0gcy0+YmJfcmlnaHQgPSBzLT5i Yl9ib3R0b20gPSBzLT5iYl9sZWZ0ID0gcy0+Ym94Ym9yZGVydzsKKyAgICAgICAgaW50IGJic2l6 ZVs0XTsKKyAgICAgICAgaW50IGNvdW50OworICAgICAgICBjb3VudCA9IHN0cmluZ190b19hcnJh eShzLT5ib3hib3JkZXJ3LCBiYnNpemUsIDQpOworICAgICAgICBpZiAoY291bnQgPT0gMSkgewor ICAgICAgICAgICAgcy0+YmJfdG9wID0gcy0+YmJfcmlnaHQgPSBzLT5iYl9ib3R0b20gPSBzLT5i Yl9sZWZ0ID0gYmJzaXplWzBdOworICAgICAgICB9IGVsc2UgaWYgKGNvdW50ID09IDIpIHsKKyAg ICAgICAgICAgIHMtPmJiX3RvcCA9IHMtPmJiX2JvdHRvbSA9IGJic2l6ZVswXTsKKyAgICAgICAg ICAgIHMtPmJiX3JpZ2h0ID0gcy0+YmJfbGVmdCA9IGJic2l6ZVsxXTsKKyAgICAgICAgfSBlbHNl IGlmIChjb3VudCA9PSAzKSB7CisgICAgICAgICAgICBzLT5iYl90b3AgPSBiYnNpemVbMF07Cisg ICAgICAgICAgICBzLT5iYl9yaWdodCA9IHMtPmJiX2xlZnQgPSBiYnNpemVbMV07CisgICAgICAg ICAgICBzLT5iYl9ib3R0b20gPSBiYnNpemVbMl07CisgICAgICAgIH0gZWxzZSBpZiAoY291bnQg PT0gNCkgeworICAgICAgICAgICAgcy0+YmJfdG9wID0gYmJzaXplWzBdOworICAgICAgICAgICAg cy0+YmJfcmlnaHQgPSBiYnNpemVbMV07CisgICAgICAgICAgICBzLT5iYl9ib3R0b20gPSBiYnNp emVbMl07CisgICAgICAgICAgICBzLT5iYl9sZWZ0ID0gYmJzaXplWzNdOworICAgICAgICB9CiAg ICAgfSBlbHNlIHsKICAgICAgICAgcy0+YmJfdG9wID0gcy0+YmJfcmlnaHQgPSBzLT5iYl9ib3R0 b20gPSBzLT5iYl9sZWZ0ID0gMDsKICAgICB9Ci0tIAoyLjM5LjEKCg== --00000000000015604505fe1a42ec Content-Type: text/x-patch; charset="US-ASCII"; name="0002-avfilter-vf_drawtext-improve-glyph-shaping-and-posit.patch" Content-Disposition: attachment; filename="0002-avfilter-vf_drawtext-improve-glyph-shaping-and-posit.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_livzfbkk6 RnJvbSA0MjU1N2Y2MTQ3ZTBmNjVmNzM2ZWJmYjQ3OWRkM2QxMmQxNTVkNzEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB5ZXRoaWUgPGtsaW1rbGltQHRpc2NhbGkuaXQ+CkRhdGU6IEZy aSwgMjYgTWF5IDIwMjMgMTI6MTE6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDIvOF0gYXZmaWx0 ZXIvdmZfZHJhd3RleHQ6IGltcHJvdmUgZ2x5cGggc2hhcGluZyBhbmQKIHBvc2l0aW9uaW5nCgot IHRleHQgaXMgbm93IHNoYXBlZCB1c2luZyBsaWJoYXJmYnV6Ci0gZ2x5cGhzIHBvc2l0aW9uIGlz IG5vdyBhY2N1cmF0ZSB0byAxLzQgcGl4ZWwgaW4gYm90aCBkaXJlY3Rpb25zCi0gdGhlIGRlZmF1 bHQgbGluZSBoZWlnaHQgaXMgbm93IHRoZSBvbmUgZGVmaW5lZCBpbiB0aGUgZm9udAoKQWRkcyBs aWJoYXJmYnV6eiBkZXBlbmRlbmN5LgoKU2lnbmVkLW9mZi1ieTogUGF1bCBCIE1haG9sIDxvbmVt ZGFAZ21haWwuY29tPgotLS0KIGNvbmZpZ3VyZSAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIGRv Yy9maWx0ZXJzLnRleGkgICAgICAgICAgfCAgIDggKy0KIGxpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0 LmMgfCA4NTkgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIDMgZmlsZXMg Y2hhbmdlZCwgNTkyIGluc2VydGlvbnMoKyksIDI4MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggZTQxZmUwZjE3Mi4uZDhhZTM3YmY4ZCAxMDA3 NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMjM2LDYgKzIzNiw3IEBAIEV4 dGVybmFsIGxpYnJhcnkgc3VwcG9ydDoKICAgLS1lbmFibGUtbGliZm9udGNvbmZpZyAgIGVuYWJs ZSBsaWJmb250Y29uZmlnLCB1c2VmdWwgZm9yIGRyYXd0ZXh0IGZpbHRlciBbbm9dCiAgIC0tZW5h YmxlLWxpYmZyZWV0eXBlICAgICBlbmFibGUgbGliZnJlZXR5cGUsIG5lZWRlZCBmb3IgZHJhd3Rl eHQgZmlsdGVyIFtub10KICAgLS1lbmFibGUtbGliZnJpYmlkaSAgICAgIGVuYWJsZSBsaWJmcmli aWRpLCBpbXByb3ZlcyBkcmF3dGV4dCBmaWx0ZXIgW25vXQorICAtLWVuYWJsZS1saWJoYXJmYnV6 eiAgICAgZW5hYmxlIGxpYmhhcmZidXp6LCBuZWVkZWQgZm9yIGRyYXd0ZXh0IGZpbHRlciBbbm9d CiAgIC0tZW5hYmxlLWxpYmdsc2xhbmcgICAgICBlbmFibGUgR0xTTC0+U1BJUlYgY29tcGlsYXRp b24gdmlhIGxpYmdsc2xhbmcgW25vXQogICAtLWVuYWJsZS1saWJnbWUgICAgICAgICAgZW5hYmxl IEdhbWUgTXVzaWMgRW11IHZpYSBsaWJnbWUgW25vXQogICAtLWVuYWJsZS1saWJnc20gICAgICAg ICAgZW5hYmxlIEdTTSBkZS9lbmNvZGluZyB2aWEgbGliZ3NtIFtub10KQEAgLTE4NTksNiArMTg2 MCw3IEBAIEVYVEVSTkFMX0xJQlJBUllfTElTVD0iCiAgICAgbGliZm9udGNvbmZpZwogICAgIGxp YmZyZWV0eXBlCiAgICAgbGliZnJpYmlkaQorICAgIGxpYmhhcmZidXp6CiAgICAgbGliZ2xzbGFu ZwogICAgIGxpYmdtZQogICAgIGxpYmdzbQpAQCAtMzcyMCw3ICszNzIyLDcgQEAgZGlsYXRpb25f b3BlbmNsX2ZpbHRlcl9kZXBzPSJvcGVuY2wiCiBkbm5fY2xhc3NpZnlfZmlsdGVyX3NlbGVjdD0i ZG5uIgogZG5uX2RldGVjdF9maWx0ZXJfc2VsZWN0PSJkbm4iCiBkbm5fcHJvY2Vzc2luZ19maWx0 ZXJfc2VsZWN0PSJkbm4iCi1kcmF3dGV4dF9maWx0ZXJfZGVwcz0ibGliZnJlZXR5cGUiCitkcmF3 dGV4dF9maWx0ZXJfZGVwcz0ibGliZnJlZXR5cGUgbGliaGFyZmJ1enoiCiBkcmF3dGV4dF9maWx0 ZXJfc3VnZ2VzdD0ibGliZm9udGNvbmZpZyBsaWJmcmliaWRpIgogZWxiZ19maWx0ZXJfZGVwcz0i YXZjb2RlYyIKIGVxX2ZpbHRlcl9kZXBzPSJncGwiCkBAIC02Njg3LDYgKzY2ODksNyBAQCBlbmFi bGVkIGZvbnRjb25maWcgICAgICAgICYmIGVuYWJsZSBsaWJmb250Y29uZmlnCiBlbmFibGVkIGxp YmZvbnRjb25maWcgICAgICYmIHJlcXVpcmVfcGtnX2NvbmZpZyBsaWJmb250Y29uZmlnIGZvbnRj b25maWcgImZvbnRjb25maWcvZm9udGNvbmZpZy5oIiBGY0luaXQKIGVuYWJsZWQgbGliZnJlZXR5 cGUgICAgICAgJiYgcmVxdWlyZV9wa2dfY29uZmlnIGxpYmZyZWV0eXBlIGZyZWV0eXBlMiAiZnQy YnVpbGQuaCBGVF9GUkVFVFlQRV9IIiBGVF9Jbml0X0ZyZWVUeXBlCiBlbmFibGVkIGxpYmZyaWJp ZGkgICAgICAgICYmIHJlcXVpcmVfcGtnX2NvbmZpZyBsaWJmcmliaWRpIGZyaWJpZGkgZnJpYmlk aS5oIGZyaWJpZGlfdmVyc2lvbl9pbmZvCitlbmFibGVkIGxpYmhhcmZidXp6ICAgICAgICYmIHJl cXVpcmVfcGtnX2NvbmZpZyBsaWJoYXJmYnV6eiBoYXJmYnV6eiBoYi5oIGhiX2J1ZmZlcl9jcmVh dGUKIGVuYWJsZWQgbGliZ2xzbGFuZyAmJiB7IGNoZWNrX2xpYiBzcGlydl9jb21waWxlciBnbHNs YW5nL0luY2x1ZGUvZ2xzbGFuZ19jX2ludGVyZmFjZS5oIGdsc2xhbmdfaW5pdGlhbGl6ZV9wcm9j ZXNzIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtbGdsc2xhbmcgLWxNYWNoaW5lSW5k ZXBlbmRlbnQgLWxPU0RlcGVuZGVudCAtbEhMU0wgLWxPR0xDb21waWxlciAtbEdlbmVyaWNDb2Rl R2VuIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtbFNQVlJlbWFwcGVyIC1sU1BJUlYg LWxTUElSVi1Ub29scy1vcHQgLWxTUElSVi1Ub29scyAtbHB0aHJlYWQgLWxzdGRjKysgLWxtIHx8 CmRpZmYgLS1naXQgYS9kb2MvZmlsdGVycy50ZXhpIGIvZG9jL2ZpbHRlcnMudGV4aQppbmRleCBh NDYzNTdiZmQ4Li5iMTAxNjU2OTVlIDEwMDY0NAotLS0gYS9kb2MvZmlsdGVycy50ZXhpCisrKyBi L2RvYy9maWx0ZXJzLnRleGkKQEAgLTEyMjkyLDcgKzEyMjkyLDcgQEAgRHJhdyBhIHRleHQgc3Ry aW5nIG9yIHRleHQgZnJvbSBhIHNwZWNpZmllZCBmaWxlIG9uIHRvcCBvZiBhIHZpZGVvLCB1c2lu ZyB0aGUKIGxpYmZyZWV0eXBlIGxpYnJhcnkuCiAKIFRvIGVuYWJsZSBjb21waWxhdGlvbiBvZiB0 aGlzIGZpbHRlciwgeW91IG5lZWQgdG8gY29uZmlndXJlIEZGbXBlZyB3aXRoCi1AY29kZXstLWVu YWJsZS1saWJmcmVldHlwZX0uCitAY29kZXstLWVuYWJsZS1saWJmcmVldHlwZX0gYW5kIEBjb2Rl ey0tZW5hYmxlLWxpYmhhcmZidXp6fS4KIFRvIGVuYWJsZSBkZWZhdWx0IGZvbnQgZmFsbGJhY2sg YW5kIHRoZSBAdmFye2ZvbnR9IG9wdGlvbiB5b3UgbmVlZCB0bwogY29uZmlndXJlIEZGbXBlZyB3 aXRoIEBjb2Rley0tZW5hYmxlLWxpYmZvbnRjb25maWd9LgogVG8gZW5hYmxlIHRoZSBAdmFye3Rl eHRfc2hhcGluZ30gb3B0aW9uLCB5b3UgbmVlZCB0byBjb25maWd1cmUgRkZtcGVnIHdpdGgKQEAg LTEyMzIwLDggKzEyMzIwLDcgQEAgb3B0aW9uLCBjaGVjayB0aGUgQHJlZntjb2xvciBzeW50YXgs LCJDb2xvciIgc2VjdGlvbiBpbiB0aGUgZmZtcGVnLXV0aWxzIG1hbnVhbCwKIFRoZSBkZWZhdWx0 IHZhbHVlIG9mIEB2YXJ7Ym94Y29sb3J9IGlzICJ3aGl0ZSIuCiAKIEBpdGVtIGxpbmVfc3BhY2lu ZwotU2V0IHRoZSBsaW5lIHNwYWNpbmcgaW4gcGl4ZWxzIG9mIHRoZSBib3JkZXIgdG8gYmUgZHJh d24gYXJvdW5kIHRoZSBib3ggdXNpbmcgQHZhcntib3h9LgotVGhlIGRlZmF1bHQgdmFsdWUgb2Yg QHZhcntsaW5lX3NwYWNpbmd9IGlzIDAuCitTZXQgdGhlIGxpbmUgc3BhY2luZyBpbiBwaXhlbHMu IFRoZSBkZWZhdWx0IHZhbHVlIG9mIEB2YXJ7bGluZV9zcGFjaW5nfSBpcyAwLgogCiBAaXRlbSBi b3JkZXJ3CiBTZXQgdGhlIHdpZHRoIG9mIHRoZSBib3JkZXIgdG8gYmUgZHJhd24gYXJvdW5kIHRo ZSB0ZXh0IHVzaW5nIEB2YXJ7Ym9yZGVyY29sb3J9LgpAQCAtMTI4MjEsNiArMTI4MjAsOSBAQCBG b3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBmb250Y29uZmlnLCBjaGVjazoKIEZvciBtb3JlIGlu Zm9ybWF0aW9uIGFib3V0IGxpYmZyaWJpZGksIGNoZWNrOgogQHVybHtodHRwOi8vZnJpYmlkaS5v cmcvfS4KIAorRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgbGliaGFyZmJ1enosIGNoZWNrOgor QHVybHtodHRwczovL2dpdGh1Yi5jb20vaGFyZmJ1enovaGFyZmJ1enp9LgorCiBAc2VjdGlvbiBl ZGdlZGV0ZWN0CiAKIERldGVjdCBhbmQgZHJhdyBlZGdlcy4gVGhlIGZpbHRlciB1c2VzIHRoZSBD YW5ueSBFZGdlIERldGVjdGlvbiBhbGdvcml0aG0uCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci92 Zl9kcmF3dGV4dC5jIGIvbGliYXZmaWx0ZXIvdmZfZHJhd3RleHQuYwppbmRleCAwYzRkYjNlYzUz Li5iZGFiNTkxZWZkIDEwMDY0NAotLS0gYS9saWJhdmZpbHRlci92Zl9kcmF3dGV4dC5jCisrKyBi L2xpYmF2ZmlsdGVyL3ZmX2RyYXd0ZXh0LmMKQEAgLTEsNCArMSw1IEBACiAvKgorICogQ29weXJp Z2h0IChjKSAyMDIzIEZyYW5jZXNjbyBDYXJ1c2kKICAqIENvcHlyaWdodCAoYykgMjAxMSBTdGVm YW5vIFNhYmF0aW5pCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTAgUy5OLiBIZW1hbnRoIE1lZW5ha3No aXN1bmRhcmFtCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDMgR3VzdGF2byBTdmVyenV0IEJhcmJpZXJp IDxnc2JhcmJpZXJpQHlhaG9vLmNvbS5icj4KQEAgLTcyLDEwICs3MywxNiBAQAogI2luY2x1ZGUg RlRfR0xZUEhfSAogI2luY2x1ZGUgRlRfU1RST0tFUl9ICiAKKyNpbmNsdWRlIDxoYi5oPgorI2lu Y2x1ZGUgPGhiLWZ0Lmg+CisKKy8vIENlaWxpbmcgb3BlcmF0aW9uIGZvciBwb3NpdGl2ZSBpbnRl Z2VycyBkaXZpc2lvbgorI2RlZmluZSBQT1NfQ0VJTCh4LCB5KSAoKHgpLyh5KSArICgoeCklKHkp ICE9IDApKQorCiBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgdmFyX25hbWVzW10gPSB7CiAgICAg ImRhciIsCiAgICAgImhzdWIiLCAidnN1YiIsCi0gICAgImxpbmVfaCIsICJsaCIsICAgICAgICAg ICAvLy88IGxpbmUgaGVpZ2h0LCBzYW1lIGFzIG1heF9nbHlwaF9oCisgICAgImxpbmVfaCIsICJs aCIsICAgICAgICAgICAvLy88IGxpbmUgaGVpZ2h0CiAgICAgIm1haW5faCIsICJoIiwgIkgiLCAg ICAgICAvLy88IGhlaWdodCBvZiB0aGUgaW5wdXQgdmlkZW8KICAgICAibWFpbl93IiwgInciLCAi VyIsICAgICAgIC8vLzwgd2lkdGggIG9mIHRoZSBpbnB1dCB2aWRlbwogICAgICJtYXhfZ2x5cGhf YSIsICJhc2NlbnQiLCAgLy8vPCBtYXggZ2x5cGggYXNjZW5kZXIKQEAgLTE1Niw2ICsxNjMsNzIg QEAgZW51bSBleHBhbnNpb25fbW9kZSB7CiAgICAgRVhQX1NUUkZUSU1FLAogfTsKIAordHlwZWRl ZiBzdHJ1Y3QgSGFyZmJ1enpEYXRhIHsKKyAgICBoYl9idWZmZXJfdCogYnVmOworICAgIGhiX2Zv bnRfdCogZm9udDsKKyAgICB1bnNpZ25lZCBpbnQgZ2x5cGhfY291bnQ7CisgICAgaGJfZ2x5cGhf aW5mb190KiBnbHlwaF9pbmZvOworICAgIGhiX2dseXBoX3Bvc2l0aW9uX3QqIGdseXBoX3BvczsK K30gSGFyZmJ1enpEYXRhOworCisvKiogSW5mb3JtYXRpb24gYWJvdXQgYSBzaW5nbGUgZ2x5cGgg aW4gYSB0ZXh0IGxpbmUgKi8KK3R5cGVkZWYgc3RydWN0IEdseXBoSW5mbyB7CisgICAgdWludDMy X3QgY29kZTsgICAgICAgICAgICAgICAgICAvLy88IHRoZSBnbHlwaCBjb2RlIHBvaW50CisgICAg aW50IHg7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLy88IHRoZSB4IHBvc2l0aW9uIG9mIHRo ZSBnbHlwaAorICAgIGludCB5OyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8vPCB0aGUgeSBw b3NpdGlvbiBvZiB0aGUgZ2x5cGgKKyAgICBpbnQgc2hpZnRfeDY0OyAgICAgICAgICAgICAgICAg IC8vLzwgdGhlIGhvcml6b250YWwgc2hpZnQgb2YgdGhlIGdseXBoIGluIDI2LjYgdW5pdHMKKyAg ICBpbnQgc2hpZnRfeTY0OyAgICAgICAgICAgICAgICAgIC8vLzwgdGhlIHZlcnRpY2FsIHNoaWZ0 IG9mIHRoZSBnbHlwaCBpbiAyNi42IHVuaXRzCit9IEdseXBoSW5mbzsKKworLyoqIEluZm9ybWF0 aW9uIGFib3V0IGEgc2luZ2xlIGxpbmUgb2YgdGV4dCAqLwordHlwZWRlZiBzdHJ1Y3QgVGV4dExp bmUgeworICAgIGludCBvZmZzZXRfbGVmdDY0OyAgICAgICAgICAgICAgLy8vPCBvZmZzZXQgYmV0 d2VlbiB0aGUgb3JpZ2luIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8vICB0aGUgbGVmdG1vc3QgcGl4ZWwgb2YgdGhlIGZpcnN0IGdseXBoCisgICAgaW50IG9mZnNl dF9yaWdodDY0OyAgICAgICAgICAgICAvLy88IG1heGltdW0gb2Zmc2V0IGJldHdlZW4gdGhlIG9y aWdpbiBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vLyAgdGhlIHJp Z2h0bW9zdCBwaXhlbCBvZiB0aGUgbGFzdCBnbHlwaAorICAgIGludCB3aWR0aDY0OyAgICAgICAg ICAgICAgICAgICAgLy8vPCB3aWR0aCBvZiB0aGUgbGluZQorICAgIEhhcmZidXp6RGF0YSBoYl9k YXRhOyAgICAgICAgICAgLy8vPCBsaWJoYXJmYnV6eiBkYXRhIG9mIHRoaXMgdGV4dCBsaW5lCisg ICAgR2x5cGhJbmZvKiBnbHlwaHM7ICAgICAgICAgICAgICAvLy88IGFycmF5IG9mIGdseXBocyBp biB0aGlzIHRleHQgbGluZQorICAgIGludCBjbHVzdGVyX29mZnNldDsgICAgICAgICAgICAgLy8v PCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoaXMgbGluZSBiZWdpbnMKK30gVGV4dExpbmU7CisKKy8q KiBBIGdseXBoIGFzIGxvYWRlZCBhbmQgcmVuZGVyZWQgdXNpbmcgbGliZnJlZXR5cGUgKi8KK3R5 cGVkZWYgc3RydWN0IEdseXBoIHsKKyAgICBGVF9HbHlwaCBnbHlwaDsKKyAgICBGVF9HbHlwaCBi b3JkZXJfZ2x5cGg7CisgICAgdWludDMyX3QgY29kZTsKKyAgICB1bnNpZ25lZCBpbnQgZm9udHNp emU7CisgICAgLyoqIEdseXBoIGJpdG1hcHMgd2l0aCAxLzQgcGl4ZWwgcHJlY2lzaW9uIGluIGJv dGggZGlyZWN0aW9ucyAqLworICAgIEZUX0JpdG1hcEdseXBoIGJnbHlwaFsxNl07CisgICAgLyoq IE91dGxpbmVkIGdseXBoIGJpdG1hcHMgd2l0aCAxLzQgcGl4ZWwgcHJlY2lzaW9uIGluIGJvdGgg ZGlyZWN0aW9ucyAqLworICAgIEZUX0JpdG1hcEdseXBoIGJvcmRlcl9iZ2x5cGhbMTZdOworICAg IEZUX0JCb3ggYmJveDsKK30gR2x5cGg7CisKKy8qKiBHbG9iYWwgdGV4dCBtZXRyaWNzICovCit0 eXBlZGVmIHN0cnVjdCBUZXh0TWV0cmljcyB7CisgICAgaW50IG9mZnNldF90b3A2NDsgICAgICAg ICAgICAgICAvLy88IGFzY2VuZGVyIGFtb3VudCBvZiB0aGUgZmlyc3QgbGluZSAoaW4gMjYuNiB1 bml0cykKKyAgICBpbnQgb2Zmc2V0X2JvdHRvbTY0OyAgICAgICAgICAgIC8vLzwgZGVzY2VuZGVy IGFtb3VudCBvZiB0aGUgbGFzdCBsaW5lIChpbiAyNi42IHVuaXRzKQorICAgIGludCBvZmZzZXRf bGVmdDY0OyAgICAgICAgICAgICAgLy8vPCBtYXhpbXVtIG9mZnNldCBiZXR3ZWVuIHRoZSBvcmln aW4gYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLy8gIHRoZSBsZWZ0 bW9zdCBwaXhlbCBvZiB0aGUgZmlyc3QgZ2x5cGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vLyAgb2YgZWFjaCBsaW5lIChpbiAyNi42IHVuaXRzKQorICAgIGludCBvZmZz ZXRfcmlnaHQ2NDsgICAgICAgICAgICAgLy8vPCBtYXhpbXVtIG9mZnNldCBiZXR3ZWVuIHRoZSBv cmlnaW4gYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLy8gIHRoZSBy aWdodG1vc3QgcGl4ZWwgb2YgdGhlIGxhc3QgZ2x5cGgKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vLyAgb2YgZWFjaCBsaW5lIChpbiAyNi42IHVuaXRzKQorICAgIGludCBs aW5lX2hlaWdodDY0OyAgICAgICAgICAgICAgLy8vPCB0aGUgZm9udC1kZWZpbmVkIGxpbmUgaGVp Z2h0CisgICAgaW50IHdpZHRoOyAgICAgICAgICAgICAgICAgICAgICAvLy88IHdpZHRoIG9mIHRo ZSBsb25nZXN0IGxpbmUgLSBjZWlsKHdpZHRoNjQvNjQpCisgICAgaW50IGhlaWdodDsgICAgICAg ICAgICAgICAgICAgICAvLy88IHRvdGFsIGhlaWdodCBvZiB0aGUgdGV4dCAtIGNlaWwoaGVpZ2h0 NjQvNjQpCisKKyAgICBpbnQgbWluX3k2NDsgICAgICAgICAgICAgICAgICAgIC8vLzwgbWluaW11 bSB2YWx1ZSBvZiBiYm94LnlNaW4gYW1vbmcgZ2x5cGhzIChpbiAyNi42IHVuaXRzKQorICAgIGlu dCBtYXhfeTY0OyAgICAgICAgICAgICAgICAgICAgLy8vPCBtYXhpbXVtIHZhbHVlIG9mIGJib3gu eU1heCBhbW9uZyBnbHlwaHMgKGluIDI2LjYgdW5pdHMpCisgICAgaW50IG1pbl94NjQ7ICAgICAg ICAgICAgICAgICAgICAvLy88IG1pbmltdW0gdmFsdWUgb2YgYmJveC54TWluIGFtb25nIGdseXBo cyAoaW4gMjYuNiB1bml0cykKKyAgICBpbnQgbWF4X3g2NDsgICAgICAgICAgICAgICAgICAgIC8v LzwgbWF4aW11bSB2YWx1ZSBvZiBiYm94LnhNYXggYW1vbmcgZ2x5cGhzIChpbiAyNi42IHVuaXRz KQorCisgICAgLy8gUG9zaXRpb24gb2YgdGhlIGJhY2tncm91bmQgYm94ICh3aXRob3V0IGJvcmRl cnMpCisgICAgaW50IHJlY3RfeDsgICAgICAgICAgICAgICAgICAgICAvLy88IHggcG9zaXRpb24g b2YgdGhlIGJveAorICAgIGludCByZWN0X3k7ICAgICAgICAgICAgICAgICAgICAgLy8vPCB5IHBv c2l0aW9uIG9mIHRoZSBib3gKK30gVGV4dE1ldHJpY3M7CisKIHR5cGVkZWYgc3RydWN0IERyYXdU ZXh0Q29udGV4dCB7CiAgICAgY29uc3QgQVZDbGFzcyAqY2xhc3M7CiAgICAgaW50IGV4cF9tb2Rl OyAgICAgICAgICAgICAgICAgICAvLy88IGV4cGFuc2lvbiBtb2RlIHRvIHVzZSBmb3IgdGhlIHRl eHQKQEAgLTE2OSwxMSArMjQyLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgRHJhd1RleHRDb250ZXh0IHsK ICAgICB1aW50OF90ICpmb250Y29sb3JfZXhwcjsgICAgICAgIC8vLzwgZm9udGNvbG9yIGV4cHJl c3Npb24gdG8gZXZhbHVhdGUKICAgICBBVkJQcmludCBleHBhbmRlZF9mb250Y29sb3I7ICAgIC8v LzwgdXNlZCB0byBjb250YWluIHRoZSBleHBhbmRlZCBmb250Y29sb3Igc3BlYwogICAgIGludCBm dF9sb2FkX2ZsYWdzOyAgICAgICAgICAgICAgLy8vPCBmbGFncyB1c2VkIGZvciBsb2FkaW5nIGZv bnRzLCBzZWUgRlRfTE9BRF8qCi0gICAgRlRfVmVjdG9yICpwb3NpdGlvbnM7ICAgICAgICAgICAv Ly88IHBvc2l0aW9ucyBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSB0ZXh0Ci0gICAgc2l6ZV90IG5i X3Bvc2l0aW9uczsgICAgICAgICAgICAvLy88IG51bWJlciBvZiBlbGVtZW50cyBvZiBwb3NpdGlv bnMgYXJyYXkKICAgICBjaGFyICp0ZXh0ZmlsZTsgICAgICAgICAgICAgICAgIC8vLzwgZmlsZSB3 aXRoIHRleHQgdG8gYmUgZHJhd24KLSAgICBpbnQgeDsgICAgICAgICAgICAgICAgICAgICAgICAg IC8vLzwgeCBwb3NpdGlvbiB0byBzdGFydCBkcmF3aW5nIHRleHQKLSAgICBpbnQgeTsgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vLzwgeSBwb3NpdGlvbiB0byBzdGFydCBkcmF3aW5nIHRleHQK KyAgICBkb3VibGUgeDsgICAgICAgICAgICAgICAgICAgICAgIC8vLzwgeCBwb3NpdGlvbiB0byBz dGFydCBkcmF3aW5nIHRleHQKKyAgICBkb3VibGUgeTsgICAgICAgICAgICAgICAgICAgICAgIC8v LzwgeSBwb3NpdGlvbiB0byBzdGFydCBkcmF3aW5nIHRleHQKICAgICBpbnQgbWF4X2dseXBoX3c7 ICAgICAgICAgICAgICAgIC8vLzwgbWF4IGdseXBoIHdpZHRoCiAgICAgaW50IG1heF9nbHlwaF9o OyAgICAgICAgICAgICAgICAvLy88IG1heCBnbHlwaCBoZWlnaHQKICAgICBpbnQgc2hhZG93eCwg c2hhZG93eTsKQEAgLTE4Niw3ICsyNTcsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgRHJhd1RleHRDb250 ZXh0IHsKICAgICBpbnQgbGluZV9zcGFjaW5nOyAgICAgICAgICAgICAgIC8vLzwgbGluZXMgc3Bh Y2luZyBpbiBwaXhlbHMKICAgICBzaG9ydCBpbnQgZHJhd19ib3g7ICAgICAgICAgICAgIC8vLzwg ZHJhdyBib3ggYXJvdW5kIHRleHQgLSB0cnVlIG9yIGZhbHNlCiAgICAgaW50IGJveGJvcmRlcnc7 ICAgICAgICAgICAgICAgICAvLy88IGJveCBib3JkZXIgd2lkdGgKLSAgICBpbnQgdXNlX2tlcm5p bmc7ICAgICAgICAgICAgICAgIC8vLzwgZm9udCBrZXJuaW5nIGlzIHVzZWQgLSB0cnVlL2ZhbHNl CisgICAgaW50IGJiX3RvcDsgICAgICAgICAgICAgICAgICAgICAvLy88IHRoZSBzaXplIG9mIHRo ZSB0b3AgYm94IGJvcmRlcgorICAgIGludCBiYl9yaWdodDsgICAgICAgICAgICAgICAgICAgLy8v PCB0aGUgc2l6ZSBvZiB0aGUgcmlnaHQgYm94IGJvcmRlcgorICAgIGludCBiYl9ib3R0b207ICAg ICAgICAgICAgICAgICAgLy8vPCB0aGUgc2l6ZSBvZiB0aGUgYm90dG9tIGJveCBib3JkZXIKKyAg ICBpbnQgYmJfbGVmdDsgICAgICAgICAgICAgICAgICAgIC8vLzwgdGhlIHNpemUgb2YgdGhlIGxl ZnQgYm94IGJvcmRlcgogICAgIGludCB0YWJzaXplOyAgICAgICAgICAgICAgICAgICAgLy8vPCB0 YWIgc2l6ZQogICAgIGludCBmaXhfYm91bmRzOyAgICAgICAgICAgICAgICAgLy8vPCBkbyB3ZSBs ZXQgaXQgZ28gb3V0IG9mIGZyYW1lIGJvdW5kcyAtIHQvZgogCkBAIC0yMjEsNiArMjk1LDEyIEBA IHR5cGVkZWYgc3RydWN0IERyYXdUZXh0Q29udGV4dCB7CiAgICAgaW50IHRleHRfc2hhcGluZzsg ICAgICAgICAgICAgICAvLy88IDEgdG8gc2hhcGUgdGhlIHRleHQgYmVmb3JlIGRyYXdpbmcgaXQK ICNlbmRpZgogICAgIEFWRGljdGlvbmFyeSAqbWV0YWRhdGE7CisKKyAgICBUZXh0TGluZSAqbGlu ZXM7ICAgICAgICAgICAgICAgIC8vLzwgY29tcHV0ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGV4dCBs aW5lcworICAgIGludCBsaW5lX2NvdW50OyAgICAgICAgICAgICAgICAgLy8vPCB0aGUgbnVtYmVy IG9mIHRleHQgbGluZXMKKyAgICB1aW50MzJfdCAqdGFiX2NsdXN0ZXJzOyAgICAgICAgIC8vLzwg dGhlIHBvc2l0aW9uIG9mIHRhYiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0CisgICAgaW50IHRhYl9j b3VudDsgICAgICAgICAgICAgICAgICAvLy88IHRoZSBudW1iZXIgb2YgdGFiIGNoYXJhY3RlcnMK KyAgICBpbnQgYmxhbmtfYWR2YW5jZTY0OyAgICAgICAgICAgIC8vLzwgdGhlIHNpemUgb2YgdGhl IHNwYWNlIGNoYXJhY3RlcgogfSBEcmF3VGV4dENvbnRleHQ7CiAKICNkZWZpbmUgT0ZGU0VUKHgp IG9mZnNldG9mKERyYXdUZXh0Q29udGV4dCwgeCkKQEAgLTIzNiw3ICszMTYsNyBAQCBzdGF0aWMg Y29uc3QgQVZPcHRpb24gZHJhd3RleHRfb3B0aW9uc1tdPSB7CiAgICAgeyJib3JkZXJjb2xvciIs ICAgICJzZXQgYm9yZGVyIGNvbG9yIiwgICAgICBPRkZTRVQoYm9yZGVyY29sb3IucmdiYSksICAg QVZfT1BUX1RZUEVfQ09MT1IsICB7LnN0cj0iYmxhY2sifSwgMCwgMCwgRkxBR1N9LAogICAgIHsi c2hhZG93Y29sb3IiLCAgICAic2V0IHNoYWRvdyBjb2xvciIsICAgICAgT0ZGU0VUKHNoYWRvd2Nv bG9yLnJnYmEpLCAgIEFWX09QVF9UWVBFX0NPTE9SLCAgey5zdHI9ImJsYWNrIn0sIDAsIDAsIEZM QUdTfSwKICAgICB7ImJveCIsICAgICAgICAgICAgInNldCBib3giLCAgICAgICAgICAgICAgIE9G RlNFVChkcmF3X2JveCksICAgICAgICAgICBBVl9PUFRfVFlQRV9CT09MLCAgIHsuaTY0PTB9LCAg ICAgMCwgMSwgRkxBR1N9LAotICAgIHsiYm94Ym9yZGVydyIsICAgICAic2V0IGJveCBib3JkZXJz IHdpZHRoIiwgT0ZGU0VUKGJveGJvcmRlcncpLCAgICAgICAgIEFWX09QVF9UWVBFX0lOVCwgICAg ey5pNjQ9MH0sICAgICBJTlRfTUlOLCBJTlRfTUFYLCBGTEFHU30sCisgICAgeyJib3hib3JkZXJ3 IiwgICAgICJzZXQgYm94IGJvcmRlcnMgd2lkdGgiLCBPRkZTRVQoYm94Ym9yZGVydyksICAgICAg ICAgQVZfT1BUX1RZUEVfSU5ULCAgICB7Lmk2ND0wfSwgICAgIDAsIElOVF9NQVgsIEZMQUdTfSwK ICAgICB7ImxpbmVfc3BhY2luZyIsICAgInNldCBsaW5lIHNwYWNpbmcgaW4gcGl4ZWxzIiwgT0ZG U0VUKGxpbmVfc3BhY2luZyksICBBVl9PUFRfVFlQRV9JTlQsICAgIHsuaTY0PTB9LCAgICAgSU5U X01JTiwgSU5UX01BWCwgRkxBR1N9LAogICAgIHsiZm9udHNpemUiLCAgICAgICAic2V0IGZvbnQg c2l6ZSIsICAgICAgICAgT0ZGU0VUKGZvbnRzaXplX2V4cHIpLCAgICAgIEFWX09QVF9UWVBFX1NU UklORywgey5zdHI9TlVMTH0sICAwLCAwLCBGTEFHU30sCiAgICAgeyJ4IiwgICAgICAgICAgICAg ICJzZXQgeCBleHByZXNzaW9uIiwgICAgICBPRkZTRVQoeF9leHByKSwgICAgICAgICAgICAgQVZf T1BUX1RZUEVfU1RSSU5HLCB7LnN0cj0iMCJ9LCAgIDAsIDAsIEZMQUdTfSwKQEAgLTMwNSwxOSAr Mzg1LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmdF9lcnJvciB7CiAKICNkZWZpbmUgRlRfRVJS TVNHKGUpIGZ0X2Vycm9yc1tlXS5lcnJfbXNnCiAKLXR5cGVkZWYgc3RydWN0IEdseXBoIHsKLSAg ICBGVF9HbHlwaCBnbHlwaDsKLSAgICBGVF9HbHlwaCBib3JkZXJfZ2x5cGg7Ci0gICAgdWludDMy X3QgY29kZTsKLSAgICB1bnNpZ25lZCBpbnQgZm9udHNpemU7Ci0gICAgRlRfQml0bWFwIGJpdG1h cDsgLy8vPCBhcnJheSBob2xkaW5nIGJpdG1hcHMgb2YgZm9udAotICAgIEZUX0JpdG1hcCBib3Jk ZXJfYml0bWFwOyAvLy88IGFycmF5IGhvbGRpbmcgYml0bWFwcyBvZiBmb250IGJvcmRlcgotICAg IEZUX0JCb3ggYmJveDsKLSAgICBpbnQgYWR2YW5jZTsKLSAgICBpbnQgYml0bWFwX2xlZnQ7Ci0g ICAgaW50IGJpdG1hcF90b3A7Ci19IEdseXBoOwotCiBzdGF0aWMgaW50IGdseXBoX2NtcChjb25z dCB2b2lkICprZXksIGNvbnN0IHZvaWQgKmIpCiB7CiAgICAgY29uc3QgR2x5cGggKmEgPSBrZXks ICpiYiA9IGI7CkBAIC0zMjksNzcgKzM5Niw2IEBAIHN0YXRpYyBpbnQgZ2x5cGhfY21wKGNvbnN0 IHZvaWQgKmtleSwgY29uc3Qgdm9pZCAqYikKICAgICAgICAgcmV0dXJuIEZGRElGRlNJR04oKGlu dDY0X3QpYS0+Zm9udHNpemUsIChpbnQ2NF90KWJiLT5mb250c2l6ZSk7CiB9CiAKLS8qKgotICog TG9hZCBnbHlwaHMgY29ycmVzcG9uZGluZyB0byB0aGUgVVRGLTMyIGNvZGVwb2ludCBjb2RlLgot ICovCi1zdGF0aWMgaW50IGxvYWRfZ2x5cGgoQVZGaWx0ZXJDb250ZXh0ICpjdHgsIEdseXBoICoq Z2x5cGhfcHRyLCB1aW50MzJfdCBjb2RlKQotewotICAgIERyYXdUZXh0Q29udGV4dCAqcyA9IGN0 eC0+cHJpdjsKLSAgICBGVF9CaXRtYXBHbHlwaCBiaXRtYXBnbHlwaDsKLSAgICBHbHlwaCAqZ2x5 cGg7Ci0gICAgc3RydWN0IEFWVHJlZU5vZGUgKm5vZGUgPSBOVUxMOwotICAgIGludCByZXQ7Ci0K LSAgICAvKiBsb2FkIGdseXBoIGludG8gcy0+ZmFjZS0+Z2x5cGggKi8KLSAgICBpZiAoRlRfTG9h ZF9DaGFyKHMtPmZhY2UsIGNvZGUsIHMtPmZ0X2xvYWRfZmxhZ3MpKQotICAgICAgICByZXR1cm4g QVZFUlJPUihFSU5WQUwpOwotCi0gICAgZ2x5cGggPSBhdl9tYWxsb2N6KHNpemVvZigqZ2x5cGgp KTsKLSAgICBpZiAoIWdseXBoKSB7Ci0gICAgICAgIHJldCA9IEFWRVJST1IoRU5PTUVNKTsKLSAg ICAgICAgZ290byBlcnJvcjsKLSAgICB9Ci0gICAgZ2x5cGgtPmNvZGUgID0gY29kZTsKLSAgICBn bHlwaC0+Zm9udHNpemUgPSBzLT5mb250c2l6ZTsKLQotICAgIGlmIChGVF9HZXRfR2x5cGgocy0+ ZmFjZS0+Z2x5cGgsICZnbHlwaC0+Z2x5cGgpKSB7Ci0gICAgICAgIHJldCA9IEFWRVJST1IoRUlO VkFMKTsKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICB9Ci0gICAgaWYgKHMtPmJvcmRlcncpIHsK LSAgICAgICAgZ2x5cGgtPmJvcmRlcl9nbHlwaCA9IGdseXBoLT5nbHlwaDsKLSAgICAgICAgaWYg KEZUX0dseXBoX1N0cm9rZUJvcmRlcigmZ2x5cGgtPmJvcmRlcl9nbHlwaCwgcy0+c3Ryb2tlciwg MCwgMCkgfHwKLSAgICAgICAgICAgIEZUX0dseXBoX1RvX0JpdG1hcCgmZ2x5cGgtPmJvcmRlcl9n bHlwaCwgRlRfUkVOREVSX01PREVfTk9STUFMLCAwLCAxKSkgewotICAgICAgICAgICAgcmV0ID0g QVZFUlJPUl9FWFRFUk5BTDsKLSAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgIH0KLSAg ICAgICAgYml0bWFwZ2x5cGggPSAoRlRfQml0bWFwR2x5cGgpIGdseXBoLT5ib3JkZXJfZ2x5cGg7 Ci0gICAgICAgIGdseXBoLT5ib3JkZXJfYml0bWFwID0gYml0bWFwZ2x5cGgtPmJpdG1hcDsKLSAg ICB9Ci0gICAgaWYgKEZUX0dseXBoX1RvX0JpdG1hcCgmZ2x5cGgtPmdseXBoLCBGVF9SRU5ERVJf TU9ERV9OT1JNQUwsIDAsIDEpKSB7Ci0gICAgICAgIHJldCA9IEFWRVJST1JfRVhURVJOQUw7Ci0g ICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgfQotICAgIGJpdG1hcGdseXBoID0gKEZUX0JpdG1hcEds eXBoKSBnbHlwaC0+Z2x5cGg7Ci0KLSAgICBnbHlwaC0+Yml0bWFwICAgICAgPSBiaXRtYXBnbHlw aC0+Yml0bWFwOwotICAgIGdseXBoLT5iaXRtYXBfbGVmdCA9IGJpdG1hcGdseXBoLT5sZWZ0Owot ICAgIGdseXBoLT5iaXRtYXBfdG9wICA9IGJpdG1hcGdseXBoLT50b3A7Ci0gICAgZ2x5cGgtPmFk dmFuY2UgICAgID0gcy0+ZmFjZS0+Z2x5cGgtPmFkdmFuY2UueCA+PiA2OwotCi0gICAgLyogbWVh c3VyZSB0ZXh0IGhlaWdodCB0byBjYWxjdWxhdGUgdGV4dF9oZWlnaHQgKG9yIHRoZSBtYXhpbXVt IHRleHQgaGVpZ2h0KSAqLwotICAgIEZUX0dseXBoX0dldF9DQm94KGdseXBoLT5nbHlwaCwgZnRf Z2x5cGhfYmJveF9waXhlbHMsICZnbHlwaC0+YmJveCk7Ci0KLSAgICAvKiBjYWNoZSB0aGUgbmV3 bHkgY3JlYXRlZCBnbHlwaCAqLwotICAgIGlmICghKG5vZGUgPSBhdl90cmVlX25vZGVfYWxsb2Mo KSkpIHsKLSAgICAgICAgcmV0ID0gQVZFUlJPUihFTk9NRU0pOwotICAgICAgICBnb3RvIGVycm9y OwotICAgIH0KLSAgICBhdl90cmVlX2luc2VydCgmcy0+Z2x5cGhzLCBnbHlwaCwgZ2x5cGhfY21w LCAmbm9kZSk7Ci0KLSAgICBpZiAoZ2x5cGhfcHRyKQotICAgICAgICAqZ2x5cGhfcHRyID0gZ2x5 cGg7Ci0gICAgcmV0dXJuIDA7Ci0KLWVycm9yOgotICAgIGlmIChnbHlwaCkKLSAgICAgICAgYXZf ZnJlZXAoJmdseXBoLT5nbHlwaCk7Ci0KLSAgICBhdl9mcmVlcCgmZ2x5cGgpOwotICAgIGF2X2Zy ZWVwKCZub2RlKTsKLSAgICByZXR1cm4gcmV0OwotfQotCiBzdGF0aWMgYXZfY29sZCBpbnQgc2V0 X2ZvbnRzaXplKEFWRmlsdGVyQ29udGV4dCAqY3R4LCB1bnNpZ25lZCBpbnQgZm9udHNpemUpCiB7 CiAgICAgaW50IGVycjsKQEAgLTcxOCwxMSArNzE0LDExNCBAQCBzdGF0aWMgZW51bSBBVkZyYW1l U2lkZURhdGFUeXBlIHRleHRfc291cmNlX3N0cmluZ19wYXJzZShjb25zdCBjaGFyICp0ZXh0X3Nv dXJjZQogICAgIH0KIH0KIAorc3RhdGljIGlubGluZSBpbnQgZ2V0X3N1YnBpeGVsX2lkeChpbnQg c2hpZnRfeDY0LCBpbnQgc2hpZnRfeTY0KQoreworICAgIGludCBpZHggPSAoc2hpZnRfeDY0ID4+ IDIpICsgKHNoaWZ0X3k2NCA+PiA0KTsKKyAgICByZXR1cm4gaWR4OworfQorCisvLyBMb2FkcyBh bmQgKG9wdGlvbmFsbHkpIHJlbmRlcnMgYSBnbHlwaAorc3RhdGljIGludCBsb2FkX2dseXBoKEFW RmlsdGVyQ29udGV4dCAqY3R4LCBHbHlwaCAqKmdseXBoX3B0ciwgdWludDMyX3QgY29kZSwgaW50 OF90IHNoaWZ0X3g2NCwgaW50OF90IHNoaWZ0X3k2NCkKK3sKKyAgICBEcmF3VGV4dENvbnRleHQg KnMgPSBjdHgtPnByaXY7CisgICAgR2x5cGggZHVtbXkgPSB7IDAgfTsKKyAgICBHbHlwaCAqZ2x5 cGg7CisgICAgRlRfVmVjdG9yIHNoaWZ0OworICAgIHN0cnVjdCBBVlRyZWVOb2RlICpub2RlID0g TlVMTDsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIC8qIGdldCBnbHlwaCAqLworICAgIGR1bW15 LmNvZGUgPSBjb2RlOworICAgIGR1bW15LmZvbnRzaXplID0gcy0+Zm9udHNpemU7CisgICAgZ2x5 cGggPSBhdl90cmVlX2ZpbmQocy0+Z2x5cGhzLCAmZHVtbXksIGdseXBoX2NtcCwgTlVMTCk7Cisg ICAgaWYgKCFnbHlwaCkgeworICAgICAgICBpZiAoRlRfTG9hZF9HbHlwaChzLT5mYWNlLCBjb2Rl LCBzLT5mdF9sb2FkX2ZsYWdzKSkgeworICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFM KTsKKyAgICAgICAgfQorICAgICAgICBnbHlwaCA9IGF2X21hbGxvY3ooc2l6ZW9mKCpnbHlwaCkp OworICAgICAgICBpZiAoIWdseXBoKSB7CisgICAgICAgICAgICByZXQgPSBBVkVSUk9SKEVOT01F TSk7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgICAgIGdseXBoLT5j b2RlICA9IGNvZGU7CisgICAgICAgIGdseXBoLT5mb250c2l6ZSA9IHMtPmZvbnRzaXplOworICAg ICAgICBpZiAoRlRfR2V0X0dseXBoKHMtPmZhY2UtPmdseXBoLCAmZ2x5cGgtPmdseXBoKSkgewor ICAgICAgICAgICAgcmV0ID0gQVZFUlJPUihFSU5WQUwpOworICAgICAgICAgICAgZ290byBlcnJv cjsKKyAgICAgICAgfQorICAgICAgICBpZiAocy0+Ym9yZGVydykgeworICAgICAgICAgICAgZ2x5 cGgtPmJvcmRlcl9nbHlwaCA9IGdseXBoLT5nbHlwaDsKKyAgICAgICAgICAgIGlmIChGVF9HbHlw aF9TdHJva2VCb3JkZXIoJmdseXBoLT5ib3JkZXJfZ2x5cGgsIHMtPnN0cm9rZXIsIDAsIDApKSB7 CisgICAgICAgICAgICAgICAgcmV0ID0gQVZFUlJPUl9FWFRFUk5BTDsKKyAgICAgICAgICAgICAg ICBnb3RvIGVycm9yOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8qIG1lYXN1 cmUgdGV4dCBoZWlnaHQgdG8gY2FsY3VsYXRlIHRleHRfaGVpZ2h0IChvciB0aGUgbWF4aW11bSB0 ZXh0IGhlaWdodCkgKi8KKyAgICAgICAgRlRfR2x5cGhfR2V0X0NCb3goZ2x5cGgtPmdseXBoLCBG VF9HTFlQSF9CQk9YX1NVQlBJWEVMUywgJmdseXBoLT5iYm94KTsKKworICAgICAgICAvKiBjYWNo ZSB0aGUgbmV3bHkgY3JlYXRlZCBnbHlwaCAqLworICAgICAgICBpZiAoIShub2RlID0gYXZfdHJl ZV9ub2RlX2FsbG9jKCkpKSB7CisgICAgICAgICAgICByZXQgPSBBVkVSUk9SKEVOT01FTSk7Cisg ICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgICAgIGF2X3RyZWVfaW5zZXJ0 KCZzLT5nbHlwaHMsIGdseXBoLCBnbHlwaF9jbXAsICZub2RlKTsKKyAgICB9IGVsc2UgeworICAg ICAgICBpZiAocy0+Ym9yZGVydyAmJiAhZ2x5cGgtPmJvcmRlcl9nbHlwaCkgeworICAgICAgICAg ICAgZ2x5cGgtPmJvcmRlcl9nbHlwaCA9IGdseXBoLT5nbHlwaDsKKyAgICAgICAgICAgIGlmIChG VF9HbHlwaF9TdHJva2VCb3JkZXIoJmdseXBoLT5ib3JkZXJfZ2x5cGgsIHMtPnN0cm9rZXIsIDAs IDApKSB7CisgICAgICAgICAgICAgICAgcmV0ID0gQVZFUlJPUl9FWFRFUk5BTDsKKyAgICAgICAg ICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisg ICAgLy8gQ2hlY2sgaWYgYSBiaXRtYXAgaXMgbmVlZGVkCisgICAgaWYgKHNoaWZ0X3g2NCA+PSAw ICYmIHNoaWZ0X3k2NCA+PSAwKSB7CisgICAgICAgIC8vIEdldCB0aGUgYml0bWFwIHN1YnBpeGVs IGluZGV4ICgwIC0+IDE1KQorICAgICAgICBpbnQgaWR4ID0gZ2V0X3N1YnBpeGVsX2lkeChzaGlm dF94NjQsIHNoaWZ0X3k2NCk7CisgICAgICAgIHNoaWZ0LnggPSBzaGlmdF94NjQ7CisgICAgICAg IHNoaWZ0LnkgPSBzaGlmdF95NjQ7CisKKyAgICAgICAgaWYgKCFnbHlwaC0+YmdseXBoW2lkeF0p IHsKKyAgICAgICAgICAgIEZUX0dseXBoIHRtcF9nbHlwaCA9IGdseXBoLT5nbHlwaDsKKyAgICAg ICAgICAgIGlmIChGVF9HbHlwaF9Ub19CaXRtYXAoJnRtcF9nbHlwaCwgRlRfUkVOREVSX01PREVf Tk9STUFMLCAmc2hpZnQsIDApKSB7CisgICAgICAgICAgICAgICAgcmV0ID0gQVZFUlJPUl9FWFRF Uk5BTDsKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgfQorICAgICAg ICAgICAgZ2x5cGgtPmJnbHlwaFtpZHhdID0gKEZUX0JpdG1hcEdseXBoKXRtcF9nbHlwaDsKKyAg ICAgICAgICAgIGlmIChnbHlwaC0+YmdseXBoW2lkeF0tPmJpdG1hcC5waXhlbF9tb2RlID09IEZU X1BJWEVMX01PREVfTU9OTykgeworICAgICAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19F UlJPUiwgIk1vbm9jcm9tYXRpYyAoMWJwcCkgZm9udHMgYXJlIG5vdCBzdXBwb3J0ZWQuXG4iKTsK KyAgICAgICAgICAgICAgICByZXQgPSBBVkVSUk9SKEVJTlZBTCk7CisgICAgICAgICAgICAgICAg Z290byBlcnJvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAocy0+Ym9y ZGVydyAmJiAhZ2x5cGgtPmJvcmRlcl9iZ2x5cGhbaWR4XSkgeworICAgICAgICAgICAgRlRfR2x5 cGggdG1wX2dseXBoID0gZ2x5cGgtPmJvcmRlcl9nbHlwaDsKKyAgICAgICAgICAgIGlmIChGVF9H bHlwaF9Ub19CaXRtYXAoJnRtcF9nbHlwaCwgRlRfUkVOREVSX01PREVfTk9STUFMLCAmc2hpZnQs IDApKSB7CisgICAgICAgICAgICAgICAgcmV0ID0gQVZFUlJPUl9FWFRFUk5BTDsKKyAgICAgICAg ICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZ2x5cGgtPmJv cmRlcl9iZ2x5cGhbaWR4XSA9IChGVF9CaXRtYXBHbHlwaCl0bXBfZ2x5cGg7CisgICAgICAgIH0K KyAgICB9CisgICAgaWYgKGdseXBoX3B0cikgeworICAgICAgICAqZ2x5cGhfcHRyID0gZ2x5cGg7 CisgICAgfQorICAgIHJldHVybiAwOworCitlcnJvcjoKKyAgICBpZiAoZ2x5cGggJiYgZ2x5cGgt PmdseXBoKQorICAgICAgICBGVF9Eb25lX0dseXBoKGdseXBoLT5nbHlwaCk7CisKKyAgICBhdl9m cmVlcCgmZ2x5cGgpOworICAgIGF2X2ZyZWVwKCZub2RlKTsKKyAgICByZXR1cm4gcmV0OworfQor CiBzdGF0aWMgYXZfY29sZCBpbnQgaW5pdChBVkZpbHRlckNvbnRleHQgKmN0eCkKIHsKICAgICBp bnQgZXJyOwogICAgIERyYXdUZXh0Q29udGV4dCAqcyA9IGN0eC0+cHJpdjsKLSAgICBHbHlwaCAq Z2x5cGg7CiAKICAgICBhdl9leHByX2ZyZWUocy0+Zm9udHNpemVfcGV4cHIpOwogICAgIHMtPmZv bnRzaXplX3BleHByID0gTlVMTDsKQEAgLTgxMSwxNyArOTEwLDggQEAgc3RhdGljIGF2X2NvbGQg aW50IGluaXQoQVZGaWx0ZXJDb250ZXh0ICpjdHgpCiAgICAgICAgICAgICAgICAgICAgICAgIEZU X1NUUk9LRVJfTElORUpPSU5fUk9VTkQsIDApOwogICAgIH0KIAotICAgIHMtPnVzZV9rZXJuaW5n ID0gRlRfSEFTX0tFUk5JTkcocy0+ZmFjZSk7Ci0KICAgICAvKiBsb2FkIHRoZSBmYWxsYmFjayBn bHlwaCB3aXRoIGNvZGUgMCAqLwotICAgIGxvYWRfZ2x5cGgoY3R4LCBOVUxMLCAwKTsKLQotICAg IC8qIHNldCB0aGUgdGFic2l6ZSBpbiBwaXhlbHMgKi8KLSAgICBpZiAoKGVyciA9IGxvYWRfZ2x5 cGgoY3R4LCAmZ2x5cGgsICcgJykpIDwgMCkgewotICAgICAgICBhdl9sb2coY3R4LCBBVl9MT0df RVJST1IsICJDb3VsZCBub3Qgc2V0IHRhYnNpemUuXG4iKTsKLSAgICAgICAgcmV0dXJuIGVycjsK LSAgICB9Ci0gICAgcy0+dGFic2l6ZSAqPSBnbHlwaC0+YWR2YW5jZTsKKyAgICBsb2FkX2dseXBo KGN0eCwgTlVMTCwgMCwgMCwgMCk7CiAKICAgICBpZiAocy0+ZXhwX21vZGUgPT0gRVhQX1NUUkZU SU1FICYmCiAgICAgICAgIChzdHJjaHIocy0+dGV4dCwgJyUnKSB8fCBzdHJjaHIocy0+dGV4dCwg J1xcJykpKQpAQCAtODQ0LDYgKzkzNCwxNCBAQCBzdGF0aWMgaW50IGdseXBoX2VudV9mcmVlKHZv aWQgKm9wYXF1ZSwgdm9pZCAqZWxlbSkKIAogICAgIEZUX0RvbmVfR2x5cGgoZ2x5cGgtPmdseXBo KTsKICAgICBGVF9Eb25lX0dseXBoKGdseXBoLT5ib3JkZXJfZ2x5cGgpOworICAgIGZvciAoaW50 IHQgPSAwOyB0IDwgMTY7ICsrdCkgeworICAgICAgICBpZiAoZ2x5cGgtPmJnbHlwaFt0XSAhPSBO VUxMKSB7CisgICAgICAgICAgICBGVF9Eb25lX0dseXBoKChGVF9HbHlwaClnbHlwaC0+YmdseXBo W3RdKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZ2x5cGgtPmJvcmRlcl9iZ2x5cGhbdF0gIT0g TlVMTCkgeworICAgICAgICAgICAgRlRfRG9uZV9HbHlwaCgoRlRfR2x5cGgpZ2x5cGgtPmJvcmRl cl9iZ2x5cGhbdF0pOworICAgICAgICB9CisgICAgfQogICAgIGF2X2ZyZWUoZWxlbSk7CiAgICAg cmV0dXJuIDA7CiB9CkBAIC04NTksOSArOTU3LDYgQEAgc3RhdGljIGF2X2NvbGQgdm9pZCB1bmlu aXQoQVZGaWx0ZXJDb250ZXh0ICpjdHgpCiAKICAgICBzLT54X3BleHByID0gcy0+eV9wZXhwciA9 IHMtPmFfcGV4cHIgPSBzLT5mb250c2l6ZV9wZXhwciA9IE5VTEw7CiAKLSAgICBhdl9mcmVlcCgm cy0+cG9zaXRpb25zKTsKLSAgICBzLT5uYl9wb3NpdGlvbnMgPSAwOwotCiAgICAgYXZfdHJlZV9l bnVtZXJhdGUocy0+Z2x5cGhzLCBOVUxMLCBOVUxMLCBnbHlwaF9lbnVfZnJlZSk7CiAgICAgYXZf dHJlZV9kZXN0cm95KHMtPmdseXBocyk7CiAgICAgcy0+Z2x5cGhzID0gTlVMTDsKQEAgLTEzMjUs OTEgKzE0MjAsMjgzIEBAIHN0YXRpYyBpbnQgZXhwYW5kX3RleHQoQVZGaWx0ZXJDb250ZXh0ICpj dHgsIGNoYXIgKnRleHQsIEFWQlByaW50ICpicCkKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGlj IHZvaWQgdXBkYXRlX2NvbG9yX3dpdGhfYWxwaGEoRHJhd1RleHRDb250ZXh0ICpzLCBGRkRyYXdD b2xvciAqY29sb3IsIGNvbnN0IEZGRHJhd0NvbG9yIGluY29sb3IpCit7CisgICAgKmNvbG9yID0g aW5jb2xvcjsKKyAgICBjb2xvci0+cmdiYVszXSA9IChjb2xvci0+cmdiYVszXSAqIHMtPmFscGhh KSAvIDI1NTsKKyAgICBmZl9kcmF3X2NvbG9yKCZzLT5kYywgY29sb3IsIGNvbG9yLT5yZ2JhKTsK K30KKworc3RhdGljIHZvaWQgdXBkYXRlX2FscGhhKERyYXdUZXh0Q29udGV4dCAqcykKK3sKKyAg ICBkb3VibGUgYWxwaGEgPSBhdl9leHByX2V2YWwocy0+YV9wZXhwciwgcy0+dmFyX3ZhbHVlcywg JnMtPnBybmcpOworCisgICAgaWYgKGlzbmFuKGFscGhhKSkKKyAgICAgICAgcmV0dXJuOworCisg ICAgaWYgKGFscGhhID49IDEuMCkKKyAgICAgICAgcy0+YWxwaGEgPSAyNTU7CisgICAgZWxzZSBp ZiAoYWxwaGEgPD0gMCkKKyAgICAgICAgcy0+YWxwaGEgPSAwOworICAgIGVsc2UKKyAgICAgICAg cy0+YWxwaGEgPSAyNTYgKiBhbHBoYTsKK30KKwogc3RhdGljIGludCBkcmF3X2dseXBocyhEcmF3 VGV4dENvbnRleHQgKnMsIEFWRnJhbWUgKmZyYW1lLAotICAgICAgICAgICAgICAgICAgICAgICBp bnQgd2lkdGgsIGludCBoZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgIEZGRHJhd0NvbG9y ICpjb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgVGV4dE1ldHJpY3MgKm1ldHJpY3MsCiAg ICAgICAgICAgICAgICAgICAgICAgIGludCB4LCBpbnQgeSwgaW50IGJvcmRlcncpCiB7Ci0gICAg Y2hhciAqdGV4dCA9IHMtPmV4cGFuZGVkX3RleHQuc3RyOwotICAgIHVpbnQzMl90IGNvZGUgPSAw OwotICAgIGludCBpLCB4MSwgeTE7Ci0gICAgdWludDhfdCAqcDsKLSAgICBHbHlwaCAqZ2x5cGgg PSBOVUxMOwotCi0gICAgZm9yIChpID0gMCwgcCA9IHRleHQ7ICpwOyBpKyspIHsKLSAgICAgICAg RlRfQml0bWFwIGJpdG1hcDsKLSAgICAgICAgR2x5cGggZHVtbXkgPSB7IDAgfTsKLSAgICAgICAg R0VUX1VURjgoY29kZSwgKnAgPyAqcCsrIDogMCwgY29kZSA9IDB4ZmZmZDsgZ290byBjb250aW51 ZV9vbl9pbnZhbGlkOyk7Ci1jb250aW51ZV9vbl9pbnZhbGlkOgorICAgIGludCBnLCBsLCB4MSwg eTEsIHcxLCBoMSwgaWR4OworICAgIGludCBkeCA9IDAsIGR5ID0gMCwgcGR4ID0gMDsKKyAgICBH bHlwaEluZm8gKmluZm87CisgICAgR2x5cGggZHVtbXkgPSB7IDAgfSwgKmdseXBoOworICAgIEZU X0JpdG1hcCBiaXRtYXA7CisgICAgRlRfQml0bWFwR2x5cGggYl9nbHlwaDsKKyAgICBpbnQgY2xp cF94ID0gMCwgY2xpcF95ID0gMDsKKworICAgIGNsaXBfeCA9IEZGTUlOKG1ldHJpY3MtPnJlY3Rf eCArIG1ldHJpY3MtPndpZHRoICsgcy0+YmJfcmlnaHQsIGZyYW1lLT53aWR0aCk7CisgICAgY2xp cF95ID0gRkZNSU4obWV0cmljcy0+cmVjdF95ICsgbWV0cmljcy0+aGVpZ2h0ICsgcy0+YmJfYm90 dG9tLCBmcmFtZS0+aGVpZ2h0KTsKKworICAgIGZvciAobCA9IDA7IGwgPCBzLT5saW5lX2NvdW50 OyArK2wpIHsKKyAgICAgICAgVGV4dExpbmUgKmxpbmUgPSAmcy0+bGluZXNbbF07CisgICAgICAg IGZvciAoZyA9IDA7IGcgPCBsaW5lLT5oYl9kYXRhLmdseXBoX2NvdW50OyArK2cpIHsKKyAgICAg ICAgICAgIGluZm8gPSAmbGluZS0+Z2x5cGhzW2ddOworICAgICAgICAgICAgZHVtbXkuZm9udHNp emUgPSBzLT5mb250c2l6ZTsKKyAgICAgICAgICAgIGR1bW15LmNvZGUgPSBpbmZvLT5jb2RlOwor ICAgICAgICAgICAgZ2x5cGggPSBhdl90cmVlX2ZpbmQocy0+Z2x5cGhzLCAmZHVtbXksIGdseXBo X2NtcCwgTlVMTCk7CisgICAgICAgICAgICBpZiAoIWdseXBoKSB7CisgICAgICAgICAgICAgICAg cmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKKyAgICAgICAgICAgIH0KIAotICAgICAgICAvKiBza2lw IG5ldyBsaW5lIGNoYXJzLCBqdXN0IGdvIHRvIG5ldyBsaW5lICovCi0gICAgICAgIGlmIChjb2Rl ID09ICdcbicgfHwgY29kZSA9PSAnXHInIHx8IGNvZGUgPT0gJ1x0JykKLSAgICAgICAgICAgIGNv bnRpbnVlOworICAgICAgICAgICAgaWR4ID0gZ2V0X3N1YnBpeGVsX2lkeChpbmZvLT5zaGlmdF94 NjQsIGluZm8tPnNoaWZ0X3k2NCk7CisgICAgICAgICAgICBiX2dseXBoID0gYm9yZGVydyA/IGds eXBoLT5ib3JkZXJfYmdseXBoW2lkeF0gOiBnbHlwaC0+YmdseXBoW2lkeF07CisgICAgICAgICAg ICBiaXRtYXAgPSBiX2dseXBoLT5iaXRtYXA7CisgICAgICAgICAgICB4MSA9IHggKyBpbmZvLT54 ICsgYl9nbHlwaC0+bGVmdDsKKyAgICAgICAgICAgIHkxID0geSArIGluZm8tPnkgLSBiX2dseXBo LT50b3A7CisgICAgICAgICAgICB3MSA9IGJpdG1hcC53aWR0aDsKKyAgICAgICAgICAgIGgxID0g Yml0bWFwLnJvd3M7CisKKyAgICAgICAgICAgIC8vIE9mZnNldCBvZiB0aGUgZ2x5cGgncyBiaXRt YXAgaW4gdGhlIHZpc2libGUgcmVnaW9uCisgICAgICAgICAgICBkeCA9IGR5ID0gMDsKKyAgICAg ICAgICAgIGlmICh4MSA8IG1ldHJpY3MtPnJlY3RfeCAtIHMtPmJiX2xlZnQpIHsKKyAgICAgICAg ICAgICAgICBkeCA9IG1ldHJpY3MtPnJlY3RfeCAtIHMtPmJiX2xlZnQgLSB4MTsKKyAgICAgICAg ICAgICAgICB4MSA9IG1ldHJpY3MtPnJlY3RfeCAtIHMtPmJiX2xlZnQ7CisgICAgICAgICAgICB9 CisgICAgICAgICAgICBpZiAoeTEgPCBtZXRyaWNzLT5yZWN0X3kgLSBzLT5iYl90b3ApIHsKKyAg ICAgICAgICAgICAgICBkeSA9IG1ldHJpY3MtPnJlY3RfeSAtIHMtPmJiX3RvcCAtIHkxOworICAg ICAgICAgICAgICAgIHkxID0gbWV0cmljcy0+cmVjdF95IC0gcy0+YmJfdG9wOworICAgICAgICAg ICAgfQogCi0gICAgICAgIGR1bW15LmNvZGUgPSBjb2RlOwotICAgICAgICBkdW1teS5mb250c2l6 ZSA9IHMtPmZvbnRzaXplOwotICAgICAgICBnbHlwaCA9IGF2X3RyZWVfZmluZChzLT5nbHlwaHMs ICZkdW1teSwgZ2x5cGhfY21wLCBOVUxMKTsKKyAgICAgICAgICAgIC8vIGNoZWNrIGlmIHRoZSBn bHlwaCBpcyBlbXB0eSBvciBvdXQgb2YgdGhlIGNsaXBwaW5nIHJlZ2lvbgorICAgICAgICAgICAg aWYgKGR4ID49IHcxIHx8IGR5ID49IGgxIHx8IHgxID49IGNsaXBfeCB8fCB5MSA+PSBjbGlwX3kp IHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KIAotICAgICAgICBi aXRtYXAgPSBib3JkZXJ3ID8gZ2x5cGgtPmJvcmRlcl9iaXRtYXAgOiBnbHlwaC0+Yml0bWFwOwor ICAgICAgICAgICAgcGR4ID0gZHggKyBkeSAqIGJpdG1hcC5waXRjaDsKKyAgICAgICAgICAgIHcx ID0gRkZNSU4oY2xpcF94IC0geDEsIHcxIC0gZHgpOworICAgICAgICAgICAgaDEgPSBGRk1JTihj bGlwX3kgLSB5MSwgaDEgLSBkeSk7CiAKLSAgICAgICAgaWYgKGdseXBoLT5iaXRtYXAucGl4ZWxf bW9kZSAhPSBGVF9QSVhFTF9NT0RFX01PTk8gJiYKLSAgICAgICAgICAgIGdseXBoLT5iaXRtYXAu cGl4ZWxfbW9kZSAhPSBGVF9QSVhFTF9NT0RFX0dSQVkpCi0gICAgICAgICAgICByZXR1cm4gQVZF UlJPUihFSU5WQUwpOworICAgICAgICAgICAgZmZfYmxlbmRfbWFzaygmcy0+ZGMsIGNvbG9yLCBm cmFtZS0+ZGF0YSwgZnJhbWUtPmxpbmVzaXplLCBjbGlwX3gsIGNsaXBfeSwKKyAgICAgICAgICAg ICAgICBiaXRtYXAuYnVmZmVyICsgcGR4LCBiaXRtYXAucGl0Y2gsIHcxLCBoMSwgMywgMCwgeDEs IHkxKTsKKyAgICAgICAgfQorICAgIH0KIAotICAgICAgICB4MSA9IHMtPnBvc2l0aW9uc1tpXS54 K3MtPngreCAtIGJvcmRlcnc7Ci0gICAgICAgIHkxID0gcy0+cG9zaXRpb25zW2ldLnkrcy0+eSt5 IC0gYm9yZGVydzsKKyAgICByZXR1cm4gMDsKK30KIAotICAgICAgICBmZl9ibGVuZF9tYXNrKCZz LT5kYywgY29sb3IsCi0gICAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmRhdGEsIGZyYW1lLT5s aW5lc2l6ZSwgd2lkdGgsIGhlaWdodCwKLSAgICAgICAgICAgICAgICAgICAgICBiaXRtYXAuYnVm ZmVyLCBiaXRtYXAucGl0Y2gsCi0gICAgICAgICAgICAgICAgICAgICAgYml0bWFwLndpZHRoLCBi aXRtYXAucm93cywKLSAgICAgICAgICAgICAgICAgICAgICBiaXRtYXAucGl4ZWxfbW9kZSA9PSBG VF9QSVhFTF9NT0RFX01PTk8gPyAwIDogMywKLSAgICAgICAgICAgICAgICAgICAgICAwLCB4MSwg eTEpOworLy8gU2hhcGVzIGEgbGluZSBvZiB0ZXh0IHVzaW5nIGxpYmhhcmZidXp6CitzdGF0aWMg aW50IHNoYXBlX3RleHRfaGIoRHJhd1RleHRDb250ZXh0ICpzLCBIYXJmYnV6ekRhdGEqIGhiLCBj b25zdCBjaGFyKiB0ZXh0LCBpbnQgdGV4dExlbikKK3sKKyAgICBoYi0+YnVmID0gaGJfYnVmZmVy X2NyZWF0ZSgpOworICAgIGlmKCFoYl9idWZmZXJfYWxsb2NhdGlvbl9zdWNjZXNzZnVsKGhiLT5i dWYpKSB7CisgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CiAgICAgfQorICAgIGhiX2J1 ZmZlcl9zZXRfZGlyZWN0aW9uKGhiLT5idWYsIEhCX0RJUkVDVElPTl9MVFIpOworICAgIGhiX2J1 ZmZlcl9zZXRfc2NyaXB0KGhiLT5idWYsIEhCX1NDUklQVF9MQVRJTik7CisgICAgaGJfYnVmZmVy X3NldF9sYW5ndWFnZShoYi0+YnVmLCBoYl9sYW5ndWFnZV9mcm9tX3N0cmluZygiZW4iLCAtMSkp OworICAgIGhiX2J1ZmZlcl9ndWVzc19zZWdtZW50X3Byb3BlcnRpZXMoaGItPmJ1Zik7CisgICAg aGItPmZvbnQgPSBoYl9mdF9mb250X2NyZWF0ZShzLT5mYWNlLCBOVUxMKTsKKyAgICBpZihoYi0+ Zm9udCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7CisgICAgfQor ICAgIGhiX2Z0X2ZvbnRfc2V0X2Z1bmNzKGhiLT5mb250KTsKKyAgICBoYl9idWZmZXJfYWRkX3V0 ZjgoaGItPmJ1ZiwgdGV4dCwgdGV4dExlbiwgMCwgLTEpOworICAgIGhiX3NoYXBlKGhiLT5mb250 LCBoYi0+YnVmLCBOVUxMLCAwKTsKKyAgICBoYi0+Z2x5cGhfaW5mbyA9IGhiX2J1ZmZlcl9nZXRf Z2x5cGhfaW5mb3MoaGItPmJ1ZiwgJmhiLT5nbHlwaF9jb3VudCk7CisgICAgaGItPmdseXBoX3Bv cyA9IGhiX2J1ZmZlcl9nZXRfZ2x5cGhfcG9zaXRpb25zKGhiLT5idWYsICZoYi0+Z2x5cGhfY291 bnQpOwogCiAgICAgcmV0dXJuIDA7CiB9CiAKLQotc3RhdGljIHZvaWQgdXBkYXRlX2NvbG9yX3dp dGhfYWxwaGEoRHJhd1RleHRDb250ZXh0ICpzLCBGRkRyYXdDb2xvciAqY29sb3IsIGNvbnN0IEZG RHJhd0NvbG9yIGluY29sb3IpCitzdGF0aWMgdm9pZCBoYl9kZXN0cm95KEhhcmZidXp6RGF0YSAq aGIpCiB7Ci0gICAgKmNvbG9yID0gaW5jb2xvcjsKLSAgICBjb2xvci0+cmdiYVszXSA9IChjb2xv ci0+cmdiYVszXSAqIHMtPmFscGhhKSAvIDI1NTsKLSAgICBmZl9kcmF3X2NvbG9yKCZzLT5kYywg Y29sb3IsIGNvbG9yLT5yZ2JhKTsKKyAgICBoYl9idWZmZXJfZGVzdHJveShoYi0+YnVmKTsKKyAg ICBoYl9mb250X2Rlc3Ryb3koaGItPmZvbnQpOworICAgIGhiLT5idWYgPSBOVUxMOworICAgIGhi LT5mb250ID0gTlVMTDsKKyAgICBoYi0+Z2x5cGhfaW5mbyA9IE5VTEw7CisgICAgaGItPmdseXBo X3BvcyA9IE5VTEw7CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZV9hbHBoYShEcmF3VGV4dENvbnRl eHQgKnMpCitzdGF0aWMgaW50IG1lYXN1cmVfdGV4dChBVkZpbHRlckNvbnRleHQgKmN0eCwgVGV4 dE1ldHJpY3MgKm1ldHJpY3MpCiB7Ci0gICAgZG91YmxlIGFscGhhID0gYXZfZXhwcl9ldmFsKHMt PmFfcGV4cHIsIHMtPnZhcl92YWx1ZXMsICZzLT5wcm5nKTsKKyAgICBEcmF3VGV4dENvbnRleHQg KnMgPSBjdHgtPnByaXY7CisgICAgY2hhciAqdGV4dCA9IHMtPmV4cGFuZGVkX3RleHQuc3RyOwor ICAgIGNoYXIgKnRleHRkdXAgPSBOVUxMLCAqc3RhcnQgPSBOVUxMOworICAgIGludCBudW1fY2hh cnMgPSAwOworICAgIGludCB3aWR0aDY0ID0gMCwgdzY0ID0gMDsKKyAgICBpbnQgY3VyX21pbl95 NjQgPSAwLCBmaXJzdF9tYXhfeTY0ID0gLTMyMDAwOworICAgIGludCBmaXJzdF9taW5feDY0ID0g MzIwMDAsIGxhc3RfbWF4X3g2NCA9IC0zMjAwMDsKKyAgICBpbnQgbWluX3k2NCA9IDMyMDAwLCBt YXhfeTY0ID0gLTMyMDAwLCBtaW5feDY0ID0gMzIwMDAsIG1heF94NjQgPSAtMzIwMDA7CisgICAg aW50IGxpbmVfY291bnQgPSAwOworICAgIHVpbnQzMl90IGNvZGUgPSAwOworICAgIEdseXBoICpn bHlwaCA9IE5VTEw7CisgICAgaW50IGhlaWdodDY0OworCisgICAgaW50IGksIHRhYl9pZHggPSAw LCBsYXN0X3RhYl9pZHggPSAwLCBsaW5lX29mZnNldCA9IDA7CisgICAgY2hhciogcDsKKyAgICBp bnQgcmV0ID0gMDsKKworICAgIC8vIENvdW50IHRoZSBsaW5lcyBhbmQgdGhlIHRhYiBjaGFyYWN0 ZXJzCisgICAgcy0+dGFiX2NvdW50ID0gMDsKKyAgICBmb3IgKGkgPSAwLCBwID0gdGV4dDsgMTsg aSsrKSB7CisgICAgICAgIEdFVF9VVEY4KGNvZGUsICpwID8gKnArKyA6IDAsIGNvZGUgPSAweGZm ZmQ7IGdvdG8gY29udGludWVfb25fZmFpbGVkOyk7Citjb250aW51ZV9vbl9mYWlsZWQ6CisgICAg ICAgIGlmIChpc19uZXdsaW5lKGNvZGUpIHx8IGNvZGUgPT0gMCkgeworICAgICAgICAgICAgKyts aW5lX2NvdW50OworICAgICAgICAgICAgaWYgKGNvZGUgPT0gMCkgeworICAgICAgICAgICAgICAg IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGNvZGUgPT0gJ1x0Jykg eworICAgICAgICAgICAgKytzLT50YWJfY291bnQ7CisgICAgICAgIH0KKyAgICB9CiAKLSAgICBp ZiAoaXNuYW4oYWxwaGEpKQotICAgICAgICByZXR1cm47CisgICAgLy8gRXZhbHVhdGUgdGhlIHdp ZHRoIG9mIHRoZSBzcGFjZSBjaGFyYWN0ZXIgaWYgbmVlZGVkIHRvIHJlcGxhY2UgdGFicworICAg IGlmIChzLT50YWJfY291bnQgPiAwICYmICFzLT5ibGFua19hZHZhbmNlNjQpIHsKKyAgICAgICAg SGFyZmJ1enpEYXRhIGhiX2RhdGE7CisgICAgICAgIHJldCA9IHNoYXBlX3RleHRfaGIocywgJmhi X2RhdGEsICIgIiwgMSk7CisgICAgICAgIGlmKHJldCAhPSAwKSB7CisgICAgICAgICAgICBnb3Rv IGRvbmU7CisgICAgICAgIH0KKyAgICAgICAgcy0+YmxhbmtfYWR2YW5jZTY0ID0gaGJfZGF0YS5n bHlwaF9wb3NbMF0ueF9hZHZhbmNlOworICAgICAgICBoYl9kZXN0cm95KCZoYl9kYXRhKTsKKyAg ICB9CiAKLSAgICBpZiAoYWxwaGEgPj0gMS4wKQotICAgICAgICBzLT5hbHBoYSA9IDI1NTsKLSAg ICBlbHNlIGlmIChhbHBoYSA8PSAwKQotICAgICAgICBzLT5hbHBoYSA9IDA7Ci0gICAgZWxzZQot ICAgICAgICBzLT5hbHBoYSA9IDI1NiAqIGFscGhhOworICAgIHMtPmxpbmVfY291bnQgPSBsaW5l X2NvdW50OworICAgIHMtPmxpbmVzID0gYXZfbWFsbG9jeihsaW5lX2NvdW50ICogc2l6ZW9mKFRl eHRMaW5lKSk7CisgICAgcy0+dGFiX2NsdXN0ZXJzID0gYXZfbWFsbG9jeihzLT50YWJfY291bnQg KiBzaXplb2YodWludDMyX3QpKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgcy0+dGFiX2NvdW50OyAr K2kpIHsKKyAgICAgICAgcy0+dGFiX2NsdXN0ZXJzW2ldID0gLTE7CisgICAgfQorCisgICAgc3Rh cnQgPSB0ZXh0ZHVwID0gYXZfc3RyZHVwKHRleHQpOworICAgIGlmICh0ZXh0ZHVwID09IE5VTEwp IHsKKyAgICAgICAgcmV0ID0gQVZFUlJPUihFTk9NRU0pOworICAgICAgICBnb3RvIGRvbmU7Cisg ICAgfQorICAgIGxpbmVfY291bnQgPSAwOworICAgIGZvciAoaSA9IDAsIHAgPSB0ZXh0ZHVwOyAx OyBpKyspIHsKKyAgICAgICAgaWYgKCpwID09ICdcdCcpIHsKKyAgICAgICAgICAgIHMtPnRhYl9j bHVzdGVyc1t0YWJfaWR4KytdID0gaTsKKyAgICAgICAgICAgICpwID0gJyAnOworICAgICAgICB9 CisgICAgICAgIEdFVF9VVEY4KGNvZGUsICpwID8gKnArKyA6IDAsIGNvZGUgPSAweGZmZmQ7IGdv dG8gY29udGludWVfb25fZmFpbGVkMjspOworY29udGludWVfb25fZmFpbGVkMjoKKyAgICAgICAg aWYgKGlzX25ld2xpbmUoY29kZSkgfHwgY29kZSA9PSAwKSB7CisgICAgICAgICAgICBUZXh0TGlu ZSAqY3VyX2xpbmUgPSAmcy0+bGluZXNbbGluZV9jb3VudF07CisgICAgICAgICAgICBIYXJmYnV6 ekRhdGEgKmhiID0gJmN1cl9saW5lLT5oYl9kYXRhOworICAgICAgICAgICAgY3VyX2xpbmUtPmNs dXN0ZXJfb2Zmc2V0ID0gbGluZV9vZmZzZXQ7CisgICAgICAgICAgICByZXQgPSBzaGFwZV90ZXh0 X2hiKHMsIGhiLCBzdGFydCwgbnVtX2NoYXJzKTsKKyAgICAgICAgICAgIGlmIChyZXQgIT0gMCkg eworICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg IHc2NCA9IDA7CisgICAgICAgICAgICBjdXJfbWluX3k2NCA9IDMyMDAwOworICAgICAgICAgICAg Zm9yIChpbnQgdCA9IDA7IHQgPCBoYi0+Z2x5cGhfY291bnQ7ICsrdCkgeworICAgICAgICAgICAg ICAgIHVpbnQ4X3QgaXNfdGFiID0gbGFzdF90YWJfaWR4IDwgcy0+dGFiX2NvdW50ICYmCisgICAg ICAgICAgICAgICAgICAgIGhiLT5nbHlwaF9pbmZvW3RdLmNsdXN0ZXIgPT0gcy0+dGFiX2NsdXN0 ZXJzW2xhc3RfdGFiX2lkeF0gLSBsaW5lX29mZnNldDsKKyAgICAgICAgICAgICAgICBpZiAoaXNf dGFiKSB7CisgICAgICAgICAgICAgICAgICAgICsrbGFzdF90YWJfaWR4OworICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICByZXQgPSBsb2FkX2dseXBoKGN0eCwgJmdseXBoLCBoYi0+ Z2x5cGhfaW5mb1t0XS5jb2RlcG9pbnQsIC0xLCAtMSk7CisgICAgICAgICAgICAgICAgaWYgKHJl dCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgaWYgKGxpbmVfY291bnQgPT0gMCkgeworICAgICAgICAgICAg ICAgICAgICBmaXJzdF9tYXhfeTY0ID0gRkZNQVgoZ2x5cGgtPmJib3gueU1heCwgZmlyc3RfbWF4 X3k2NCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0ID09IDApIHsK KyAgICAgICAgICAgICAgICAgICAgY3VyX2xpbmUtPm9mZnNldF9sZWZ0NjQgPSBnbHlwaC0+YmJv eC54TWluOworICAgICAgICAgICAgICAgICAgICBmaXJzdF9taW5feDY0ID0gRkZNSU4oZ2x5cGgt PmJib3gueE1pbiwgZmlyc3RfbWluX3g2NCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICAgIGlmICh0ID09IGhiLT5nbHlwaF9jb3VudCAtIDEpIHsKKyAgICAgICAgICAgICAgICAg ICAgdzY0ICs9IGdseXBoLT5iYm94LnhNYXg7CisgICAgICAgICAgICAgICAgICAgIGxhc3RfbWF4 X3g2NCA9IEZGTUFYKGdseXBoLT5iYm94LnhNYXgsIGxhc3RfbWF4X3g2NCk7CisgICAgICAgICAg ICAgICAgICAgIGN1cl9saW5lLT5vZmZzZXRfcmlnaHQ2NCA9IGdseXBoLT5iYm94LnhNYXg7Cisg ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzX3RhYikg eworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNpemUgPSBzLT5ibGFua19hZHZhbmNlNjQg KiBzLT50YWJzaXplOworICAgICAgICAgICAgICAgICAgICAgICAgdzY0ID0gKHc2NCAvIHNpemUg KyAxKSAqIHNpemU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg ICAgICAgICAgICB3NjQgKz0gaGItPmdseXBoX3Bvc1t0XS54X2FkdmFuY2U7CisgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY3VyX21pbl95 NjQgPSBGRk1JTihnbHlwaC0+YmJveC55TWluLCBjdXJfbWluX3k2NCk7CisgICAgICAgICAgICAg ICAgbWluX3k2NCA9IEZGTUlOKGdseXBoLT5iYm94LnlNaW4sIG1pbl95NjQpOworICAgICAgICAg ICAgICAgIG1heF95NjQgPSBGRk1BWChnbHlwaC0+YmJveC55TWF4LCBtYXhfeTY0KTsKKyAgICAg ICAgICAgICAgICBtaW5feDY0ID0gRkZNSU4oZ2x5cGgtPmJib3gueE1pbiwgbWluX3g2NCk7Cisg ICAgICAgICAgICAgICAgbWF4X3g2NCA9IEZGTUFYKGdseXBoLT5iYm94LnhNYXgsIG1heF94NjQp OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjdXJfbGluZS0+d2lkdGg2NCA9IHc2NDsK KworICAgICAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19ERUJVRywgIiAgTGluZTogJWQgLS0gZ2x5 cGhzIGNvdW50OiAlZCAtIHdpZHRoNjQ6ICVkIC0gb2Zmc2V0X2xlZnQ2NDogJWQgLSBvZmZzZXRf cmlnaHQ2NDogJWQpXG4iLAorICAgICAgICAgICAgICAgIGxpbmVfY291bnQsIGhiLT5nbHlwaF9j b3VudCwgY3VyX2xpbmUtPndpZHRoNjQsIGN1cl9saW5lLT5vZmZzZXRfbGVmdDY0LCBjdXJfbGlu ZS0+b2Zmc2V0X3JpZ2h0NjQpOworCisgICAgICAgICAgICBpZiAodzY0ID4gd2lkdGg2NCkgewor ICAgICAgICAgICAgICAgIHdpZHRoNjQgPSB3NjQ7CisgICAgICAgICAgICB9CisgICAgICAgICAg ICBudW1fY2hhcnMgPSAtMTsKKyAgICAgICAgICAgIHN0YXJ0ID0gcDsKKyAgICAgICAgICAgICsr bGluZV9jb3VudDsKKyAgICAgICAgICAgIGxpbmVfb2Zmc2V0ID0gaSArIDE7CisgICAgICAgIH0K KworICAgICAgICBpZiAoY29kZSA9PSAwKSBicmVhazsKKyAgICAgICAgKytudW1fY2hhcnM7Cisg ICAgfQorCisgICAgbWV0cmljcy0+bGluZV9oZWlnaHQ2NCA9IHMtPmZhY2UtPnNpemUtPm1ldHJp Y3MuaGVpZ2h0OworCisgICAgbWV0cmljcy0+d2lkdGggPSBQT1NfQ0VJTCh3aWR0aDY0LCA2NCk7 CisgICAgaGVpZ2h0NjQgPSAobWV0cmljcy0+bGluZV9oZWlnaHQ2NCArIHMtPmxpbmVfc3BhY2lu ZyAqIDY0KSAqCisgICAgICAgIChGRk1BWCgwLCBsaW5lX2NvdW50IC0gMSkpICsgZmlyc3RfbWF4 X3k2NCAtIGN1cl9taW5feTY0OworICAgIG1ldHJpY3MtPmhlaWdodCA9IFBPU19DRUlMKGhlaWdo dDY0LCA2NCk7CisKKyAgICBtZXRyaWNzLT5vZmZzZXRfdG9wNjQgPSBmaXJzdF9tYXhfeTY0Owor ICAgIG1ldHJpY3MtPm9mZnNldF9yaWdodDY0ID0gbGFzdF9tYXhfeDY0OworICAgIG1ldHJpY3Mt Pm9mZnNldF9ib3R0b202NCA9IGN1cl9taW5feTY0OworICAgIG1ldHJpY3MtPm9mZnNldF9sZWZ0 NjQgPSBmaXJzdF9taW5feDY0OworICAgIG1ldHJpY3MtPm1pbl94NjQgPSBtaW5feDY0OworICAg IG1ldHJpY3MtPm1pbl95NjQgPSBtaW5feTY0OworICAgIG1ldHJpY3MtPm1heF94NjQgPSBtYXhf eDY0OworICAgIG1ldHJpY3MtPm1heF95NjQgPSBtYXhfeTY0OworCitkb25lOgorICAgIGF2X2Zy ZWUodGV4dGR1cCk7CisgICAgcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBkcmF3X3RleHQo QVZGaWx0ZXJDb250ZXh0ICpjdHgsIEFWRnJhbWUgKmZyYW1lLAotICAgICAgICAgICAgICAgICAg ICAgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQorc3RhdGljIGludCBkcmF3X3RleHQoQVZGaWx0ZXJD b250ZXh0ICpjdHgsIEFWRnJhbWUgKmZyYW1lKQogewogICAgIERyYXdUZXh0Q29udGV4dCAqcyA9 IGN0eC0+cHJpdjsKICAgICBBVkZpbHRlckxpbmsgKmlubGluayA9IGN0eC0+aW5wdXRzWzBdOwot Ci0gICAgdWludDMyX3QgY29kZSA9IDAsIHByZXZfY29kZSA9IDA7Ci0gICAgaW50IHggPSAwLCB5 ID0gMCwgaSA9IDAsIHJldDsKLSAgICBpbnQgbWF4X3RleHRfbGluZV93ID0gMCwgbGVuOwotICAg IGludCBib3hfdywgYm94X2g7Ci0gICAgY2hhciAqdGV4dDsKLSAgICB1aW50OF90ICpwOwotICAg IGludCB5X21pbiA9IDMyMDAwLCB5X21heCA9IC0zMjAwMDsKLSAgICBpbnQgeF9taW4gPSAzMjAw MCwgeF9tYXggPSAtMzIwMDA7Ci0gICAgRlRfVmVjdG9yIGRlbHRhOwotICAgIEdseXBoICpnbHlw aCA9IE5VTEwsICpwcmV2X2dseXBoID0gTlVMTDsKLSAgICBHbHlwaCBkdW1teSA9IHsgMCB9Owor ICAgIGludCB4ID0gMCwgeSA9IDAsIHJldDsKKyAgICBpbnQgc2hpZnRfeDY0LCBzaGlmdF95NjQ7 CisgICAgaW50IHg2NCwgeTY0OworICAgIEdseXBoICpnbHlwaCA9IE5VTEw7CiAKICAgICB0aW1l X3Qgbm93ID0gdGltZSgwKTsKICAgICBzdHJ1Y3QgdG0gbHRpbWU7CkBAIC0xNDIwLDYgKzE3MDcs MTQgQEAgc3RhdGljIGludCBkcmF3X3RleHQoQVZGaWx0ZXJDb250ZXh0ICpjdHgsIEFWRnJhbWUg KmZyYW1lLAogICAgIEZGRHJhd0NvbG9yIGJvcmRlcmNvbG9yOwogICAgIEZGRHJhd0NvbG9yIGJv eGNvbG9yOwogCisgICAgaW50IHdpZHRoID0gZnJhbWUtPndpZHRoOworICAgIGludCBoZWlnaHQg PSBmcmFtZS0+aGVpZ2h0OworICAgIGludCByZWNfeCA9IDAsIHJlY195ID0gMCwgcmVjX3dpZHRo ID0gMCwgcmVjX2hlaWdodCA9IDA7CisgICAgaW50IGlzX291dHNpZGUgPSAwOworICAgIGludCBs YXN0X3RhYl9pZHggPSAwOworCisgICAgVGV4dE1ldHJpY3MgbWV0cmljczsKKwogICAgIGF2X2Jw cmludF9jbGVhcihicCk7CiAKICAgICBpZiAocy0+YmFzZXRpbWUgIT0gQVZfTk9QVFNfVkFMVUUp CkBAIC0xNDQ4LDEzICsxNzQzLDYgQEAgc3RhdGljIGludCBkcmF3X3RleHQoQVZGaWx0ZXJDb250 ZXh0ICpjdHgsIEFWRnJhbWUgKmZyYW1lLAogCiAgICAgaWYgKCFhdl9icHJpbnRfaXNfY29tcGxl dGUoYnApKQogICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwotICAgIHRleHQgPSBzLT5l eHBhbmRlZF90ZXh0LnN0cjsKLSAgICBpZiAoKGxlbiA9IHMtPmV4cGFuZGVkX3RleHQubGVuKSA+ IHMtPm5iX3Bvc2l0aW9ucykgewotICAgICAgICBpZiAoIShzLT5wb3NpdGlvbnMgPQotICAgICAg ICAgICAgICBhdl9yZWFsbG9jKHMtPnBvc2l0aW9ucywgbGVuKnNpemVvZigqcy0+cG9zaXRpb25z KSkpKQotICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKLSAgICAgICAgcy0+bmJf cG9zaXRpb25zID0gbGVuOwotICAgIH0KIAogICAgIGlmIChzLT5mb250Y29sb3JfZXhwclswXSkg ewogICAgICAgICAvKiBJZiBleHByZXNzaW9uIGlzIHNldCwgZXZhbHVhdGUgYW5kIHJlcGxhY2Ug dGhlIHN0YXRpYyB2YWx1ZSAqLwpAQCAtMTQ3MCw4NSArMTc1OCwyNiBAQCBzdGF0aWMgaW50IGRy YXdfdGV4dChBVkZpbHRlckNvbnRleHQgKmN0eCwgQVZGcmFtZSAqZnJhbWUsCiAgICAgICAgIGZm X2RyYXdfY29sb3IoJnMtPmRjLCAmcy0+Zm9udGNvbG9yLCBzLT5mb250Y29sb3IucmdiYSk7CiAg ICAgfQogCi0gICAgeCA9IDA7Ci0gICAgeSA9IDA7Ci0KLSAgICBpZiAoKHJldCA9IHVwZGF0ZV9m b250c2l6ZShjdHgpKSA8IDApCisgICAgaWYgKChyZXQgPSB1cGRhdGVfZm9udHNpemUoY3R4KSkg PCAwKSB7CiAgICAgICAgIHJldHVybiByZXQ7Ci0KLSAgICAvKiBsb2FkIGFuZCBjYWNoZSBnbHlw aHMgKi8KLSAgICBmb3IgKGkgPSAwLCBwID0gdGV4dDsgKnA7IGkrKykgewotICAgICAgICBHRVRf VVRGOChjb2RlLCAqcCA/ICpwKysgOiAwLCBjb2RlID0gMHhmZmZkOyBnb3RvIGNvbnRpbnVlX29u X2ludmFsaWQ7KTsKLWNvbnRpbnVlX29uX2ludmFsaWQ6Ci0KLSAgICAgICAgLyogZ2V0IGdseXBo ICovCi0gICAgICAgIGR1bW15LmNvZGUgPSBjb2RlOwotICAgICAgICBkdW1teS5mb250c2l6ZSA9 IHMtPmZvbnRzaXplOwotICAgICAgICBnbHlwaCA9IGF2X3RyZWVfZmluZChzLT5nbHlwaHMsICZk dW1teSwgZ2x5cGhfY21wLCBOVUxMKTsKLSAgICAgICAgaWYgKCFnbHlwaCkgewotICAgICAgICAg ICAgcmV0ID0gbG9hZF9nbHlwaChjdHgsICZnbHlwaCwgY29kZSk7Ci0gICAgICAgICAgICBpZiAo cmV0IDwgMCkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmV0OwotICAgICAgICB9Ci0KLSAgICAg ICAgeV9taW4gPSBGRk1JTihnbHlwaC0+YmJveC55TWluLCB5X21pbik7Ci0gICAgICAgIHlfbWF4 ID0gRkZNQVgoZ2x5cGgtPmJib3gueU1heCwgeV9tYXgpOwotICAgICAgICB4X21pbiA9IEZGTUlO KGdseXBoLT5iYm94LnhNaW4sIHhfbWluKTsKLSAgICAgICAgeF9tYXggPSBGRk1BWChnbHlwaC0+ YmJveC54TWF4LCB4X21heCk7CiAgICAgfQotICAgIHMtPm1heF9nbHlwaF9oID0geV9tYXggLSB5 X21pbjsKLSAgICBzLT5tYXhfZ2x5cGhfdyA9IHhfbWF4IC0geF9taW47Ci0KLSAgICAvKiBjb21w dXRlIGFuZCBzYXZlIHBvc2l0aW9uIGZvciBlYWNoIGdseXBoICovCi0gICAgZ2x5cGggPSBOVUxM OwotICAgIGZvciAoaSA9IDAsIHAgPSB0ZXh0OyAqcDsgaSsrKSB7Ci0gICAgICAgIEdFVF9VVEY4 KGNvZGUsICpwID8gKnArKyA6IDAsIGNvZGUgPSAweGZmZmQ7IGdvdG8gY29udGludWVfb25faW52 YWxpZDI7KTsKLWNvbnRpbnVlX29uX2ludmFsaWQyOgotCi0gICAgICAgIC8qIHNraXAgdGhlIFxu IGluIHRoZSBzZXF1ZW5jZSBcclxuICovCi0gICAgICAgIGlmIChwcmV2X2NvZGUgPT0gJ1xyJyAm JiBjb2RlID09ICdcbicpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBwcmV2X2Nv ZGUgPSBjb2RlOwotICAgICAgICBpZiAoaXNfbmV3bGluZShjb2RlKSkgewotCi0gICAgICAgICAg ICBtYXhfdGV4dF9saW5lX3cgPSBGRk1BWChtYXhfdGV4dF9saW5lX3csIHgpOwotICAgICAgICAg ICAgeSArPSBzLT5tYXhfZ2x5cGhfaCArIHMtPmxpbmVfc3BhY2luZzsKLSAgICAgICAgICAgIHgg PSAwOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBnZXQg Z2x5cGggKi8KLSAgICAgICAgcHJldl9nbHlwaCA9IGdseXBoOwotICAgICAgICBkdW1teS5jb2Rl ID0gY29kZTsKLSAgICAgICAgZHVtbXkuZm9udHNpemUgPSBzLT5mb250c2l6ZTsKLSAgICAgICAg Z2x5cGggPSBhdl90cmVlX2ZpbmQocy0+Z2x5cGhzLCAmZHVtbXksIGdseXBoX2NtcCwgTlVMTCk7 Ci0KLSAgICAgICAgLyoga2VybmluZyAqLwotICAgICAgICBpZiAocy0+dXNlX2tlcm5pbmcgJiYg cHJldl9nbHlwaCAmJiBnbHlwaC0+Y29kZSkgewotICAgICAgICAgICAgRlRfR2V0X0tlcm5pbmco cy0+ZmFjZSwgcHJldl9nbHlwaC0+Y29kZSwgZ2x5cGgtPmNvZGUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICBmdF9rZXJuaW5nX2RlZmF1bHQsICZkZWx0YSk7Ci0gICAgICAgICAgICB4ICs9 IGRlbHRhLnggPj4gNjsKLSAgICAgICAgfQogCi0gICAgICAgIC8qIHNhdmUgcG9zaXRpb24gKi8K LSAgICAgICAgcy0+cG9zaXRpb25zW2ldLnggPSB4ICsgZ2x5cGgtPmJpdG1hcF9sZWZ0OwotICAg ICAgICBzLT5wb3NpdGlvbnNbaV0ueSA9IHkgLSBnbHlwaC0+Yml0bWFwX3RvcCArIHlfbWF4Owot ICAgICAgICBpZiAoY29kZSA9PSAnXHQnKSB4ICA9ICh4IC8gcy0+dGFic2l6ZSArIDEpKnMtPnRh YnNpemU7Ci0gICAgICAgIGVsc2UgICAgICAgICAgICAgIHggKz0gZ2x5cGgtPmFkdmFuY2U7Cisg ICAgaWYgKChyZXQgPSBtZWFzdXJlX3RleHQoY3R4LCAmbWV0cmljcykpIDwgMCkgeworICAgICAg ICByZXR1cm4gcmV0OwogICAgIH0KIAotICAgIG1heF90ZXh0X2xpbmVfdyA9IEZGTUFYKHgsIG1h eF90ZXh0X2xpbmVfdyk7CisgICAgcy0+bWF4X2dseXBoX2ggPSBQT1NfQ0VJTChtZXRyaWNzLm1h eF95NjQgLSBtZXRyaWNzLm1pbl95NjQsIDY0KTsKKyAgICBzLT5tYXhfZ2x5cGhfdyA9IFBPU19D RUlMKG1ldHJpY3MubWF4X3g2NCAtIG1ldHJpY3MubWluX3g2NCwgNjQpOwogCi0gICAgcy0+dmFy X3ZhbHVlc1tWQVJfVFddID0gcy0+dmFyX3ZhbHVlc1tWQVJfVEVYVF9XXSA9IG1heF90ZXh0X2xp bmVfdzsKLSAgICBzLT52YXJfdmFsdWVzW1ZBUl9USF0gPSBzLT52YXJfdmFsdWVzW1ZBUl9URVhU X0hdID0geSArIHMtPm1heF9nbHlwaF9oOworICAgIHMtPnZhcl92YWx1ZXNbVkFSX1RXXSA9IHMt PnZhcl92YWx1ZXNbVkFSX1RFWFRfV10gPSBtZXRyaWNzLndpZHRoOworICAgIHMtPnZhcl92YWx1 ZXNbVkFSX1RIXSA9IHMtPnZhcl92YWx1ZXNbVkFSX1RFWFRfSF0gPSBtZXRyaWNzLmhlaWdodDsK IAogICAgIHMtPnZhcl92YWx1ZXNbVkFSX01BWF9HTFlQSF9XXSA9IHMtPm1heF9nbHlwaF93Owog ICAgIHMtPnZhcl92YWx1ZXNbVkFSX01BWF9HTFlQSF9IXSA9IHMtPm1heF9nbHlwaF9oOwotICAg IHMtPnZhcl92YWx1ZXNbVkFSX01BWF9HTFlQSF9BXSA9IHMtPnZhcl92YWx1ZXNbVkFSX0FTQ0VO VCBdID0geV9tYXg7Ci0gICAgcy0+dmFyX3ZhbHVlc1tWQVJfTUFYX0dMWVBIX0RdID0gcy0+dmFy X3ZhbHVlc1tWQVJfREVTQ0VOVF0gPSB5X21pbjsKKyAgICBzLT52YXJfdmFsdWVzW1ZBUl9NQVhf R0xZUEhfQV0gPSBzLT52YXJfdmFsdWVzW1ZBUl9BU0NFTlRdID0gUE9TX0NFSUwobWV0cmljcy5t YXhfeTY0LCA2NCk7CisgICAgcy0+dmFyX3ZhbHVlc1tWQVJfTUFYX0dMWVBIX0RdID0gcy0+dmFy X3ZhbHVlc1tWQVJfREVTQ0VOVF0gPSBQT1NfQ0VJTChtZXRyaWNzLm1pbl95NjQsIDY0KTsKIAot ICAgIHMtPnZhcl92YWx1ZXNbVkFSX0xJTkVfSF0gPSBzLT52YXJfdmFsdWVzW1ZBUl9MSF0gPSBz LT5tYXhfZ2x5cGhfaDsKKyAgICBzLT52YXJfdmFsdWVzW1ZBUl9MSU5FX0hdID0gcy0+dmFyX3Zh bHVlc1tWQVJfTEhdID0gbWV0cmljcy5saW5lX2hlaWdodDY0IC8gNjQuOwogCiAgICAgaWYgKHMt PnRleHRfc291cmNlID09IEFWX0ZSQU1FX0RBVEFfREVURUNUSU9OX0JCT1hFUykgewogICAgICAg ICBzLT52YXJfdmFsdWVzW1ZBUl9YXSA9IHMtPng7CkBAIC0xNTY2LDU2ICsxNzk1LDEzOSBAQCBj b250aW51ZV9vbl9pbnZhbGlkMjoKICAgICB1cGRhdGVfY29sb3Jfd2l0aF9hbHBoYShzLCAmYm9y ZGVyY29sb3IsIHMtPmJvcmRlcmNvbG9yKTsKICAgICB1cGRhdGVfY29sb3Jfd2l0aF9hbHBoYShz LCAmYm94Y29sb3IgICAsIHMtPmJveGNvbG9yICAgKTsKIAotICAgIGJveF93ID0gbWF4X3RleHRf bGluZV93OwotICAgIGJveF9oID0geSArIHMtPm1heF9nbHlwaF9oOworICAgIGlmIChzLT5kcmF3 X2JveCAmJiBzLT5ib3hib3JkZXJ3KSB7CisgICAgICAgIHMtPmJiX3RvcCA9IHMtPmJiX3JpZ2h0 ID0gcy0+YmJfYm90dG9tID0gcy0+YmJfbGVmdCA9IHMtPmJveGJvcmRlcnc7CisgICAgfSBlbHNl IHsKKyAgICAgICAgcy0+YmJfdG9wID0gcy0+YmJfcmlnaHQgPSBzLT5iYl9ib3R0b20gPSBzLT5i Yl9sZWZ0ID0gMDsKKyAgICB9CiAKICAgICBpZiAocy0+Zml4X2JvdW5kcykgewotCiAgICAgICAg IC8qIGNhbGN1bGF0ZSBmb290cHJpbnQgb2YgdGV4dCBlZmZlY3RzICovCi0gICAgICAgIGludCBi b3hvZmZzZXQgICAgID0gcy0+ZHJhd19ib3ggPyBGRk1BWChzLT5ib3hib3JkZXJ3LCAwKSA6IDA7 CiAgICAgICAgIGludCBib3JkZXJvZmZzZXQgID0gcy0+Ym9yZGVydyAgPyBGRk1BWChzLT5ib3Jk ZXJ3LCAwKSA6IDA7CiAKLSAgICAgICAgaW50IG9mZnNldGxlZnQgPSBGRk1BWDMoYm94b2Zmc2V0 LCBib3JkZXJvZmZzZXQsCisgICAgICAgIGludCBvZmZzZXRsZWZ0ID0gRkZNQVgzKEZGTUFYKHMt PmJiX2xlZnQsIDApLCBib3JkZXJvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChzLT5zaGFkb3d4IDwgMCA/IEZGQUJTKHMtPnNoYWRvd3gpIDogMCkpOwotICAgICAgICBp bnQgb2Zmc2V0dG9wID0gRkZNQVgzKGJveG9mZnNldCwgYm9yZGVyb2Zmc2V0LAorICAgICAgICBp bnQgb2Zmc2V0dG9wID0gRkZNQVgzKEZGTUFYKHMtPmJiX3RvcCwgMCksIGJvcmRlcm9mZnNldCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHMtPnNoYWRvd3kgPCAwID8gRkZBQlMo cy0+c2hhZG93eSkgOiAwKSk7Ci0KLSAgICAgICAgaW50IG9mZnNldHJpZ2h0ID0gRkZNQVgzKGJv eG9mZnNldCwgYm9yZGVyb2Zmc2V0LAorICAgICAgICBpbnQgb2Zmc2V0cmlnaHQgPSBGRk1BWDMo RkZNQVgocy0+YmJfcmlnaHQsIDApLCBib3JkZXJvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAocy0+c2hhZG93eCA+IDAgPyBzLT5zaGFkb3d4IDogMCkpOwotICAgICAg ICBpbnQgb2Zmc2V0Ym90dG9tID0gRkZNQVgzKGJveG9mZnNldCwgYm9yZGVyb2Zmc2V0LAorICAg ICAgICBpbnQgb2Zmc2V0Ym90dG9tID0gRkZNQVgzKEZGTUFYKHMtPmJiX2JvdHRvbSwgMCksIGJv cmRlcm9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocy0+c2hhZG93 eSA+IDAgPyBzLT5zaGFkb3d5IDogMCkpOwogCi0KICAgICAgICAgaWYgKHMtPnggLSBvZmZzZXRs ZWZ0IDwgMCkgcy0+eCA9IG9mZnNldGxlZnQ7CiAgICAgICAgIGlmIChzLT55IC0gb2Zmc2V0dG9w IDwgMCkgIHMtPnkgPSBvZmZzZXR0b3A7CiAKLSAgICAgICAgaWYgKHMtPnggKyBib3hfdyArIG9m ZnNldHJpZ2h0ID4gd2lkdGgpCi0gICAgICAgICAgICBzLT54ID0gRkZNQVgod2lkdGggLSBib3hf dyAtIG9mZnNldHJpZ2h0LCAwKTsKLSAgICAgICAgaWYgKHMtPnkgKyBib3hfaCArIG9mZnNldGJv dHRvbSA+IGhlaWdodCkKLSAgICAgICAgICAgIHMtPnkgPSBGRk1BWChoZWlnaHQgLSBib3hfaCAt IG9mZnNldGJvdHRvbSwgMCk7CisgICAgICAgIGlmIChzLT54ICsgbWV0cmljcy53aWR0aCArIG9m ZnNldHJpZ2h0ID4gd2lkdGgpCisgICAgICAgICAgICBzLT54ID0gRkZNQVgod2lkdGggLSBtZXRy aWNzLndpZHRoIC0gb2Zmc2V0cmlnaHQsIDApOworICAgICAgICBpZiAocy0+eSArIG1ldHJpY3Mu aGVpZ2h0ICsgb2Zmc2V0Ym90dG9tID4gaGVpZ2h0KQorICAgICAgICAgICAgcy0+eSA9IEZGTUFY KGhlaWdodCAtIG1ldHJpY3MuaGVpZ2h0IC0gb2Zmc2V0Ym90dG9tLCAwKTsKICAgICB9CiAKLSAg ICAvKiBkcmF3IGJveCAqLwotICAgIGlmIChzLT5kcmF3X2JveCkKLSAgICAgICAgZmZfYmxlbmRf cmVjdGFuZ2xlKCZzLT5kYywgJmJveGNvbG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ZnJhbWUtPmRhdGEsIGZyYW1lLT5saW5lc2l6ZSwgd2lkdGgsIGhlaWdodCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgIHMtPnggLSBzLT5ib3hib3JkZXJ3LCBzLT55IC0gcy0+Ym94Ym9yZGVy dywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveF93ICsgcy0+Ym94Ym9yZGVydyAqIDIs IGJveF9oICsgcy0+Ym94Ym9yZGVydyAqIDIpOworICAgIHggPSAwOworICAgIHkgPSAwOworICAg IHg2NCA9IChpbnQpKHMtPnggKiA2NC4pOworICAgIHk2NCA9IChpbnQpKHMtPnkgKiA2NC4gKyBt ZXRyaWNzLm9mZnNldF90b3A2NCk7CisKKyAgICBmb3IgKGludCBsID0gMDsgbCA8IHMtPmxpbmVf Y291bnQ7ICsrbCkgeworICAgICAgICBUZXh0TGluZSAqbGluZSA9ICZzLT5saW5lc1tsXTsKKyAg ICAgICAgSGFyZmJ1enpEYXRhICpoYiA9ICZsaW5lLT5oYl9kYXRhOworICAgICAgICBsaW5lLT5n bHlwaHMgPSBhdl9tYWxsb2N6KGhiLT5nbHlwaF9jb3VudCAqIHNpemVvZihHbHlwaEluZm8pKTsK KworICAgICAgICBmb3IgKGludCB0ID0gMDsgdCA8IGhiLT5nbHlwaF9jb3VudDsgKyt0KSB7Cisg ICAgICAgICAgICBHbHlwaEluZm8gKmdfaW5mbyA9ICZsaW5lLT5nbHlwaHNbdF07CisgICAgICAg ICAgICB1aW50OF90IGlzX3RhYiA9IGxhc3RfdGFiX2lkeCA8IHMtPnRhYl9jb3VudCAmJgorICAg ICAgICAgICAgICAgIGhiLT5nbHlwaF9pbmZvW3RdLmNsdXN0ZXIgPT0gcy0+dGFiX2NsdXN0ZXJz W2xhc3RfdGFiX2lkeF0gLSBsaW5lLT5jbHVzdGVyX29mZnNldDsKKyAgICAgICAgICAgIGludCB0 cnVlX3gsIHRydWVfeTsKKyAgICAgICAgICAgIGlmIChpc190YWIpIHsKKyAgICAgICAgICAgICAg ICArK2xhc3RfdGFiX2lkeDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRydWVfeCA9IHgg KyBoYi0+Z2x5cGhfcG9zW3RdLnhfb2Zmc2V0OworICAgICAgICAgICAgdHJ1ZV95ID0geSArIGhi LT5nbHlwaF9wb3NbdF0ueV9vZmZzZXQ7CisgICAgICAgICAgICBzaGlmdF94NjQgPSAoKCh4NjQg KyB0cnVlX3gpID4+IDQpICYgMGIwMDExKSA8PCA0OworICAgICAgICAgICAgc2hpZnRfeTY0ID0g KCg0IC0gKCgoeTY0ICsgdHJ1ZV95KSA+PiA0KSAmIDBiMDAxMSkpICYgMGIwMDExKSA8PCA0Owor CisgICAgICAgICAgICByZXQgPSBsb2FkX2dseXBoKGN0eCwgJmdseXBoLCBoYi0+Z2x5cGhfaW5m b1t0XS5jb2RlcG9pbnQsIHNoaWZ0X3g2NCwgc2hpZnRfeTY0KTsKKyAgICAgICAgICAgIGlmIChy ZXQgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgICAgICB9Cisg ICAgICAgICAgICBnX2luZm8tPmNvZGUgPSBoYi0+Z2x5cGhfaW5mb1t0XS5jb2RlcG9pbnQ7Cisg ICAgICAgICAgICBnX2luZm8tPnggPSAoeDY0ICsgdHJ1ZV94KSA+PiA2OworICAgICAgICAgICAg Z19pbmZvLT55ID0gKCh5NjQgKyB0cnVlX3kpID4+IDYpICsgKHNoaWZ0X3k2NCA+IDAgPyAxIDog MCk7CisgICAgICAgICAgICBnX2luZm8tPnNoaWZ0X3g2NCA9IHNoaWZ0X3g2NDsKKyAgICAgICAg ICAgIGdfaW5mby0+c2hpZnRfeTY0ID0gc2hpZnRfeTY0OworCisgICAgICAgICAgICBpZiAoIWlz X3RhYikgeworICAgICAgICAgICAgICAgIHggKz0gaGItPmdseXBoX3Bvc1t0XS54X2FkdmFuY2U7 CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGludCBzaXplID0gcy0+Ymxh bmtfYWR2YW5jZTY0ICogcy0+dGFic2l6ZTsKKyAgICAgICAgICAgICAgICB4ID0gKHggLyBzaXpl ICsgMSkgKiBzaXplOworICAgICAgICAgICAgfQorICAgICAgICAgICAgeSArPSBoYi0+Z2x5cGhf cG9zW3RdLnlfYWR2YW5jZTsKKyAgICAgICAgfQogCi0gICAgaWYgKHMtPnNoYWRvd3ggfHwgcy0+ c2hhZG93eSkgewotICAgICAgICBpZiAoKHJldCA9IGRyYXdfZ2x5cGhzKHMsIGZyYW1lLCB3aWR0 aCwgaGVpZ2h0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzaGFkb3djb2xvciwg cy0+c2hhZG93eCwgcy0+c2hhZG93eSwgMCkpIDwgMCkKLSAgICAgICAgICAgIHJldHVybiByZXQ7 CisgICAgICAgIHkgKz0gbWV0cmljcy5saW5lX2hlaWdodDY0ICsgcy0+bGluZV9zcGFjaW5nICog NjQ7CisgICAgICAgIHggPSAwOwogICAgIH0KIAotICAgIGlmIChzLT5ib3JkZXJ3KSB7Ci0gICAg ICAgIGlmICgocmV0ID0gZHJhd19nbHlwaHMocywgZnJhbWUsIHdpZHRoLCBoZWlnaHQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJvcmRlcmNvbG9yLCAwLCAwLCBzLT5ib3JkZXJ3 KSkgPCAwKQorICAgIG1ldHJpY3MucmVjdF94ID0gcy0+eDsKKyAgICBtZXRyaWNzLnJlY3RfeSA9 IHMtPnk7CisKKyAgICBpZiAoIXMtPmRyYXdfYm94KSB7CisgICAgICAgIC8vIENyZWF0ZSBhIGJv cmRlciBmb3IgdGhlIGNsaXBwaW5nIHJlZ2lvbiB0byB0YWtlIGludG8gYWNjb3VudCBzdWJwaXhl bAorICAgICAgICAvLyBlcnJvcnMgaW4gdGV4dCBtZWFzdXJlbWVudCBhbmQgZWZmZWN0cy4KKyAg ICAgICAgaW50IGJvcmRlcm9mZnNldCA9IHMtPmJvcmRlcncgPyBGRk1BWChzLT5ib3JkZXJ3LCAw KSA6IDA7CisgICAgICAgIHMtPmJiX2xlZnQgPSBib3JkZXJvZmZzZXQgKyAocy0+c2hhZG93eCA8 IDAgPyBGRkFCUyhzLT5zaGFkb3d4KSA6IDApICsgMTsKKyAgICAgICAgcy0+YmJfdG9wID0gYm9y ZGVyb2Zmc2V0ICsgKHMtPnNoYWRvd3kgPCAwID8gRkZBQlMocy0+c2hhZG93eSkgOiAwKSArIDE7 CisgICAgICAgIHMtPmJiX3JpZ2h0ID0gYm9yZGVyb2Zmc2V0ICsgKHMtPnNoYWRvd3ggPiAwID8g cy0+c2hhZG93eCA6IDApICsgMTsKKyAgICAgICAgcy0+YmJfYm90dG9tID0gYm9yZGVyb2Zmc2V0 ICsgKHMtPnNoYWRvd3kgPiAwID8gcy0+c2hhZG93eSA6IDApICsgMTsKKyAgICB9CisKKyAgICAv KiBDaGVjayBpZiB0aGUgd2hvbGUgYm94IGlzIG91dCBvZiB0aGUgZnJhbWUgKi8KKyAgICBpc19v dXRzaWRlID0gbWV0cmljcy5yZWN0X3ggLSBzLT5iYl9sZWZ0ID49IHdpZHRoIHx8CisgICAgICAg ICAgICAgICAgICAgIG1ldHJpY3MucmVjdF95IC0gcy0+YmJfdG9wID49IGhlaWdodCB8fAorICAg ICAgICAgICAgICAgICAgICBtZXRyaWNzLnJlY3RfeCArIG1ldHJpY3Mud2lkdGggKyBzLT5iYl9y aWdodCA8PSAwIHx8CisgICAgICAgICAgICAgICAgICAgIG1ldHJpY3MucmVjdF95ICsgbWV0cmlj cy5oZWlnaHQgKyBzLT5iYl9ib3R0b20gPD0gMDsKKworICAgIGlmICghaXNfb3V0c2lkZSkgewor ICAgICAgICAvKiBkcmF3IGJveCAqLworICAgICAgICBpZiAocy0+ZHJhd19ib3gpIHsKKyAgICAg ICAgICAgIHJlY194ID0gbWV0cmljcy5yZWN0X3ggLSBzLT5iYl9sZWZ0OworICAgICAgICAgICAg cmVjX3kgPSBtZXRyaWNzLnJlY3RfeSAtIHMtPmJiX3RvcDsKKyAgICAgICAgICAgIHJlY193aWR0 aCA9IG1ldHJpY3Mud2lkdGggKyBzLT5iYl9yaWdodCArIHMtPmJiX2xlZnQ7CisgICAgICAgICAg ICByZWNfaGVpZ2h0ID0gbWV0cmljcy5oZWlnaHQgKyBzLT5iYl9ib3R0b20gKyBzLT5iYl90b3A7 CisgICAgICAgICAgICBmZl9ibGVuZF9yZWN0YW5nbGUoJnMtPmRjLCAmYm94Y29sb3IsCisgICAg ICAgICAgICAgICAgZnJhbWUtPmRhdGEsIGZyYW1lLT5saW5lc2l6ZSwgd2lkdGgsIGhlaWdodCwK KyAgICAgICAgICAgICAgICByZWNfeCwgcmVjX3ksIHJlY193aWR0aCwgcmVjX2hlaWdodCk7Cisg ICAgICAgIH0KKworICAgICAgICBpZiAocy0+c2hhZG93eCB8fCBzLT5zaGFkb3d5KSB7CisgICAg ICAgICAgICBpZiAoKHJldCA9IGRyYXdfZ2x5cGhzKHMsIGZyYW1lLCAmc2hhZG93Y29sb3IsICZt ZXRyaWNzLAorICAgICAgICAgICAgICAgICAgICBzLT5zaGFkb3d4LCBzLT5zaGFkb3d5LCBzLT5i b3JkZXJ3KSkgPCAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgICAg IH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChzLT5ib3JkZXJ3KSB7CisgICAgICAgICAgICBp ZiAoKHJldCA9IGRyYXdfZ2x5cGhzKHMsIGZyYW1lLCAmYm9yZGVyY29sb3IsICZtZXRyaWNzLAor ICAgICAgICAgICAgICAgICAgICAwLCAwLCBzLT5ib3JkZXJ3KSkgPCAwKSB7CisgICAgICAgICAg ICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlm ICgocmV0ID0gZHJhd19nbHlwaHMocywgZnJhbWUsICZmb250Y29sb3IsICZtZXRyaWNzLCAwLAor ICAgICAgICAgICAgICAgIDAsIDApKSA8IDApIHsKICAgICAgICAgICAgIHJldHVybiByZXQ7Cisg ICAgICAgIH0KICAgICB9Ci0gICAgaWYgKChyZXQgPSBkcmF3X2dseXBocyhzLCBmcmFtZSwgd2lk dGgsIGhlaWdodCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICZmb250Y29sb3IsIDAsIDAs IDApKSA8IDApCi0gICAgICAgIHJldHVybiByZXQ7CisKKyAgICAvLyBGUkVFIGRhdGEgc3RydWN0 dXJlcworICAgIGZvciAoaW50IGwgPSAwOyBsIDwgcy0+bGluZV9jb3VudDsgKytsKSB7CisgICAg ICAgIFRleHRMaW5lICpsaW5lID0gJnMtPmxpbmVzW2xdOworICAgICAgICBhdl9mcmVlcCgmbGlu ZS0+Z2x5cGhzKTsKKyAgICAgICAgaGJfZGVzdHJveSgmbGluZS0+aGJfZGF0YSk7CisgICAgfQor ICAgIGF2X2ZyZWVwKCZzLT5saW5lcyk7CisgICAgYXZfZnJlZXAoJnMtPnRhYl9jbHVzdGVycyk7 CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTE2OTEsMTQgKzIwMDMsOSBAQCBGRl9FTkFCTEVfREVQ UkVDQVRJT05fV0FSTklOR1MKICAgICAgICAgICAgIHMtPnggPSBiYm94LT54OwogICAgICAgICAg ICAgcy0+eSA9IGJib3gtPnkgLSBzLT5mb250c2l6ZTsKICAgICAgICAgfQotICAgICAgICBkcmF3 X3RleHQoY3R4LCBmcmFtZSwgZnJhbWUtPndpZHRoLCBmcmFtZS0+aGVpZ2h0KTsKKyAgICAgICAg ZHJhd190ZXh0KGN0eCwgZnJhbWUpOwogICAgIH0KIAotICAgIGF2X2xvZyhjdHgsIEFWX0xPR19E RUJVRywgIm46JWQgdDolZiB0ZXh0X3c6JWQgdGV4dF9oOiVkIHg6JWQgeTolZFxuIiwKLSAgICAg ICAgICAgKGludClzLT52YXJfdmFsdWVzW1ZBUl9OXSwgcy0+dmFyX3ZhbHVlc1tWQVJfVF0sCi0g ICAgICAgICAgIChpbnQpcy0+dmFyX3ZhbHVlc1tWQVJfVEVYVF9XXSwgKGludClzLT52YXJfdmFs dWVzW1ZBUl9URVhUX0hdLAotICAgICAgICAgICBzLT54LCBzLT55KTsKLQogICAgIHJldHVybiBm Zl9maWx0ZXJfZnJhbWUob3V0bGluaywgZnJhbWUpOwogfQogCi0tIAoyLjM5LjEKCg== --00000000000015604505fe1a42ec 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". --00000000000015604505fe1a42ec--