Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oEVn7-0006NJ-V1 for pgsql-hackers@arkaria.postgresql.org; Thu, 21 Jul 2022 13:00:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oEVn5-00059g-Mr for pgsql-hackers@arkaria.postgresql.org; Thu, 21 Jul 2022 13:00:31 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oEVn4-00059X-RQ for pgsql-hackers@lists.postgresql.org; Thu, 21 Jul 2022 13:00:31 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oEVmz-0000YY-Pr for pgsql-hackers@postgresql.org; Thu, 21 Jul 2022 13:00:29 +0000 Received: from falcon-note (cyclops.postgrespro.ru [93.174.131.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id D7CA221C1E47; Thu, 21 Jul 2022 16:00:21 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1658408422; bh=gvWIuDzN60GsHnJagOFW7uVjGOZiEdIZD4gzV0QcmUU=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=gMtlwanaYS4LptztTE6FXpG4nxp8qdwzTorg3nWqHckuyZg03wvIJbldx+VN3CfIm Ok89+Kkdy6NmHGZnt7cyy7MPuUymSForT6WIIzk5wOze+dyCst5SbxPFN21ELmFf/L 91xb+rkf206VB++G7LwBb38bEIPQpg6lwW59ifx0= Message-ID: Subject: Re: MultiXact\SLRU buffers configuration From: Yura Sokolov To: Andrey Borodin , Andres Freund Cc: Thomas Munro , Gilles Darold , Tomas Vondra , Tomas Vondra , Alexander Korotkov , Anastasia Lubennikova , Daniel Gustafsson , Kyotaro Horiguchi , pgsql-hackers Date: Thu, 21 Jul 2022 16:00:20 +0300 In-Reply-To: <01FF6FFC-7379-43EA-B04A-673C98ABFAAF@yandex-team.ru> References: <27D90FFC-B897-4BC5-B4F5-9047B9886AA3@yandex-team.ru> <15CA416B-3446-462D-902B-4883DD3ADEE6@yandex-team.ru> <3130B767-FEB7-4F18-AE90-DD95B4367316@yandex-team.ru> <20220219214223.w4bmhiozeimcqhzb@alap3.anarazel.de> <01FF6FFC-7379-43EA-B04A-673C98ABFAAF@yandex-team.ru> Organization: PostgresPro Content-Type: multipart/mixed; boundary="=-b/N8xfyb4KxZhr06HKzx" User-Agent: Evolution 3.36.5-0ubuntu1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-b/N8xfyb4KxZhr06HKzx Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Good day, all. I did benchmark of patch on 2 socket Xeon 5220 CPU @ 2.20GHz . I used "benchmark" used to reproduce problems with SLRU on our customers setup. In opposite to Shawn's tests I concentrated on bad case: a lot of contention. slru-funcs.sql - function definitions - functions creates a lot of subtrunsactions to stress subtrans - and select random rows for share to stress multixacts slru-call.sql - function call for benchmark slru-ballast.sql - randomly select 1000 consequent rows "for update skip locked" to stress multixacts patch1 - make SLRU buffers configurable patch2 - make "8-associative banks" Benchmark done by pgbench. Inited with scale 1 to induce contention. pgbench -i -s 1 testdb Benchmark 1: - low number of connections (50), 60% slru-call, 40% slru-ballast pgbench -f slru-call.sql@60 -f slru-ballast.sql@40 -c 50 -j 75 -P 1 -T 30 testdb version | subtrans | multixact | tps | buffers | offs/memb | func+ballast --------+----------+-----------+------ master | 32 | 8/16 | 184+119 patch1 | 32 | 8/16 | 184+119 patch1 | 1024 | 8/16 | 121+77 patch1 | 1024 | 512/1024 | 118+75 patch2 | 32 | 8/16 | 190+122 patch2 | 1024 | 8/16 | 190+125 patch2 | 1024 | 512/1024 | 190+127 As you see, this test case degrades with dumb increase of SLRU buffers. But use of "hash table" in form of "associative buckets" makes performance stable. Benchmark 2: - high connection number (600), 98% slru-call, 2% slru-ballast pgbench -f slru-call.sql@98 -f slru-ballast.sql@2 -c 600 -j 75 -P 1 -T 30 testdb I don't paste "ballast" tps here since 2% make them too small, and they're very noisy. version | subtrans | multixact | tps | buffers | offs/memb | func --------+----------+-----------+------ master | 32 | 8/16 | 13 patch1 | 32 | 8/16 | 13 patch1 | 1024 | 8/16 | 31 patch1 | 1024 | 512/1024 | 53 patch2 | 32 | 8/16 | 12 patch2 | 1024 | 8/16 | 34 patch2 | 1024 | 512/1024 | 67 In this case simple buffer increase does help. But "buckets" increase performance gain. I didn't paste here results third part of patch ("Pack SLRU...") because I didn't see any major performance gain from it, and it consumes large part of patch diff. Rebased versions of first two patch parts are attached. regards, Yura Sokolov --=-b/N8xfyb4KxZhr06HKzx Content-Type: application/sql; name="slru-ballast.sql" Content-Disposition: attachment; filename="slru-ballast.sql" Content-Transfer-Encoding: base64 XHNldCBhIHJhbmRvbSgxLCA6c2NhbGUgKiAxMDAwMDApCnNlbGVjdCAxIGZyb20gcGdiZW5jaF9h Y2NvdW50cyB3aGVyZSBhaWQgYmV0d2VlbiA6YSBhbmQgOmEgKyA5OTkgZm9yIHVwZGF0ZSBza2lw IGxvY2tlZDsK --=-b/N8xfyb4KxZhr06HKzx Content-Type: application/sql; name="slru-call.sql" Content-Disposition: attachment; filename="slru-call.sql" Content-Transfer-Encoding: base64 c2VsZWN0IHRlcmVib25rKDpzY2FsZSk7Cg== --=-b/N8xfyb4KxZhr06HKzx Content-Type: application/sql; name="slru-func.sql" Content-Disposition: attachment; filename="slru-func.sql" Content-Transfer-Encoding: base64 LS0gc2Fyb3YgYmVuY2ggMC4yCi0tIEVtdWxhdGUgbmVzdGVkIGZ1bmN0aW9ucyBjYWxscyB3aXRo IGV4Y2VwdGlvbnMgaGFuZGxpbmcuIEVhY2ggZXhjZXB0aW9uIGJsb2NrCi0tIGludGVybmFsbHkg d2lsbCBiZSB0cmFuc2Zvcm1lZCBpbnRvIGEgc2F2ZXBvaW50LiBBbHNvIGRvIHNvbWUgaW5zZXJ0 cyB0byBnZW5lcmF0ZQotLSB4aWQgYW5kIHNlbGVjdCBmb3Igc2hhcmUgdG8gZ2VuZXJhdGUgc29t ZSBjb250ZW50aW9uIG9uIHBnX211bHRpeGFjdC4KY3JlYXRlIG9yIHJlcGxhY2UgZnVuY3Rpb24g c3VjaF9tdWNoX3NhZmVfZnVuY3Rpb24oZGVwdGggaW50LCBzY2FsZSBpbnQpIHJldHVybnMgdm9p ZCBhcyAkJAogICAgZGVjbGFyZQogICAgICAgIHhhaWQgaW50ID0gKHJhbmRvbSgpKjEwMDAwMCpz Y2FsZSk6OmludDsKICAgICAgICBhY2MgcGdiZW5jaF9hY2NvdW50czsKICAgIGJlZ2luCiAgICAg ICAgaWYgKGRlcHRoID4gMCkgdGhlbgogICAgICAgICAgICBzZWxlY3QgKiBmcm9tIHBnYmVuY2hf YWNjb3VudHMgd2hlcmUgYWlkID0geGFpZCBmb3Igc2hhcmUgaW50byBhY2M7CiAgICAgICAgICAg IHBlcmZvcm0gc3VjaF9tdWNoX3NhZmVfZnVuY3Rpb24oZGVwdGggLSAxKTsKICAgICAgICBlbmQg aWY7CiAgICBleGNlcHRpb24gd2hlbiBvdGhlcnMgdGhlbiBSQUlTRSBOT1RJQ0UgJyUgJScsIFNR TEVSUk0sIFNRTFNUQVRFOwogICAgZW5kOwokJCBsYW5ndWFnZSBwbHBnc3FsOwoKLS0gRXhlY3V0 ZSBvdXIgZnVuY3Rpb24gaW4gb25lIGJpZyB0cmFuc2FjdGlvbiB0byBvdmVyZmxvdyB4aWRjYWNo ZSBpbiBiYWNrZW5kcy4KLS0gVmFyeWluZyByZXBldGl0aW9uIGNvdW50IGZyb20gMTAwIHRvIDEw MDAgY2hhbmdlcyBob3QgcG9pbnRzIGZyb20gc3VidHJhbnMgdG8KLS0gbXVsdGl4YWN0LgpjcmVh dGUgb3IgcmVwbGFjZSBmdW5jdGlvbiB0ZXJlYm9uayhzY2FsZSBpbnQpIHJldHVybnMgdm9pZCBh cyAkJApiZWdpbgogICAgaW5zZXJ0IGludG8gcGdiZW5jaF9oaXN0b3J5ICh0aWQsIGJpZCwgYWlk LCBkZWx0YSwgbXRpbWUpIHZhbHVlcyAoMSwyLDMsNCwgbm93KCkpOwogICAgZm9yIGkgaW4gMS4u MTAwIGxvb3AKICAgICAgICBwZXJmb3JtIHN1Y2hfbXVjaF9zYWZlX2Z1bmN0aW9uKDYsIHNjYWxl KTsKICAgIGVuZCBsb29wOwplbmQ7CiQkIGxhbmd1YWdlIHBscGdzcWw7CgotLSB0ZXN0IGl0c2Vs ZjoKLS0gJHBnYmVuY2ggLWYgc2Fyb3YyLnNxbCAtYyAzMDAgLVAgMSAtVCAzMDAwCg== --=-b/N8xfyb4KxZhr06HKzx Content-Disposition: attachment; filename="v21-0002-Divide-SLRU-buffers-into-8-associative-banks.patch" Content-Type: text/x-patch; name="v21-0002-Divide-SLRU-buffers-into-8-associative-banks.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA0MWVjOWQxYzU0MTg0YzUxNWQ1M2VjYzgwMjFjNGE5OTg4MTNmMmE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXkgQm9yb2RpbiA8YW1ib3JvZGluQGFjbS5vcmc+CkRh dGU6IFN1biwgMTEgQXByIDIwMjEgMjE6MTg6MTAgKzAzMDAKU3ViamVjdDogW1BBVENIIHYyMSAy LzJdIERpdmlkZSBTTFJVIGJ1ZmZlcnMgaW50byA4LWFzc29jaWF0aXZlIGJhbmtzCgpXZSB3YW50 IHRvIGVsaW1pbmF0ZSBsaW5lYXIgc2VhcmNoIHdpdGhpbiBTTFJVIGJ1ZmZlcnMuClRvIGRvIHNv IHdlIGRpdmlkZSBTTFJVIGJ1ZmZlcnMgaW50byBiYW5rcy4gRWFjaCBiYW5rIGhvbGRzCmFwcHJv eGltYXRlbHkgOCBidWZmZXJzLiBFYWNoIFNMUlUgcGFnZW5vIG1heSByZXNpZGUgb25seSBpbiBv bmUgYmFuay4KQWRqYWNlbnQgcGFnZW5vcyByZXNpZGUgaW4gZGlmZmVyZW50IGJhbmtzLgotLS0K IHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUuYyB8IDQzICsrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmggICAgICAgICB8ICAyICsr CiAyIGZpbGVzIGNoYW5nZWQsIDQxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0vc2xydS5jCmluZGV4IGI2NWNiNDlkN2ZmLi5hYmM1MzRiYmQwNiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUuYwpAQCAtMTM0LDcgKzEzNCw3IEBAIHR5cGVkZWYgZW51 bQogc3RhdGljIFNscnVFcnJvckNhdXNlIHNscnVfZXJyY2F1c2U7CiBzdGF0aWMgaW50CXNscnVf ZXJybm87CiAKLQorc3RhdGljIHZvaWQgU2xydUFkanVzdE5TbG90cyhpbnQqIG5zbG90cywgaW50 KiBiYW5rc2l6ZSwgaW50KiBiYW5rb2Zmc2V0KTsKIHN0YXRpYyB2b2lkIFNpbXBsZUxydVplcm9M U05zKFNscnVDdGwgY3RsLCBpbnQgc2xvdG5vKTsKIHN0YXRpYyB2b2lkIFNpbXBsZUxydVdhaXRJ TyhTbHJ1Q3RsIGN0bCwgaW50IHNsb3Rubyk7CiBzdGF0aWMgdm9pZCBTbHJ1SW50ZXJuYWxXcml0 ZVBhZ2UoU2xydUN0bCBjdGwsIGludCBzbG90bm8sIFNscnVXcml0ZUFsbCBmZGF0YSk7CkBAIC0x NDgsNiArMTQ4LDMwIEBAIHN0YXRpYyBib29sIFNscnVTY2FuRGlyQ2JEZWxldGVDdXRvZmYoU2xy dUN0bCBjdGwsIGNoYXIgKmZpbGVuYW1lLAogCQkJCQkJCQkJICBpbnQgc2VncGFnZSwgdm9pZCAq ZGF0YSk7CiBzdGF0aWMgdm9pZCBTbHJ1SW50ZXJuYWxEZWxldGVTZWdtZW50KFNscnVDdGwgY3Rs LCBpbnQgc2Vnbm8pOwogCisvKgorICogUGljayBiYW5rIHNpemUgb3B0aW1hbCBmb3IgTi1hc3Np Y2lhdGl2ZSBTTFJVIGJ1ZmZlcnMuCisgKiBXZSBleHBlY3QgYmFuayBudW1iZXIgdG8gYmUgcGlj a2VkIGZyb20gbG93ZXN0IGJpdHMgb2YgcmVxdWVzdGVkIHBhZ2Vuby4KKyAqIFRodXMgd2Ugd2Fu dCBudW1iZXIgb2YgYmFua3MgdG8gYmUgcG93ZXIgb2YgMi4gVGhpcyByb3V0aW5lIGNvbXB1dGVz IG51bWJlcgorICogb2YgYmFua3MgYWltaW5nIHRvIG1ha2UgZWFjaCBiYW5rIG9mIHNpemUgOC4g U28gd2UgY2FuIHBhY2sgcGFnZSBudW1iZXIgYW5kCisgKiBzdGF0dXNlcyBvZiBlYWNoIGJhbmsg b24gb25lIGNhY2hlbGluZS4KKyAqLworc3RhdGljIHZvaWQgU2xydUFkanVzdE5TbG90cyhpbnQq IG5zbG90cywgaW50KiBiYW5rc2l6ZSwgaW50KiBiYW5rb2Zmc2V0KQoreworCWludCBuYmFua3Mg PSAxOworCSpiYW5rc2l6ZSA9ICpuc2xvdHM7CisJKmJhbmtvZmZzZXQgPSAwOworCXdoaWxlICgq YmFua3NpemUgPiAxNSkKKwl7CisJCWlmICgoKmJhbmtzaXplICYgMSkgIT0gMCkKKwkJCSpiYW5r c2l6ZSArPTE7CisJCSpiYW5rc2l6ZSAvPSAyOworCQluYmFua3MgKj0gMjsKKwkJKmJhbmtvZmZz ZXQgKz0gMTsKKwl9CisJZWxvZyhERUJVRzUsICJuc2xvdHMgJWQgYmFua3NpemUgJWQgbmJhbmtz ICVkICIsICpuc2xvdHMsICpiYW5rc2l6ZSwgbmJhbmtzKTsKKwkqbnNsb3RzID0gKmJhbmtzaXpl ICogbmJhbmtzOworfQorCiAvKgogICogSW5pdGlhbGl6YXRpb24gb2Ygc2hhcmVkIG1lbW9yeQog ICovCkBAIC0xNTYsNiArMTgwLDggQEAgU2l6ZQogU2ltcGxlTHJ1U2htZW1TaXplKGludCBuc2xv dHMsIGludCBubHNucykKIHsKIAlTaXplCQlzejsKKwlpbnQgYmFua29mZnNldCwgYmFua3NpemU7 CisJU2xydUFkanVzdE5TbG90cygmbnNsb3RzLCAmYmFua3NpemUsICZiYW5rb2Zmc2V0KTsKIAog CS8qIHdlIGFzc3VtZSBuc2xvdHMgaXNuJ3Qgc28gbGFyZ2UgYXMgdG8gcmlzayBvdmVyZmxvdyAq LwogCXN6ID0gTUFYQUxJR04oc2l6ZW9mKFNscnVTaGFyZWREYXRhKSk7CkBAIC0xOTAsNiArMjE2 LDggQEAgU2ltcGxlTHJ1SW5pdChTbHJ1Q3RsIGN0bCwgY29uc3QgY2hhciAqbmFtZSwgaW50IG5z bG90cywgaW50IG5sc25zLAogewogCVNscnVTaGFyZWQJc2hhcmVkOwogCWJvb2wJCWZvdW5kOwor CWludCBiYW5rb2Zmc2V0LCBiYW5rc2l6ZTsKKwlTbHJ1QWRqdXN0TlNsb3RzKCZuc2xvdHMsICZi YW5rc2l6ZSwgJmJhbmtvZmZzZXQpOwogCiAJc2hhcmVkID0gKFNscnVTaGFyZWQpIFNobWVtSW5p dFN0cnVjdChuYW1lLAogCQkJCQkJCQkJCSAgU2ltcGxlTHJ1U2htZW1TaXplKG5zbG90cywgbmxz bnMpLApAQCAtMjA5LDYgKzIzNyw5IEBAIFNpbXBsZUxydUluaXQoU2xydUN0bCBjdGwsIGNvbnN0 IGNoYXIgKm5hbWUsIGludCBuc2xvdHMsIGludCBubHNucywKIAkJc2hhcmVkLT5Db250cm9sTG9j ayA9IGN0bGxvY2s7CiAKIAkJc2hhcmVkLT5udW1fc2xvdHMgPSBuc2xvdHM7CisJCXNoYXJlZC0+ YmFua19tYXNrID0gICgxIDw8IGJhbmtvZmZzZXQpIC0gMTsKKwkJc2hhcmVkLT5iYW5rX3NpemUg PSBiYW5rc2l6ZTsKKwkJCiAJCXNoYXJlZC0+bHNuX2dyb3Vwc19wZXJfcGFnZSA9IG5sc25zOwog CiAJCXNoYXJlZC0+Y3VyX2xydV9jb3VudCA9IDA7CkBAIC00OTYsMTIgKzUyNywxNCBAQCBTaW1w bGVMcnVSZWFkUGFnZV9SZWFkT25seShTbHJ1Q3RsIGN0bCwgaW50IHBhZ2VubywgVHJhbnNhY3Rp b25JZCB4aWQpCiB7CiAJU2xydVNoYXJlZAlzaGFyZWQgPSBjdGwtPnNoYXJlZDsKIAlpbnQJCQlz bG90bm87CisJaW50CQkJYmFua3N0YXJ0ID0gKHBhZ2VubyAmIHNoYXJlZC0+YmFua19tYXNrKSAq IHNoYXJlZC0+YmFua19zaXplOworCWludAkJCWJhbmtlbmQgPSBiYW5rc3RhcnQgKyBzaGFyZWQt PmJhbmtfc2l6ZTsKIAogCS8qIFRyeSB0byBmaW5kIHRoZSBwYWdlIHdoaWxlIGhvbGRpbmcgb25s eSBzaGFyZWQgbG9jayAqLwogCUxXTG9ja0FjcXVpcmUoc2hhcmVkLT5Db250cm9sTG9jaywgTFdf U0hBUkVEKTsKIAogCS8qIFNlZSBpZiBwYWdlIGlzIGFscmVhZHkgaW4gYSBidWZmZXIgKi8KLQlm b3IgKHNsb3RubyA9IDA7IHNsb3RubyA8IHNoYXJlZC0+bnVtX3Nsb3RzOyBzbG90bm8rKykKKwlm b3IgKHNsb3RubyA9IGJhbmtzdGFydDsgc2xvdG5vIDwgYmFua2VuZDsgc2xvdG5vKyspCiAJewog CQlpZiAoc2hhcmVkLT5wYWdlX251bWJlcltzbG90bm9dID09IHBhZ2VubyAmJgogCQkJc2hhcmVk LT5wYWdlX3N0YXR1c1tzbG90bm9dICE9IFNMUlVfUEFHRV9FTVBUWSAmJgpAQCAtMTAzMCw3ICsx MDYzLDkgQEAgU2xydVNlbGVjdExSVVBhZ2UoU2xydUN0bCBjdGwsIGludCBwYWdlbm8pCiAJCWlu dAkJCWJlc3RfaW52YWxpZF9wYWdlX251bWJlciA9IDA7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQg Ki8KIAogCQkvKiBTZWUgaWYgcGFnZSBhbHJlYWR5IGhhcyBhIGJ1ZmZlciBhc3NpZ25lZCAqLwot CQlmb3IgKHNsb3RubyA9IDA7IHNsb3RubyA8IHNoYXJlZC0+bnVtX3Nsb3RzOyBzbG90bm8rKykK KwkJaW50IGJhbmtzdGFydCA9IChwYWdlbm8gJiBzaGFyZWQtPmJhbmtfbWFzaykgKiBzaGFyZWQt PmJhbmtfc2l6ZTsKKwkJaW50IGJhbmtlbmQgPSBiYW5rc3RhcnQgKyBzaGFyZWQtPmJhbmtfc2l6 ZTsKKwkJZm9yIChzbG90bm8gPSBiYW5rc3RhcnQ7IHNsb3RubyA8IGJhbmtlbmQ7IHNsb3Rubysr KQogCQl7CiAJCQlpZiAoc2hhcmVkLT5wYWdlX251bWJlcltzbG90bm9dID09IHBhZ2VubyAmJgog CQkJCXNoYXJlZC0+cGFnZV9zdGF0dXNbc2xvdG5vXSAhPSBTTFJVX1BBR0VfRU1QVFkpCkBAIC0x MDY1LDcgKzExMDAsNyBAQCBTbHJ1U2VsZWN0TFJVUGFnZShTbHJ1Q3RsIGN0bCwgaW50IHBhZ2Vu bykKIAkJICogbXVsdGlwbGUgcGFnZXMgd2l0aCB0aGUgc2FtZSBscnVfY291bnQuCiAJCSAqLwog CQljdXJfY291bnQgPSAoc2hhcmVkLT5jdXJfbHJ1X2NvdW50KSsrOwotCQlmb3IgKHNsb3RubyA9 IDA7IHNsb3RubyA8IHNoYXJlZC0+bnVtX3Nsb3RzOyBzbG90bm8rKykKKwkJZm9yIChzbG90bm8g PSBiYW5rc3RhcnQ7IHNsb3RubyA8IGJhbmtlbmQ7IHNsb3RubysrKQogCQl7CiAJCQlpbnQJCQl0 aGlzX2RlbHRhOwogCQkJaW50CQkJdGhpc19wYWdlX251bWJlcjsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2FjY2Vzcy9zbHJ1LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc2xydS5oCmluZGV4IGI3 ZTJlMmI1NWUzLi5jYzljYzEwZDI3MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Ns cnUuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc2xydS5oCkBAIC02MSw2ICs2MSw4IEBAIHR5 cGVkZWYgc3RydWN0IFNscnVTaGFyZWREYXRhCiAKIAkvKiBOdW1iZXIgb2YgYnVmZmVycyBtYW5h Z2VkIGJ5IHRoaXMgU0xSVSBzdHJ1Y3R1cmUgKi8KIAlpbnQJCQludW1fc2xvdHM7CisJaW50CQkJ YmFua19zaXplOworCWludAkJCWJhbmtfbWFzazsKIAogCS8qCiAJICogQXJyYXlzIGhvbGRpbmcg aW5mbyBmb3IgZWFjaCBidWZmZXIgc2xvdC4gIFBhZ2UgbnVtYmVyIGlzIHVuZGVmaW5lZAotLSAK Mi4zMC4yCgo= --=-b/N8xfyb4KxZhr06HKzx Content-Disposition: attachment; filename="v21-0001-Make-all-SLRU-buffer-sizes-configurable.patch" Content-Type: text/x-patch; name="v21-0001-Make-all-SLRU-buffer-sizes-configurable.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBlNWYwM2ViYWM4MDBmMDZmNDVjOWVjYjVmNzEzOWM5NjAzMmU3ZmE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXkgQm9yb2RpbiA8YW1ib3JvZGluQGFjbS5vcmc+CkRh dGU6IE1vbiwgMTUgRmViIDIwMjEgMjE6NTE6NTYgKzA1MDAKU3ViamVjdDogW1BBVENIIHYyMSAx LzJdIE1ha2UgYWxsIFNMUlUgYnVmZmVyIHNpemVzIGNvbmZpZ3VyYWJsZS4KClByb3ZpZGUgbmV3 IEdVQ3MgdG8gc2V0IHRoZSBudW1iZXIgb2YgYnVmZmVycywgaW5zdGVhZCBvZiB1c2luZyBoYXJk CmNvZGVkIGRlZmF1bHRzLgoKUmVtb3ZlIHRoZSBsaW1pdHMgb24geGFjdF9idWZmZXJzIGFuZCBj b21taXRfdHNfYnVmZmVycy4gIFRoZSBkZWZhdWx0CnNpemVzIGZvciB0aG9zZSBjYWNoZXMgYXJl IH4wLjIlIGFuZCB+MC4xJSBvZiBzaGFyZWRfYnVmZmVycywgYXMgYmVmb3JlLApidXQgbm93IHRo ZXJlIGlzIG5vIGNhcCBhdCAxMjggYW5kIDE2IGJ1ZmZlcnMgcmVzcGVjdGl2ZWx5ICh1bmxlc3MK dHJhY2tfY29tbWl0X3RpbWVzdGFtcCBpcyBkaXNhYmxlZCwgaW4gdGhlIGxhdHRlciBjYXNlLCB0 aGVuIHdlIG1pZ2h0IGFzCndlbGwga2VlcCBpdCB0aW55KS4gIFNpemVzIG11Y2ggbGFyZ2VyIHRo YW4gdGhlIG9sZCBsaW1pdHMgaGF2ZSBiZWVuCnNob3duIHRvIGJlIHVzZWZ1bCBvbiBtb2Rlcm4g c3lzdGVtcywgYW5kIGFuIGVhcmxpZXIgY29tbWl0IHJlcGxhY2VkIGEKbGluZWFyIHNlYXJjaCB3 aXRoIGEgaGFzaCB0YWJsZSB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIGV4dHJlbWUgY2FzZXMuCgpB dXRob3I6IEFuZHJleSBNLiBCb3JvZGluIDx4NG1tbUB5YW5kZXgtdGVhbS5ydT4KUmV2aWV3ZWQt Ynk6IEFuYXN0YXNpYSBMdWJlbm5pa292YSA8YS5sdWJlbm5pa292YUBwb3N0Z3Jlc3Byby5ydT4K UmV2aWV3ZWQtYnk6IFRvbWFzIFZvbmRyYSA8dG9tYXMudm9uZHJhQDJuZHF1YWRyYW50LmNvbT4K UmV2aWV3ZWQtYnk6IEFsZXhhbmRlciBLb3JvdGtvdiA8YWVrb3JvdGtvdkBnbWFpbC5jb20+ClJl dmlld2VkLWJ5OiBHaWxsZXMgRGFyb2xkIDxnaWxsZXNAZGFyb2xkLm5ldD4KUmV2aWV3ZWQtYnk6 IFRob21hcyBNdW5ybyA8dGhvbWFzLm11bnJvQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6 Ly9wb3N0Z3IuZXMvbS8yQkVDMkIzRi05QjYxLTRDMUQtOUZCNS01RkFCMEYwNUVGODYlNDB5YW5k ZXgtdGVhbS5ydQotLS0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAg ICAgICB8IDEzNSArKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L2Nsb2cuYyAgICAgICAgICAgICB8ICAyMyArKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L2NvbW1pdF90cy5jICAgICAgICB8ICAgNSArCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9t dWx0aXhhY3QuYyAgICAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1 YnRyYW5zLmMgICAgICAgICB8ICAgNSArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYyAg ICAgICAgICAgICAgICAgIHwgICA4ICstCiBzcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGlj YXRlLmMgICAgICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5j ICAgICAgICAgICAgICB8ICAgOCArKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYyAgICAg ICAgICAgICAgICAgIHwgIDk5ICsrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2Mv cG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8ICAgOSArKwogc3JjL2luY2x1ZGUvYWNjZXNzL2Nsb2cu aCAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsrCiBzcmMvaW5jbHVkZS9hY2Nlc3MvY29tbWl0 X3RzLmggICAgICAgICAgICAgICAgfCAgIDEgLQogc3JjL2luY2x1ZGUvYWNjZXNzL211bHRpeGFj dC5oICAgICAgICAgICAgICAgIHwgICA0IC0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmggICAg ICAgICAgICAgICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9hY2Nlc3Mvc3VidHJhbnMuaCAg ICAgICAgICAgICAgICAgfCAgIDIgLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvYXN5bmMuaCAgICAg ICAgICAgICAgICAgIHwgICA1IC0KIHNyYy9pbmNsdWRlL21pc2NhZG1pbi5oICAgICAgICAgICAg ICAgICAgICAgICB8ICAgNyArCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3ByZWRpY2F0ZS5oICAgICAg ICAgICAgICAgfCAgIDQgLQogMTggZmlsZXMgY2hhbmdlZCwgMjk5IGluc2VydGlvbnMoKyksIDQz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCBlMmQ3MjhlMGM0Zi4uOTkxZGJhNjk3NTcgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29u ZmlnLnNnbWwKQEAgLTE5NjEsNiArMTk2MSwxNDEgQEAgaW5jbHVkZV9kaXIgJ2NvbmYuZCcKICAg ICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50 cnkgaWQ9Imd1Yy1tdWx0aXhhY3Qtb2Zmc2V0cy1idWZmZXJzIiB4cmVmbGFiZWw9Im11bHRpeGFj dF9vZmZzZXRzX2J1ZmZlcnMiPgorICAgICAgPHRlcm0+PHZhcm5hbWU+bXVsdGl4YWN0X29mZnNl dHNfYnVmZmVyczwvdmFybmFtZT4gKDx0eXBlPmludGVnZXI8L3R5cGU+KQorICAgICAgPGluZGV4 dGVybT4KKyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5tdWx0aXhhY3Rfb2Zmc2V0c19idWZmZXJz PC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5k ZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgor ICAgICAgICBTcGVjaWZpZXMgdGhlIGFtb3VudCBvZiBzaGFyZWQgbWVtb3J5IHRvIHVzZSB0byBj YWNoZSB0aGUgY29udGVudHMKKyAgICAgICAgb2YgPGxpdGVyYWw+cGdfbXVsdGl4YWN0L29mZnNl dHM8L2xpdGVyYWw+IChzZWUKKyAgICAgICAgPHhyZWYgbGlua2VuZD0icGdkYXRhLWNvbnRlbnRz LXRhYmxlIi8+KS4KKyAgICAgICAgSWYgdGhpcyB2YWx1ZSBpcyBzcGVjaWZpZWQgd2l0aG91dCB1 bml0cywgaXQgaXMgdGFrZW4gYXMgYmxvY2tzLAorICAgICAgICB0aGF0IGlzIDxzeW1ib2w+QkxD S1NaPC9zeW1ib2w+IGJ5dGVzLCB0eXBpY2FsbHkgOGtCLgorICAgICAgICBUaGUgZGVmYXVsdCB2 YWx1ZSBpcyA8bGl0ZXJhbD44PC9saXRlcmFsPi4KKyAgICAgICAgVGhpcyBwYXJhbWV0ZXIgY2Fu IG9ubHkgYmUgc2V0IGF0IHNlcnZlciBzdGFydC4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xp c3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5IGlkPSJn dWMtbXVsdGl4YWN0LW1lbWJlcnMtYnVmZmVycyIgeHJlZmxhYmVsPSJtdWx0aXhhY3RfbWVtYmVy c19idWZmZXJzIj4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPm11bHRpeGFjdF9tZW1iZXJzX2J1ZmZl cnM8L3Zhcm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+Cisg ICAgICAgPHByaW1hcnk+PHZhcm5hbWU+bXVsdGl4YWN0X21lbWJlcnNfYnVmZmVyczwvdmFybmFt ZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4K KyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAg U3BlY2lmaWVzIHRoZSBhbW91bnQgb2Ygc2hhcmVkIG1lbW9yeSB0byB1c2UgdG8gY2FjaGUgdGhl IGNvbnRlbnRzCisgICAgICAgIG9mIDxsaXRlcmFsPnBnX211bHRpeGFjdC9tZW1iZXJzPC9saXRl cmFsPiAoc2VlCisgICAgICAgIDx4cmVmIGxpbmtlbmQ9InBnZGF0YS1jb250ZW50cy10YWJsZSIv PikuCisgICAgICAgIElmIHRoaXMgdmFsdWUgaXMgc3BlY2lmaWVkIHdpdGhvdXQgdW5pdHMsIGl0 IGlzIHRha2VuIGFzIGJsb2NrcywKKyAgICAgICAgdGhhdCBpcyA8c3ltYm9sPkJMQ0tTWjwvc3lt Ym9sPiBieXRlcywgdHlwaWNhbGx5IDhrQi4KKyAgICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgaXMg PGxpdGVyYWw+MTY8L2xpdGVyYWw+LgorICAgICAgICBUaGlzIHBhcmFtZXRlciBjYW4gb25seSBi ZSBzZXQgYXQgc2VydmVyIHN0YXJ0LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+ CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1zdWJ0 cmFucy1idWZmZXJzIiB4cmVmbGFiZWw9InN1YnRyYW5zX2J1ZmZlcnMiPgorICAgICAgPHRlcm0+ PHZhcm5hbWU+c3VidHJhbnNfYnVmZmVyczwvdmFybmFtZT4gKDx0eXBlPmludGVnZXI8L3R5cGU+ KQorICAgICAgPGluZGV4dGVybT4KKyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5zdWJ0cmFuc19i dWZmZXJzPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAg IDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxw YXJhPgorICAgICAgICBTcGVjaWZpZXMgdGhlIGFtb3VudCBvZiBzaGFyZWQgbWVtb3J5IHRvIHVz ZSB0byBjYWNoZSB0aGUgY29udGVudHMKKyAgICAgICAgb2YgPGxpdGVyYWw+cGdfc3VidHJhbnM8 L2xpdGVyYWw+IChzZWUKKyAgICAgICAgPHhyZWYgbGlua2VuZD0icGdkYXRhLWNvbnRlbnRzLXRh YmxlIi8+KS4KKyAgICAgICAgSWYgdGhpcyB2YWx1ZSBpcyBzcGVjaWZpZWQgd2l0aG91dCB1bml0 cywgaXQgaXMgdGFrZW4gYXMgYmxvY2tzLAorICAgICAgICB0aGF0IGlzIDxzeW1ib2w+QkxDS1Na PC9zeW1ib2w+IGJ5dGVzLCB0eXBpY2FsbHkgOGtCLgorICAgICAgICBUaGUgZGVmYXVsdCB2YWx1 ZSBpcyA8bGl0ZXJhbD44PC9saXRlcmFsPi4KKyAgICAgICAgVGhpcyBwYXJhbWV0ZXIgY2FuIG9u bHkgYmUgc2V0IGF0IHNlcnZlciBzdGFydC4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3Rp dGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMt bm90aWZ5LWJ1ZmZlcnMiIHhyZWZsYWJlbD0ibm90aWZ5X2J1ZmZlcnMiPgorICAgICAgPHRlcm0+ PHZhcm5hbWU+bm90aWZ5X2J1ZmZlcnM8L3Zhcm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90eXBlPikK KyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+bm90aWZ5X2J1ZmZl cnM8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9p bmRleHRlcm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+ CisgICAgICAgIFNwZWNpZmllcyB0aGUgYW1vdW50IG9mIHNoYXJlZCBtZW1vcnkgdG8gdXNlIHRv IGNhY2hlIHRoZSBjb250ZW50cworICAgICAgICBvZiA8bGl0ZXJhbD5wZ19ub3RpZnk8L2xpdGVy YWw+IChzZWUKKyAgICAgICAgPHhyZWYgbGlua2VuZD0icGdkYXRhLWNvbnRlbnRzLXRhYmxlIi8+ KS4KKyAgICAgICAgSWYgdGhpcyB2YWx1ZSBpcyBzcGVjaWZpZWQgd2l0aG91dCB1bml0cywgaXQg aXMgdGFrZW4gYXMgYmxvY2tzLAorICAgICAgICB0aGF0IGlzIDxzeW1ib2w+QkxDS1NaPC9zeW1i b2w+IGJ5dGVzLCB0eXBpY2FsbHkgOGtCLgorICAgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA8 bGl0ZXJhbD44PC9saXRlcmFsPi4KKyAgICAgICAgVGhpcyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUg c2V0IGF0IHNlcnZlciBzdGFydC4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgor ICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc2VyaWFs LWJ1ZmZlcnMiIHhyZWZsYWJlbD0ic2VyaWFsX2J1ZmZlcnMiPgorICAgICAgPHRlcm0+PHZhcm5h bWU+c2VyaWFsX2J1ZmZlcnM8L3Zhcm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90eXBlPikKKyAgICAg IDxpbmRleHRlcm0+CisgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+c2VyaWFsX2J1ZmZlcnM8L3Zh cm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRl cm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAg ICAgIFNwZWNpZmllcyB0aGUgYW1vdW50IG9mIHNoYXJlZCBtZW1vcnkgdG8gdXNlIHRvIGNhY2hl IHRoZSBjb250ZW50cworICAgICAgICBvZiA8bGl0ZXJhbD5wZ19zZXJpYWw8L2xpdGVyYWw+IChz ZWUKKyAgICAgICAgPHhyZWYgbGlua2VuZD0icGdkYXRhLWNvbnRlbnRzLXRhYmxlIi8+KS4KKyAg ICAgICAgSWYgdGhpcyB2YWx1ZSBpcyBzcGVjaWZpZWQgd2l0aG91dCB1bml0cywgaXQgaXMgdGFr ZW4gYXMgYmxvY2tzLAorICAgICAgICB0aGF0IGlzIDxzeW1ib2w+QkxDS1NaPC9zeW1ib2w+IGJ5 dGVzLCB0eXBpY2FsbHkgOGtCLgorICAgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA8bGl0ZXJh bD4xNjwvbGl0ZXJhbD4uCisgICAgICAgIFRoaXMgcGFyYW1ldGVyIGNhbiBvbmx5IGJlIHNldCBh dCBzZXJ2ZXIgc3RhcnQuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAg PC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLXhhY3QtYnVmZmVy cyIgeHJlZmxhYmVsPSJ4YWN0X2J1ZmZlcnMiPgorICAgICAgPHRlcm0+PHZhcm5hbWU+eGFjdF9i dWZmZXJzPC92YXJuYW1lPiAoPHR5cGU+aW50ZWdlcjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJt PgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnhhY3RfYnVmZmVyczwvdmFybmFtZT4gY29uZmln dXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwv dGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU3BlY2lmaWVz IHRoZSBhbW91bnQgb2Ygc2hhcmVkIG1lbW9yeSB0byB1c2UgdG8gY2FjaGUgdGhlIGNvbnRlbnRz CisgICAgICAgIG9mIDxsaXRlcmFsPnBnX3hhY3Q8L2xpdGVyYWw+IChzZWUKKyAgICAgICAgPHhy ZWYgbGlua2VuZD0icGdkYXRhLWNvbnRlbnRzLXRhYmxlIi8+KS4KKyAgICAgICAgSWYgdGhpcyB2 YWx1ZSBpcyBzcGVjaWZpZWQgd2l0aG91dCB1bml0cywgaXQgaXMgdGFrZW4gYXMgYmxvY2tzLAor ICAgICAgICB0aGF0IGlzIDxzeW1ib2w+QkxDS1NaPC9zeW1ib2w+IGJ5dGVzLCB0eXBpY2FsbHkg OGtCLgorICAgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA8bGl0ZXJhbD4wPC9saXRlcmFsPiwg d2hpY2ggcmVxdWVzdHMKKyAgICAgICAgPHZhcm5hbWU+c2hhcmVkX2J1ZmZlcnM8L3Zhcm5hbWU+ IC8gNTEyLCBidXQgbm90IGZld2VyIHRoYW4gNCBibG9ja3MuCisgICAgICAgIFRoaXMgcGFyYW1l dGVyIGNhbiBvbmx5IGJlIHNldCBhdCBzZXJ2ZXIgc3RhcnQuCisgICAgICAgPC9wYXJhPgorICAg ICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRy eSBpZD0iZ3VjLWNvbW1pdC10cy1idWZmZXJzIiB4cmVmbGFiZWw9ImNvbW1pdF90c19idWZmZXJz Ij4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPmNvbW1pdF90c19idWZmZXJzPC92YXJuYW1lPiAoPHR5 cGU+aW50ZWdlcjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5Pjx2 YXJuYW1lPmNvbW1pdF90c19idWZmZXJzPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRl cjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxp c3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBTcGVjaWZpZXMgdGhlIGFtb3VudCBvZiBt ZW1vcnkgdG8gdXNlIHRvIGNhY2hlIHRoZSBjb3RlbnRzIG9mCisgICAgICAgIDxsaXRlcmFsPnBn X2NvbW1pdF90czwvbGl0ZXJhbD4gKHNlZQorICAgICAgICA8eHJlZiBsaW5rZW5kPSJwZ2RhdGEt Y29udGVudHMtdGFibGUiLz4pLgorICAgICAgICBJZiB0aGlzIHZhbHVlIGlzIHNwZWNpZmllZCB3 aXRob3V0IHVuaXRzLCBpdCBpcyB0YWtlbiBhcyBibG9ja3MsCisgICAgICAgIHRoYXQgaXMgPHN5 bWJvbD5CTENLU1o8L3N5bWJvbD4gYnl0ZXMsIHR5cGljYWxseSA4a0IuCisgICAgICAgIFRoZSBk ZWZhdWx0IHZhbHVlIGlzIDxsaXRlcmFsPjA8L2xpdGVyYWw+LCB3aGljaCByZXF1ZXN0cworICAg ICAgICA8dmFybmFtZT5zaGFyZWRfYnVmZmVyczwvdmFybmFtZT4gLyAxMDI0LCBidXQgbm90IGZl d2VyIHRoYW4gNCBibG9ja3MuCisgICAgICAgIFRoaXMgcGFyYW1ldGVyIGNhbiBvbmx5IGJlIHNl dCBhdCBzZXJ2ZXIgc3RhcnQuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAg ICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLW1heC1zdGFj ay1kZXB0aCIgeHJlZmxhYmVsPSJtYXhfc3RhY2tfZGVwdGgiPgogICAgICAgPHRlcm0+PHZhcm5h bWU+bWF4X3N0YWNrX2RlcHRoPC92YXJuYW1lPiAoPHR5cGU+aW50ZWdlcjwvdHlwZT4pCiAgICAg ICA8aW5kZXh0ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xv Zy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5jCmluZGV4IDNkOTA4OGE3MDQ4 Li5lOTZhNzVkNjk1OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xv Zy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYwpAQCAtNTgsOCArNTgs OCBAQAogCiAvKiBXZSBuZWVkIHR3byBiaXRzIHBlciB4YWN0LCBzbyBmb3VyIHhhY3RzIGZpdCBp biBhIGJ5dGUgKi8KICNkZWZpbmUgQ0xPR19CSVRTX1BFUl9YQUNUCTIKLSNkZWZpbmUgQ0xPR19Y QUNUU19QRVJfQllURSA0Ci0jZGVmaW5lIENMT0dfWEFDVFNfUEVSX1BBR0UgKEJMQ0tTWiAqIENM T0dfWEFDVFNfUEVSX0JZVEUpCitTdGF0aWNBc3NlcnREZWNsKChDTE9HX0JJVFNfUEVSX1hBQ1Qg KiBDTE9HX1hBQ1RTX1BFUl9CWVRFKSA9PSBCSVRTX1BFUl9CWVRFLAorCQkJCSAiQ0xPR19CSVRT X1BFUl9YQUNUIGFuZCBDTE9HX1hBQ1RTX1BFUl9CWVRFIGFyZSBpbmNvbnNpc3RlbnQiKTsKICNk ZWZpbmUgQ0xPR19YQUNUX0JJVE1BU0sJKCgxIDw8IENMT0dfQklUU19QRVJfWEFDVCkgLSAxKQog CiAjZGVmaW5lIFRyYW5zYWN0aW9uSWRUb1BhZ2UoeGlkKQkoKHhpZCkgLyAoVHJhbnNhY3Rpb25J ZCkgQ0xPR19YQUNUU19QRVJfUEFHRSkKQEAgLTY2NSwyMyArNjY1LDE2IEBAIFRyYW5zYWN0aW9u SWRHZXRTdGF0dXMoVHJhbnNhY3Rpb25JZCB4aWQsIFhMb2dSZWNQdHIgKmxzbikKIC8qCiAgKiBO dW1iZXIgb2Ygc2hhcmVkIENMT0cgYnVmZmVycy4KICAqCi0gKiBPbiBsYXJnZXIgbXVsdGktcHJv Y2Vzc29yIHN5c3RlbXMsIGl0IGlzIHBvc3NpYmxlIHRvIGhhdmUgbWFueSBDTE9HIHBhZ2UKLSAq IHJlcXVlc3RzIGluIGZsaWdodCBhdCBvbmUgdGltZSB3aGljaCBjb3VsZCBsZWFkIHRvIGRpc2sg YWNjZXNzIGZvciBDTE9HCi0gKiBwYWdlIGlmIHRoZSByZXF1aXJlZCBwYWdlIGlzIG5vdCBmb3Vu ZCBpbiBtZW1vcnkuICBUZXN0aW5nIHJldmVhbGVkIHRoYXQgd2UKLSAqIGNhbiBnZXQgdGhlIGJl c3QgcGVyZm9ybWFuY2UgYnkgaGF2aW5nIDEyOCBDTE9HIGJ1ZmZlcnMsIG1vcmUgdGhhbiB0aGF0 IGl0Ci0gKiBkb2Vzbid0IGltcHJvdmUgcGVyZm9ybWFuY2UuCi0gKgotICogVW5jb25kaXRpb25h bGx5IGtlZXBpbmcgdGhlIG51bWJlciBvZiBDTE9HIGJ1ZmZlcnMgdG8gMTI4IGRpZCBub3Qgc2Vl bSBsaWtlCi0gKiBhIGdvb2QgaWRlYSwgYmVjYXVzZSBpdCB3b3VsZCBpbmNyZWFzZSB0aGUgbWlu aW11bSBhbW91bnQgb2Ygc2hhcmVkIG1lbW9yeQotICogcmVxdWlyZWQgdG8gc3RhcnQsIHdoaWNo IGNvdWxkIGJlIGEgcHJvYmxlbSBmb3IgcGVvcGxlIHJ1bm5pbmcgdmVyeSBzbWFsbAotICogY29u ZmlndXJhdGlvbnMuICBUaGUgZm9sbG93aW5nIGZvcm11bGEgc2VlbXMgdG8gcmVwcmVzZW50IGEg cmVhc29uYWJsZQotICogY29tcHJvbWlzZTogcGVvcGxlIHdpdGggdmVyeSBsb3cgdmFsdWVzIGZv ciBzaGFyZWRfYnVmZmVycyB3aWxsIGdldCBmZXdlcgotICogQ0xPRyBidWZmZXJzIGFzIHdlbGws IGFuZCBldmVyeW9uZSBlbHNlIHdpbGwgZ2V0IDEyOC4KKyAqIEJ5IGRlZmF1bHQsIHdlJ2xsIHVz ZSAyTUIgb2YgZm9yIGV2ZXJ5IDFHQiBvZiBzaGFyZWQgYnVmZmVycywgdXAgdG8gdGhlCisgKiB0 aGVvcmV0aWNhbCBtYXhpbXVtIHVzZWZ1bCB2YWx1ZSwgYnV0IGFsd2F5cyBhdCBsZWFzdCA0IGJ1 ZmZlcnMuCiAgKi8KIFNpemUKIENMT0dTaG1lbUJ1ZmZlcnModm9pZCkKIHsKLQlyZXR1cm4gTWlu KDEyOCwgTWF4KDQsIE5CdWZmZXJzIC8gNTEyKSk7CisJLyogVXNlIGNvbmZpZ3VyZWQgdmFsdWUg aWYgcHJvdmlkZWQuICovCisJaWYgKHhhY3RfYnVmZmVycyA+IDApCisJCXJldHVybiBNYXgoNCwg eGFjdF9idWZmZXJzKTsKKwlyZXR1cm4gTWluKENMT0dfTUFYX0FMTE9XRURfQlVGRkVSUywgTWF4 KDQsIE5CdWZmZXJzIC8gNTEyKSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS9jb21taXRfdHMuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nv bW1pdF90cy5jCmluZGV4IDRkYzhkNDAyYmQzLi40OGNhNTAwNzQ3NSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMKQEAgLTUxNCwxMCArNTE0LDE1IEBAIHBnX3hhY3RfY29t bWl0X3RpbWVzdGFtcF9vcmlnaW4oUEdfRlVOQ1RJT05fQVJHUykKICAqIFdlIHVzZSBhIHZlcnkg c2ltaWxhciBsb2dpYyBhcyBmb3IgdGhlIG51bWJlciBvZiBDTE9HIGJ1ZmZlcnMgKGV4Y2VwdCB3 ZQogICogc2NhbGUgdXAgdHdpY2UgYXMgZmFzdCB3aXRoIHNoYXJlZCBidWZmZXJzLCBhbmQgdGhl IG1heGltdW0gaXMgdHdpY2UgYXMKICAqIGhpZ2gpOyBzZWUgY29tbWVudHMgaW4gQ0xPR1NobWVt QnVmZmVycy4KKyAqIEJ5IGRlZmF1bHQsIHdlJ2xsIHVzZSAxTUIgb2YgZm9yIGV2ZXJ5IDFHQiBv ZiBzaGFyZWQgYnVmZmVycywgdXAgdG8gdGhlCisgKiBtYXhpbXVtIHZhbHVlIHRoYXQgc2xydS5j IHdpbGwgYWxsb3csIGJ1dCBhbHdheXMgYXQgbGVhc3QgNCBidWZmZXJzLgogICovCiBTaXplCiBD b21taXRUc1NobWVtQnVmZmVycyh2b2lkKQogeworCS8qIFVzZSBjb25maWd1cmVkIHZhbHVlIGlm IHByb3ZpZGVkLiAqLworCWlmIChjb21taXRfdHNfYnVmZmVycyA+IDApCisJCXJldHVybiBNYXgo NCwgY29tbWl0X3RzX2J1ZmZlcnMpOwogCXJldHVybiBNaW4oMjU2LCBNYXgoNCwgTkJ1ZmZlcnMg LyAyNTYpKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVs dGl4YWN0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYwppbmRleCA4 ZjdkMTI5NTBlNS4uNzFkMTdlMzM4ZTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL211bHRpeGFjdC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRp eGFjdC5jCkBAIC0xODM0LDggKzE4MzQsOCBAQCBNdWx0aVhhY3RTaG1lbVNpemUodm9pZCkKIAkJ CSBtdWxfc2l6ZShzaXplb2YoTXVsdGlYYWN0SWQpICogMiwgTWF4T2xkZXN0U2xvdCkpCiAKIAlz aXplID0gU0hBUkVEX01VTFRJWEFDVF9TVEFURV9TSVpFOwotCXNpemUgPSBhZGRfc2l6ZShzaXpl LCBTaW1wbGVMcnVTaG1lbVNpemUoTlVNX01VTFRJWEFDVE9GRlNFVF9CVUZGRVJTLCAwKSk7Ci0J c2l6ZSA9IGFkZF9zaXplKHNpemUsIFNpbXBsZUxydVNobWVtU2l6ZShOVU1fTVVMVElYQUNUTUVN QkVSX0JVRkZFUlMsIDApKTsKKwlzaXplID0gYWRkX3NpemUoc2l6ZSwgU2ltcGxlTHJ1U2htZW1T aXplKG11bHRpeGFjdF9vZmZzZXRzX2J1ZmZlcnMsIDApKTsKKwlzaXplID0gYWRkX3NpemUoc2l6 ZSwgU2ltcGxlTHJ1U2htZW1TaXplKG11bHRpeGFjdF9tZW1iZXJzX2J1ZmZlcnMsIDApKTsKIAog CXJldHVybiBzaXplOwogfQpAQCAtMTg1MSwxMyArMTg1MSwxMyBAQCBNdWx0aVhhY3RTaG1lbUlu aXQodm9pZCkKIAlNdWx0aVhhY3RNZW1iZXJDdGwtPlBhZ2VQcmVjZWRlcyA9IE11bHRpWGFjdE1l bWJlclBhZ2VQcmVjZWRlczsKIAogCVNpbXBsZUxydUluaXQoTXVsdGlYYWN0T2Zmc2V0Q3RsLAot CQkJCSAgIk11bHRpWGFjdE9mZnNldCIsIE5VTV9NVUxUSVhBQ1RPRkZTRVRfQlVGRkVSUywgMCwK KwkJCQkgICJNdWx0aVhhY3RPZmZzZXQiLCBtdWx0aXhhY3Rfb2Zmc2V0c19idWZmZXJzLCAwLAog CQkJCSAgTXVsdGlYYWN0T2Zmc2V0U0xSVUxvY2ssICJwZ19tdWx0aXhhY3Qvb2Zmc2V0cyIsCiAJ CQkJICBMV1RSQU5DSEVfTVVMVElYQUNUT0ZGU0VUX0JVRkZFUiwKIAkJCQkgIFNZTkNfSEFORExF Ul9NVUxUSVhBQ1RfT0ZGU0VUKTsKIAlTbHJ1UGFnZVByZWNlZGVzVW5pdFRlc3RzKE11bHRpWGFj dE9mZnNldEN0bCwgTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0UpOwogCVNpbXBsZUxydUluaXQo TXVsdGlYYWN0TWVtYmVyQ3RsLAotCQkJCSAgIk11bHRpWGFjdE1lbWJlciIsIE5VTV9NVUxUSVhB Q1RNRU1CRVJfQlVGRkVSUywgMCwKKwkJCQkgICJNdWx0aVhhY3RNZW1iZXIiLCBtdWx0aXhhY3Rf b2Zmc2V0c19idWZmZXJzLCAwLAogCQkJCSAgTXVsdGlYYWN0TWVtYmVyU0xSVUxvY2ssICJwZ19t dWx0aXhhY3QvbWVtYmVycyIsCiAJCQkJICBMV1RSQU5DSEVfTVVMVElYQUNUTUVNQkVSX0JVRkZF UiwKIAkJCQkgIFNZTkNfSEFORExFUl9NVUxUSVhBQ1RfTUVNQkVSKTsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS9zdWJ0cmFucy5jCmluZGV4IDY2ZDM1NDgxNTUyLi44NjJiMGVhYjk2NiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc3VidHJhbnMuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0cmFucy5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk ZSAiYWNjZXNzL3NscnUuaCIKICNpbmNsdWRlICJhY2Nlc3Mvc3VidHJhbnMuaCIKICNpbmNsdWRl ICJhY2Nlc3MvdHJhbnNhbS5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBn X3RyYWNlLmgiCiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgogCkBAIC0xODQsMTQgKzE4NSwx NCBAQCBTdWJUcmFuc0dldFRvcG1vc3RUcmFuc2FjdGlvbihUcmFuc2FjdGlvbklkIHhpZCkKIFNp emUKIFNVQlRSQU5TU2htZW1TaXplKHZvaWQpCiB7Ci0JcmV0dXJuIFNpbXBsZUxydVNobWVtU2l6 ZShOVU1fU1VCVFJBTlNfQlVGRkVSUywgMCk7CisJcmV0dXJuIFNpbXBsZUxydVNobWVtU2l6ZShz dWJ0cmFuc19idWZmZXJzLCAwKTsKIH0KIAogdm9pZAogU1VCVFJBTlNTaG1lbUluaXQodm9pZCkK IHsKIAlTdWJUcmFuc0N0bC0+UGFnZVByZWNlZGVzID0gU3ViVHJhbnNQYWdlUHJlY2VkZXM7Ci0J U2ltcGxlTHJ1SW5pdChTdWJUcmFuc0N0bCwgIlN1YnRyYW5zIiwgTlVNX1NVQlRSQU5TX0JVRkZF UlMsIDAsCisJU2ltcGxlTHJ1SW5pdChTdWJUcmFuc0N0bCwgIlN1YnRyYW5zIiwgc3VidHJhbnNf YnVmZmVycywgMCwKIAkJCQkgIFN1YnRyYW5zU0xSVUxvY2ssICJwZ19zdWJ0cmFucyIsCiAJCQkJ ICBMV1RSQU5DSEVfU1VCVFJBTlNfQlVGRkVSLCBTWU5DX0hBTkRMRVJfTk9ORSk7CiAJU2xydVBh Z2VQcmVjZWRlc1VuaXRUZXN0cyhTdWJUcmFuc0N0bCwgU1VCVFJBTlNfWEFDVFNfUEVSX1BBR0Up OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2FzeW5jLmMKaW5kZXggM2UxYjkyZGYwMzAuLjZiOTgwNjAzMzAyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2FzeW5jLmMKQEAgLTExNyw3ICsxMTcsNyBAQAogICogZnJvbnRlbmQgZHVyaW5nIHN0YXJ0 dXAuKSAgVGhlIGFib3ZlIGRlc2lnbiBndWFyYW50ZWVzIHRoYXQgbm90aWZpZXMgZnJvbQogICog b3RoZXIgYmFja2VuZHMgd2lsbCBuZXZlciBiZSBtaXNzZWQgYnkgaWdub3Jpbmcgc2VsZi1ub3Rp Zmllcy4KICAqCi0gKiBUaGUgYW1vdW50IG9mIHNoYXJlZCBtZW1vcnkgdXNlZCBmb3Igbm90aWZ5 IG1hbmFnZW1lbnQgKE5VTV9OT1RJRllfQlVGRkVSUykKKyAqIFRoZSBhbW91bnQgb2Ygc2hhcmVk IG1lbW9yeSB1c2VkIGZvciBub3RpZnkgbWFuYWdlbWVudCAobm90aWZ5X2J1ZmZlcnMpCiAgKiBj YW4gYmUgdmFyaWVkIHdpdGhvdXQgYWZmZWN0aW5nIGFueXRoaW5nIGJ1dCBwZXJmb3JtYW5jZS4g IFRoZSBtYXhpbXVtCiAgKiBhbW91bnQgb2Ygbm90aWZpY2F0aW9uIGRhdGEgdGhhdCBjYW4gYmUg cXVldWVkIGF0IG9uZSB0aW1lIGlzIGRldGVybWluZWQKICAqIGJ5IHNscnUuYydzIHdyYXBhcm91 bmQgbGltaXQ7IHNlZSBRVUVVRV9NQVhfUEFHRSBiZWxvdy4KQEAgLTIzNSw3ICsyMzUsNyBAQCB0 eXBlZGVmIHN0cnVjdCBRdWV1ZVBvc2l0aW9uCiAgKgogICogUmVzaXN0IHRoZSB0ZW1wdGF0aW9u IHRvIG1ha2UgdGhpcyByZWFsbHkgbGFyZ2UuICBXaGlsZSB0aGF0IHdvdWxkIHNhdmUKICAqIHdv cmsgaW4gc29tZSBwbGFjZXMsIGl0IHdvdWxkIGFkZCBjb3N0IGluIG90aGVycy4gIEluIHBhcnRp Y3VsYXIsIHRoaXMKLSAqIHNob3VsZCBsaWtlbHkgYmUgbGVzcyB0aGFuIE5VTV9OT1RJRllfQlVG RkVSUywgdG8gZW5zdXJlIHRoYXQgYmFja2VuZHMKKyAqIHNob3VsZCBsaWtlbHkgYmUgbGVzcyB0 aGFuIG5vdGlmeV9idWZmZXJzLCB0byBlbnN1cmUgdGhhdCBiYWNrZW5kcwogICogY2F0Y2ggdXAg YmVmb3JlIHRoZSBwYWdlcyB0aGV5J2xsIG5lZWQgdG8gcmVhZCBmYWxsIG91dCBvZiBTTFJVIGNh Y2hlLgogICovCiAjZGVmaW5lIFFVRVVFX0NMRUFOVVBfREVMQVkgNApAQCAtNTIxLDcgKzUyMSw3 IEBAIEFzeW5jU2htZW1TaXplKHZvaWQpCiAJc2l6ZSA9IG11bF9zaXplKE1heEJhY2tlbmRzICsg MSwgc2l6ZW9mKFF1ZXVlQmFja2VuZFN0YXR1cykpOwogCXNpemUgPSBhZGRfc2l6ZShzaXplLCBv ZmZzZXRvZihBc3luY1F1ZXVlQ29udHJvbCwgYmFja2VuZCkpOwogCi0Jc2l6ZSA9IGFkZF9zaXpl KHNpemUsIFNpbXBsZUxydVNobWVtU2l6ZShOVU1fTk9USUZZX0JVRkZFUlMsIDApKTsKKwlzaXpl ID0gYWRkX3NpemUoc2l6ZSwgU2ltcGxlTHJ1U2htZW1TaXplKG5vdGlmeV9idWZmZXJzLCAwKSk7 CiAKIAlyZXR1cm4gc2l6ZTsKIH0KQEAgLTU2OSw3ICs1NjksNyBAQCBBc3luY1NobWVtSW5pdCh2 b2lkKQogCSAqIFNldCB1cCBTTFJVIG1hbmFnZW1lbnQgb2YgdGhlIHBnX25vdGlmeSBkYXRhLgog CSAqLwogCU5vdGlmeUN0bC0+UGFnZVByZWNlZGVzID0gYXN5bmNRdWV1ZVBhZ2VQcmVjZWRlczsK LQlTaW1wbGVMcnVJbml0KE5vdGlmeUN0bCwgIk5vdGlmeSIsIE5VTV9OT1RJRllfQlVGRkVSUywg MCwKKwlTaW1wbGVMcnVJbml0KE5vdGlmeUN0bCwgIk5vdGlmeSIsIG5vdGlmeV9idWZmZXJzLCAw LAogCQkJCSAgTm90aWZ5U0xSVUxvY2ssICJwZ19ub3RpZnkiLCBMV1RSQU5DSEVfTk9USUZZX0JV RkZFUiwKIAkJCQkgIFNZTkNfSEFORExFUl9OT05FKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvc3RvcmFnZS9sbWdyL3ByZWRpY2F0ZS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3By ZWRpY2F0ZS5jCmluZGV4IDUxMzZkYTZlYTM2Li41NGEwZDY2ZDU3OSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvc3RvcmFnZS9sbWdyL3ByZWRpY2F0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvbG1nci9wcmVkaWNhdGUuYwpAQCAtODcyLDcgKzg3Miw3IEBAIFNlcmlhbEluaXQodm9pZCkK IAkgKi8KIAlTZXJpYWxTbHJ1Q3RsLT5QYWdlUHJlY2VkZXMgPSBTZXJpYWxQYWdlUHJlY2VkZXNM b2dpY2FsbHk7CiAJU2ltcGxlTHJ1SW5pdChTZXJpYWxTbHJ1Q3RsLCAiU2VyaWFsIiwKLQkJCQkg IE5VTV9TRVJJQUxfQlVGRkVSUywgMCwgU2VyaWFsU0xSVUxvY2ssICJwZ19zZXJpYWwiLAorCQkJ CSAgc2VyaWFsX2J1ZmZlcnMsIDAsIFNlcmlhbFNMUlVMb2NrLCAicGdfc2VyaWFsIiwKIAkJCQkg IExXVFJBTkNIRV9TRVJJQUxfQlVGRkVSLCBTWU5DX0hBTkRMRVJfTk9ORSk7CiAjaWZkZWYgVVNF X0FTU0VSVF9DSEVDS0lORwogCVNlcmlhbFBhZ2VQcmVjZWRlc0xvZ2ljYWxseVVuaXRUZXN0cygp OwpAQCAtMTM5Niw3ICsxMzk2LDcgQEAgUHJlZGljYXRlTG9ja1NobWVtU2l6ZSh2b2lkKQogCiAJ LyogU2hhcmVkIG1lbW9yeSBzdHJ1Y3R1cmVzIGZvciBTTFJVIHRyYWNraW5nIG9mIG9sZCBjb21t aXR0ZWQgeGlkcy4gKi8KIAlzaXplID0gYWRkX3NpemUoc2l6ZSwgc2l6ZW9mKFNlcmlhbENvbnRy b2xEYXRhKSk7Ci0Jc2l6ZSA9IGFkZF9zaXplKHNpemUsIFNpbXBsZUxydVNobWVtU2l6ZShOVU1f U0VSSUFMX0JVRkZFUlMsIDApKTsKKwlzaXplID0gYWRkX3NpemUoc2l6ZSwgU2ltcGxlTHJ1U2ht ZW1TaXplKHNlcmlhbF9idWZmZXJzLCAwKSk7CiAKIAlyZXR1cm4gc2l6ZTsKIH0KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv aW5pdC9nbG9iYWxzLmMKaW5kZXggMWE1ZDI5YWM5YmEuLmNjMGNhOTFhOGIzIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9pbml0L2dsb2JhbHMuYwpAQCAtMTUxLDMgKzE1MSwxMSBAQCBpbnQ2NAkJVmFjdXVtUGFnZURp cnR5ID0gMDsKIAogaW50CQkJVmFjdXVtQ29zdEJhbGFuY2UgPSAwOwkvKiB3b3JraW5nIHN0YXRl IGZvciB2YWN1dW0gKi8KIGJvb2wJCVZhY3V1bUNvc3RBY3RpdmUgPSBmYWxzZTsKKworaW50CQkJ bXVsdGl4YWN0X29mZnNldHNfYnVmZmVycyA9IDg7CitpbnQJCQltdWx0aXhhY3RfbWVtYmVyc19i dWZmZXJzID0gMTY7CitpbnQJCQlzdWJ0cmFuc19idWZmZXJzID0gMzI7CitpbnQJCQlub3RpZnlf YnVmZmVycyA9IDg7CitpbnQJCQlzZXJpYWxfYnVmZmVycyA9IDE2OworaW50CQkJeGFjdF9idWZm ZXJzID0gMDsKK2ludAkJCWNvbW1pdF90c19idWZmZXJzID0gMDsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jCmlu ZGV4IGFmNGExYzMwNjg5Li4yZDkxMjFiOTI2NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jCkBAIC0zMiw5 ICszMiwxMSBAQAogI2VuZGlmCiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKKyNpbmNsdWRlICJhY2Nl c3MvY2xvZy5oIgogI2luY2x1ZGUgImFjY2Vzcy9jb21taXRfdHMuaCIKICNpbmNsdWRlICJhY2Nl c3MvZ2luLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3JtZ3IuaCIKKyNpbmNsdWRlICJhY2Nlc3Mvc2xy dS5oIgogI2luY2x1ZGUgImFjY2Vzcy90YWJsZWFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RvYXN0 X2NvbXByZXNzaW9uLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RyYW5zYW0uaCIKQEAgLTIwOSw2ICsy MTEsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqc2hvd190Y3Bfa2VlcGFsaXZlc19pZGxlKHZvaWQp Owogc3RhdGljIGNvbnN0IGNoYXIgKnNob3dfdGNwX2tlZXBhbGl2ZXNfaW50ZXJ2YWwodm9pZCk7 CiBzdGF0aWMgY29uc3QgY2hhciAqc2hvd190Y3Bfa2VlcGFsaXZlc19jb3VudCh2b2lkKTsKIHN0 YXRpYyBjb25zdCBjaGFyICpzaG93X3RjcF91c2VyX3RpbWVvdXQodm9pZCk7CitzdGF0aWMgY29u c3QgY2hhciAqc2hvd194YWN0X2J1ZmZlcnModm9pZCk7CitzdGF0aWMgY29uc3QgY2hhciAqc2hv d19jb21taXRfdHNfYnVmZmVycyh2b2lkKTsKIHN0YXRpYyBib29sIGNoZWNrX21heGNvbm5lY3Rp b25zKGludCAqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpOwogc3RhdGlj IGJvb2wgY2hlY2tfbWF4X3dvcmtlcl9wcm9jZXNzZXMoaW50ICpuZXd2YWwsIHZvaWQgKipleHRy YSwgR3VjU291cmNlIHNvdXJjZSk7CiBzdGF0aWMgYm9vbCBjaGVja19hdXRvdmFjdXVtX21heF93 b3JrZXJzKGludCAqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpOwpAQCAt MjQyNiw2ICsyNDMwLDgzIEBAIHN0YXRpYyBzdHJ1Y3QgY29uZmlnX2ludCBDb25maWd1cmVOYW1l c0ludFtdID0KIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCiAKKwl7CisJCXsibXVsdGl4YWN0X29m ZnNldHNfYnVmZmVycyIsIFBHQ19QT1NUTUFTVEVSLCBSRVNPVVJDRVNfTUVNLAorCQkJZ2V0dGV4 dF9ub29wKCJTZXRzIHRoZSBudW1iZXIgb2Ygc2hhcmVkIG1lbW9yeSBidWZmZXJzIHVzZWQgZm9y IHRoZSBNdWx0aVhhY3Qgb2Zmc2V0IFNMUlUgY2FjaGUuIiksCisJCQlOVUxMLAorCQkJR1VDX1VO SVRfQkxPQ0tTCisJCX0sCisJCSZtdWx0aXhhY3Rfb2Zmc2V0c19idWZmZXJzLAorCQk4LCAyLCBT TFJVX01BWF9BTExPV0VEX0JVRkZFUlMsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAorCisJewor CQl7Im11bHRpeGFjdF9tZW1iZXJzX2J1ZmZlcnMiLCBQR0NfUE9TVE1BU1RFUiwgUkVTT1VSQ0VT X01FTSwKKwkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgbnVtYmVyIG9mIHNoYXJlZCBtZW1vcnkg YnVmZmVycyB1c2VkIGZvciB0aGUgTXVsdGlYYWN0IG1lbWJlciBTTFJVIGNhY2hlLiIpLAorCQkJ TlVMTCwKKwkJCUdVQ19VTklUX0JMT0NLUworCQl9LAorCQkmbXVsdGl4YWN0X21lbWJlcnNfYnVm ZmVycywKKwkJMTYsIDIsIFNMUlVfTUFYX0FMTE9XRURfQlVGRkVSUywKKwkJTlVMTCwgTlVMTCwg TlVMTAorCX0sCisKKwl7CisJCXsic3VidHJhbnNfYnVmZmVycyIsIFBHQ19QT1NUTUFTVEVSLCBS RVNPVVJDRVNfTUVNLAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBudW1iZXIgb2Ygc2hhcmVk IG1lbW9yeSBidWZmZXJzIHVzZWQgZm9yIHRoZSBzdWItdHJhbnNhY3Rpb24gU0xSVSBjYWNoZS4i KSwKKwkJCU5VTEwsCisJCQlHVUNfVU5JVF9CTE9DS1MKKwkJfSwKKwkJJnN1YnRyYW5zX2J1ZmZl cnMsCisJCTMyLCAyLCBTTFJVX01BWF9BTExPV0VEX0JVRkZFUlMsCisJCU5VTEwsIE5VTEwsIE5V TEwKKwl9LAorCisJeworCQl7Im5vdGlmeV9idWZmZXJzIiwgUEdDX1BPU1RNQVNURVIsIFJFU09V UkNFU19NRU0sCisJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIG51bWJlciBvZiBzaGFyZWQgbWVt b3J5IGJ1ZmZlcnMgdXNlZCBmb3IgdGhlIE5PVElGWSBtZXNzYWdlIFNMUlUgY2FjaGUuIiksCisJ CQlOVUxMLAorCQkJR1VDX1VOSVRfQkxPQ0tTCisJCX0sCisJCSZub3RpZnlfYnVmZmVycywKKwkJ OCwgMiwgU0xSVV9NQVhfQUxMT1dFRF9CVUZGRVJTLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwK KworCXsKKwkJeyJzZXJpYWxfYnVmZmVycyIsIFBHQ19QT1NUTUFTVEVSLCBSRVNPVVJDRVNfTUVN LAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBudW1iZXIgb2Ygc2hhcmVkIG1lbW9yeSBidWZm ZXJzIHVzZWQgZm9yIHRoZSBzZXJpYWxpemFibGUgdHJhbnNhY3Rpb24gU0xSVSBjYWNoZS4iKSwK KwkJCU5VTEwsCisJCQlHVUNfVU5JVF9CTE9DS1MKKwkJfSwKKwkJJnNlcmlhbF9idWZmZXJzLAor CQkxNiwgMiwgU0xSVV9NQVhfQUxMT1dFRF9CVUZGRVJTLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJ fSwKKworCXsKKwkJeyJ4YWN0X2J1ZmZlcnMiLCBQR0NfUE9TVE1BU1RFUiwgUkVTT1VSQ0VTX01F TSwKKwkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgbnVtYmVyIG9mIHNoYXJlZCBtZW1vcnkgYnVm ZmVycyB1c2VkIGZvciB0aGUgdHJhbnNhY3Rpb24gc3RhdHVzIFNMUlUgY2FjaGUuIiksCisJCQlO VUxMLAorCQkJR1VDX1VOSVRfQkxPQ0tTCisJCX0sCisJCSZ4YWN0X2J1ZmZlcnMsCisJCTAsIDAs IENMT0dfTUFYX0FMTE9XRURfQlVGRkVSUywKKwkJTlVMTCwgTlVMTCwgc2hvd194YWN0X2J1ZmZl cnMKKwl9LAorCisJeworCQl7ImNvbW1pdF90c19idWZmZXJzIiwgUEdDX1BPU1RNQVNURVIsIFJF U09VUkNFU19NRU0sCisJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIHNpemUgb2YgdGhlIGRlZGlj YXRlZCBidWZmZXIgcG9vbCB1c2VkIGZvciB0aGUgY29tbWl0IHRpbWVzdGFtcCBTTFJVIGNhY2hl LiIpLAorCQkJTlVMTCwKKwkJCUdVQ19VTklUX0JMT0NLUworCQl9LAorCQkmY29tbWl0X3RzX2J1 ZmZlcnMsCisJCTAsIDAsIFNMUlVfTUFYX0FMTE9XRURfQlVGRkVSUywKKwkJTlVMTCwgTlVMTCwg c2hvd19jb21taXRfdHNfYnVmZmVycworCX0sCisKIAl7CiAJCXsidGVtcF9idWZmZXJzIiwgUEdD X1VTRVJTRVQsIFJFU09VUkNFU19NRU0sCiAJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIG1heGlt dW0gbnVtYmVyIG9mIHRlbXBvcmFyeSBidWZmZXJzIHVzZWQgYnkgZWFjaCBzZXNzaW9uLiIpLApA QCAtMTI0NDcsNiArMTI1MjgsMjQgQEAgc2hvd190Y3BfdXNlcl90aW1lb3V0KHZvaWQpCiAJcmV0 dXJuIG5idWY7CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyICoKK3Nob3dfeGFjdF9idWZmZXJzKHZv aWQpCit7CisJc3RhdGljIGNoYXIgbmJ1ZlsxNl07CisKKwlzbnByaW50ZihuYnVmLCBzaXplb2Yo bmJ1ZiksICIlenUiLCBDTE9HU2htZW1CdWZmZXJzKCkpOworCXJldHVybiBuYnVmOworfQorCitz dGF0aWMgY29uc3QgY2hhciAqCitzaG93X2NvbW1pdF90c19idWZmZXJzKHZvaWQpCit7CisJc3Rh dGljIGNoYXIgbmJ1ZlsxNl07CisKKwlzbnByaW50ZihuYnVmLCBzaXplb2YobmJ1ZiksICIlenUi LCBDb21taXRUc1NobWVtQnVmZmVycygpKTsKKwlyZXR1cm4gbmJ1ZjsKK30KKwogc3RhdGljIGJv b2wKIGNoZWNrX21heGNvbm5lY3Rpb25zKGludCAqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1Nv dXJjZSBzb3VyY2UpCiB7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29u Zi5zYW1wbGUKaW5kZXggYjRiYzA2ZTVmNWEuLjJjYjgyN2UxZTNiIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC0xOTUsNiArMTk1LDE1IEBA CiAjb2xkX3NuYXBzaG90X3RocmVzaG9sZCA9IC0xCQkjIDFtaW4tNjBkOyAtMSBkaXNhYmxlczsg MCBpcyBpbW1lZGlhdGUKIAkJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiAKKyMgLSBT TFJVIEJ1ZmZlcnMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KSAtCisKKyN4YWN0X2J1ZmZlcnMg PSAwCQkJIyBtZW1vcnkgZm9yIHBnX3hhY3QgKDAgPSBhdXRvKQorI3N1YnRyYW5zX2J1ZmZlcnMg PSAzMgkJCSMgbWVtb3J5IGZvciBwZ19zdWJ0cmFucworI211bHRpeGFjdF9vZmZzZXRzX2J1ZmZl cnMgPSA4CQkjIG1lbW9yeSBmb3IgcGdfbXVsdGl4YWN0L29mZnNldHMKKyNtdWx0aXhhY3RfbWVt YmVyc19idWZmZXJzID0gMTYJCSMgbWVtb3J5IGZvciBwZ19tdWx0aXhhY3QvbWVtYmVycworI25v dGlmeV9idWZmZXJzID0gOAkJCSMgbWVtb3J5IGZvciBwZ19ub3RpZnkKKyNzZXJpYWxfYnVmZmVy cyA9IDE2CQkJIyBtZW1vcnkgZm9yIHBnX3NlcmlhbAorI2NvbW1pdF90c19idWZmZXJzID0gMAkJ CSMgbWVtb3J5IGZvciBwZ19jb21taXRfdHMgKDAgPSBhdXRvKQogCiAjLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAjIFdSSVRFLUFIRUFEIExPRwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNz L2Nsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9jbG9nLmgKaW5kZXggNTQzZjJlMjY0M2EuLjE3 ZDEwM2FhNGRhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvY2xvZy5oCisrKyBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9jbG9nLmgKQEAgLTE1LDYgKzE1LDE2IEBACiAjaW5jbHVkZSAic3Rv cmFnZS9zeW5jLmgiCiAjaW5jbHVkZSAibGliL3N0cmluZ2luZm8uaCIKIAorLyoKKyAqIERvbid0 IGFsbG93IHhhY3RfYnVmZmVycyB0byBiZSBzZXQgaGlnaGVyIHRoYW4gY291bGQgcG9zc2libHkg YmUgdXNlZnVsIG9yCisgKiBTTFJVIHdvdWxkIGFsbG93LgorICovCisjZGVmaW5lIENMT0dfWEFD VFNfUEVSX0JZVEUgNAorI2RlZmluZSBDTE9HX1hBQ1RTX1BFUl9QQUdFIChCTENLU1ogKiBDTE9H X1hBQ1RTX1BFUl9CWVRFKQorI2RlZmluZSBDTE9HX01BWF9BTExPV0VEX0JVRkZFUlMgXAorCU1p bihTTFJVX01BWF9BTExPV0VEX0JVRkZFUlMsIFwKKwkJKCgoTWF4VHJhbnNhY3Rpb25JZCAvIDIp ICsgKENMT0dfWEFDVFNfUEVSX1BBR0UgLSAxKSkgLyBDTE9HX1hBQ1RTX1BFUl9QQUdFKSkKKwog LyoKICAqIFBvc3NpYmxlIHRyYW5zYWN0aW9uIHN0YXR1c2VzIC0tLSBub3RlIHRoYXQgYWxsLXpl cm9lcyBpcyB0aGUgaW5pdGlhbAogICogc3RhdGUuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9h Y2Nlc3MvY29tbWl0X3RzLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvY29tbWl0X3RzLmgKaW5kZXgg NzY2MmY4ZTFhOWMuLmQ5MjhkY2M5MzUyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv Y29tbWl0X3RzLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2NvbW1pdF90cy5oCkBAIC0xNiw3 ICsxNiw2IEBACiAjaW5jbHVkZSAicmVwbGljYXRpb24vb3JpZ2luLmgiCiAjaW5jbHVkZSAic3Rv cmFnZS9zeW5jLmgiCiAKLQogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgdHJhY2tfY29tbWl0X3Rp bWVzdGFtcDsKIAogZXh0ZXJuIHZvaWQgVHJhbnNhY3Rpb25UcmVlU2V0Q29tbWl0VHNEYXRhKFRy YW5zYWN0aW9uSWQgeGlkLCBpbnQgbnN1YnhpZHMsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9h Y2Nlc3MvbXVsdGl4YWN0LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmgKaW5kZXgg YTU2MDBhMzIwYWUuLmRhN2I4ZjBhYmI5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv bXVsdGl4YWN0LmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL211bHRpeGFjdC5oCkBAIC0yOSwx MCArMjksNiBAQAogCiAjZGVmaW5lIE1heE11bHRpWGFjdE9mZnNldAkoKE11bHRpWGFjdE9mZnNl dCkgMHhGRkZGRkZGRikKIAotLyogTnVtYmVyIG9mIFNMUlUgYnVmZmVycyB0byB1c2UgZm9yIG11 bHRpeGFjdCAqLwotI2RlZmluZSBOVU1fTVVMVElYQUNUT0ZGU0VUX0JVRkZFUlMJCTgKLSNkZWZp bmUgTlVNX01VTFRJWEFDVE1FTUJFUl9CVUZGRVJTCQkxNgotCiAvKgogICogUG9zc2libGUgbXVs dGl4YWN0IGxvY2sgbW9kZXMgKCJzdGF0dXMiKS4gIFRoZSBmaXJzdCBmb3VyIG1vZGVzIGFyZSBm b3IKICAqIHR1cGxlIGxvY2tzIChGT1IgS0VZIFNIQVJFLCBGT1IgU0hBUkUsIEZPUiBOTyBLRVkg VVBEQVRFLCBGT1IgVVBEQVRFKTsgdGhlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv c2xydS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3NscnUuaAppbmRleCAxMzBjNDFjODYzMi4uYjdl MmUyYjU1ZTMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmgKKysrIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL3NscnUuaApAQCAtMTcsNiArMTcsMTEgQEAKICNpbmNsdWRlICJzdG9y YWdlL2x3bG9jay5oIgogI2luY2x1ZGUgInN0b3JhZ2Uvc3luYy5oIgogCisvKgorICogVG8gYXZv aWQgb3ZlcmZsb3dpbmcgaW50ZXJuYWwgYXJpdGhtZXRpYyBhbmQgdGhlIHNpemVfdCBkYXRhIHR5 cGUsIHRoZQorICogbnVtYmVyIG9mIGJ1ZmZlcnMgc2hvdWxkIG5vdCBleGNlZWQgdGhpcyBudW1i ZXIuCisgKi8KKyNkZWZpbmUgU0xSVV9NQVhfQUxMT1dFRF9CVUZGRVJTICgoMTAyNCAqIDEwMjQg KiAxMDI0KSAvIEJMQ0tTWikKIAogLyoKICAqIERlZmluZSBTTFJVIHNlZ21lbnQgc2l6ZS4gIEEg cGFnZSBpcyB0aGUgc2FtZSBCTENLU1ogYXMgaXMgdXNlZCBldmVyeXdoZXJlCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3VidHJhbnMuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zdWJ0 cmFucy5oCmluZGV4IGY5NGUxMTY2NDBiLi4xZGRiNjI4ODNiMCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL3N1YnRyYW5zLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3N1YnRyYW5z LmgKQEAgLTExLDggKzExLDYgQEAKICNpZm5kZWYgU1VCVFJBTlNfSAogI2RlZmluZSBTVUJUUkFO U19ICiAKLS8qIE51bWJlciBvZiBTTFJVIGJ1ZmZlcnMgdG8gdXNlIGZvciBzdWJ0cmFucyAqLwot I2RlZmluZSBOVU1fU1VCVFJBTlNfQlVGRkVSUwkzMgogCiBleHRlcm4gdm9pZCBTdWJUcmFuc1Nl dFBhcmVudChUcmFuc2FjdGlvbklkIHhpZCwgVHJhbnNhY3Rpb25JZCBwYXJlbnQpOwogZXh0ZXJu IFRyYW5zYWN0aW9uSWQgU3ViVHJhbnNHZXRQYXJlbnQoVHJhbnNhY3Rpb25JZCB4aWQpOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvYXN5bmMuaCBiL3NyYy9pbmNsdWRlL2NvbW1h bmRzL2FzeW5jLmgKaW5kZXggOTI2YWY5MzNkMWIuLjQwMmQxODRiOWIzIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jb21tYW5kcy9hc3luYy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2Fz eW5jLmgKQEAgLTE1LDExICsxNSw2IEBACiAKICNpbmNsdWRlIDxzaWduYWwuaD4KIAotLyoKLSAq IFRoZSBudW1iZXIgb2YgU0xSVSBwYWdlIGJ1ZmZlcnMgd2UgdXNlIGZvciB0aGUgbm90aWZpY2F0 aW9uIHF1ZXVlLgotICovCi0jZGVmaW5lIE5VTV9OT1RJRllfQlVGRkVSUwk4Ci0KIGV4dGVybiBQ R0RMTElNUE9SVCBib29sIFRyYWNlX25vdGlmeTsKIGV4dGVybiBQR0RMTElNUE9SVCB2b2xhdGls ZSBzaWdfYXRvbWljX3Qgbm90aWZ5SW50ZXJydXB0UGVuZGluZzsKIApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvbWlzY2FkbWluLmggYi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaAppbmRleCBlYTlh NTZkMzk1NS4uZTY1OTkwZTA0ZTggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5o CisrKyBiL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5oCkBAIC0xNzcsNiArMTc3LDEzIEBAIGV4dGVy biBQR0RMTElNUE9SVCBpbnQgTWF4QmFja2VuZHM7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IE1h eENvbm5lY3Rpb25zOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtYXhfd29ya2VyX3Byb2Nlc3Nl czsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgbWF4X3BhcmFsbGVsX3dvcmtlcnM7CitleHRlcm4g UEdETExJTVBPUlQgaW50IG11bHRpeGFjdF9vZmZzZXRzX2J1ZmZlcnM7CitleHRlcm4gUEdETExJ TVBPUlQgaW50IG11bHRpeGFjdF9tZW1iZXJzX2J1ZmZlcnM7CitleHRlcm4gUEdETExJTVBPUlQg aW50IHN1YnRyYW5zX2J1ZmZlcnM7CitleHRlcm4gUEdETExJTVBPUlQgaW50IG5vdGlmeV9idWZm ZXJzOworZXh0ZXJuIFBHRExMSU1QT1JUIGludCBzZXJpYWxfYnVmZmVyczsKK2V4dGVybiBQR0RM TElNUE9SVCBpbnQgeGFjdF9idWZmZXJzOworZXh0ZXJuIFBHRExMSU1QT1JUIGludCBjb21taXRf dHNfYnVmZmVyczsKIAogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBNeVByb2NQaWQ7CiBleHRlcm4g UEdETExJTVBPUlQgcGdfdGltZV90IE15U3RhcnRUaW1lOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvc3RvcmFnZS9wcmVkaWNhdGUuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJlZGljYXRlLmgK aW5kZXggOGRmY2IzOTQ0YjQuLjFlM2Y3NTdlYzMwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9z dG9yYWdlL3ByZWRpY2F0ZS5oCisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJlZGljYXRlLmgK QEAgLTI2LDEwICsyNiw2IEBAIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgbWF4X3ByZWRpY2F0ZV9s b2Nrc19wZXJfeGFjdDsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgbWF4X3ByZWRpY2F0ZV9sb2Nr c19wZXJfcmVsYXRpb247CiBleHRlcm4gUEdETExJTVBPUlQgaW50IG1heF9wcmVkaWNhdGVfbG9j a3NfcGVyX3BhZ2U7CiAKLQotLyogTnVtYmVyIG9mIFNMUlUgYnVmZmVycyB0byB1c2UgZm9yIFNl cmlhbCBTTFJVICovCi0jZGVmaW5lIE5VTV9TRVJJQUxfQlVGRkVSUwkJMTYKLQogLyoKICAqIEEg aGFuZGxlIHVzZWQgZm9yIHNoYXJpbmcgU0VSSUFMSVpBQkxFWEFDVCBvYmplY3RzIGJldHdlZW4g dGhlIHBhcnRpY2lwYW50cwogICogaW4gYSBwYXJhbGxlbCBxdWVyeS4KLS0gCjIuMzAuMgoK --=-b/N8xfyb4KxZhr06HKzx--