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 19D62457E1 for ; Wed, 22 Feb 2023 09:12:22 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 59D1F68BFF8; Wed, 22 Feb 2023 11:12:19 +0200 (EET) Received: from sender3-op-o19.zoho.com (sender3-op-o19.zoho.com [136.143.184.19]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3B7E668BF55 for ; Wed, 22 Feb 2023 11:12:12 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; t=1677057129; cv=none; d=zohomail.com; s=zohoarc; b=XZIfnWpHSjGdSexF6PORtPcX5JalAR2jlLloe8U8lYVUfofdqK6glhh+HZbeDYHJ0vKLDKtqSGBnzBAKPdpXmIYmx6q3tV+VeN47e5axfUu5oYxe976uT7sqPe325BiMavC4biIUXeUNpCq9UbcJxdrtQaRvoiD5wmVJ8RfZyIQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1677057129; h=Content-Type:Date:From:MIME-Version:Message-ID:Subject:To; bh=RDG+7DuWVOv1MQ9wh6k4bvSwWuJ9MnhuKQqIF0TBVFw=; b=P0QAOmj0eaq2k5Ux3BqvBsW3Nqf/aqJLF7D8Nx7xFEBgQmFp1RIDStczwIwy6qgWFzgzz0qFWgU/ckvtiIDCXLqmhMLU91FeZs8vYskHrNNihQ3GOt54VswojtwW6HTudZa8IRjQTrh89BOvYJ9yWRseGsjaoxFkTvwr7fsr6WU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=kittens.ph; spf=pass smtp.mailfrom=copypaste@kittens.ph; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1677057129; s=zoho; d=kittens.ph; i=copypaste@kittens.ph; h=Date:Date:From:From:To:To:Message-ID:Subject:Subject:MIME-Version:Content-Type:Message-Id:Reply-To:Cc; bh=RDG+7DuWVOv1MQ9wh6k4bvSwWuJ9MnhuKQqIF0TBVFw=; b=hxMSsJjrIzVCJ+VX1cXXwjmISdkcEd9KKpT+v1fLmtgU7eNkp/+PTXPem5w+3lUh qWQT0rFp4HWlqa5lSF62H5KeMb7b3EcbaYbuvMKAXb2jTVUiBb3JZHrv44o7ET6zcVe 8Xruov/vuvvS0m6BWR2wVcBC22PvTGvtZfjEKZxU= Received: from [192.168.0.217] (c-73-198-184-247.hsd1.nj.comcast.net [73.198.184.247]) by mx.zohomail.com with SMTPS id 1677057128240616.407709765864; Wed, 22 Feb 2023 01:12:08 -0800 (PST) Date: Wed, 22 Feb 2023 04:12:08 -0500 From: copypaste To: ffmpeg-devel Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="EdoMail63f5dc68_20320a59_57bb" X-Zoho-Virus-Status: 1 X-ZohoMailClient: External X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] Fix broken build on Android due to broken asm-generic/termbits.h include 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: --EdoMail63f5dc68_20320a59_57bb Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Best, Fred Brennan (copypaste.wtf) --EdoMail63f5dc68_20320a59_57bb Content-Type: text/x-diff Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Fix-build-on-Android-due-to-termbits.h-collision.patch" RnJvbSBlOWE4ODliZmJmMzhiZGE3ODU1NzkyZWRkODI0OGY0ZjRhNTZhZjdlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkcmljayBCcmVubmFuIDxjb3B5cGFzdGVAa2l0dGVucy5w aD4KRGF0ZTogVHVlLCAyMSBGZWIgMjAyMyAxMjo1ODozOCAtMDUwMApTdWJqZWN0OiBbUEFUQ0gg MS8yXSBGaXggYnVpbGQgb24gQW5kcm9pZCBkdWUgdG8gdGVybWJpdHMuaCBjb2xsaXNpb24hCgpB cHBsaWVkIHRvIGxpYmF2Y29kZWMvYWFjY29kZXIuYzoKOiVzL1woWypdXClcP1woWyBcdF1cey19 XClcP1woXDxbQkQtWl1cKFswLTldKlwpXClcPi9cMVwyX1wzL2cKClRoaXMgc3RvcHMgQjAgYW5k IEIxIGZyb20gY29sbGlkaW5nIHdpdGggYSBkZWZpbmUgaW4KL3Vzci9pbmNsdWRlL2FzbS1nZW5l cmljL3Rlcm1iaXRzLmg6CgpgYGBjCmBgYAoKQmVjYXVzZSBvZiBvdGhlciBkZWZpbmVzIGluIHRo ZSBmaWxlIEkgdXNlZCBhIG1vcmUgaW5jbHVzaXZlIHJlZ2V4IGFzCnRoZXJlJ3MgYSB3YXJuaW5n IGF0IHRvcCB0aGF0IGl0J3MgYXV0b2dlbmVyYXRlZCBhbmQgbWF5IGJlIGV4cGFuZGVkLgotLS0K IGxpYmF2Y29kZWMvYWFjY29kZXIuYyB8IDYyICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCAzMSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2FhY2NvZGVyLmMgYi9saWJhdmNvZGVj L2FhY2NvZGVyLmMKaW5kZXggNjI5MWMxNjEyMy4uMzU3OTFjMzA0MCAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy9hYWNjb2Rlci5jCisrKyBiL2xpYmF2Y29kZWMvYWFjY29kZXIuYwpAQCAtODMsOCAr ODMsOCBAQCBzdGF0aWMgYXZfYWx3YXlzX2lubGluZSBmbG9hdCBxdWFudGl6ZV9hbmRfZW5jb2Rl X2JhbmRfY29zdF90ZW1wbGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgZmxvYXQgUk9VTkRJTkcpCiB7CiAgICAgY29uc3QgaW50IHFfaWR4ID0gUE9XX1NGMl9aRVJP IC0gc2NhbGVfaWR4ICsgU0NBTEVfT05FX1BPUyAtIFNDQUxFX0RJVl81MTI7Ci0gICAgY29uc3Qg ZmxvYXQgUSAgID0gZmZfYWFjX3BvdzJzZl90YWIgW3FfaWR4XTsKLSAgICBjb25zdCBmbG9hdCBR MzQgPSBmZl9hYWNfcG93MzRzZl90YWJbcV9pZHhdOworICAgIGNvbnN0IGZsb2F0IF9RICAgPSBm Zl9hYWNfcG93MnNmX3RhYiBbcV9pZHhdOworICAgIGNvbnN0IGZsb2F0IF9RMzQgPSBmZl9hYWNf cG93MzRzZl90YWJbcV9pZHhdOwogICAgIGNvbnN0IGZsb2F0IElRICA9IGZmX2FhY19wb3cyc2Zf dGFiIFtQT1dfU0YyX1pFUk8gKyBzY2FsZV9pZHggLSBTQ0FMRV9PTkVfUE9TICsgU0NBTEVfRElW XzUxMl07CiAgICAgY29uc3QgZmxvYXQgQ0xJUFBFRF9FU0NBUEUgPSAxNjUxNDAuMGYqSVE7CiAg ICAgZmxvYXQgY29zdCA9IDA7CkBAIC0xMTEsNyArMTExLDcgQEAgc3RhdGljIGF2X2Fsd2F5c19p bmxpbmUgZmxvYXQgcXVhbnRpemVfYW5kX2VuY29kZV9iYW5kX2Nvc3RfdGVtcGxhdGUoCiAgICAg ICAgIHMtPmFic19wb3czNChzLT5zY29lZnMsIGluLCBzaXplKTsKICAgICAgICAgc2NhbGVkID0g cy0+c2NvZWZzOwogICAgIH0KLSAgICBzLT5xdWFudF9iYW5kcyhzLT5xY29lZnMsIGluLCBzY2Fs ZWQsIHNpemUsICFCVF9VTlNJR05FRCwgYWFjX2NiX21heHZhbFtjYl0sIFEzNCwgUk9VTkRJTkcp OworICAgIHMtPnF1YW50X2JhbmRzKHMtPnFjb2VmcywgaW4sIHNjYWxlZCwgc2l6ZSwgIUJUX1VO U0lHTkVELCBhYWNfY2JfbWF4dmFsW2NiXSwgX1EzNCwgUk9VTkRJTkcpOwogICAgIGlmIChCVF9V TlNJR05FRCkgewogICAgICAgICBvZmYgPSAwOwogICAgIH0gZWxzZSB7CkBAIC0xMzgsNyArMTM4 LDcgQEAgc3RhdGljIGF2X2Fsd2F5c19pbmxpbmUgZmxvYXQgcXVhbnRpemVfYW5kX2VuY29kZV9i YW5kX2Nvc3RfdGVtcGxhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICBxdWFudGl6ZWQgPSBD TElQUEVEX0VTQ0FQRTsKICAgICAgICAgICAgICAgICAgICAgICAgIGN1cmJpdHMgKz0gMjE7CiAg ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnQg YyA9IGF2X2NsaXBfdWludHAyKHF1YW50KHQsIFEsIFJPVU5ESU5HKSwgMTMpOworICAgICAgICAg ICAgICAgICAgICAgICAgaW50IGMgPSBhdl9jbGlwX3VpbnRwMihxdWFudCh0LCBfUSwgUk9VTkRJ TkcpLCAxMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBxdWFudGl6ZWQgPSBjKmNicnRmKGMp KklROwogICAgICAgICAgICAgICAgICAgICAgICAgY3VyYml0cyArPSBhdl9sb2cyKGMpKjIgLSA0 ICsgMTsKICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMTc1LDcgKzE3NSw3IEBAIHN0YXRpYyBh dl9hbHdheXNfaW5saW5lIGZsb2F0IHF1YW50aXplX2FuZF9lbmNvZGVfYmFuZF9jb3N0X3RlbXBs YXRlKAogICAgICAgICAgICAgaWYgKEJUX0VTQykgewogICAgICAgICAgICAgICAgIGZvciAoaW50 IGogPSAwOyBqIDwgMjsgaisrKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChmZl9hYWNfY29k ZWJvb2tfdmVjdG9yc1tjYi0xXVtjdXJpZHgqMitqXSA9PSA2NC4wZikgewotICAgICAgICAgICAg ICAgICAgICAgICAgaW50IGNvZWYgPSBhdl9jbGlwX3VpbnRwMihxdWFudChmYWJzZihpbltpK2pd KSwgUSwgUk9VTkRJTkcpLCAxMyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29lZiA9 IGF2X2NsaXBfdWludHAyKHF1YW50KGZhYnNmKGluW2kral0pLCBfUSwgUk9VTkRJTkcpLCAxMyk7 CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuID0gYXZfbG9nMihjb2VmKTsKIAogICAg ICAgICAgICAgICAgICAgICAgICAgcHV0X2JpdHMocGIsIGxlbiAtIDQgKyAxLCAoMSA8PCAobGVu IC0gNCArIDEpKSAtIDIpOwpAQCAtOTc5LDkgKzk3OSw5IEBAIHN0YXRpYyB2b2lkIHNlYXJjaF9m b3JfbXMoQUFDRW5jQ29udGV4dCAqcywgQ2hhbm5lbEVsZW1lbnQgKmNwZSkKIHsKICAgICBpbnQg c3RhcnQgPSAwLCBpLCB3LCB3MiwgZywgc2lkX3NmX2Jvb3N0LCBwcmV2X21pZCwgcHJldl9zaWRl OwogICAgIHVpbnQ4X3QgbmV4dGJhbmQwWzEyOF0sIG5leHRiYW5kMVsxMjhdOwotICAgIGZsb2F0 ICpNICAgPSBzLT5zY29lZnMgKyAxMjgqMCwgKlMgICA9IHMtPnNjb2VmcyArIDEyOCoxOwotICAg IGZsb2F0ICpMMzQgPSBzLT5zY29lZnMgKyAxMjgqMiwgKlIzNCA9IHMtPnNjb2VmcyArIDEyOCoz OwotICAgIGZsb2F0ICpNMzQgPSBzLT5zY29lZnMgKyAxMjgqNCwgKlMzNCA9IHMtPnNjb2VmcyAr IDEyOCo1OworICAgIGZsb2F0ICpfTSAgID0gcy0+c2NvZWZzICsgMTI4KjAsICpfUyAgID0gcy0+ c2NvZWZzICsgMTI4KjE7CisgICAgZmxvYXQgKl9MMzQgPSBzLT5zY29lZnMgKyAxMjgqMiwgKl9S MzQgPSBzLT5zY29lZnMgKyAxMjgqMzsKKyAgICBmbG9hdCAqX00zNCA9IHMtPnNjb2VmcyArIDEy OCo0LCAqX1MzNCA9IHMtPnNjb2VmcyArIDEyOCo1OwogICAgIGNvbnN0IGZsb2F0IGxhbWJkYSA9 IHMtPmxhbWJkYTsKICAgICBjb25zdCBmbG9hdCBtc2xhbWJkYSA9IEZGTUlOKDEuMGYsIGxhbWJk YSAvIDEyMC5mKTsKICAgICBTaW5nbGVDaGFubmVsRWxlbWVudCAqc2NlMCA9ICZjcGUtPmNoWzBd OwpAQCAtMTAwNywyMiArMTAwNywyMiBAQCBzdGF0aWMgdm9pZCBzZWFyY2hfZm9yX21zKEFBQ0Vu Y0NvbnRleHQgKnMsIENoYW5uZWxFbGVtZW50ICpjcGUpCiAgICAgICAgICAgICAgICAgLyogTXVz dCBjb21wdXRlIG1pZC9zaWRlIFNGIGFuZCBib29rIGZvciB0aGUgd2hvbGUgd2luZG93IGdyb3Vw ICovCiAgICAgICAgICAgICAgICAgZm9yICh3MiA9IDA7IHcyIDwgc2NlMC0+aWNzLmdyb3VwX2xl blt3XTsgdzIrKykgewogICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc2NlMC0+ aWNzLnN3Yl9zaXplc1tnXTsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBNW2ldID0g KHNjZTAtPmNvZWZmc1tzdGFydCsodyt3MikqMTI4K2ldCisgICAgICAgICAgICAgICAgICAgICAg ICBfTVtpXSA9IChzY2UwLT5jb2VmZnNbc3RhcnQrKHcrdzIpKjEyOCtpXQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKyBzY2UxLT5jb2VmZnNbc3RhcnQrKHcrdzIpKjEyOCtpXSkgKiAw LjU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBTW2ldID0gIE1baV0KKyAgICAgICAgICAgICAg ICAgICAgICAgIF9TW2ldID0gIF9NW2ldCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt IHNjZTEtPmNvZWZmc1tzdGFydCsodyt3MikqMTI4K2ldOwogICAgICAgICAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICAgICAgICAgIHMtPmFic19wb3czNChNMzQsIE0sIHNjZTAtPmljcy5zd2Jf c2l6ZXNbZ10pOwotICAgICAgICAgICAgICAgICAgICBzLT5hYnNfcG93MzQoUzM0LCBTLCBzY2Uw LT5pY3Muc3diX3NpemVzW2ddKTsKKyAgICAgICAgICAgICAgICAgICAgcy0+YWJzX3BvdzM0KF9N MzQsIF9NLCBzY2UwLT5pY3Muc3diX3NpemVzW2ddKTsKKyAgICAgICAgICAgICAgICAgICAgcy0+ YWJzX3BvdzM0KF9TMzQsIF9TLCBzY2UwLT5pY3Muc3diX3NpemVzW2ddKTsKICAgICAgICAgICAg ICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNjZTAtPmljcy5zd2Jfc2l6ZXNbZ107IGkrKyApIHsK LSAgICAgICAgICAgICAgICAgICAgICAgIE1tYXggPSBGRk1BWChNbWF4LCBNMzRbaV0pOwotICAg ICAgICAgICAgICAgICAgICAgICAgU21heCA9IEZGTUFYKFNtYXgsIFMzNFtpXSk7CisgICAgICAg ICAgICAgICAgICAgICAgICBNbWF4ID0gRkZNQVgoTW1heCwgX00zNFtpXSk7CisgICAgICAgICAg ICAgICAgICAgICAgICBTbWF4ID0gRkZNQVgoU21heCwgX1MzNFtpXSk7CiAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBmb3IgKHNpZF9z Zl9ib29zdCA9IDA7IHNpZF9zZl9ib29zdCA8IDQ7IHNpZF9zZl9ib29zdCsrKSB7CiAgICAgICAg ICAgICAgICAgICAgIGZsb2F0IGRpc3QxID0gMC4wZiwgZGlzdDIgPSAwLjBmOwotICAgICAgICAg ICAgICAgICAgICBpbnQgQjAgPSAwLCBCMSA9IDA7CisgICAgICAgICAgICAgICAgICAgIGludCBf QjAgPSAwLCBfQjEgPSAwOwogICAgICAgICAgICAgICAgICAgICBpbnQgbWluaWR4OwogICAgICAg ICAgICAgICAgICAgICBpbnQgbWlkaWR4LCBzaWRpZHg7CiAgICAgICAgICAgICAgICAgICAgIGlu dCBtaWRjYiwgc2lkY2I7CkBAIC0xMDUwLDQ2ICsxMDUwLDQ2IEBAIHN0YXRpYyB2b2lkIHNlYXJj aF9mb3JfbXMoQUFDRW5jQ29udGV4dCAqcywgQ2hhbm5lbEVsZW1lbnQgKmNwZSkKICAgICAgICAg ICAgICAgICAgICAgICAgIGZsb2F0IG1pbnRociA9IEZGTUlOKGJhbmQwLT50aHJlc2hvbGQsIGJh bmQxLT50aHJlc2hvbGQpOwogICAgICAgICAgICAgICAgICAgICAgICAgaW50IGIxLGIyLGIzLGI0 OwogICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNjZTAtPmljcy5zd2Jf c2l6ZXNbZ107IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1baV0gPSAoc2Nl MC0+Y29lZmZzW3N0YXJ0Kyh3K3cyKSoxMjgraV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBfTVtpXSA9IChzY2UwLT5jb2VmZnNbc3RhcnQrKHcrdzIpKjEyOCtpXQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsgc2NlMS0+Y29lZmZzW3N0YXJ0Kyh3K3cyKSoxMjgraV0p ICogMC41OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNbaV0gPSAgTVtpXQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF9TW2ldID0gIF9NW2ldCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLSBzY2UxLT5jb2VmZnNbc3RhcnQrKHcrdzIpKjEyOCtpXTsKICAgICAg ICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICAgICAgcy0+YWJzX3Bv dzM0KEwzNCwgc2NlMC0+Y29lZmZzK3N0YXJ0Kyh3K3cyKSoxMjgsIHNjZTAtPmljcy5zd2Jfc2l6 ZXNbZ10pOwotICAgICAgICAgICAgICAgICAgICAgICAgcy0+YWJzX3BvdzM0KFIzNCwgc2NlMS0+ Y29lZmZzK3N0YXJ0Kyh3K3cyKSoxMjgsIHNjZTAtPmljcy5zd2Jfc2l6ZXNbZ10pOwotICAgICAg ICAgICAgICAgICAgICAgICAgcy0+YWJzX3BvdzM0KE0zNCwgTSwgICAgICAgICAgICAgICAgICAg ICAgICAgc2NlMC0+aWNzLnN3Yl9zaXplc1tnXSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBz LT5hYnNfcG93MzQoUzM0LCBTLCAgICAgICAgICAgICAgICAgICAgICAgICBzY2UwLT5pY3Muc3di X3NpemVzW2ddKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMtPmFic19wb3czNChfTDM0LCBz Y2UwLT5jb2VmZnMrc3RhcnQrKHcrdzIpKjEyOCwgc2NlMC0+aWNzLnN3Yl9zaXplc1tnXSk7Cisg ICAgICAgICAgICAgICAgICAgICAgICBzLT5hYnNfcG93MzQoX1IzNCwgc2NlMS0+Y29lZmZzK3N0 YXJ0Kyh3K3cyKSoxMjgsIHNjZTAtPmljcy5zd2Jfc2l6ZXNbZ10pOworICAgICAgICAgICAgICAg ICAgICAgICAgcy0+YWJzX3BvdzM0KF9NMzQsIF9NLCAgICAgICAgICAgICAgICAgICAgICAgICBz Y2UwLT5pY3Muc3diX3NpemVzW2ddKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMtPmFic19w b3czNChfUzM0LCBfUywgICAgICAgICAgICAgICAgICAgICAgICAgc2NlMC0+aWNzLnN3Yl9zaXpl c1tnXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0MSArPSBxdWFudGl6ZV9iYW5kX2Nv c3QocywgJnNjZTAtPmNvZWZmc1tzdGFydCArICh3K3cyKSoxMjhdLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwzNCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTDM0LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjZTAtPmljcy5zd2Jfc2l6 ZXNbZ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2NlMC0+c2ZfaWR4W3cqMTYrZ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2NlMC0+YmFuZF90eXBlW3cqMTYrZ10sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIC8gKGJhbmQw LT50aHJlc2hvbGQgKyBGTFRfTUlOKSwgSU5GSU5JVFksICZiMSwgTlVMTCk7CiAgICAgICAgICAg ICAgICAgICAgICAgICBkaXN0MSArPSBxdWFudGl6ZV9iYW5kX2Nvc3QocywgJnNjZTEtPmNvZWZm c1tzdGFydCArICh3K3cyKSoxMjhdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFIzNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBfUjM0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNjZTEtPmljcy5zd2Jfc2l6ZXNbZ10sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NlMS0+c2ZfaWR4W3cq MTYrZ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2NlMS0+YmFuZF90eXBlW3cqMTYrZ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIC8gKGJhbmQxLT50aHJlc2hvbGQgKyBGTFRf TUlOKSwgSU5GSU5JVFksICZiMiwgTlVMTCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkaXN0 MiArPSBxdWFudGl6ZV9iYW5kX2Nvc3QocywgTSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNMzQsCisgICAgICAgICAgICAgICAgICAgICAgICBk aXN0MiArPSBxdWFudGl6ZV9iYW5kX2Nvc3QocywgX00sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX00zNCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2UwLT5pY3Muc3diX3NpemVzW2ddLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pZGlk eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt aWRjYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsYW1iZGEgLyAobWludGhyICsgRkxUX01JTiksIElORklOSVRZLCAmYjMsIE5VTEwpOwotICAg ICAgICAgICAgICAgICAgICAgICAgZGlzdDIgKz0gcXVhbnRpemVfYmFuZF9jb3N0KHMsIFMsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUzM0LAor ICAgICAgICAgICAgICAgICAgICAgICAgZGlzdDIgKz0gcXVhbnRpemVfYmFuZF9jb3N0KHMsIF9T LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9T MzQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2NlMS0+aWNzLnN3Yl9zaXplc1tnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzaWRpZHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2lkY2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNsYW1iZGEgLyAobWludGhyICogYm1heCArIEZM VF9NSU4pLCBJTkZJTklUWSwgJmI0LCBOVUxMKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIEIw ICs9IGIxK2IyOwotICAgICAgICAgICAgICAgICAgICAgICAgQjEgKz0gYjMrYjQ7CisgICAgICAg ICAgICAgICAgICAgICAgICBfQjAgKz0gYjErYjI7CisgICAgICAgICAgICAgICAgICAgICAgICBf QjEgKz0gYjMrYjQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0MSAtPSBiMStiMjsKICAg ICAgICAgICAgICAgICAgICAgICAgIGRpc3QyIC09IGIzK2I0OwogICAgICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgICAgIGNwZS0+bXNfbWFza1t3KjE2K2ddID0gZGlzdDIgPD0g ZGlzdDEgJiYgQjEgPCBCMDsKKyAgICAgICAgICAgICAgICAgICAgY3BlLT5tc19tYXNrW3cqMTYr Z10gPSBkaXN0MiA8PSBkaXN0MSAmJiBfQjEgPCBfQjA7CiAgICAgICAgICAgICAgICAgICAgIGlm IChjcGUtPm1zX21hc2tbdyoxNitnXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNj ZTAtPmJhbmRfdHlwZVt3KjE2K2ddICE9IE5PSVNFX0JUICYmIHNjZTEtPmJhbmRfdHlwZVt3KjE2 K2ddICE9IE5PSVNFX0JUKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NlMC0+c2Zf aWR4W3cqMTYrZ10gPSBtaWRpZHg7CkBAIC0xMTAxLDcgKzExMDEsNyBAQCBzdGF0aWMgdm9pZCBz ZWFyY2hfZm9yX21zKEFBQ0VuY0NvbnRleHQgKnMsIENoYW5uZWxFbGVtZW50ICpjcGUpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY3BlLT5tc19tYXNrW3cqMTYrZ10gPSAwOwogICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoQjEgPiBCMCkgeworICAgICAgICAgICAgICAgICAg ICB9IGVsc2UgaWYgKF9CMSA+IF9CMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgLyogTW9y ZSBib29zdCB3b24ndCBmaXggdGhpcyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 CiAgICAgICAgICAgICAgICAgICAgIH0KLS0gCjIuMzkuMgoK --EdoMail63f5dc68_20320a59_57bb Content-Type: text/x-diff Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0002-Fixed-rest-of-the-build-on-Android.patch" RnJvbSBjY2QwZTg4NGUwNDVlZDg1NDY1OGZkNWU5NTZiYmRkY2Q5NTNkY2Y2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkcmljayBCcmVubmFuIDxjb3B5cGFzdGVAa2l0dGVucy5w aD4KRGF0ZTogV2VkLCAyMiBGZWIgMjAyMyAwNDowNzoxNCAtMDUwMApTdWJqZWN0OiBbUEFUQ0gg Mi8yXSBGaXhlZCByZXN0IG9mIHRoZSBidWlsZCBvbiBBbmRyb2lkCgpzZWUgbGFzdCBjb21taXQK LS0tCiBsaWJhdmNvZGVjL2ZhYW5kY3QuYyAgfCAgNjIgKysrLS0tCiBsaWJhdmNvZGVjL2hldmNk ZWMuaCAgfCAgIDcgKwogbGliYXZjb2RlYy9vcHVzX3B2cS5jIHwgNDQ2ICsrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAyNjEgaW5zZXJ0 aW9ucygrKSwgMjU0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZmFhbmRj dC5jIGIvbGliYXZjb2RlYy9mYWFuZGN0LmMKaW5kZXggMzhjMzkyYmJhZS4uNTIxMzZlYzliMSAx MDA2NDQKLS0tIGEvbGliYXZjb2RlYy9mYWFuZGN0LmMKKysrIGIvbGliYXZjb2RlYy9mYWFuZGN0 LmMKQEAgLTM3LDI5ICszNywyOSBAQCBmb3IgdGhpcyBhcHByb2FjaCkuIFVuZm9ydHVuYXRlbHks IGxvbmcgZG91YmxlIGlzIG5vdCBhbHdheXMgYXZhaWxhYmxlIGNvcnJlY3RseQogZS5nIHBwYyBo YXMgaXNzdWVzLgogVE9ETzogYWRkIEwgc3VmZml4ZXMgd2hlbiBwcGMgYW5kIHRvb2xjaGFpbnMg c29ydCBvdXQgdGhlaXIgc3R1ZmYuCiAqLwotI2RlZmluZSBCMCAxLjAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMAotI2RlZmluZSBCMSAwLjcyMDk1OTgyMjAwNjk0NzkxMzc4OTA5 MTg5MDk0MzAyMTI2NyAvLyAoY29zKHBpKjEvMTYpc3FydCgyKSleLTEKLSNkZWZpbmUgQjIgMC43 NjUzNjY4NjQ3MzAxNzk1NDM0NTY5MTk5NjgwNjA3OTc3MzQgLy8gKGNvcyhwaSoyLzE2KXNxcnQo MikpXi0xCi0jZGVmaW5lIEIzIDAuODUwNDMwMDk0NzY3MjU2NDQ4NzY2NzAyODQ0MzcxNDEyMzI1 IC8vIChjb3MocGkqMy8xNilzcXJ0KDIpKV4tMQotI2RlZmluZSBCNCAxLjAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAvLyAoY29zKHBpKjQvMTYpc3FydCgyKSleLTEKLSNkZWZp bmUgQjUgMS4yNzI3NTg1ODA1NzI4MzM5Mzg0NjEwMDcwMTgyODE3NjcwMzIgLy8gKGNvcyhwaSo1 LzE2KXNxcnQoMikpXi0xCi0jZGVmaW5lIEI2IDEuODQ3NzU5MDY1MDIyNTczNTEyMjU2MzY2Mzc4 NzkzNTc2NTc0IC8vIChjb3MocGkqNi8xNilzcXJ0KDIpKV4tMQotI2RlZmluZSBCNyAzLjYyNDUw OTc4NTQxMTU1MTM3MjQwOTk0MTIyNzUwNDI4OTU4NyAvLyAoY29zKHBpKjcvMTYpc3FydCgyKSle LTEKLQotI2RlZmluZSBBMSBNX1NRUlQxXzIgICAgICAgICAgICAgIC8vIGNvcyhwaSo0LzE2KQot I2RlZmluZSBBMiAwLjU0MTE5NjEwMDE0NjE5Njk4NDM1IC8vIGNvcyhwaSo2LzE2KXNxcnQoMikK LSNkZWZpbmUgQTUgMC4zODI2ODM0MzIzNjUwODk3NzE3MCAvLyBjb3MocGkqNi8xNikKLSNkZWZp bmUgQTQgMS4zMDY1NjI5NjQ4NzYzNzY1Mjc3NCAvLyBjb3MocGkqMi8xNilzcXJ0KDIpCisjZGVm aW5lIF9CMCAxLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorI2RlZmluZSBf QjEgMC43MjA5NTk4MjIwMDY5NDc5MTM3ODkwOTE4OTA5NDMwMjEyNjcgLy8gKGNvcyhwaSoxLzE2 KXNxcnQoMikpXi0xCisjZGVmaW5lIF9CMiAwLjc2NTM2Njg2NDczMDE3OTU0MzQ1NjkxOTk2ODA2 MDc5NzczNCAvLyAoY29zKHBpKjIvMTYpc3FydCgyKSleLTEKKyNkZWZpbmUgX0IzIDAuODUwNDMw MDk0NzY3MjU2NDQ4NzY2NzAyODQ0MzcxNDEyMzI1IC8vIChjb3MocGkqMy8xNilzcXJ0KDIpKV4t MQorI2RlZmluZSBfQjQgMS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgLy8g KGNvcyhwaSo0LzE2KXNxcnQoMikpXi0xCisjZGVmaW5lIF9CNSAxLjI3Mjc1ODU4MDU3MjgzMzkz ODQ2MTAwNzAxODI4MTc2NzAzMiAvLyAoY29zKHBpKjUvMTYpc3FydCgyKSleLTEKKyNkZWZpbmUg X0I2IDEuODQ3NzU5MDY1MDIyNTczNTEyMjU2MzY2Mzc4NzkzNTc2NTc0IC8vIChjb3MocGkqNi8x NilzcXJ0KDIpKV4tMQorI2RlZmluZSBfQjcgMy42MjQ1MDk3ODU0MTE1NTEzNzI0MDk5NDEyMjc1 MDQyODk1ODcgLy8gKGNvcyhwaSo3LzE2KXNxcnQoMikpXi0xCisKKyNkZWZpbmUgX0ExIE1fU1FS VDFfMiAgICAgICAgICAgICAgLy8gY29zKHBpKjQvMTYpCisjZGVmaW5lIF9BMiAwLjU0MTE5NjEw MDE0NjE5Njk4NDM1IC8vIGNvcyhwaSo2LzE2KXNxcnQoMikKKyNkZWZpbmUgX0E1IDAuMzgyNjgz NDMyMzY1MDg5NzcxNzAgLy8gY29zKHBpKjYvMTYpCisjZGVmaW5lIF9BNCAxLjMwNjU2Mjk2NDg3 NjM3NjUyNzc0IC8vIGNvcyhwaSoyLzE2KXNxcnQoMikKIAogc3RhdGljIGNvbnN0IEZMT0FUIHBv c3RzY2FsZVs2NF09ewotQjAqQjAsIEIwKkIxLCBCMCpCMiwgQjAqQjMsIEIwKkI0LCBCMCpCNSwg QjAqQjYsIEIwKkI3LAotQjEqQjAsIEIxKkIxLCBCMSpCMiwgQjEqQjMsIEIxKkI0LCBCMSpCNSwg QjEqQjYsIEIxKkI3LAotQjIqQjAsIEIyKkIxLCBCMipCMiwgQjIqQjMsIEIyKkI0LCBCMipCNSwg QjIqQjYsIEIyKkI3LAotQjMqQjAsIEIzKkIxLCBCMypCMiwgQjMqQjMsIEIzKkI0LCBCMypCNSwg QjMqQjYsIEIzKkI3LAotQjQqQjAsIEI0KkIxLCBCNCpCMiwgQjQqQjMsIEI0KkI0LCBCNCpCNSwg QjQqQjYsIEI0KkI3LAotQjUqQjAsIEI1KkIxLCBCNSpCMiwgQjUqQjMsIEI1KkI0LCBCNSpCNSwg QjUqQjYsIEI1KkI3LAotQjYqQjAsIEI2KkIxLCBCNipCMiwgQjYqQjMsIEI2KkI0LCBCNipCNSwg QjYqQjYsIEI2KkI3LAotQjcqQjAsIEI3KkIxLCBCNypCMiwgQjcqQjMsIEI3KkI0LCBCNypCNSwg QjcqQjYsIEI3KkI3LAorX0IwKl9CMCwgX0IwKl9CMSwgX0IwKl9CMiwgX0IwKl9CMywgX0IwKl9C NCwgX0IwKl9CNSwgX0IwKl9CNiwgX0IwKl9CNywKK19CMSpfQjAsIF9CMSpfQjEsIF9CMSpfQjIs IF9CMSpfQjMsIF9CMSpfQjQsIF9CMSpfQjUsIF9CMSpfQjYsIF9CMSpfQjcsCitfQjIqX0IwLCBf QjIqX0IxLCBfQjIqX0IyLCBfQjIqX0IzLCBfQjIqX0I0LCBfQjIqX0I1LCBfQjIqX0I2LCBfQjIq X0I3LAorX0IzKl9CMCwgX0IzKl9CMSwgX0IzKl9CMiwgX0IzKl9CMywgX0IzKl9CNCwgX0IzKl9C NSwgX0IzKl9CNiwgX0IzKl9CNywKK19CNCpfQjAsIF9CNCpfQjEsIF9CNCpfQjIsIF9CNCpfQjMs IF9CNCpfQjQsIF9CNCpfQjUsIF9CNCpfQjYsIF9CNCpfQjcsCitfQjUqX0IwLCBfQjUqX0IxLCBf QjUqX0IyLCBfQjUqX0IzLCBfQjUqX0I0LCBfQjUqX0I1LCBfQjUqX0I2LCBfQjUqX0I3LAorX0I2 Kl9CMCwgX0I2Kl9CMSwgX0I2Kl9CMiwgX0I2Kl9CMywgX0I2Kl9CNCwgX0I2Kl9CNSwgX0I2Kl9C NiwgX0I2Kl9CNywKK19CNypfQjAsIF9CNypfQjEsIF9CNypfQjIsIF9CNypfQjMsIF9CNypfQjQs IF9CNypfQjUsIF9CNypfQjYsIF9CNypfQjcsCiB9OwogCiBzdGF0aWMgYXZfYWx3YXlzX2lubGlu ZSB2b2lkIHJvd19mZGN0KEZMT0FUIHRlbXBbNjRdLCBpbnQxNl90ICpkYXRhKQpAQCAtODgsNyAr ODgsNyBAQCBzdGF0aWMgYXZfYWx3YXlzX2lubGluZSB2b2lkIHJvd19mZGN0KEZMT0FUIHRlbXBb NjRdLCBpbnQxNl90ICpkYXRhKQogICAgICAgICB0ZW1wWzQgKyBpXT0gdG1wMTAgLSB0bXAxMTsK IAogICAgICAgICB0bXAxMiArPSB0bXAxMzsKLSAgICAgICAgdG1wMTIgKj0gQTE7CisgICAgICAg IHRtcDEyICo9IF9BMTsKICAgICAgICAgdGVtcFsyICsgaV09IHRtcDEzICsgdG1wMTI7CiAgICAg ICAgIHRlbXBbNiArIGldPSB0bXAxMyAtIHRtcDEyOwogCkBAIC05NiwxMCArOTYsMTAgQEAgc3Rh dGljIGF2X2Fsd2F5c19pbmxpbmUgdm9pZCByb3dfZmRjdChGTE9BVCB0ZW1wWzY0XSwgaW50MTZf dCAqZGF0YSkKICAgICAgICAgdG1wNSArPSB0bXA2OwogICAgICAgICB0bXA2ICs9IHRtcDc7CiAK LSAgICAgICAgejI9IHRtcDQqKEEyK0E1KSAtIHRtcDYqQTU7Ci0gICAgICAgIHo0PSB0bXA2KihB NC1BNSkgKyB0bXA0KkE1OworICAgICAgICB6Mj0gdG1wNCooX0EyK19BNSkgLSB0bXA2Kl9BNTsK KyAgICAgICAgejQ9IHRtcDYqKF9BNC1fQTUpICsgdG1wNCpfQTU7CiAKLSAgICAgICAgdG1wNSo9 QTE7CisgICAgICAgIHRtcDUqPV9BMTsKIAogICAgICAgICB6MTE9IHRtcDcgKyB0bXA1OwogICAg ICAgICB6MTM9IHRtcDcgLSB0bXA1OwpAQCAtMTQyLDcgKzE0Miw3IEBAIHZvaWQgZmZfZmFhbmRj dChpbnQxNl90ICpkYXRhKQogICAgICAgICBkYXRhWzgqNCArIGldPSBscmludGYocG9zdHNjYWxl WzgqNCArIGldICogKHRtcDEwIC0gdG1wMTEpKTsKIAogICAgICAgICB0bXAxMiArPSB0bXAxMzsK LSAgICAgICAgdG1wMTIgKj0gQTE7CisgICAgICAgIHRtcDEyICo9IF9BMTsKICAgICAgICAgZGF0 YVs4KjIgKyBpXT0gbHJpbnRmKHBvc3RzY2FsZVs4KjIgKyBpXSAqICh0bXAxMyArIHRtcDEyKSk7 CiAgICAgICAgIGRhdGFbOCo2ICsgaV09IGxyaW50Zihwb3N0c2NhbGVbOCo2ICsgaV0gKiAodG1w MTMgLSB0bXAxMikpOwogCkBAIC0xNTAsMTAgKzE1MCwxMCBAQCB2b2lkIGZmX2ZhYW5kY3QoaW50 MTZfdCAqZGF0YSkKICAgICAgICAgdG1wNSArPSB0bXA2OwogICAgICAgICB0bXA2ICs9IHRtcDc7 CiAKLSAgICAgICAgejI9IHRtcDQqKEEyK0E1KSAtIHRtcDYqQTU7Ci0gICAgICAgIHo0PSB0bXA2 KihBNC1BNSkgKyB0bXA0KkE1OworICAgICAgICB6Mj0gdG1wNCooX0EyK19BNSkgLSB0bXA2Kl9B NTsKKyAgICAgICAgejQ9IHRtcDYqKF9BNC1fQTUpICsgdG1wNCpfQTU7CiAKLSAgICAgICAgdG1w NSo9QTE7CisgICAgICAgIHRtcDUqPV9BMTsKIAogICAgICAgICB6MTE9IHRtcDcgKyB0bXA1Owog ICAgICAgICB6MTM9IHRtcDcgLSB0bXA1OwpAQCAtMTk1LDcgKzE5NSw3IEBAIHZvaWQgZmZfZmFh bmRjdDI0OChpbnQxNl90ICpkYXRhKQogICAgICAgICBkYXRhWzgqNCArIGldID0gbHJpbnRmKHBv c3RzY2FsZVs4KjQgKyBpXSAqICh0bXAxMCAtIHRtcDExKSk7CiAKICAgICAgICAgdG1wMTIgKz0g dG1wMTM7Ci0gICAgICAgIHRtcDEyICo9IEExOworICAgICAgICB0bXAxMiAqPSBfQTE7CiAgICAg ICAgIGRhdGFbOCoyICsgaV0gPSBscmludGYocG9zdHNjYWxlWzgqMiArIGldICogKHRtcDEzICsg dG1wMTIpKTsKICAgICAgICAgZGF0YVs4KjYgKyBpXSA9IGxyaW50Zihwb3N0c2NhbGVbOCo2ICsg aV0gKiAodG1wMTMgLSB0bXAxMikpOwogCkBAIC0yMDgsNyArMjA4LDcgQEAgdm9pZCBmZl9mYWFu ZGN0MjQ4KGludDE2X3QgKmRhdGEpCiAgICAgICAgIGRhdGFbOCo1ICsgaV0gPSBscmludGYocG9z dHNjYWxlWzgqNCArIGldICogKHRtcDEwIC0gdG1wMTEpKTsKIAogICAgICAgICB0bXAxMiArPSB0 bXAxMzsKLSAgICAgICAgdG1wMTIgKj0gQTE7CisgICAgICAgIHRtcDEyICo9IF9BMTsKICAgICAg ICAgZGF0YVs4KjMgKyBpXSA9IGxyaW50Zihwb3N0c2NhbGVbOCoyICsgaV0gKiAodG1wMTMgKyB0 bXAxMikpOwogICAgICAgICBkYXRhWzgqNyArIGldID0gbHJpbnRmKHBvc3RzY2FsZVs4KjYgKyBp XSAqICh0bXAxMyAtIHRtcDEyKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9oZXZj ZGVjLmggYi9saWJhdmNvZGVjL2hldmNkZWMuaAppbmRleCA5ZDNmNGFkYmIzLi5iZmI5NDE1NWUx IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL2hldmNkZWMuaAorKysgYi9saWJhdmNvZGVjL2hldmNk ZWMuaApAQCAtNTYsNiArNTYsMTMgQEAKIAogI2RlZmluZSBMMCAwCiAjZGVmaW5lIEwxIDEKKy8v IFJlcXVpcmVkIG9uIEFuZHJvaWQuIFNldCBieSBhc20gaW5jbHVkZSEKKyN1bmRlZiBBMAorI3Vu ZGVmIEExCisjdW5kZWYgQTIKKyN1bmRlZiBCMAorI3VuZGVmIEIxCisjdW5kZWYgQjIKIAogI2Rl ZmluZSBFUEVMX0VYVFJBX0JFRk9SRSAxCiAjZGVmaW5lIEVQRUxfRVhUUkFfQUZURVIgIDIKZGlm ZiAtLWdpdCBhL2xpYmF2Y29kZWMvb3B1c19wdnEuYyBiL2xpYmF2Y29kZWMvb3B1c19wdnEuYwpp bmRleCBkMDhkY2Q3NDEzLi45ZGVhYjRjNjE1IDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL29wdXNf cHZxLmMKKysrIGIvbGliYXZjb2RlYy9vcHVzX3B2cS5jCkBAIC04MCwyMSArODAsMjEgQEAgc3Rh dGljIGlubGluZSBpbnQgY2VsdF9wdWxzZXMyYml0cyhjb25zdCB1aW50OF90ICpjYWNoZSwgaW50 IHB1bHNlcykKICAgIHJldHVybiAocHVsc2VzID09IDApID8gMCA6IGNhY2hlW3B1bHNlc10gKyAx OwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgY2VsdF9ub3JtYWxpemVfcmVzaWR1YWwoY29uc3Qg aW50ICogYXZfcmVzdHJpY3QgaXksIGZsb2F0ICogYXZfcmVzdHJpY3QgWCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgTiwgZmxvYXQgZykKK3N0YXRpYyBp bmxpbmUgdm9pZCBjZWx0X25vcm1hbGl6ZV9yZXNpZHVhbChjb25zdCBpbnQgKiBhdl9yZXN0cmlj dCBpeSwgZmxvYXQgKiBhdl9yZXN0cmljdCBfWCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQgX04sIGZsb2F0IGcpCiB7CiAgICAgaW50IGk7Ci0gICAgZm9y IChpID0gMDsgaSA8IE47IGkrKykKLSAgICAgICAgWFtpXSA9IGcgKiBpeVtpXTsKKyAgICBmb3Ig KGkgPSAwOyBpIDwgX047IGkrKykKKyAgICAgICAgX1hbaV0gPSBnICogaXlbaV07CiB9CiAKLXN0 YXRpYyB2b2lkIGNlbHRfZXhwX3JvdGF0aW9uX2ltcGwoZmxvYXQgKlgsIHVpbnQzMl90IGxlbiwg dWludDMyX3Qgc3RyaWRlLAorc3RhdGljIHZvaWQgY2VsdF9leHBfcm90YXRpb25faW1wbChmbG9h dCAqX1gsIHVpbnQzMl90IGxlbiwgdWludDMyX3Qgc3RyaWRlLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmbG9hdCBjLCBmbG9hdCBzKQogewogICAgIGZsb2F0ICpYcHRyOwog ICAgIGludCBpOwogCi0gICAgWHB0ciA9IFg7CisgICAgWHB0ciA9IF9YOwogICAgIGZvciAoaSA9 IDA7IGkgPCBsZW4gLSBzdHJpZGU7IGkrKykgewogICAgICAgICBmbG9hdCB4MSAgICAgPSBYcHRy WzBdOwogICAgICAgICBmbG9hdCB4MiAgICAgPSBYcHRyW3N0cmlkZV07CkBAIC0xMDIsNyArMTAy LDcgQEAgc3RhdGljIHZvaWQgY2VsdF9leHBfcm90YXRpb25faW1wbChmbG9hdCAqWCwgdWludDMy X3QgbGVuLCB1aW50MzJfdCBzdHJpZGUsCiAgICAgICAgICpYcHRyKysgICAgICA9IGMgKiB4MSAt IHMgKiB4MjsKICAgICB9CiAKLSAgICBYcHRyID0gJlhbbGVuIC0gMiAqIHN0cmlkZSAtIDFdOwor ICAgIFhwdHIgPSAmX1hbbGVuIC0gMiAqIHN0cmlkZSAtIDFdOwogICAgIGZvciAoaSA9IGxlbiAt IDIgKiBzdHJpZGUgLSAxOyBpID49IDA7IGktLSkgewogICAgICAgICBmbG9hdCB4MSAgICAgPSBY cHRyWzBdOwogICAgICAgICBmbG9hdCB4MiAgICAgPSBYcHRyW3N0cmlkZV07CkBAIC0xMTEsOCAr MTExLDggQEAgc3RhdGljIHZvaWQgY2VsdF9leHBfcm90YXRpb25faW1wbChmbG9hdCAqWCwgdWlu dDMyX3QgbGVuLCB1aW50MzJfdCBzdHJpZGUsCiAgICAgfQogfQogCi1zdGF0aWMgaW5saW5lIHZv aWQgY2VsdF9leHBfcm90YXRpb24oZmxvYXQgKlgsIHVpbnQzMl90IGxlbiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBzdHJpZGUsIHVpbnQzMl90IEssCitz dGF0aWMgaW5saW5lIHZvaWQgY2VsdF9leHBfcm90YXRpb24oZmxvYXQgKl9YLCB1aW50MzJfdCBs ZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgc3RyaWRl LCB1aW50MzJfdCBfSywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVt IENlbHRTcHJlYWQgc3ByZWFkLCBjb25zdCBpbnQgZW5jb2RlKQogewogICAgIHVpbnQzMl90IHN0 cmlkZTIgPSAwOwpAQCAtMTIwLDEwICsxMjAsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIGNlbHRf ZXhwX3JvdGF0aW9uKGZsb2F0ICpYLCB1aW50MzJfdCBsZW4sCiAgICAgZmxvYXQgZ2FpbiwgdGhl dGE7CiAgICAgaW50IGk7CiAKLSAgICBpZiAoMipLID49IGxlbiB8fCBzcHJlYWQgPT0gQ0VMVF9T UFJFQURfTk9ORSkKKyAgICBpZiAoMipfSyA+PSBsZW4gfHwgc3ByZWFkID09IENFTFRfU1BSRUFE X05PTkUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGdhaW4gPSAoZmxvYXQpbGVuIC8gKGxlbiAr ICgyMCAtIDUqc3ByZWFkKSAqIEspOworICAgIGdhaW4gPSAoZmxvYXQpbGVuIC8gKGxlbiArICgy MCAtIDUqc3ByZWFkKSAqIF9LKTsKICAgICB0aGV0YSA9IE1fUEkgKiBnYWluICogZ2FpbiAvIDQ7 CiAKICAgICBjID0gY29zZih0aGV0YSk7CkBAIC0xNDAsMTc1ICsxNDAsMTc1IEBAIHN0YXRpYyBp bmxpbmUgdm9pZCBjZWx0X2V4cF9yb3RhdGlvbihmbG9hdCAqWCwgdWludDMyX3QgbGVuLAogICAg IGxlbiAvPSBzdHJpZGU7CiAgICAgZm9yIChpID0gMDsgaSA8IHN0cmlkZTsgaSsrKSB7CiAgICAg ICAgIGlmIChlbmNvZGUpIHsKLSAgICAgICAgICAgIGNlbHRfZXhwX3JvdGF0aW9uX2ltcGwoWCAr IGkgKiBsZW4sIGxlbiwgMSwgYywgLXMpOworICAgICAgICAgICAgY2VsdF9leHBfcm90YXRpb25f aW1wbChfWCArIGkgKiBsZW4sIGxlbiwgMSwgYywgLXMpOwogICAgICAgICAgICAgaWYgKHN0cmlk ZTIpCi0gICAgICAgICAgICAgICAgY2VsdF9leHBfcm90YXRpb25faW1wbChYICsgaSAqIGxlbiwg bGVuLCBzdHJpZGUyLCBzLCAtYyk7CisgICAgICAgICAgICAgICAgY2VsdF9leHBfcm90YXRpb25f aW1wbChfWCArIGkgKiBsZW4sIGxlbiwgc3RyaWRlMiwgcywgLWMpOwogICAgICAgICB9IGVsc2Ug ewogICAgICAgICAgICAgaWYgKHN0cmlkZTIpCi0gICAgICAgICAgICAgICAgY2VsdF9leHBfcm90 YXRpb25faW1wbChYICsgaSAqIGxlbiwgbGVuLCBzdHJpZGUyLCBzLCBjKTsKLSAgICAgICAgICAg IGNlbHRfZXhwX3JvdGF0aW9uX2ltcGwoWCArIGkgKiBsZW4sIGxlbiwgMSwgYywgcyk7CisgICAg ICAgICAgICAgICAgY2VsdF9leHBfcm90YXRpb25faW1wbChfWCArIGkgKiBsZW4sIGxlbiwgc3Ry aWRlMiwgcywgYyk7CisgICAgICAgICAgICBjZWx0X2V4cF9yb3RhdGlvbl9pbXBsKF9YICsgaSAq IGxlbiwgbGVuLCAxLCBjLCBzKTsKICAgICAgICAgfQogICAgIH0KIH0KIAotc3RhdGljIGlubGlu ZSB1aW50MzJfdCBjZWx0X2V4dHJhY3RfY29sbGFwc2VfbWFzayhjb25zdCBpbnQgKml5LCB1aW50 MzJfdCBOLCB1aW50MzJfdCBCKQorc3RhdGljIGlubGluZSB1aW50MzJfdCBjZWx0X2V4dHJhY3Rf Y29sbGFwc2VfbWFzayhjb25zdCBpbnQgKml5LCB1aW50MzJfdCBfTiwgdWludDMyX3QgX0IpCiB7 Ci0gICAgaW50IGksIGosIE4wID0gTiAvIEI7CisgICAgaW50IGksIGosIF9OMCA9IF9OIC8gX0I7 CiAgICAgdWludDMyX3QgY29sbGFwc2VfbWFzayA9IDA7CiAKLSAgICBpZiAoQiA8PSAxKQorICAg IGlmIChfQiA8PSAxKQogICAgICAgICByZXR1cm4gMTsKIAotICAgIGZvciAoaSA9IDA7IGkgPCBC OyBpKyspCi0gICAgICAgIGZvciAoaiA9IDA7IGogPCBOMDsgaisrKQotICAgICAgICAgICAgY29s bGFwc2VfbWFzayB8PSAoISFpeVtpKk4wK2pdKSA8PCBpOworICAgIGZvciAoaSA9IDA7IGkgPCBf QjsgaSsrKQorICAgICAgICBmb3IgKGogPSAwOyBqIDwgX04wOyBqKyspCisgICAgICAgICAgICBj b2xsYXBzZV9tYXNrIHw9ICghIWl5W2kqX04wK2pdKSA8PCBpOwogICAgIHJldHVybiBjb2xsYXBz ZV9tYXNrOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgY2VsdF9zdGVyZW9fbWVyZ2UoZmxvYXQg KlgsIGZsb2F0ICpZLCBmbG9hdCBtaWQsIGludCBOKQorc3RhdGljIGlubGluZSB2b2lkIGNlbHRf c3RlcmVvX21lcmdlKGZsb2F0ICpfWCwgZmxvYXQgKl9ZLCBmbG9hdCBtaWQsIGludCBfTikKIHsK ICAgICBpbnQgaTsKICAgICBmbG9hdCB4cCA9IDAsIHNpZGUgPSAwOwotICAgIGZsb2F0IEVbMl07 CisgICAgZmxvYXQgX0VbMl07CiAgICAgZmxvYXQgbWlkMjsKICAgICBmbG9hdCBnYWluWzJdOwog Ci0gICAgLyogQ29tcHV0ZSB0aGUgbm9ybSBvZiBYK1kgYW5kIFgtWSBhcyB8WHxeMiArIHxZfF4y ICsvLSBzdW0oeHkpICovCi0gICAgZm9yIChpID0gMDsgaSA8IE47IGkrKykgewotICAgICAgICB4 cCAgICs9IFhbaV0gKiBZW2ldOwotICAgICAgICBzaWRlICs9IFlbaV0gKiBZW2ldOworICAgIC8q IENvbXB1dGUgdGhlIG5vcm0gb2YgX1grX1kgYW5kIF9YLV9ZIGFzIHxfWHxeMiArIHxfWXxeMiAr Ly0gc3VtKHh5KSAqLworICAgIGZvciAoaSA9IDA7IGkgPCBfTjsgaSsrKSB7CisgICAgICAgIHhw ICAgKz0gX1hbaV0gKiBfWVtpXTsKKyAgICAgICAgc2lkZSArPSBfWVtpXSAqIF9ZW2ldOwogICAg IH0KIAogICAgIC8qIENvbXBlbnNhdGluZyBmb3IgdGhlIG1pZCBub3JtYWxpemF0aW9uICovCiAg ICAgeHAgKj0gbWlkOwogICAgIG1pZDIgPSBtaWQ7Ci0gICAgRVswXSA9IG1pZDIgKiBtaWQyICsg c2lkZSAtIDIgKiB4cDsKLSAgICBFWzFdID0gbWlkMiAqIG1pZDIgKyBzaWRlICsgMiAqIHhwOwot ICAgIGlmIChFWzBdIDwgNmUtNGYgfHwgRVsxXSA8IDZlLTRmKSB7Ci0gICAgICAgIGZvciAoaSA9 IDA7IGkgPCBOOyBpKyspCi0gICAgICAgICAgICBZW2ldID0gWFtpXTsKKyAgICBfRVswXSA9IG1p ZDIgKiBtaWQyICsgc2lkZSAtIDIgKiB4cDsKKyAgICBfRVsxXSA9IG1pZDIgKiBtaWQyICsgc2lk ZSArIDIgKiB4cDsKKyAgICBpZiAoX0VbMF0gPCA2ZS00ZiB8fCBfRVsxXSA8IDZlLTRmKSB7Cisg ICAgICAgIGZvciAoaSA9IDA7IGkgPCBfTjsgaSsrKQorICAgICAgICAgICAgX1lbaV0gPSBfWFtp XTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGdhaW5bMF0gPSAxLjBmIC8gc3FydGYo RVswXSk7Ci0gICAgZ2FpblsxXSA9IDEuMGYgLyBzcXJ0ZihFWzFdKTsKKyAgICBnYWluWzBdID0g MS4wZiAvIHNxcnRmKF9FWzBdKTsKKyAgICBnYWluWzFdID0gMS4wZiAvIHNxcnRmKF9FWzFdKTsK IAotICAgIGZvciAoaSA9IDA7IGkgPCBOOyBpKyspIHsKKyAgICBmb3IgKGkgPSAwOyBpIDwgX047 IGkrKykgewogICAgICAgICBmbG9hdCB2YWx1ZVsyXTsKICAgICAgICAgLyogQXBwbHkgbWlkIHNj YWxpbmcgKHNpZGUgaXMgYWxyZWFkeSBzY2FsZWQpICovCi0gICAgICAgIHZhbHVlWzBdID0gbWlk ICogWFtpXTsKLSAgICAgICAgdmFsdWVbMV0gPSBZW2ldOwotICAgICAgICBYW2ldID0gZ2Fpblsw XSAqICh2YWx1ZVswXSAtIHZhbHVlWzFdKTsKLSAgICAgICAgWVtpXSA9IGdhaW5bMV0gKiAodmFs dWVbMF0gKyB2YWx1ZVsxXSk7CisgICAgICAgIHZhbHVlWzBdID0gbWlkICogX1hbaV07CisgICAg ICAgIHZhbHVlWzFdID0gX1lbaV07CisgICAgICAgIF9YW2ldID0gZ2FpblswXSAqICh2YWx1ZVsw XSAtIHZhbHVlWzFdKTsKKyAgICAgICAgX1lbaV0gPSBnYWluWzFdICogKHZhbHVlWzBdICsgdmFs dWVbMV0pOwogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgY2VsdF9pbnRlcmxlYXZlX2hhZGFtYXJk KGZsb2F0ICp0bXAsIGZsb2F0ICpYLCBpbnQgTjAsCitzdGF0aWMgdm9pZCBjZWx0X2ludGVybGVh dmVfaGFkYW1hcmQoZmxvYXQgKnRtcCwgZmxvYXQgKl9YLCBpbnQgX04wLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdHJpZGUsIGludCBoYWRhbWFyZCkKIHsKLSAg ICBpbnQgaSwgaiwgTiA9IE4wKnN0cmlkZTsKKyAgICBpbnQgaSwgaiwgX04gPSBfTjAqc3RyaWRl OwogICAgIGNvbnN0IHVpbnQ4X3QgKm9yZGVyID0gJmZmX2NlbHRfaGFkYW1hcmRfb3JkZXJbaGFk YW1hcmQgPyBzdHJpZGUgLSAyIDogMzBdOwogCiAgICAgZm9yIChpID0gMDsgaSA8IHN0cmlkZTsg aSsrKQotICAgICAgICBmb3IgKGogPSAwOyBqIDwgTjA7IGorKykKLSAgICAgICAgICAgIHRtcFtq KnN0cmlkZStpXSA9IFhbb3JkZXJbaV0qTjAral07CisgICAgICAgIGZvciAoaiA9IDA7IGogPCBf TjA7IGorKykKKyAgICAgICAgICAgIHRtcFtqKnN0cmlkZStpXSA9IF9YW29yZGVyW2ldKl9OMCtq XTsKIAotICAgIG1lbWNweShYLCB0bXAsIE4qc2l6ZW9mKGZsb2F0KSk7CisgICAgbWVtY3B5KF9Y LCB0bXAsIF9OKnNpemVvZihmbG9hdCkpOwogfQogCi1zdGF0aWMgdm9pZCBjZWx0X2RlaW50ZXJs ZWF2ZV9oYWRhbWFyZChmbG9hdCAqdG1wLCBmbG9hdCAqWCwgaW50IE4wLAorc3RhdGljIHZvaWQg Y2VsdF9kZWludGVybGVhdmVfaGFkYW1hcmQoZmxvYXQgKnRtcCwgZmxvYXQgKl9YLCBpbnQgX04w LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0cmlkZSwgaW50 IGhhZGFtYXJkKQogewotICAgIGludCBpLCBqLCBOID0gTjAqc3RyaWRlOworICAgIGludCBpLCBq LCBfTiA9IF9OMCpzdHJpZGU7CiAgICAgY29uc3QgdWludDhfdCAqb3JkZXIgPSAmZmZfY2VsdF9o YWRhbWFyZF9vcmRlcltoYWRhbWFyZCA/IHN0cmlkZSAtIDIgOiAzMF07CiAKICAgICBmb3IgKGkg PSAwOyBpIDwgc3RyaWRlOyBpKyspCi0gICAgICAgIGZvciAoaiA9IDA7IGogPCBOMDsgaisrKQot ICAgICAgICAgICAgdG1wW29yZGVyW2ldKk4wK2pdID0gWFtqKnN0cmlkZStpXTsKKyAgICAgICAg Zm9yIChqID0gMDsgaiA8IF9OMDsgaisrKQorICAgICAgICAgICAgdG1wW29yZGVyW2ldKl9OMCtq XSA9IF9YW2oqc3RyaWRlK2ldOwogCi0gICAgbWVtY3B5KFgsIHRtcCwgTipzaXplb2YoZmxvYXQp KTsKKyAgICBtZW1jcHkoX1gsIHRtcCwgX04qc2l6ZW9mKGZsb2F0KSk7CiB9CiAKLXN0YXRpYyB2 b2lkIGNlbHRfaGFhcjEoZmxvYXQgKlgsIGludCBOMCwgaW50IHN0cmlkZSkKK3N0YXRpYyB2b2lk IGNlbHRfaGFhcjEoZmxvYXQgKl9YLCBpbnQgX04wLCBpbnQgc3RyaWRlKQogewogICAgIGludCBp LCBqOwotICAgIE4wID4+PSAxOworICAgIF9OMCA+Pj0gMTsKICAgICBmb3IgKGkgPSAwOyBpIDwg c3RyaWRlOyBpKyspIHsKLSAgICAgICAgZm9yIChqID0gMDsgaiA8IE4wOyBqKyspIHsKLSAgICAg ICAgICAgIGZsb2F0IHgwID0gWFtzdHJpZGUgKiAoMiAqIGogKyAwKSArIGldOwotICAgICAgICAg ICAgZmxvYXQgeDEgPSBYW3N0cmlkZSAqICgyICogaiArIDEpICsgaV07Ci0gICAgICAgICAgICBY W3N0cmlkZSAqICgyICogaiArIDApICsgaV0gPSAoeDAgKyB4MSkgKiBNX1NRUlQxXzI7Ci0gICAg ICAgICAgICBYW3N0cmlkZSAqICgyICogaiArIDEpICsgaV0gPSAoeDAgLSB4MSkgKiBNX1NRUlQx XzI7CisgICAgICAgIGZvciAoaiA9IDA7IGogPCBfTjA7IGorKykgeworICAgICAgICAgICAgZmxv YXQgeDAgPSBfWFtzdHJpZGUgKiAoMiAqIGogKyAwKSArIGldOworICAgICAgICAgICAgZmxvYXQg eDEgPSBfWFtzdHJpZGUgKiAoMiAqIGogKyAxKSArIGldOworICAgICAgICAgICAgX1hbc3RyaWRl ICogKDIgKiBqICsgMCkgKyBpXSA9ICh4MCArIHgxKSAqIE1fU1FSVDFfMjsKKyAgICAgICAgICAg IF9YW3N0cmlkZSAqICgyICogaiArIDEpICsgaV0gPSAoeDAgLSB4MSkgKiBNX1NRUlQxXzI7CiAg ICAgICAgIH0KICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgaW50IGNlbHRfY29tcHV0ZV9xbihp bnQgTiwgaW50IGIsIGludCBvZmZzZXQsIGludCBwdWxzZV9jYXAsCitzdGF0aWMgaW5saW5lIGlu dCBjZWx0X2NvbXB1dGVfcW4oaW50IF9OLCBpbnQgYiwgaW50IG9mZnNldCwgaW50IHB1bHNlX2Nh cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RlcmVvKQogewogICAg IGludCBxbiwgcWI7Ci0gICAgaW50IE4yID0gMiAqIE4gLSAxOwotICAgIGlmIChzdGVyZW8gJiYg TiA9PSAyKQotICAgICAgICBOMi0tOworICAgIGludCBfTjIgPSAyICogX04gLSAxOworICAgIGlm IChzdGVyZW8gJiYgX04gPT0gMikKKyAgICAgICAgX04yLS07CiAKICAgICAvKiBUaGUgdXBwZXIg bGltaXQgZW5zdXJlcyB0aGF0IGluIGEgc3RlcmVvIHNwbGl0IHdpdGggaXRoZXRhPT0xNjM4NCwg d2UnbGwKICAgICAgKiBhbHdheXMgaGF2ZSBlbm91Z2ggYml0cyBsZWZ0IG92ZXIgdG8gY29kZSBh dCBsZWFzdCBvbmUgcHVsc2UgaW4gdGhlCiAgICAgICogc2lkZTsgb3RoZXJ3aXNlIGl0IHdvdWxk IGNvbGxhcHNlLCBzaW5jZSBpdCBkb2Vzbid0IGdldCBmb2xkZWQuICovCi0gICAgcWIgPSBGRk1J TjMoYiAtIHB1bHNlX2NhcCAtICg0IDw8IDMpLCAoYiArIE4yICogb2Zmc2V0KSAvIE4yLCA4IDw8 IDMpOworICAgIHFiID0gRkZNSU4zKGIgLSBwdWxzZV9jYXAgLSAoNCA8PCAzKSwgKGIgKyBfTjIg KiBvZmZzZXQpIC8gX04yLCA4IDw8IDMpOwogICAgIHFuID0gKHFiIDwgKDEgPDwgMyA+PiAxKSkg PyAxIDogKChmZl9jZWx0X3FuX2V4cDJbcWIgJiAweDddID4+ICgxNCAtIChxYiA+PiAzKSkpICsg MSkgPj4gMSA8PCAxOwogICAgIHJldHVybiBxbjsKIH0KIAogLyogQ29udmVydCB0aGUgcXVhbnRp emVkIHZlY3RvciB0byBhbiBpbmRleCAqLwotc3RhdGljIGlubGluZSB1aW50MzJfdCBjZWx0X2lj d3JzaSh1aW50MzJfdCBOLCB1aW50MzJfdCBLLCBjb25zdCBpbnQgKnkpCitzdGF0aWMgaW5saW5l IHVpbnQzMl90IGNlbHRfaWN3cnNpKHVpbnQzMl90IF9OLCB1aW50MzJfdCBfSywgY29uc3QgaW50 ICp5KQogewogICAgIGludCBpLCBpZHggPSAwLCBzdW0gPSAwOwotICAgIGZvciAoaSA9IE4gLSAx OyBpID49IDA7IGktLSkgewotICAgICAgICBjb25zdCB1aW50MzJfdCBpX3MgPSBDRUxUX1BWUV9V KE4gLSBpLCBzdW0gKyBGRkFCUyh5W2ldKSArIDEpOwotICAgICAgICBpZHggKz0gQ0VMVF9QVlFf VShOIC0gaSwgc3VtKSArICh5W2ldIDwgMCkqaV9zOworICAgIGZvciAoaSA9IF9OIC0gMTsgaSA+ PSAwOyBpLS0pIHsKKyAgICAgICAgY29uc3QgdWludDMyX3QgaV9zID0gQ0VMVF9QVlFfVShfTiAt IGksIHN1bSArIEZGQUJTKHlbaV0pICsgMSk7CisgICAgICAgIGlkeCArPSBDRUxUX1BWUV9VKF9O IC0gaSwgc3VtKSArICh5W2ldIDwgMCkqaV9zOwogICAgICAgICBzdW0gKz0gRkZBQlMoeVtpXSk7 CiAgICAgfQogICAgIHJldHVybiBpZHg7CiB9CiAKIC8vIHRoaXMgY29kZSB3YXMgYWRhcHRlZCBm cm9tIGxpYm9wdXMKLXN0YXRpYyBpbmxpbmUgdWludDY0X3QgY2VsdF9jd3JzaSh1aW50MzJfdCBO LCB1aW50MzJfdCBLLCB1aW50MzJfdCBpLCBpbnQgKnkpCitzdGF0aWMgaW5saW5lIHVpbnQ2NF90 IGNlbHRfY3dyc2kodWludDMyX3QgX04sIHVpbnQzMl90IF9LLCB1aW50MzJfdCBpLCBpbnQgKnkp CiB7CiAgICAgdWludDY0X3Qgbm9ybSA9IDA7CiAgICAgdWludDMyX3QgcSwgcDsKICAgICBpbnQg cywgdmFsOwogICAgIGludCBrMDsKIAotICAgIHdoaWxlIChOID4gMikgeworICAgIHdoaWxlIChf TiA+IDIpIHsKICAgICAgICAgLypMb3RzIG9mIHB1bHNlcyBjYXNlOiovCi0gICAgICAgIGlmIChL ID49IE4pIHsKLSAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICpyb3cgPSBmZl9jZWx0X3B2cV91 X3Jvd1tOXTsKKyAgICAgICAgaWYgKF9LID49IF9OKSB7CisgICAgICAgICAgICBjb25zdCB1aW50 MzJfdCAqcm93ID0gZmZfY2VsdF9wdnFfdV9yb3dbX05dOwogCiAgICAgICAgICAgICAvKiBBcmUg dGhlIHB1bHNlcyBpbiB0aGlzIGRpbWVuc2lvbiBuZWdhdGl2ZT8gKi8KLSAgICAgICAgICAgIHAg ID0gcm93W0sgKyAxXTsKKyAgICAgICAgICAgIHAgID0gcm93W19LICsgMV07CiAgICAgICAgICAg ICBzICA9IC0oaSA+PSBwKTsKICAgICAgICAgICAgIGkgLT0gcCAmIHM7CiAKICAgICAgICAgICAg IC8qQ291bnQgaG93IG1hbnkgcHVsc2VzIHdlcmUgcGxhY2VkIGluIHRoaXMgZGltZW5zaW9uLiov Ci0gICAgICAgICAgICBrMCA9IEs7Ci0gICAgICAgICAgICBxID0gcm93W05dOworICAgICAgICAg ICAgazAgPSBfSzsKKyAgICAgICAgICAgIHEgPSByb3dbX05dOwogICAgICAgICAgICAgaWYgKHEg PiBpKSB7Ci0gICAgICAgICAgICAgICAgSyA9IE47CisgICAgICAgICAgICAgICAgX0sgPSBfTjsK ICAgICAgICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgICAgIHAgPSBmZl9jZWx0X3B2 cV91X3Jvd1stLUtdW05dOworICAgICAgICAgICAgICAgICAgICBwID0gZmZfY2VsdF9wdnFfdV9y b3dbLS1fS11bX05dOwogICAgICAgICAgICAgICAgIH0gd2hpbGUgKHAgPiBpKTsKICAgICAgICAg ICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIGZvciAocCA9IHJvd1tLXTsgcCA+IGk7IHAgPSBy b3dbS10pCi0gICAgICAgICAgICAgICAgICAgIEstLTsKKyAgICAgICAgICAgICAgICBmb3IgKHAg PSByb3dbX0tdOyBwID4gaTsgcCA9IHJvd1tfS10pCisgICAgICAgICAgICAgICAgICAgIF9LLS07 CiAKICAgICAgICAgICAgIGkgICAgLT0gcDsKLSAgICAgICAgICAgIHZhbCAgID0gKGswIC0gSyAr IHMpIF4gczsKKyAgICAgICAgICAgIHZhbCAgID0gKGswIC0gX0sgKyBzKSBeIHM7CiAgICAgICAg ICAgICBub3JtICs9IHZhbCAqIHZhbDsKICAgICAgICAgICAgICp5KysgID0gdmFsOwogICAgICAg ICB9IGVsc2UgeyAvKkxvdHMgb2YgZGltZW5zaW9ucyBjYXNlOiovCiAgICAgICAgICAgICAvKkFy ZSB0aGVyZSBhbnkgcHVsc2VzIGluIHRoaXMgZGltZW5zaW9uIGF0IGFsbD8qLwotICAgICAgICAg ICAgcCA9IGZmX2NlbHRfcHZxX3Vfcm93W0sgICAgXVtOXTsKLSAgICAgICAgICAgIHEgPSBmZl9j ZWx0X3B2cV91X3Jvd1tLICsgMV1bTl07CisgICAgICAgICAgICBwID0gZmZfY2VsdF9wdnFfdV9y b3dbX0sgICAgXVtfTl07CisgICAgICAgICAgICBxID0gZmZfY2VsdF9wdnFfdV9yb3dbX0sgKyAx XVtfTl07CiAKICAgICAgICAgICAgIGlmIChwIDw9IGkgJiYgaSA8IHEpIHsKICAgICAgICAgICAg ICAgICBpIC09IHA7CkBAIC0zMTksODggKzMxOSw4OCBAQCBzdGF0aWMgaW5saW5lIHVpbnQ2NF90 IGNlbHRfY3dyc2kodWludDMyX3QgTiwgdWludDMyX3QgSywgdWludDMyX3QgaSwgaW50ICp5KQog ICAgICAgICAgICAgICAgIGkgLT0gcSAmIHM7CiAKICAgICAgICAgICAgICAgICAvKkNvdW50IGhv dyBtYW55IHB1bHNlcyB3ZXJlIHBsYWNlZCBpbiB0aGlzIGRpbWVuc2lvbi4qLwotICAgICAgICAg ICAgICAgIGswID0gSzsKLSAgICAgICAgICAgICAgICBkbyBwID0gZmZfY2VsdF9wdnFfdV9yb3db LS1LXVtOXTsKKyAgICAgICAgICAgICAgICBrMCA9IF9LOworICAgICAgICAgICAgICAgIGRvIHAg PSBmZl9jZWx0X3B2cV91X3Jvd1stLV9LXVtfTl07CiAgICAgICAgICAgICAgICAgd2hpbGUgKHAg PiBpKTsKIAogICAgICAgICAgICAgICAgIGkgICAgLT0gcDsKLSAgICAgICAgICAgICAgICB2YWwg ICA9IChrMCAtIEsgKyBzKSBeIHM7CisgICAgICAgICAgICAgICAgdmFsICAgPSAoazAgLSBfSyAr IHMpIF4gczsKICAgICAgICAgICAgICAgICBub3JtICs9IHZhbCAqIHZhbDsKICAgICAgICAgICAg ICAgICAqeSsrICA9IHZhbDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBOLS07 CisgICAgICAgIF9OLS07CiAgICAgfQogCi0gICAgLyogTiA9PSAyICovCi0gICAgcCAgPSAyICog SyArIDE7CisgICAgLyogX04gPT0gMiAqLworICAgIHAgID0gMiAqIF9LICsgMTsKICAgICBzICA9 IC0oaSA+PSBwKTsKICAgICBpIC09IHAgJiBzOwotICAgIGswID0gSzsKLSAgICBLICA9IChpICsg MSkgLyAyOworICAgIGswID0gX0s7CisgICAgX0sgID0gKGkgKyAxKSAvIDI7CiAKLSAgICBpZiAo SykKLSAgICAgICAgaSAtPSAyICogSyAtIDE7CisgICAgaWYgKF9LKQorICAgICAgICBpIC09IDIg KiBfSyAtIDE7CiAKLSAgICB2YWwgICA9IChrMCAtIEsgKyBzKSBeIHM7CisgICAgdmFsICAgPSAo azAgLSBfSyArIHMpIF4gczsKICAgICBub3JtICs9IHZhbCAqIHZhbDsKICAgICAqeSsrICA9IHZh bDsKIAotICAgIC8qIE49PTEgKi8KKyAgICAvKiBfTj09MSAqLwogICAgIHMgICAgID0gLWk7Ci0g ICAgdmFsICAgPSAoSyArIHMpIF4gczsKKyAgICB2YWwgICA9IChfSyArIHMpIF4gczsKICAgICBu b3JtICs9IHZhbCAqIHZhbDsKICAgICAqeSAgICA9IHZhbDsKIAogICAgIHJldHVybiBub3JtOwog fQogCi1zdGF0aWMgaW5saW5lIHZvaWQgY2VsdF9lbmNvZGVfcHVsc2VzKE9wdXNSYW5nZUNvZGVy ICpyYywgaW50ICp5LCB1aW50MzJfdCBOLCB1aW50MzJfdCBLKQorc3RhdGljIGlubGluZSB2b2lk IGNlbHRfZW5jb2RlX3B1bHNlcyhPcHVzUmFuZ2VDb2RlciAqcmMsIGludCAqeSwgdWludDMyX3Qg X04sIHVpbnQzMl90IF9LKQogewotICAgIGZmX29wdXNfcmNfZW5jX3VpbnQocmMsIGNlbHRfaWN3 cnNpKE4sIEssIHkpLCBDRUxUX1BWUV9WKE4sIEspKTsKKyAgICBmZl9vcHVzX3JjX2VuY191aW50 KHJjLCBjZWx0X2ljd3JzaShfTiwgX0ssIHkpLCBDRUxUX1BWUV9WKF9OLCBfSykpOwogfQogCi1z dGF0aWMgaW5saW5lIGZsb2F0IGNlbHRfZGVjb2RlX3B1bHNlcyhPcHVzUmFuZ2VDb2RlciAqcmMs IGludCAqeSwgdWludDMyX3QgTiwgdWludDMyX3QgSykKK3N0YXRpYyBpbmxpbmUgZmxvYXQgY2Vs dF9kZWNvZGVfcHVsc2VzKE9wdXNSYW5nZUNvZGVyICpyYywgaW50ICp5LCB1aW50MzJfdCBfTiwg dWludDMyX3QgX0spCiB7Ci0gICAgY29uc3QgdWludDMyX3QgaWR4ID0gZmZfb3B1c19yY19kZWNf dWludChyYywgQ0VMVF9QVlFfVihOLCBLKSk7Ci0gICAgcmV0dXJuIGNlbHRfY3dyc2koTiwgSywg aWR4LCB5KTsKKyAgICBjb25zdCB1aW50MzJfdCBpZHggPSBmZl9vcHVzX3JjX2RlY191aW50KHJj LCBDRUxUX1BWUV9WKF9OLCBfSykpOworICAgIHJldHVybiBjZWx0X2N3cnNpKF9OLCBfSywgaWR4 LCB5KTsKIH0KIAogI2lmIENPTkZJR19PUFVTX0VOQ09ERVIKIC8qCiAgKiBGYXN0ZXIgdGhhbiBs aWJvcHVzJ3Mgc2VhcmNoLCBvcGVyYXRlcyBlbnRpcmVseSBpbiB0aGUgc2lnbmVkIGRvbWFpbi4K LSAqIFNsaWdodGx5IHdvcnNlL2JldHRlciBkZXBlbmRpbmcgb24gTiwgSyBhbmQgdGhlIGlucHV0 IHZlY3Rvci4KKyAqIFNsaWdodGx5IHdvcnNlL2JldHRlciBkZXBlbmRpbmcgb24gX04sIF9LIGFu ZCB0aGUgaW5wdXQgdmVjdG9yLgogICovCi1zdGF0aWMgZmxvYXQgcHBwX3B2cV9zZWFyY2hfYyhm bG9hdCAqWCwgaW50ICp5LCBpbnQgSywgaW50IE4pCitzdGF0aWMgZmxvYXQgcHBwX3B2cV9zZWFy Y2hfYyhmbG9hdCAqX1gsIGludCAqeSwgaW50IF9LLCBpbnQgX04pCiB7CiAgICAgaW50IGksIHlf bm9ybSA9IDA7CiAgICAgZmxvYXQgcmVzID0gMC4wZiwgeHlfbm9ybSA9IDAuMGY7CiAKLSAgICBm b3IgKGkgPSAwOyBpIDwgTjsgaSsrKQotICAgICAgICByZXMgKz0gRkZBQlMoWFtpXSk7CisgICAg Zm9yIChpID0gMDsgaSA8IF9OOyBpKyspCisgICAgICAgIHJlcyArPSBGRkFCUyhfWFtpXSk7CiAK LSAgICByZXMgPSBLLyhyZXMgKyBGTFRfRVBTSUxPTik7CisgICAgcmVzID0gX0svKHJlcyArIEZM VF9FUFNJTE9OKTsKIAotICAgIGZvciAoaSA9IDA7IGkgPCBOOyBpKyspIHsKLSAgICAgICAgeVtp XSA9IGxyaW50ZihyZXMqWFtpXSk7CisgICAgZm9yIChpID0gMDsgaSA8IF9OOyBpKyspIHsKKyAg ICAgICAgeVtpXSA9IGxyaW50ZihyZXMqX1hbaV0pOwogICAgICAgICB5X25vcm0gICs9IHlbaV0q eVtpXTsKLSAgICAgICAgeHlfbm9ybSArPSB5W2ldKlhbaV07Ci0gICAgICAgIEsgLT0gRkZBQlMo eVtpXSk7CisgICAgICAgIHh5X25vcm0gKz0geVtpXSpfWFtpXTsKKyAgICAgICAgX0sgLT0gRkZB QlMoeVtpXSk7CiAgICAgfQogCi0gICAgd2hpbGUgKEspIHsKLSAgICAgICAgaW50IG1heF9pZHgg PSAwLCBwaGFzZSA9IEZGU0lHTihLKTsKKyAgICB3aGlsZSAoX0spIHsKKyAgICAgICAgaW50IG1h eF9pZHggPSAwLCBwaGFzZSA9IEZGU0lHTihfSyk7CiAgICAgICAgIGZsb2F0IG1heF9udW0gPSAw LjBmOwogICAgICAgICBmbG9hdCBtYXhfZGVuID0gMS4wZjsKICAgICAgICAgeV9ub3JtICs9IDEu MGY7CiAKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IE47IGkrKykgeworICAgICAgICBmb3IgKGkg PSAwOyBpIDwgX047IGkrKykgewogICAgICAgICAgICAgLyogSWYgdGhlIHN1bSBoYXMgYmVlbiBv dmVyc2hvdCBhbmQgdGhlIGJlc3QgcGxhY2UgaGFzIDAgcHVsc2VzIGFsbG9jYXRlZAogICAgICAg ICAgICAgICogdG8gaXQsIGF0dGVtcHRpbmcgdG8gZGVjcmVhc2UgaXQgZnVydGhlciB3aWxsIGFj dHVhbGx5IGluY3JlYXNlIHRoZQogICAgICAgICAgICAgICogc3VtLiBQcmV2ZW50IHRoaXMgYnkg ZGlzcmVnYXJkaW5nIGFueSAwIHBvc2l0aW9ucyB3aGVuIGRlY3JlbWVudGluZy4gKi8KICAgICAg ICAgICAgIGNvbnN0IGludCBjYSA9IDEgXiAoKHlbaV0gPT0gMCkgJiAocGhhc2UgPCAwKSk7CiAg ICAgICAgICAgICBjb25zdCBpbnQgeV9uZXcgPSB5X25vcm0gICsgMipwaGFzZSpGRkFCUyh5W2ld KTsKLSAgICAgICAgICAgIGZsb2F0IHh5X25ldyA9IHh5X25vcm0gKyAxKnBoYXNlKkZGQUJTKFhb aV0pOworICAgICAgICAgICAgZmxvYXQgeHlfbmV3ID0geHlfbm9ybSArIDEqcGhhc2UqRkZBQlMo X1hbaV0pOwogICAgICAgICAgICAgeHlfbmV3ID0geHlfbmV3ICogeHlfbmV3OwogICAgICAgICAg ICAgaWYgKGNhICYmIChtYXhfZGVuKnh5X25ldykgPiAoeV9uZXcqbWF4X251bSkpIHsKICAgICAg ICAgICAgICAgICBtYXhfZGVuID0geV9uZXc7CkBAIC00MDksMTAgKzQwOSwxMCBAQCBzdGF0aWMg ZmxvYXQgcHBwX3B2cV9zZWFyY2hfYyhmbG9hdCAqWCwgaW50ICp5LCBpbnQgSywgaW50IE4pCiAg ICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBLIC09IHBoYXNlOworICAgICAgICBf SyAtPSBwaGFzZTsKIAotICAgICAgICBwaGFzZSAqPSBGRlNJR04oWFttYXhfaWR4XSk7Ci0gICAg ICAgIHh5X25vcm0gKz0gMSpwaGFzZSpYW21heF9pZHhdOworICAgICAgICBwaGFzZSAqPSBGRlNJ R04oX1hbbWF4X2lkeF0pOworICAgICAgICB4eV9ub3JtICs9IDEqcGhhc2UqX1hbbWF4X2lkeF07 CiAgICAgICAgIHlfbm9ybSAgKz0gMipwaGFzZSp5W21heF9pZHhdOwogICAgICAgICB5W21heF9p ZHhdICs9IHBoYXNlOwogICAgIH0KQEAgLTQyMSw3NiArNDIxLDc2IEBAIHN0YXRpYyBmbG9hdCBw cHBfcHZxX3NlYXJjaF9jKGZsb2F0ICpYLCBpbnQgKnksIGludCBLLCBpbnQgTikKIH0KICNlbmRp ZgogCi1zdGF0aWMgdWludDMyX3QgY2VsdF9hbGdfcXVhbnQoT3B1c1JhbmdlQ29kZXIgKnJjLCBm bG9hdCAqWCwgdWludDMyX3QgTiwgdWludDMyX3QgSywKK3N0YXRpYyB1aW50MzJfdCBjZWx0X2Fs Z19xdWFudChPcHVzUmFuZ2VDb2RlciAqcmMsIGZsb2F0ICpfWCwgdWludDMyX3QgX04sIHVpbnQz Ml90IF9LLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gQ2VsdFNwcmVhZCBz cHJlYWQsIHVpbnQzMl90IGJsb2NrcywgZmxvYXQgZ2FpbiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDZWx0UFZRICpwdnEpCiB7CiAgICAgaW50ICp5ID0gcHZxLT5xY29lZmY7CiAK LSAgICBjZWx0X2V4cF9yb3RhdGlvbihYLCBOLCBibG9ja3MsIEssIHNwcmVhZCwgMSk7Ci0gICAg Z2FpbiAvPSBzcXJ0ZihwdnEtPnB2cV9zZWFyY2goWCwgeSwgSywgTikpOwotICAgIGNlbHRfZW5j b2RlX3B1bHNlcyhyYywgeSwgIE4sIEspOwotICAgIGNlbHRfbm9ybWFsaXplX3Jlc2lkdWFsKHks IFgsIE4sIGdhaW4pOwotICAgIGNlbHRfZXhwX3JvdGF0aW9uKFgsIE4sIGJsb2NrcywgSywgc3By ZWFkLCAwKTsKLSAgICByZXR1cm4gY2VsdF9leHRyYWN0X2NvbGxhcHNlX21hc2soeSwgTiwgYmxv Y2tzKTsKKyAgICBjZWx0X2V4cF9yb3RhdGlvbihfWCwgX04sIGJsb2NrcywgX0ssIHNwcmVhZCwg MSk7CisgICAgZ2FpbiAvPSBzcXJ0ZihwdnEtPnB2cV9zZWFyY2goX1gsIHksIF9LLCBfTikpOwor ICAgIGNlbHRfZW5jb2RlX3B1bHNlcyhyYywgeSwgIF9OLCBfSyk7CisgICAgY2VsdF9ub3JtYWxp emVfcmVzaWR1YWwoeSwgX1gsIF9OLCBnYWluKTsKKyAgICBjZWx0X2V4cF9yb3RhdGlvbihfWCwg X04sIGJsb2NrcywgX0ssIHNwcmVhZCwgMCk7CisgICAgcmV0dXJuIGNlbHRfZXh0cmFjdF9jb2xs YXBzZV9tYXNrKHksIF9OLCBibG9ja3MpOwogfQogCiAvKiogRGVjb2RlIHB1bHNlIHZlY3RvciBh bmQgY29tYmluZSB0aGUgcmVzdWx0IHdpdGggdGhlIHBpdGNoIHZlY3RvciB0byBwcm9kdWNlCiAg ICAgdGhlIGZpbmFsIG5vcm1hbGlzZWQgc2lnbmFsIGluIHRoZSBjdXJyZW50IGJhbmQuICovCi1z dGF0aWMgdWludDMyX3QgY2VsdF9hbGdfdW5xdWFudChPcHVzUmFuZ2VDb2RlciAqcmMsIGZsb2F0 ICpYLCB1aW50MzJfdCBOLCB1aW50MzJfdCBLLAorc3RhdGljIHVpbnQzMl90IGNlbHRfYWxnX3Vu cXVhbnQoT3B1c1JhbmdlQ29kZXIgKnJjLCBmbG9hdCAqX1gsIHVpbnQzMl90IF9OLCB1aW50MzJf dCBfSywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gQ2VsdFNwcmVhZCBz cHJlYWQsIHVpbnQzMl90IGJsb2NrcywgZmxvYXQgZ2FpbiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENlbHRQVlEgKnB2cSkKIHsKICAgICBpbnQgKnkgPSBwdnEtPnFjb2VmZjsK IAotICAgIGdhaW4gLz0gc3FydGYoY2VsdF9kZWNvZGVfcHVsc2VzKHJjLCB5LCBOLCBLKSk7Ci0g ICAgY2VsdF9ub3JtYWxpemVfcmVzaWR1YWwoeSwgWCwgTiwgZ2Fpbik7Ci0gICAgY2VsdF9leHBf cm90YXRpb24oWCwgTiwgYmxvY2tzLCBLLCBzcHJlYWQsIDApOwotICAgIHJldHVybiBjZWx0X2V4 dHJhY3RfY29sbGFwc2VfbWFzayh5LCBOLCBibG9ja3MpOworICAgIGdhaW4gLz0gc3FydGYoY2Vs dF9kZWNvZGVfcHVsc2VzKHJjLCB5LCBfTiwgX0spKTsKKyAgICBjZWx0X25vcm1hbGl6ZV9yZXNp ZHVhbCh5LCBfWCwgX04sIGdhaW4pOworICAgIGNlbHRfZXhwX3JvdGF0aW9uKF9YLCBfTiwgYmxv Y2tzLCBfSywgc3ByZWFkLCAwKTsKKyAgICByZXR1cm4gY2VsdF9leHRyYWN0X2NvbGxhcHNlX21h c2soeSwgX04sIGJsb2Nrcyk7CiB9CiAKLXN0YXRpYyBpbnQgY2VsdF9jYWxjX3RoZXRhKGNvbnN0 IGZsb2F0ICpYLCBjb25zdCBmbG9hdCAqWSwgaW50IGNvdXBsaW5nLCBpbnQgTikKK3N0YXRpYyBp bnQgY2VsdF9jYWxjX3RoZXRhKGNvbnN0IGZsb2F0ICpfWCwgY29uc3QgZmxvYXQgKl9ZLCBpbnQg Y291cGxpbmcsIGludCBfTikKIHsKICAgICBpbnQgaTsKICAgICBmbG9hdCBlWzJdID0geyAwLjBm LCAwLjBmIH07CiAgICAgaWYgKGNvdXBsaW5nKSB7IC8qIENvdXBsaW5nIGNhc2UgKi8KLSAgICAg ICAgZm9yIChpID0gMDsgaSA8IE47IGkrKykgewotICAgICAgICAgICAgZVswXSArPSAoWFtpXSAr IFlbaV0pKihYW2ldICsgWVtpXSk7Ci0gICAgICAgICAgICBlWzFdICs9IChYW2ldIC0gWVtpXSkq KFhbaV0gLSBZW2ldKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IF9OOyBpKyspIHsKKyAgICAg ICAgICAgIGVbMF0gKz0gKF9YW2ldICsgX1lbaV0pKihfWFtpXSArIF9ZW2ldKTsKKyAgICAgICAg ICAgIGVbMV0gKz0gKF9YW2ldIC0gX1lbaV0pKihfWFtpXSAtIF9ZW2ldKTsKICAgICAgICAgfQog ICAgIH0gZWxzZSB7Ci0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBOOyBpKyspIHsKLSAgICAgICAg ICAgIGVbMF0gKz0gWFtpXSpYW2ldOwotICAgICAgICAgICAgZVsxXSArPSBZW2ldKllbaV07Cisg ICAgICAgIGZvciAoaSA9IDA7IGkgPCBfTjsgaSsrKSB7CisgICAgICAgICAgICBlWzBdICs9IF9Y W2ldKl9YW2ldOworICAgICAgICAgICAgZVsxXSArPSBfWVtpXSpfWVtpXTsKICAgICAgICAgfQog ICAgIH0KICAgICByZXR1cm4gbHJpbnRmKDMyNzY4LjBmKmF0YW4yZihzcXJ0ZihlWzFdKSwgc3Fy dGYoZVswXSkpL01fUEkpOwogfQogCi1zdGF0aWMgdm9pZCBjZWx0X3N0ZXJlb19pc19kZWNvdXBs ZShmbG9hdCAqWCwgZmxvYXQgKlksIGZsb2F0IGVfbCwgZmxvYXQgZV9yLCBpbnQgTikKK3N0YXRp YyB2b2lkIGNlbHRfc3RlcmVvX2lzX2RlY291cGxlKGZsb2F0ICpfWCwgZmxvYXQgKl9ZLCBmbG9h dCBlX2wsIGZsb2F0IGVfciwgaW50IF9OKQogewogICAgIGludCBpOwogICAgIGNvbnN0IGZsb2F0 IGVuZXJneV9uID0gMS4wZi8oc3FydGYoZV9sKmVfbCArIGVfciplX3IpICsgRkxUX0VQU0lMT04p OwogICAgIGVfbCAqPSBlbmVyZ3lfbjsKICAgICBlX3IgKj0gZW5lcmd5X247Ci0gICAgZm9yIChp ID0gMDsgaSA8IE47IGkrKykKLSAgICAgICAgWFtpXSA9IGVfbCpYW2ldICsgZV9yKllbaV07Cisg ICAgZm9yIChpID0gMDsgaSA8IF9OOyBpKyspCisgICAgICAgIF9YW2ldID0gZV9sKl9YW2ldICsg ZV9yKl9ZW2ldOwogfQogCi1zdGF0aWMgdm9pZCBjZWx0X3N0ZXJlb19tc19kZWNvdXBsZShmbG9h dCAqWCwgZmxvYXQgKlksIGludCBOKQorc3RhdGljIHZvaWQgY2VsdF9zdGVyZW9fbXNfZGVjb3Vw bGUoZmxvYXQgKl9YLCBmbG9hdCAqX1ksIGludCBfTikKIHsKICAgICBpbnQgaTsKLSAgICBmb3Ig KGkgPSAwOyBpIDwgTjsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IGZsb2F0IFhyZXQgPSBYW2ldOwot ICAgICAgICBYW2ldID0gKFhbaV0gKyBZW2ldKSpNX1NRUlQxXzI7Ci0gICAgICAgIFlbaV0gPSAo WVtpXSAtIFhyZXQpKk1fU1FSVDFfMjsKKyAgICBmb3IgKGkgPSAwOyBpIDwgX047IGkrKykgewor ICAgICAgICBjb25zdCBmbG9hdCBYcmV0ID0gX1hbaV07CisgICAgICAgIF9YW2ldID0gKF9YW2ld ICsgX1lbaV0pKk1fU1FSVDFfMjsKKyAgICAgICAgX1lbaV0gPSAoX1lbaV0gLSBYcmV0KSpNX1NR UlQxXzI7CiAgICAgfQogfQogCiBzdGF0aWMgYXZfYWx3YXlzX2lubGluZSB1aW50MzJfdCBxdWFu dF9iYW5kX3RlbXBsYXRlKENlbHRQVlEgKnB2cSwgQ2VsdEZyYW1lICpmLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcHVzUmFuZ2VDb2RlciAq cmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGludCBiYW5kLCBmbG9hdCAqWCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgKlksIGludCBOLCBpbnQgYiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50IGJh bmQsIGZsb2F0ICpfWCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmxvYXQgKl9ZLCBpbnQgX04sIGludCBiLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBibG9ja3MsIGZsb2F0 ICpsb3diYW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgZHVyYXRpb24sIGZsb2F0ICpsb3diYW5kX291dCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxldmVsLCBmbG9hdCBn YWluLApAQCAtNDk5LDIxICs0OTksMjEgQEAgc3RhdGljIGF2X2Fsd2F5c19pbmxpbmUgdWludDMy X3QgcXVhbnRfYmFuZF90ZW1wbGF0ZShDZWx0UFZRICpwdnEsIENlbHRGcmFtZSAqZiwKIHsKICAg ICBpbnQgaTsKICAgICBjb25zdCB1aW50OF90ICpjYWNoZTsKLSAgICBpbnQgc3RlcmVvID0gISFZ LCBzcGxpdCA9IHN0ZXJlbzsKKyAgICBpbnQgc3RlcmVvID0gISFfWSwgc3BsaXQgPSBzdGVyZW87 CiAgICAgaW50IGltaWQgPSAwLCBpc2lkZSA9IDA7Ci0gICAgdWludDMyX3QgTjAgPSBOOwotICAg IGludCBOX0IgPSBOIC8gYmxvY2tzOworICAgIHVpbnQzMl90IF9OMCA9IF9OOworICAgIGludCBO X0IgPSBfTiAvIGJsb2NrczsKICAgICBpbnQgTl9CMCA9IE5fQjsKLSAgICBpbnQgQjAgPSBibG9j a3M7CisgICAgaW50IF9CMCA9IGJsb2NrczsKICAgICBpbnQgdGltZV9kaXZpZGUgPSAwOwogICAg IGludCByZWNvbWJpbmUgPSAwOwogICAgIGludCBpbnYgPSAwOwogICAgIGZsb2F0IG1pZCA9IDAs IHNpZGUgPSAwOwotICAgIGludCBsb25nYmxvY2tzID0gKEIwID09IDEpOworICAgIGludCBsb25n YmxvY2tzID0gKF9CMCA9PSAxKTsKICAgICB1aW50MzJfdCBjbSA9IDA7CiAKLSAgICBpZiAoTiA9 PSAxKSB7Ci0gICAgICAgIGZsb2F0ICp4ID0gWDsKKyAgICBpZiAoX04gPT0gMSkgeworICAgICAg ICBmbG9hdCAqeCA9IF9YOwogICAgICAgICBmb3IgKGkgPSAwOyBpIDw9IHN0ZXJlbzsgaSsrKSB7 CiAgICAgICAgICAgICBpbnQgc2lnbiA9IDA7CiAgICAgICAgICAgICBpZiAoZi0+cmVtYWluaW5n MiA+PSAxIDw8IDMpIHsKQEAgLTUyNiwxMCArNTI2LDEwIEBAIHN0YXRpYyBhdl9hbHdheXNfaW5s aW5lIHVpbnQzMl90IHF1YW50X2JhbmRfdGVtcGxhdGUoQ2VsdFBWUSAqcHZxLCBDZWx0RnJhbWUg KmYsCiAgICAgICAgICAgICAgICAgZi0+cmVtYWluaW5nMiAtPSAxIDw8IDM7CiAgICAgICAgICAg ICB9CiAgICAgICAgICAgICB4WzBdID0gMS4wZiAtIDIuMGYqc2lnbjsKLSAgICAgICAgICAgIHgg PSBZOworICAgICAgICAgICAgeCA9IF9ZOwogICAgICAgICB9CiAgICAgICAgIGlmIChsb3diYW5k X291dCkKLSAgICAgICAgICAgIGxvd2JhbmRfb3V0WzBdID0gWFswXTsKKyAgICAgICAgICAgIGxv d2JhbmRfb3V0WzBdID0gX1hbMF07CiAgICAgICAgIHJldHVybiAxOwogICAgIH0KIApAQCAtNTQx LDE1ICs1NDEsMTUgQEAgc3RhdGljIGF2X2Fsd2F5c19pbmxpbmUgdWludDMyX3QgcXVhbnRfYmFu ZF90ZW1wbGF0ZShDZWx0UFZRICpwdnEsIENlbHRGcmFtZSAqZiwKICAgICAgICAgLyogQmFuZCBy ZWNvbWJpbmluZyB0byBpbmNyZWFzZSBmcmVxdWVuY3kgcmVzb2x1dGlvbiAqLwogCiAgICAgICAg IGlmIChsb3diYW5kICYmCi0gICAgICAgICAgICAocmVjb21iaW5lIHx8ICgoTl9CICYgMSkgPT0g MCAmJiB0Zl9jaGFuZ2UgPCAwKSB8fCBCMCA+IDEpKSB7Ci0gICAgICAgICAgICBmb3IgKGkgPSAw OyBpIDwgTjsgaSsrKQorICAgICAgICAgICAgKHJlY29tYmluZSB8fCAoKE5fQiAmIDEpID09IDAg JiYgdGZfY2hhbmdlIDwgMCkgfHwgX0IwID4gMSkpIHsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7 IGkgPCBfTjsgaSsrKQogICAgICAgICAgICAgICAgIGxvd2JhbmRfc2NyYXRjaFtpXSA9IGxvd2Jh bmRbaV07CiAgICAgICAgICAgICBsb3diYW5kID0gbG93YmFuZF9zY3JhdGNoOwogICAgICAgICB9 CiAKICAgICAgICAgZm9yIChrID0gMDsgayA8IHJlY29tYmluZTsgaysrKSB7CiAgICAgICAgICAg ICBpZiAocXVhbnQgfHwgbG93YmFuZCkKLSAgICAgICAgICAgICAgICBjZWx0X2hhYXIxKHF1YW50 ID8gWCA6IGxvd2JhbmQsIE4gPj4gaywgMSA8PCBrKTsKKyAgICAgICAgICAgICAgICBjZWx0X2hh YXIxKHF1YW50ID8gX1ggOiBsb3diYW5kLCBfTiA+PiBrLCAxIDw8IGspOwogICAgICAgICAgICAg ZmlsbCA9IGZmX2NlbHRfYml0X2ludGVybGVhdmVbZmlsbCAmIDB4Rl0gfCBmZl9jZWx0X2JpdF9p bnRlcmxlYXZlW2ZpbGwgPj4gNF0gPDwgMjsKICAgICAgICAgfQogICAgICAgICBibG9ja3MgPj49 IHJlY29tYmluZTsKQEAgLTU1OCwyOSArNTU4LDI5IEBAIHN0YXRpYyBhdl9hbHdheXNfaW5saW5l IHVpbnQzMl90IHF1YW50X2JhbmRfdGVtcGxhdGUoQ2VsdFBWUSAqcHZxLCBDZWx0RnJhbWUgKmYs CiAgICAgICAgIC8qIEluY3JlYXNpbmcgdGhlIHRpbWUgcmVzb2x1dGlvbiAqLwogICAgICAgICB3 aGlsZSAoKE5fQiAmIDEpID09IDAgJiYgdGZfY2hhbmdlIDwgMCkgewogICAgICAgICAgICAgaWYg KHF1YW50IHx8IGxvd2JhbmQpCi0gICAgICAgICAgICAgICAgY2VsdF9oYWFyMShxdWFudCA/IFgg OiBsb3diYW5kLCBOX0IsIGJsb2Nrcyk7CisgICAgICAgICAgICAgICAgY2VsdF9oYWFyMShxdWFu dCA/IF9YIDogbG93YmFuZCwgTl9CLCBibG9ja3MpOwogICAgICAgICAgICAgZmlsbCB8PSBmaWxs IDw8IGJsb2NrczsKICAgICAgICAgICAgIGJsb2NrcyA8PD0gMTsKICAgICAgICAgICAgIE5fQiA+ Pj0gMTsKICAgICAgICAgICAgIHRpbWVfZGl2aWRlKys7CiAgICAgICAgICAgICB0Zl9jaGFuZ2Ur KzsKICAgICAgICAgfQotICAgICAgICBCMCA9IGJsb2NrczsKKyAgICAgICAgX0IwID0gYmxvY2tz OwogICAgICAgICBOX0IwID0gTl9COwogCiAgICAgICAgIC8qIFJlb3JnYW5pemUgdGhlIHNhbXBs ZXMgaW4gdGltZSBvcmRlciBpbnN0ZWFkIG9mIGZyZXF1ZW5jeSBvcmRlciAqLwotICAgICAgICBp ZiAoQjAgPiAxICYmIChxdWFudCB8fCBsb3diYW5kKSkKLSAgICAgICAgICAgIGNlbHRfZGVpbnRl cmxlYXZlX2hhZGFtYXJkKHB2cS0+aGFkYW1hcmRfdG1wLCBxdWFudCA/IFggOiBsb3diYW5kLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTl9CID4+IHJlY29tYmluZSwg QjAgPDwgcmVjb21iaW5lLAorICAgICAgICBpZiAoX0IwID4gMSAmJiAocXVhbnQgfHwgbG93YmFu ZCkpCisgICAgICAgICAgICBjZWx0X2RlaW50ZXJsZWF2ZV9oYWRhbWFyZChwdnEtPmhhZGFtYXJk X3RtcCwgcXVhbnQgPyBfWCA6IGxvd2JhbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOX0IgPj4gcmVjb21iaW5lLCBfQjAgPDwgcmVjb21iaW5lLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZ2Jsb2Nrcyk7CiAgICAgfQogCiAgICAg LyogSWYgd2UgbmVlZCAxLjUgbW9yZSBiaXQgdGhhbiB3ZSBjYW4gcHJvZHVjZSwgc3BsaXQgdGhl IGJhbmQgaW4gdHdvLiAqLwogICAgIGNhY2hlID0gZmZfY2VsdF9jYWNoZV9iaXRzICsKICAgICAg ICAgICAgIGZmX2NlbHRfY2FjaGVfaW5kZXhbKGR1cmF0aW9uICsgMSkgKiBDRUxUX01BWF9CQU5E UyArIGJhbmRdOwotICAgIGlmICghc3RlcmVvICYmIGR1cmF0aW9uID49IDAgJiYgYiA+IGNhY2hl W2NhY2hlWzBdXSArIDEyICYmIE4gPiAyKSB7Ci0gICAgICAgIE4gPj49IDE7Ci0gICAgICAgIFkg PSBYICsgTjsKKyAgICBpZiAoIXN0ZXJlbyAmJiBkdXJhdGlvbiA+PSAwICYmIGIgPiBjYWNoZVtj YWNoZVswXV0gKyAxMiAmJiBfTiA+IDIpIHsKKyAgICAgICAgX04gPj49IDE7CisgICAgICAgIF9Z ID0gX1ggKyBfTjsKICAgICAgICAgc3BsaXQgPSAxOwogICAgICAgICBkdXJhdGlvbiAtPSAxOwog ICAgICAgICBpZiAoYmxvY2tzID09IDEpCkBAIC01OTAsNyArNTkwLDcgQEAgc3RhdGljIGF2X2Fs d2F5c19pbmxpbmUgdWludDMyX3QgcXVhbnRfYmFuZF90ZW1wbGF0ZShDZWx0UFZRICpwdnEsIENl bHRGcmFtZSAqZiwKIAogICAgIGlmIChzcGxpdCkgewogICAgICAgICBpbnQgcW47Ci0gICAgICAg IGludCBpdGhldGEgPSBxdWFudCA/IGNlbHRfY2FsY190aGV0YShYLCBZLCBzdGVyZW8sIE4pIDog MDsKKyAgICAgICAgaW50IGl0aGV0YSA9IHF1YW50ID8gY2VsdF9jYWxjX3RoZXRhKF9YLCBfWSwg c3RlcmVvLCBfTikgOiAwOwogICAgICAgICBpbnQgbWJpdHMsIHNiaXRzLCBkZWx0YTsKICAgICAg ICAgaW50IHFhbGxvYzsKICAgICAgICAgaW50IHB1bHNlX2NhcDsKQEAgLTYwMCwxMCArNjAwLDEw IEBAIHN0YXRpYyBhdl9hbHdheXNfaW5saW5lIHVpbnQzMl90IHF1YW50X2JhbmRfdGVtcGxhdGUo Q2VsdFBWUSAqcHZxLCBDZWx0RnJhbWUgKmYsCiAKICAgICAgICAgLyogRGVjaWRlIG9uIHRoZSBy ZXNvbHV0aW9uIHRvIGdpdmUgdG8gdGhlIHNwbGl0IHBhcmFtZXRlciB0aGV0YSAqLwogICAgICAg ICBwdWxzZV9jYXAgPSBmZl9jZWx0X2xvZ19mcmVxX3JhbmdlW2JhbmRdICsgZHVyYXRpb24gKiA4 OwotICAgICAgICBvZmZzZXQgPSAocHVsc2VfY2FwID4+IDEpIC0gKHN0ZXJlbyAmJiBOID09IDIg PyBDRUxUX1FUSEVUQV9PRkZTRVRfVFdPUEhBU0UgOgorICAgICAgICBvZmZzZXQgPSAocHVsc2Vf Y2FwID4+IDEpIC0gKHN0ZXJlbyAmJiBfTiA9PSAyID8gQ0VMVF9RVEhFVEFfT0ZGU0VUX1RXT1BI QVNFIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDRUxUX1FUSEVUQV9PRkZTRVQpOwogICAgICAgICBxbiA9IChzdGVyZW8gJiYgYmFu ZCA+PSBmLT5pbnRlbnNpdHlfc3RlcmVvKSA/IDEgOgotICAgICAgICAgICAgIGNlbHRfY29tcHV0 ZV9xbihOLCBiLCBvZmZzZXQsIHB1bHNlX2NhcCwgc3RlcmVvKTsKKyAgICAgICAgICAgICBjZWx0 X2NvbXB1dGVfcW4oX04sIGIsIG9mZnNldCwgcHVsc2VfY2FwLCBzdGVyZW8pOwogICAgICAgICB0 ZWxsID0gb3B1c19yY190ZWxsX2ZyYWMocmMpOwogICAgICAgICBpZiAocW4gIT0gMSkgewogICAg ICAgICAgICAgaWYgKHF1YW50KQpAQCAtNjExLDI0ICs2MTEsMjQgQEAgc3RhdGljIGF2X2Fsd2F5 c19pbmxpbmUgdWludDMyX3QgcXVhbnRfYmFuZF90ZW1wbGF0ZShDZWx0UFZRICpwdnEsIENlbHRG cmFtZSAqZiwKICAgICAgICAgICAgIC8qIEVudHJvcHkgY29kaW5nIG9mIHRoZSBhbmdsZS4gV2Ug dXNlIGEgdW5pZm9ybSBwZGYgZm9yIHRoZQogICAgICAgICAgICAgICogdGltZSBzcGxpdCwgYSBz dGVwIGZvciBzdGVyZW8sIGFuZCBhIHRyaWFuZ3VsYXIgb25lIGZvciB0aGUgcmVzdC4gKi8KICAg ICAgICAgICAgIGlmIChxdWFudCkgewotICAgICAgICAgICAgICAgIGlmIChzdGVyZW8gJiYgTiA+ IDIpCisgICAgICAgICAgICAgICAgaWYgKHN0ZXJlbyAmJiBfTiA+IDIpCiAgICAgICAgICAgICAg ICAgICAgIGZmX29wdXNfcmNfZW5jX3VpbnRfc3RlcChyYywgaXRoZXRhLCBxbiAvIDIpOwotICAg ICAgICAgICAgICAgIGVsc2UgaWYgKHN0ZXJlbyB8fCBCMCA+IDEpCisgICAgICAgICAgICAgICAg ZWxzZSBpZiAoc3RlcmVvIHx8IF9CMCA+IDEpCiAgICAgICAgICAgICAgICAgICAgIGZmX29wdXNf cmNfZW5jX3VpbnQocmMsIGl0aGV0YSwgcW4gKyAxKTsKICAgICAgICAgICAgICAgICBlbHNlCiAg ICAgICAgICAgICAgICAgICAgIGZmX29wdXNfcmNfZW5jX3VpbnRfdHJpKHJjLCBpdGhldGEsIHFu KTsKICAgICAgICAgICAgICAgICBpdGhldGEgPSBpdGhldGEgKiAxNjM4NCAvIHFuOwogICAgICAg ICAgICAgICAgIGlmIChzdGVyZW8pIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGl0aGV0YSA9 PSAwKQotICAgICAgICAgICAgICAgICAgICAgICAgY2VsdF9zdGVyZW9faXNfZGVjb3VwbGUoWCwg WSwgZi0+YmxvY2tbMF0ubGluX2VuZXJneVtiYW5kXSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGYtPmJsb2NrWzFdLmxpbl9lbmVyZ3lbYmFuZF0sIE4p OworICAgICAgICAgICAgICAgICAgICAgICAgY2VsdF9zdGVyZW9faXNfZGVjb3VwbGUoX1gsIF9Z LCBmLT5ibG9ja1swXS5saW5fZW5lcmd5W2JhbmRdLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZi0+YmxvY2tbMV0ubGluX2VuZXJneVtiYW5kXSwgX04p OwogICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBjZWx0 X3N0ZXJlb19tc19kZWNvdXBsZShYLCBZLCBOKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNl bHRfc3RlcmVvX21zX2RlY291cGxlKF9YLCBfWSwgX04pOwogICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKHN0ZXJlbyAmJiBOID4gMikK KyAgICAgICAgICAgICAgICBpZiAoc3RlcmVvICYmIF9OID4gMikKICAgICAgICAgICAgICAgICAg ICAgaXRoZXRhID0gZmZfb3B1c19yY19kZWNfdWludF9zdGVwKHJjLCBxbiAvIDIpOwotICAgICAg ICAgICAgICAgIGVsc2UgaWYgKHN0ZXJlbyB8fCBCMCA+IDEpCisgICAgICAgICAgICAgICAgZWxz ZSBpZiAoc3RlcmVvIHx8IF9CMCA+IDEpCiAgICAgICAgICAgICAgICAgICAgIGl0aGV0YSA9IGZm X29wdXNfcmNfZGVjX3VpbnQocmMsIHFuKzEpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAg ICAgICAgICAgICAgICAgaXRoZXRhID0gZmZfb3B1c19yY19kZWNfdWludF90cmkocmMsIHFuKTsK QEAgLTYzOCwxMSArNjM4LDExIEBAIHN0YXRpYyBhdl9hbHdheXNfaW5saW5lIHVpbnQzMl90IHF1 YW50X2JhbmRfdGVtcGxhdGUoQ2VsdFBWUSAqcHZxLCBDZWx0RnJhbWUgKmYsCiAgICAgICAgICAg ICBpZiAocXVhbnQpIHsKICAgICAgICAgICAgICAgICBpbnYgPSBmLT5hcHBseV9waGFzZV9pbnYg PyBpdGhldGEgPiA4MTkyIDogMDsKICAgICAgICAgICAgICAgICAgaWYgKGludikgewotICAgICAg ICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgTjsgaSsrKQotICAgICAgICAgICAgICAgICAg ICAgICBZW2ldICo9IC0xOworICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgX047 IGkrKykKKyAgICAgICAgICAgICAgICAgICAgICAgX1lbaV0gKj0gLTE7CiAgICAgICAgICAgICAg ICAgIH0KLSAgICAgICAgICAgICAgICAgY2VsdF9zdGVyZW9faXNfZGVjb3VwbGUoWCwgWSwgZi0+ YmxvY2tbMF0ubGluX2VuZXJneVtiYW5kXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZi0+YmxvY2tbMV0ubGluX2VuZXJneVtiYW5kXSwgTik7CisgICAgICAgICAg ICAgICAgIGNlbHRfc3RlcmVvX2lzX2RlY291cGxlKF9YLCBfWSwgZi0+YmxvY2tbMF0ubGluX2Vu ZXJneVtiYW5kXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi0+ YmxvY2tbMV0ubGluX2VuZXJneVtiYW5kXSwgX04pOwogCiAgICAgICAgICAgICAgICAgaWYgKGIg PiAyIDw8IDMgJiYgZi0+cmVtYWluaW5nMiA+IDIgPDwgMykgewogICAgICAgICAgICAgICAgICAg ICBmZl9vcHVzX3JjX2VuY19sb2cocmMsIGludiwgMik7CkBAIC02NzQsMTYgKzY3NCwxNiBAQCBz dGF0aWMgYXZfYWx3YXlzX2lubGluZSB1aW50MzJfdCBxdWFudF9iYW5kX3RlbXBsYXRlKENlbHRQ VlEgKnB2cSwgQ2VsdEZyYW1lICpmLAogICAgICAgICAgICAgaXNpZGUgPSBjZWx0X2NvcygxNjM4 NC1pdGhldGEpOwogICAgICAgICAgICAgLyogVGhpcyBpcyB0aGUgbWlkIHZzIHNpZGUgYWxsb2Nh dGlvbiB0aGF0IG1pbmltaXplcyBzcXVhcmVkIGVycm9yCiAgICAgICAgICAgICBpbiB0aGF0IGJh bmQuICovCi0gICAgICAgICAgICBkZWx0YSA9IFJPVU5EX01VTDE2KChOIC0gMSkgPDwgNywgY2Vs dF9sb2cydGFuKGlzaWRlLCBpbWlkKSk7CisgICAgICAgICAgICBkZWx0YSA9IFJPVU5EX01VTDE2 KChfTiAtIDEpIDw8IDcsIGNlbHRfbG9nMnRhbihpc2lkZSwgaW1pZCkpOwogICAgICAgICB9CiAK ICAgICAgICAgbWlkICA9IGltaWQgIC8gMzI3NjguMGY7CiAgICAgICAgIHNpZGUgPSBpc2lkZSAv IDMyNzY4LjBmOwogCi0gICAgICAgIC8qIFRoaXMgaXMgYSBzcGVjaWFsIGNhc2UgZm9yIE49MiB0 aGF0IG9ubHkgd29ya3MgZm9yIHN0ZXJlbyBhbmQgdGFrZXMKKyAgICAgICAgLyogVGhpcyBpcyBh IHNwZWNpYWwgY2FzZSBmb3IgX049MiB0aGF0IG9ubHkgd29ya3MgZm9yIHN0ZXJlbyBhbmQgdGFr ZXMKICAgICAgICAgYWR2YW50YWdlIG9mIHRoZSBmYWN0IHRoYXQgbWlkIGFuZCBzaWRlIGFyZSBv cnRob2dvbmFsIHRvIGVuY29kZQogICAgICAgICB0aGUgc2lkZSB3aXRoIGp1c3Qgb25lIGJpdC4g Ki8KLSAgICAgICAgaWYgKE4gPT0gMiAmJiBzdGVyZW8pIHsKKyAgICAgICAgaWYgKF9OID09IDIg JiYgc3RlcmVvKSB7CiAgICAgICAgICAgICBpbnQgYzsKICAgICAgICAgICAgIGludCBzaWduID0g MDsKICAgICAgICAgICAgIGZsb2F0IHRtcDsKQEAgLTY5NSw4ICs2OTUsOCBAQCBzdGF0aWMgYXZf YWx3YXlzX2lubGluZSB1aW50MzJfdCBxdWFudF9iYW5kX3RlbXBsYXRlKENlbHRQVlEgKnB2cSwg Q2VsdEZyYW1lICpmLAogICAgICAgICAgICAgYyA9IChpdGhldGEgPiA4MTkyKTsKICAgICAgICAg ICAgIGYtPnJlbWFpbmluZzIgLT0gcWFsbG9jK3NiaXRzOwogCi0gICAgICAgICAgICB4MiA9IGMg PyBZIDogWDsKLSAgICAgICAgICAgIHkyID0gYyA/IFggOiBZOworICAgICAgICAgICAgeDIgPSBj ID8gX1kgOiBfWDsKKyAgICAgICAgICAgIHkyID0gYyA/IF9YIDogX1k7CiAgICAgICAgICAgICBp ZiAoc2JpdHMpIHsKICAgICAgICAgICAgICAgICBpZiAocXVhbnQpIHsKICAgICAgICAgICAgICAg ICAgICAgc2lnbiA9IHgyWzBdKnkyWzFdIC0geDJbMV0qeTJbMF0gPCAwOwpAQCAtNzA4LDIyICs3 MDgsMjIgQEAgc3RhdGljIGF2X2Fsd2F5c19pbmxpbmUgdWludDMyX3QgcXVhbnRfYmFuZF90ZW1w bGF0ZShDZWx0UFZRICpwdnEsIENlbHRGcmFtZSAqZiwKICAgICAgICAgICAgIHNpZ24gPSAxIC0g MiAqIHNpZ247CiAgICAgICAgICAgICAvKiBXZSB1c2Ugb3JpZ19maWxsIGhlcmUgYmVjYXVzZSB3 ZSB3YW50IHRvIGZvbGQgdGhlIHNpZGUsIGJ1dCBpZgogICAgICAgICAgICAgaXRoZXRhPT0xNjM4 NCwgd2UnbGwgaGF2ZSBjbGVhcmVkIHRoZSBsb3cgYml0cyBvZiBmaWxsLiAqLwotICAgICAgICAg ICAgY20gPSBwdnEtPnF1YW50X2JhbmQocHZxLCBmLCByYywgYmFuZCwgeDIsIE5VTEwsIE4sIG1i aXRzLCBibG9ja3MsIGxvd2JhbmQsIGR1cmF0aW9uLAorICAgICAgICAgICAgY20gPSBwdnEtPnF1 YW50X2JhbmQocHZxLCBmLCByYywgYmFuZCwgeDIsIE5VTEwsIF9OLCBtYml0cywgYmxvY2tzLCBs b3diYW5kLCBkdXJhdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2Jh bmRfb3V0LCBsZXZlbCwgZ2FpbiwgbG93YmFuZF9zY3JhdGNoLCBvcmlnX2ZpbGwpOwotICAgICAg ICAgICAgLyogV2UgZG9uJ3Qgc3BsaXQgTj0yIGJhbmRzLCBzbyBjbSBpcyBlaXRoZXIgMSBvciAw IChmb3IgYSBmb2xkLWNvbGxhcHNlKSwKKyAgICAgICAgICAgIC8qIFdlIGRvbid0IHNwbGl0IF9O PTIgYmFuZHMsIHNvIGNtIGlzIGVpdGhlciAxIG9yIDAgKGZvciBhIGZvbGQtY29sbGFwc2UpLAog ICAgICAgICAgICAgYW5kIHRoZXJlJ3Mgbm8gbmVlZCB0byB3b3JyeSBhYm91dCBtaXhpbmcgd2l0 aCB0aGUgb3RoZXIgY2hhbm5lbC4gKi8KICAgICAgICAgICAgIHkyWzBdID0gLXNpZ24gKiB4Mlsx XTsKICAgICAgICAgICAgIHkyWzFdID0gIHNpZ24gKiB4MlswXTsKLSAgICAgICAgICAgIFhbMF0g Kj0gbWlkOwotICAgICAgICAgICAgWFsxXSAqPSBtaWQ7Ci0gICAgICAgICAgICBZWzBdICo9IHNp ZGU7Ci0gICAgICAgICAgICBZWzFdICo9IHNpZGU7Ci0gICAgICAgICAgICB0bXAgPSBYWzBdOwot ICAgICAgICAgICAgWFswXSA9IHRtcCAtIFlbMF07Ci0gICAgICAgICAgICBZWzBdID0gdG1wICsg WVswXTsKLSAgICAgICAgICAgIHRtcCA9IFhbMV07Ci0gICAgICAgICAgICBYWzFdID0gdG1wIC0g WVsxXTsKLSAgICAgICAgICAgIFlbMV0gPSB0bXAgKyBZWzFdOworICAgICAgICAgICAgX1hbMF0g Kj0gbWlkOworICAgICAgICAgICAgX1hbMV0gKj0gbWlkOworICAgICAgICAgICAgX1lbMF0gKj0g c2lkZTsKKyAgICAgICAgICAgIF9ZWzFdICo9IHNpZGU7CisgICAgICAgICAgICB0bXAgPSBfWFsw XTsKKyAgICAgICAgICAgIF9YWzBdID0gdG1wIC0gX1lbMF07CisgICAgICAgICAgICBfWVswXSA9 IHRtcCArIF9ZWzBdOworICAgICAgICAgICAgdG1wID0gX1hbMV07CisgICAgICAgICAgICBfWFsx XSA9IHRtcCAtIF9ZWzFdOworICAgICAgICAgICAgX1lbMV0gPSB0bXAgKyBfWVsxXTsKICAgICAg ICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8qICJOb3JtYWwiIHNwbGl0IGNvZGUgKi8KICAgICAg ICAgICAgIGZsb2F0ICpuZXh0X2xvd2JhbmQyICAgICA9IE5VTEw7CkBAIC03MzQsMjEgKzczNCwy MSBAQCBzdGF0aWMgYXZfYWx3YXlzX2lubGluZSB1aW50MzJfdCBxdWFudF9iYW5kX3RlbXBsYXRl KENlbHRQVlEgKnB2cSwgQ2VsdEZyYW1lICpmLAogCiAgICAgICAgICAgICAvKiBHaXZlIG1vcmUg Yml0cyB0byBsb3ctZW5lcmd5IE1EQ1RzIHRoYW4gdGhleSB3b3VsZAogICAgICAgICAgICAgICog b3RoZXJ3aXNlIGRlc2VydmUgKi8KLSAgICAgICAgICAgIGlmIChCMCA+IDEgJiYgIXN0ZXJlbyAm JiAoaXRoZXRhICYgMHgzZmZmKSkgeworICAgICAgICAgICAgaWYgKF9CMCA+IDEgJiYgIXN0ZXJl byAmJiAoaXRoZXRhICYgMHgzZmZmKSkgewogICAgICAgICAgICAgICAgIGlmIChpdGhldGEgPiA4 MTkyKQogICAgICAgICAgICAgICAgICAgICAvKiBSb3VnaCBhcHByb3hpbWF0aW9uIGZvciBwcmUt ZWNobyBtYXNraW5nICovCiAgICAgICAgICAgICAgICAgICAgIGRlbHRhIC09IGRlbHRhID4+ICg0 IC0gZHVyYXRpb24pOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAg LyogQ29ycmVzcG9uZHMgdG8gYSBmb3J3YXJkLW1hc2tpbmcgc2xvcGUgb2YKICAgICAgICAgICAg ICAgICAgICAgICogMS41IGRCIHBlciAxMCBtcyAqLwotICAgICAgICAgICAgICAgICAgICBkZWx0 YSA9IEZGTUlOKDAsIGRlbHRhICsgKE4gPDwgMyA+PiAoNSAtIGR1cmF0aW9uKSkpOworICAgICAg ICAgICAgICAgICAgICBkZWx0YSA9IEZGTUlOKDAsIGRlbHRhICsgKF9OIDw8IDMgPj4gKDUgLSBk dXJhdGlvbikpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG1iaXRzID0gYXZfY2xpcCgo YiAtIGRlbHRhKSAvIDIsIDAsIGIpOwogICAgICAgICAgICAgc2JpdHMgPSBiIC0gbWJpdHM7CiAg ICAgICAgICAgICBmLT5yZW1haW5pbmcyIC09IHFhbGxvYzsKIAogICAgICAgICAgICAgaWYgKGxv d2JhbmQgJiYgIXN0ZXJlbykKLSAgICAgICAgICAgICAgICBuZXh0X2xvd2JhbmQyID0gbG93YmFu ZCArIE47IC8qID4zMi1iaXQgc3BsaXQgY2FzZSAqLworICAgICAgICAgICAgICAgIG5leHRfbG93 YmFuZDIgPSBsb3diYW5kICsgX047IC8qID4zMi1iaXQgc3BsaXQgY2FzZSAqLwogCiAgICAgICAg ICAgICAvKiBPbmx5IHN0ZXJlbyBuZWVkcyB0byBwYXNzIG9uIGxvd2JhbmRfb3V0LgogICAgICAg ICAgICAgICogT3RoZXJ3aXNlLCBpdCdzIGhhbmRsZWQgYXQgdGhlIGVuZCAqLwpAQCAtNzYxLDcg Kzc2MSw3IEBAIHN0YXRpYyBhdl9hbHdheXNfaW5saW5lIHVpbnQzMl90IHF1YW50X2JhbmRfdGVt cGxhdGUoQ2VsdFBWUSAqcHZxLCBDZWx0RnJhbWUgKmYsCiAgICAgICAgICAgICBpZiAobWJpdHMg Pj0gc2JpdHMpIHsKICAgICAgICAgICAgICAgICAvKiBJbiBzdGVyZW8gbW9kZSwgd2UgZG8gbm90 IGFwcGx5IGEgc2NhbGluZyB0byB0aGUgbWlkCiAgICAgICAgICAgICAgICAgICogYmVjYXVzZSB3 ZSBuZWVkIHRoZSBub3JtYWxpemVkIG1pZCBmb3IgZm9sZGluZyBsYXRlciAqLwotICAgICAgICAg ICAgICAgIGNtID0gcHZxLT5xdWFudF9iYW5kKHB2cSwgZiwgcmMsIGJhbmQsIFgsIE5VTEwsIE4s IG1iaXRzLCBibG9ja3MsCisgICAgICAgICAgICAgICAgY20gPSBwdnEtPnF1YW50X2JhbmQocHZx LCBmLCByYywgYmFuZCwgX1gsIE5VTEwsIF9OLCBtYml0cywgYmxvY2tzLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2JhbmQsIGR1cmF0aW9uLCBuZXh0X2xvd2JhbmRf b3V0MSwgbmV4dF9sZXZlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dGVyZW8gPyAxLjBmIDogKGdhaW4gKiBtaWQpLCBsb3diYW5kX3NjcmF0Y2gsIGZpbGwpOwogICAg ICAgICAgICAgICAgIHJlYmFsYW5jZSA9IG1iaXRzIC0gKHJlYmFsYW5jZSAtIGYtPnJlbWFpbmlu ZzIpOwpAQCAtNzcwLDI0ICs3NzAsMjQgQEAgc3RhdGljIGF2X2Fsd2F5c19pbmxpbmUgdWludDMy X3QgcXVhbnRfYmFuZF90ZW1wbGF0ZShDZWx0UFZRICpwdnEsIENlbHRGcmFtZSAqZiwKIAogICAg ICAgICAgICAgICAgIC8qIEZvciBhIHN0ZXJlbyBzcGxpdCwgdGhlIGhpZ2ggYml0cyBvZiBmaWxs IGFyZSBhbHdheXMgemVybywKICAgICAgICAgICAgICAgICAgKiBzbyBubyBmb2xkaW5nIHdpbGwg YmUgZG9uZSB0byB0aGUgc2lkZS4gKi8KLSAgICAgICAgICAgICAgICBjbXQgPSBwdnEtPnF1YW50 X2JhbmQocHZxLCBmLCByYywgYmFuZCwgWSwgTlVMTCwgTiwgc2JpdHMsIGJsb2NrcywKKyAgICAg ICAgICAgICAgICBjbXQgPSBwdnEtPnF1YW50X2JhbmQocHZxLCBmLCByYywgYmFuZCwgX1ksIE5V TEwsIF9OLCBzYml0cywgYmxvY2tzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuZXh0X2xvd2JhbmQyLCBkdXJhdGlvbiwgTlVMTCwgbmV4dF9sZXZlbCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FpbiAqIHNpZGUsIE5VTEwsIGZpbGwgPj4g YmxvY2tzKTsKLSAgICAgICAgICAgICAgICBjbSB8PSBjbXQgPDwgKChCMCA+PiAxKSAmIChzdGVy ZW8gLSAxKSk7CisgICAgICAgICAgICAgICAgY20gfD0gY210IDw8ICgoX0IwID4+IDEpICYgKHN0 ZXJlbyAtIDEpKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLyogRm9y IGEgc3RlcmVvIHNwbGl0LCB0aGUgaGlnaCBiaXRzIG9mIGZpbGwgYXJlIGFsd2F5cyB6ZXJvLAog ICAgICAgICAgICAgICAgICAqIHNvIG5vIGZvbGRpbmcgd2lsbCBiZSBkb25lIHRvIHRoZSBzaWRl LiAqLwotICAgICAgICAgICAgICAgIGNtID0gcHZxLT5xdWFudF9iYW5kKHB2cSwgZiwgcmMsIGJh bmQsIFksIE5VTEwsIE4sIHNiaXRzLCBibG9ja3MsCisgICAgICAgICAgICAgICAgY20gPSBwdnEt PnF1YW50X2JhbmQocHZxLCBmLCByYywgYmFuZCwgX1ksIE5VTEwsIF9OLCBzYml0cywgYmxvY2tz LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRfbG93YmFuZDIsIGR1 cmF0aW9uLCBOVUxMLCBuZXh0X2xldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdhaW4gKiBzaWRlLCBOVUxMLCBmaWxsID4+IGJsb2Nrcyk7Ci0gICAgICAgICAgICAg ICAgY20gPDw9ICgoQjAgPj4gMSkgJiAoc3RlcmVvIC0gMSkpOworICAgICAgICAgICAgICAgIGNt IDw8PSAoKF9CMCA+PiAxKSAmIChzdGVyZW8gLSAxKSk7CiAgICAgICAgICAgICAgICAgcmViYWxh bmNlID0gc2JpdHMgLSAocmViYWxhbmNlIC0gZi0+cmVtYWluaW5nMik7CiAgICAgICAgICAgICAg ICAgaWYgKHJlYmFsYW5jZSA+IDMgPDwgMyAmJiBpdGhldGEgIT0gMTYzODQpCiAgICAgICAgICAg ICAgICAgICAgIG1iaXRzICs9IHJlYmFsYW5jZSAtICgzIDw8IDMpOwogCiAgICAgICAgICAgICAg ICAgLyogSW4gc3RlcmVvIG1vZGUsIHdlIGRvIG5vdCBhcHBseSBhIHNjYWxpbmcgdG8gdGhlIG1p ZCBiZWNhdXNlCiAgICAgICAgICAgICAgICAgICogd2UgbmVlZCB0aGUgbm9ybWFsaXplZCBtaWQg Zm9yIGZvbGRpbmcgbGF0ZXIgKi8KLSAgICAgICAgICAgICAgICBjbSB8PSBwdnEtPnF1YW50X2Jh bmQocHZxLCBmLCByYywgYmFuZCwgWCwgTlVMTCwgTiwgbWJpdHMsIGJsb2NrcywKKyAgICAgICAg ICAgICAgICBjbSB8PSBwdnEtPnF1YW50X2JhbmQocHZxLCBmLCByYywgYmFuZCwgX1gsIE5VTEws IF9OLCBtYml0cywgYmxvY2tzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsb3diYW5kLCBkdXJhdGlvbiwgbmV4dF9sb3diYW5kX291dDEsIG5leHRfbGV2ZWwsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXJlbyA/IDEuMGYgOiAoZ2FpbiAq IG1pZCksIGxvd2JhbmRfc2NyYXRjaCwgZmlsbCk7CiAgICAgICAgICAgICB9CkBAIC04MDgsMTAg KzgwOCwxMCBAQCBzdGF0aWMgYXZfYWx3YXlzX2lubGluZSB1aW50MzJfdCBxdWFudF9iYW5kX3Rl bXBsYXRlKENlbHRQVlEgKnB2cSwgQ2VsdEZyYW1lICpmLAogICAgICAgICBpZiAocSAhPSAwKSB7 CiAgICAgICAgICAgICAvKiBGaW5hbGx5IGRvIHRoZSBhY3R1YWwgKGRlKXF1YW50aXphdGlvbiAq LwogICAgICAgICAgICAgaWYgKHF1YW50KSB7Ci0gICAgICAgICAgICAgICAgY20gPSBjZWx0X2Fs Z19xdWFudChyYywgWCwgTiwgKHEgPCA4KSA/IHEgOiAoOCArIChxICYgNykpIDw8ICgocSA+PiAz KSAtIDEpLAorICAgICAgICAgICAgICAgIGNtID0gY2VsdF9hbGdfcXVhbnQocmMsIF9YLCBfTiwg KHEgPCA4KSA/IHEgOiAoOCArIChxICYgNykpIDw8ICgocSA+PiAzKSAtIDEpLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZi0+c3ByZWFkLCBibG9ja3MsIGdhaW4sIHB2cSk7 CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGNtID0gY2VsdF9hbGdfdW5x dWFudChyYywgWCwgTiwgKHEgPCA4KSA/IHEgOiAoOCArIChxICYgNykpIDw8ICgocSA+PiAzKSAt IDEpLAorICAgICAgICAgICAgICAgIGNtID0gY2VsdF9hbGdfdW5xdWFudChyYywgX1gsIF9OLCAo cSA8IDgpID8gcSA6ICg4ICsgKHEgJiA3KSkgPDwgKChxID4+IDMpIC0gMSksCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYtPnNwcmVhZCwgYmxvY2tzLCBnYWluLCBwdnEp OwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewpAQCAtODIxLDYxICs4MjEsNjEgQEAg c3RhdGljIGF2X2Fsd2F5c19pbmxpbmUgdWludDMyX3QgcXVhbnRfYmFuZF90ZW1wbGF0ZShDZWx0 UFZRICpwdnEsIENlbHRGcmFtZSAqZiwKICAgICAgICAgICAgIGlmIChmaWxsKSB7CiAgICAgICAg ICAgICAgICAgaWYgKCFsb3diYW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIC8qIE5vaXNlICov Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBOOyBpKyspCi0gICAgICAgICAg ICAgICAgICAgICAgICBYW2ldID0gKCgoaW50MzJfdCljZWx0X3JuZyhmKSkgPj4gMjApOworICAg ICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgX047IGkrKykKKyAgICAgICAgICAgICAg ICAgICAgICAgIF9YW2ldID0gKCgoaW50MzJfdCljZWx0X3JuZyhmKSkgPj4gMjApOwogICAgICAg ICAgICAgICAgICAgICBjbSA9IGNtX21hc2s7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAg ICAgICAgICAgICAgICAgICAgLyogRm9sZGVkIHNwZWN0cnVtICovCi0gICAgICAgICAgICAgICAg ICAgIGZvciAoaSA9IDA7IGkgPCBOOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChp ID0gMDsgaSA8IF9OOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFib3V0IDQ4 IGRCIGJlbG93IHRoZSAibm9ybWFsIiBmb2xkaW5nIGxldmVsICovCi0gICAgICAgICAgICAgICAg ICAgICAgICBYW2ldID0gbG93YmFuZFtpXSArICgoKGNlbHRfcm5nKGYpKSAmIDB4ODAwMCkgPyAx LjBmIC8gMjU2IDogLTEuMGYgLyAyNTYpOworICAgICAgICAgICAgICAgICAgICAgICAgX1hbaV0g PSBsb3diYW5kW2ldICsgKCgoY2VsdF9ybmcoZikpICYgMHg4MDAwKSA/IDEuMGYgLyAyNTYgOiAt MS4wZiAvIDI1Nik7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg Y20gPSBmaWxsOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjZWx0X3Jlbm9y bWFsaXplX3ZlY3RvcihYLCBOLCBnYWluKTsKKyAgICAgICAgICAgICAgICBjZWx0X3Jlbm9ybWFs aXplX3ZlY3RvcihfWCwgX04sIGdhaW4pOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg ICAgICAgICBtZW1zZXQoWCwgMCwgTipzaXplb2YoZmxvYXQpKTsKKyAgICAgICAgICAgICAgICBt ZW1zZXQoX1gsIDAsIF9OKnNpemVvZihmbG9hdCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9 CiAgICAgfQogCiAgICAgLyogVGhpcyBjb2RlIGlzIHVzZWQgYnkgdGhlIGRlY29kZXIgYW5kIGJ5 IHRoZSByZXN5bnRoZXNpcy1lbmFibGVkIGVuY29kZXIgKi8KICAgICBpZiAoc3RlcmVvKSB7Ci0g ICAgICAgIGlmIChOID4gMikKLSAgICAgICAgICAgIGNlbHRfc3RlcmVvX21lcmdlKFgsIFksIG1p ZCwgTik7CisgICAgICAgIGlmIChfTiA+IDIpCisgICAgICAgICAgICBjZWx0X3N0ZXJlb19tZXJn ZShfWCwgX1ksIG1pZCwgX04pOwogICAgICAgICBpZiAoaW52KSB7Ci0gICAgICAgICAgICBmb3Ig KGkgPSAwOyBpIDwgTjsgaSsrKQotICAgICAgICAgICAgICAgIFlbaV0gKj0gLTE7CisgICAgICAg ICAgICBmb3IgKGkgPSAwOyBpIDwgX047IGkrKykKKyAgICAgICAgICAgICAgICBfWVtpXSAqPSAt MTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAobGV2ZWwgPT0gMCkgewogICAgICAgICBpbnQg azsKIAogICAgICAgICAvKiBVbmRvIHRoZSBzYW1wbGUgcmVvcmdhbml6YXRpb24gZ29pbmcgZnJv bSB0aW1lIG9yZGVyIHRvIGZyZXF1ZW5jeSBvcmRlciAqLwotICAgICAgICBpZiAoQjAgPiAxKQot ICAgICAgICAgICAgY2VsdF9pbnRlcmxlYXZlX2hhZGFtYXJkKHB2cS0+aGFkYW1hcmRfdG1wLCBY LCBOX0IgPj4gcmVjb21iaW5lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEIwIDw8IHJlY29tYmluZSwgbG9uZ2Jsb2Nrcyk7CisgICAgICAgIGlmIChfQjAgPiAxKQorICAg ICAgICAgICAgY2VsdF9pbnRlcmxlYXZlX2hhZGFtYXJkKHB2cS0+aGFkYW1hcmRfdG1wLCBfWCwg Tl9CID4+IHJlY29tYmluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf QjAgPDwgcmVjb21iaW5lLCBsb25nYmxvY2tzKTsKIAogICAgICAgICAvKiBVbmRvIHRpbWUtZnJl cSBjaGFuZ2VzIHRoYXQgd2UgZGlkIGVhcmxpZXIgKi8KICAgICAgICAgTl9CID0gTl9CMDsKLSAg ICAgICAgYmxvY2tzID0gQjA7CisgICAgICAgIGJsb2NrcyA9IF9CMDsKICAgICAgICAgZm9yIChr ID0gMDsgayA8IHRpbWVfZGl2aWRlOyBrKyspIHsKICAgICAgICAgICAgIGJsb2NrcyA+Pj0gMTsK ICAgICAgICAgICAgIE5fQiA8PD0gMTsKICAgICAgICAgICAgIGNtIHw9IGNtID4+IGJsb2NrczsK LSAgICAgICAgICAgIGNlbHRfaGFhcjEoWCwgTl9CLCBibG9ja3MpOworICAgICAgICAgICAgY2Vs dF9oYWFyMShfWCwgTl9CLCBibG9ja3MpOwogICAgICAgICB9CiAKICAgICAgICAgZm9yIChrID0g MDsgayA8IHJlY29tYmluZTsgaysrKSB7CiAgICAgICAgICAgICBjbSA9IGZmX2NlbHRfYml0X2Rl aW50ZXJsZWF2ZVtjbV07Ci0gICAgICAgICAgICBjZWx0X2hhYXIxKFgsIE4wPj5rLCAxPDxrKTsK KyAgICAgICAgICAgIGNlbHRfaGFhcjEoX1gsIF9OMD4+aywgMTw8ayk7CiAgICAgICAgIH0KICAg ICAgICAgYmxvY2tzIDw8PSByZWNvbWJpbmU7CiAKICAgICAgICAgLyogU2NhbGUgb3V0cHV0IGZv ciBsYXRlciBmb2xkaW5nICovCiAgICAgICAgIGlmIChsb3diYW5kX291dCkgewotICAgICAgICAg ICAgZmxvYXQgbiA9IHNxcnRmKE4wKTsKLSAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBOMDsg aSsrKQotICAgICAgICAgICAgICAgIGxvd2JhbmRfb3V0W2ldID0gbiAqIFhbaV07CisgICAgICAg ICAgICBmbG9hdCBuID0gc3FydGYoX04wKTsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBf TjA7IGkrKykKKyAgICAgICAgICAgICAgICBsb3diYW5kX291dFtpXSA9IG4gKiBfWFtpXTsKICAg ICAgICAgfQogICAgICAgICBjbSA9IGF2X21vZF91aW50cDIoY20sIGJsb2Nrcyk7CiAgICAgfQot LSAKMi4zOS4yCgo= --EdoMail63f5dc68_20320a59_57bb 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". --EdoMail63f5dc68_20320a59_57bb--