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 1juqkE-0006HC-MM for pgsql-hackers@arkaria.postgresql.org; Mon, 13 Jul 2020 05:11:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1juqkD-00048S-LB for pgsql-hackers@arkaria.postgresql.org; Mon, 13 Jul 2020 05:11:13 +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 1juqkD-00048L-5g for pgsql-hackers@lists.postgresql.org; Mon, 13 Jul 2020 05:11:13 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1juqk9-0007ai-V0 for pgsql-hackers@postgresql.org; Mon, 13 Jul 2020 05:11:12 +0000 Received: from hnk.local (p2604028-ipngn12401funabasi.chiba.ocn.ne.jp [180.1.110.28]) by oss.nttdata.com (Postfix) with ESMTPSA id 36F8A6060B; Mon, 13 Jul 2020 14:11:06 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.102.3 at oss.nttdata.com Subject: Re: max_slot_wal_keep_size and wal_keep_segments To: Alvaro Herrera Cc: pgsql-hackers@postgresql.org References: <20200708162031.GA1716@alvherre.pgsql> From: Fujii Masao Message-ID: Date: Mon, 13 Jul 2020 14:11:05 +0900 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200708162031.GA1716@alvherre.pgsql> Content-Type: multipart/mixed; boundary="------------88BCF3C831B3B0F2C6D040CE" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------88BCF3C831B3B0F2C6D040CE Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2020/07/09 1:20, Alvaro Herrera wrote: > On 2020-Jul-09, Fujii Masao wrote: > >> I attached the patch that renames wal_keep_segments to wal_keep_size. > > Looks good in a quick once-over. Just two small wording comments: Thanks for review comments! > >> >> Independently of max_wal_size, >> - + 1 most recent WAL files are >> + most recent megabytes >> + WAL files plus one WAL file are >> kept at all times. Also, if WAL archiving is used, old segments can not be >> removed or recycled until they are archived. If WAL archiving cannot keep up >> with the pace that WAL is generated, or if archive_command > > This reads a little strange to me. Maybe "the N most recent megabytes > plus ..." Yes, fixed. > >> /* determine how many segments slots can be kept by slots ... */ >> - keepSegs = XLogMBVarToSegs(max_slot_wal_keep_size_mb, wal_segment_size); >> - /* ... and override by wal_keep_segments as needed */ >> - keepSegs = Max(keepSegs, wal_keep_segments); >> + slotKeepSegs = XLogMBVarToSegs(max_slot_wal_keep_size_mb, wal_segment_size); >> + /* ... and override by wal_keep_size as needed */ >> + keepSegs = XLogMBVarToSegs(wal_keep_size_mb, wal_segment_size); > > Since you change the way these two variables are used, I would not say > "override" in the above comment, nor keep the ellipses; perhaps just > change them to "determine how many segments can be kept by slots" and > "ditto for wal_keep_size". Yes, fixed. Attached is the updated version of the patch. Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION --------------88BCF3C831B3B0F2C6D040CE Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="wal_keep_size_v2.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="wal_keep_size_v2.patch" ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKaW5kZXggZTljZGZmNDg2NC4uM2Q5NzNhNWM4ZSAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFs b2dzLnNnbWwKQEAgLTExMjQ5LDcgKzExMjQ5LDcgQEAgU0VMRUNUICogRlJPTSBwZ19sb2Nr cyBwbCBMRUZUIEpPSU4gcGdfcHJlcGFyZWRfeGFjdHMgcHB4CiAgICAgICAgICA8cGFyYT48 bGl0ZXJhbD5leHRlbmRlZDwvbGl0ZXJhbD4gbWVhbnMKICAgICAgICAgICB0aGF0IDx2YXJu YW1lPm1heF93YWxfc2l6ZTwvdmFybmFtZT4gaXMgZXhjZWVkZWQgYnV0IHRoZSBmaWxlcyBh cmUKICAgICAgICAgICBzdGlsbCByZXRhaW5lZCwgZWl0aGVyIGJ5IHRoZSByZXBsaWNhdGlv biBzbG90IG9yCi0gICAgICAgICAgYnkgPHZhcm5hbWU+d2FsX2tlZXBfc2VnbWVudHM8L3Zh cm5hbWU+LgorICAgICAgICAgIGJ5IDx2YXJuYW1lPndhbF9rZWVwX3NpemU8L3Zhcm5hbWU+ LgogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICA8bGlz dGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvY29uZmlnLnNnbWwKaW5kZXggYjM1M2M2MTY4My4uMzM4NGE1MTk3ZCAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25m aWcuc2dtbApAQCAtMzEyNCw3ICszMTI0LDcgQEAgaW5jbHVkZV9kaXIgJ2NvbmYuZCcKICAg ICAgICAgY2hlY2twb2ludHMuIFRoaXMgaXMgYSBzb2Z0IGxpbWl0OyBXQUwgc2l6ZSBjYW4g ZXhjZWVkCiAgICAgICAgIDx2YXJuYW1lPm1heF93YWxfc2l6ZTwvdmFybmFtZT4gdW5kZXIg c3BlY2lhbCBjaXJjdW1zdGFuY2VzLCBzdWNoIGFzCiAgICAgICAgIGhlYXZ5IGxvYWQsIGEg ZmFpbGluZyA8dmFybmFtZT5hcmNoaXZlX2NvbW1hbmQ8L3Zhcm5hbWU+LCBvciBhIGhpZ2gK LSAgICAgICAgPHZhcm5hbWU+d2FsX2tlZXBfc2VnbWVudHM8L3Zhcm5hbWU+IHNldHRpbmcu CisgICAgICAgIDx2YXJuYW1lPndhbF9rZWVwX3NpemU8L3Zhcm5hbWU+IHNldHRpbmcuCiAg ICAgICAgIElmIHRoaXMgdmFsdWUgaXMgc3BlY2lmaWVkIHdpdGhvdXQgdW5pdHMsIGl0IGlz IHRha2VuIGFzIG1lZ2FieXRlcy4KICAgICAgICAgVGhlIGRlZmF1bHQgaXMgMSBHQi4KICAg ICAgICAgSW5jcmVhc2luZyB0aGlzIHBhcmFtZXRlciBjYW4gaW5jcmVhc2UgdGhlIGFtb3Vu dCBvZiB0aW1lIG5lZWRlZCBmb3IKQEAgLTM3NTEsMjEgKzM3NTEsMjEgQEAgcmVzdG9yZV9j b21tYW5kID0gJ2NvcHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVkaXJcXCVmIiAiJXAiJyAgIyBX aW5kb3dzCiAgICAgICAgPC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVudHJ5PgogCi0g ICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtd2FsLWtlZXAtc2VnbWVudHMiIHhyZWZsYWJl bD0id2FsX2tlZXBfc2VnbWVudHMiPgotICAgICAgIDx0ZXJtPjx2YXJuYW1lPndhbF9rZWVw X3NlZ21lbnRzPC92YXJuYW1lPiAoPHR5cGU+aW50ZWdlcjwvdHlwZT4pCisgICAgICA8dmFy bGlzdGVudHJ5IGlkPSJndWMtd2FsLWtlZXAtc2l6ZSIgeHJlZmxhYmVsPSJ3YWxfa2VlcF9z aXplIj4KKyAgICAgICA8dGVybT48dmFybmFtZT53YWxfa2VlcF9zaXplPC92YXJuYW1lPiAo PHR5cGU+aW50ZWdlcjwvdHlwZT4pCiAgICAgICAgPGluZGV4dGVybT4KLSAgICAgICAgPHBy aW1hcnk+PHZhcm5hbWU+d2FsX2tlZXBfc2VnbWVudHM8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRp b24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgICA8cHJpbWFyeT48dmFybmFtZT53YWxf a2VlcF9zaXplPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4K ICAgICAgICA8L2luZGV4dGVybT4KICAgICAgICA8L3Rlcm0+CiAgICAgICAgPGxpc3RpdGVt PgogICAgICAgIDxwYXJhPgotICAgICAgICBTcGVjaWZpZXMgdGhlIG1pbmltdW0gbnVtYmVy IG9mIHBhc3QgbG9nIGZpbGUgc2VnbWVudHMga2VwdCBpbiB0aGUKKyAgICAgICAgU3BlY2lm aWVzIHRoZSBtaW5pbXVtIHNpemUgb2YgcGFzdCBsb2cgZmlsZSBzZWdtZW50cyBrZXB0IGlu IHRoZQogICAgICAgICA8ZmlsZW5hbWU+cGdfd2FsPC9maWxlbmFtZT4KICAgICAgICAgZGly ZWN0b3J5LCBpbiBjYXNlIGEgc3RhbmRieSBzZXJ2ZXIgbmVlZHMgdG8gZmV0Y2ggdGhlbSBm b3Igc3RyZWFtaW5nCi0gICAgICAgIHJlcGxpY2F0aW9uLiBFYWNoIHNlZ21lbnQgaXMgbm9y bWFsbHkgMTYgbWVnYWJ5dGVzLiBJZiBhIHN0YW5kYnkKKyAgICAgICAgcmVwbGljYXRpb24u IElmIGEgc3RhbmRieQogICAgICAgICBzZXJ2ZXIgY29ubmVjdGVkIHRvIHRoZSBzZW5kaW5n IHNlcnZlciBmYWxscyBiZWhpbmQgYnkgbW9yZSB0aGFuCi0gICAgICAgIDx2YXJuYW1lPndh bF9rZWVwX3NlZ21lbnRzPC92YXJuYW1lPiBzZWdtZW50cywgdGhlIHNlbmRpbmcgc2VydmVy IG1pZ2h0IHJlbW92ZQotICAgICAgICBhIFdBTCBzZWdtZW50IHN0aWxsIG5lZWRlZCBieSB0 aGUgc3RhbmRieSwgaW4gd2hpY2ggY2FzZSB0aGUKKyAgICAgICAgPHZhcm5hbWU+d2FsX2tl ZXBfc2l6ZTwvdmFybmFtZT4gbWVnYWJ5dGVzLCB0aGUgc2VuZGluZyBzZXJ2ZXIgbWlnaHQK KyAgICAgICAgcmVtb3ZlIGEgV0FMIHNlZ21lbnQgc3RpbGwgbmVlZGVkIGJ5IHRoZSBzdGFu ZGJ5LCBpbiB3aGljaCBjYXNlIHRoZQogICAgICAgICByZXBsaWNhdGlvbiBjb25uZWN0aW9u IHdpbGwgYmUgdGVybWluYXRlZC4gIERvd25zdHJlYW0gY29ubmVjdGlvbnMKICAgICAgICAg d2lsbCBhbHNvIGV2ZW50dWFsbHkgZmFpbCBhcyBhIHJlc3VsdC4gIChIb3dldmVyLCB0aGUg c3RhbmRieQogICAgICAgICBzZXJ2ZXIgY2FuIHJlY292ZXIgYnkgZmV0Y2hpbmcgdGhlIHNl Z21lbnQgZnJvbSBhcmNoaXZlLCBpZiBXQUwKQEAgLTM3NzMsMTQgKzM3NzMsMTUgQEAgcmVz dG9yZV9jb21tYW5kID0gJ2NvcHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVkaXJcXCVmIiAiJXAi JyAgIyBXaW5kb3dzCiAgICAgICAgPC9wYXJhPgogCiAgICAgICAgPHBhcmE+Ci0gICAgICAg IFRoaXMgc2V0cyBvbmx5IHRoZSBtaW5pbXVtIG51bWJlciBvZiBzZWdtZW50cyByZXRhaW5l ZCBpbgorICAgICAgICBUaGlzIHNldHMgb25seSB0aGUgbWluaW11bSBzaXplIG9mIHNlZ21l bnRzIHJldGFpbmVkIGluCiAgICAgICAgIDxmaWxlbmFtZT5wZ193YWw8L2ZpbGVuYW1lPjsg dGhlIHN5c3RlbSBtaWdodCBuZWVkIHRvIHJldGFpbiBtb3JlIHNlZ21lbnRzCiAgICAgICAg IGZvciBXQUwgYXJjaGl2YWwgb3IgdG8gcmVjb3ZlciBmcm9tIGEgY2hlY2twb2ludC4gSWYK LSAgICAgICAgPHZhcm5hbWU+d2FsX2tlZXBfc2VnbWVudHM8L3Zhcm5hbWU+IGlzIHplcm8g KHRoZSBkZWZhdWx0KSwgdGhlIHN5c3RlbQorICAgICAgICA8dmFybmFtZT53YWxfa2VlcF9z aXplPC92YXJuYW1lPiBpcyB6ZXJvICh0aGUgZGVmYXVsdCksIHRoZSBzeXN0ZW0KICAgICAg ICAgZG9lc24ndCBrZWVwIGFueSBleHRyYSBzZWdtZW50cyBmb3Igc3RhbmRieSBwdXJwb3Nl cywgc28gdGhlIG51bWJlcgogICAgICAgICBvZiBvbGQgV0FMIHNlZ21lbnRzIGF2YWlsYWJs ZSB0byBzdGFuZGJ5IHNlcnZlcnMgaXMgYSBmdW5jdGlvbiBvZgogICAgICAgICB0aGUgbG9j YXRpb24gb2YgdGhlIHByZXZpb3VzIGNoZWNrcG9pbnQgYW5kIHN0YXR1cyBvZiBXQUwKICAg ICAgICAgYXJjaGl2aW5nLgorICAgICAgICBJZiB0aGlzIHZhbHVlIGlzIHNwZWNpZmllZCB3 aXRob3V0IHVuaXRzLCBpdCBpcyB0YWtlbiBhcyBtZWdhYnl0ZXMuCiAgICAgICAgIFRoaXMg cGFyYW1ldGVyIGNhbiBvbmx5IGJlIHNldCBpbiB0aGUKICAgICAgICAgPGZpbGVuYW1lPnBv c3RncmVzcWwuY29uZjwvZmlsZW5hbWU+IGZpbGUgb3Igb24gdGhlIHNlcnZlciBjb21tYW5k IGxpbmUuCiAgICAgICAgPC9wYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2hpZ2gt YXZhaWxhYmlsaXR5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dt bAppbmRleCA2YTkxODRmMzE0Li44OWY2ZDZlZGE2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvaGlnaC1hdmFp bGFiaWxpdHkuc2dtbApAQCAtNzg1LDcgKzc4NSw3IEBAIGFyY2hpdmVfY2xlYW51cF9jb21t YW5kID0gJ3BnX2FyY2hpdmVjbGVhbnVwIC9wYXRoL3RvL2FyY2hpdmUgJXInCiAgICAgYXJj aGl2aW5nLCB0aGUgc2VydmVyIG1pZ2h0IHJlY3ljbGUgb2xkIFdBTCBzZWdtZW50cyBiZWZv cmUgdGhlIHN0YW5kYnkKICAgICBoYXMgcmVjZWl2ZWQgdGhlbS4gIElmIHRoaXMgb2NjdXJz LCB0aGUgc3RhbmRieSB3aWxsIG5lZWQgdG8gYmUKICAgICByZWluaXRpYWxpemVkIGZyb20g YSBuZXcgYmFzZSBiYWNrdXAuICBZb3UgY2FuIGF2b2lkIHRoaXMgYnkgc2V0dGluZwotICAg IDx2YXJuYW1lPndhbF9rZWVwX3NlZ21lbnRzPC92YXJuYW1lPiB0byBhIHZhbHVlIGxhcmdl IGVub3VnaCB0byBlbnN1cmUgdGhhdAorICAgIDx2YXJuYW1lPndhbF9rZWVwX3NpemU8L3Zh cm5hbWU+IHRvIGEgdmFsdWUgbGFyZ2UgZW5vdWdoIHRvIGVuc3VyZSB0aGF0CiAgICAgV0FM IHNlZ21lbnRzIGFyZSBub3QgcmVjeWNsZWQgdG9vIGVhcmx5LCBvciBieSBjb25maWd1cmlu ZyBhIHJlcGxpY2F0aW9uCiAgICAgc2xvdCBmb3IgdGhlIHN0YW5kYnkuICBJZiB5b3Ugc2V0 IHVwIGEgV0FMIGFyY2hpdmUgdGhhdCdzIGFjY2Vzc2libGUgZnJvbQogICAgIHRoZSBzdGFu ZGJ5LCB0aGVzZSBzb2x1dGlvbnMgYXJlIG5vdCByZXF1aXJlZCwgc2luY2UgdGhlIHN0YW5k YnkgY2FuCkBAIC05MjksNyArOTI5LDcgQEAgcHJpbWFyeV9jb25uaW5mbyA9ICdob3N0PTE5 Mi4xNjguMS41MCBwb3J0PTU0MzIgdXNlcj1mb28gcGFzc3dvcmQ9Zm9vcGFzcycKICAgIDwv cGFyYT4KICAgIDxwYXJhPgogICAgIEluIGxpZXUgb2YgdXNpbmcgcmVwbGljYXRpb24gc2xv dHMsIGl0IGlzIHBvc3NpYmxlIHRvIHByZXZlbnQgdGhlIHJlbW92YWwKLSAgICBvZiBvbGQg V0FMIHNlZ21lbnRzIHVzaW5nIDx4cmVmIGxpbmtlbmQ9Imd1Yy13YWwta2VlcC1zZWdtZW50 cyIvPiwgb3IgYnkKKyAgICBvZiBvbGQgV0FMIHNlZ21lbnRzIHVzaW5nIDx4cmVmIGxpbmtl bmQ9Imd1Yy13YWwta2VlcC1zaXplIi8+LCBvciBieQogICAgIHN0b3JpbmcgdGhlIHNlZ21l bnRzIGluIGFuIGFyY2hpdmUgdXNpbmcKICAgICA8eHJlZiBsaW5rZW5kPSJndWMtYXJjaGl2 ZS1jb21tYW5kIi8+LgogICAgIEhvd2V2ZXIsIHRoZXNlIG1ldGhvZHMgb2Z0ZW4gcmVzdWx0 IGluIHJldGFpbmluZyBtb3JlIFdBTCBzZWdtZW50cyB0aGFuCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL3BnX2Jhc2ViYWNrdXAuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdf YmFzZWJhY2t1cC5zZ21sCmluZGV4IGFhNDFmYjQ0NGYuLmUyNDZlZmJkYjUgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfYmFzZWJhY2t1cC5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvcGdfYmFzZWJhY2t1cC5zZ21sCkBAIC0zMDUsNyArMzA1LDcgQEAgUG9zdGdy ZVNRTCBkb2N1bWVudGF0aW9uCiAgICAgICAgICAgIDxwYXJhPgogICAgICAgICAgICAgVGhl IHdyaXRlLWFoZWFkIGxvZyBmaWxlcyBhcmUgY29sbGVjdGVkIGF0IHRoZSBlbmQgb2YgdGhl IGJhY2t1cC4KICAgICAgICAgICAgIFRoZXJlZm9yZSwgaXQgaXMgbmVjZXNzYXJ5IGZvciB0 aGUKLSAgICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy13YWwta2VlcC1zZWdtZW50cyIv PiBwYXJhbWV0ZXIgdG8gYmUgc2V0IGhpZ2gKKyAgICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9 Imd1Yy13YWwta2VlcC1zaXplIi8+IHBhcmFtZXRlciB0byBiZSBzZXQgaGlnaAogICAgICAg ICAgICAgIGVub3VnaCB0aGF0IHRoZSBsb2cgaXMgbm90IHJlbW92ZWQgYmVmb3JlIHRoZSBl bmQgb2YgdGhlIGJhY2t1cC4KICAgICAgICAgICAgICBJZiB0aGUgbG9nIGhhcyBiZWVuIHJv dGF0ZWQgd2hlbiBpdCdzIHRpbWUgdG8gdHJhbnNmZXIgaXQsIHRoZQogICAgICAgICAgICAg IGJhY2t1cCB3aWxsIGZhaWwgYW5kIGJlIHVudXNhYmxlLgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3dhbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3dhbC5zZ21sCmluZGV4IDE5MDJmMzYy OTEuLmZmMzYyNWY4NTUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC93YWwuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvd2FsLnNnbWwKQEAgLTU3OCw3ICs1NzgsOCBAQAogCiAgIDxwYXJh PgogICAgSW5kZXBlbmRlbnRseSBvZiA8dmFybmFtZT5tYXhfd2FsX3NpemU8L3Zhcm5hbWU+ LAotICAgPHhyZWYgbGlua2VuZD0iZ3VjLXdhbC1rZWVwLXNlZ21lbnRzIi8+ICsgMSBtb3N0 IHJlY2VudCBXQUwgZmlsZXMgYXJlCisgICB0aGUgPHhyZWYgbGlua2VuZD0iZ3VjLXdhbC1r ZWVwLXNpemUiLz4gbW9zdCByZWNlbnQgbWVnYWJ5dGVzCisgICBXQUwgZmlsZXMgcGx1cyBv bmUgV0FMIGZpbGUgYXJlCiAgICBrZXB0IGF0IGFsbCB0aW1lcy4gQWxzbywgaWYgV0FMIGFy Y2hpdmluZyBpcyB1c2VkLCBvbGQgc2VnbWVudHMgY2FuIG5vdCBiZQogICAgcmVtb3ZlZCBv ciByZWN5Y2xlZCB1bnRpbCB0aGV5IGFyZSBhcmNoaXZlZC4gSWYgV0FMIGFyY2hpdmluZyBj YW5ub3Qga2VlcCB1cAogICAgd2l0aCB0aGUgcGFjZSB0aGF0IFdBTCBpcyBnZW5lcmF0ZWQs IG9yIGlmIDx2YXJuYW1lPmFyY2hpdmVfY29tbWFuZDwvdmFybmFtZT4KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3hsb2cuYwppbmRleCAyOGRhZjcyYTUwLi5jN2E1OWI2MTE2IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCkBAIC04OCw3ICs4OCw3IEBAIGV4dGVybiB1aW50 MzIgYm9vdHN0cmFwX2RhdGFfY2hlY2tzdW1fdmVyc2lvbjsKIC8qIFVzZXItc2V0dGFibGUg cGFyYW1ldGVycyAqLwogaW50CQkJbWF4X3dhbF9zaXplX21iID0gMTAyNDsgLyogMSBHQiAq LwogaW50CQkJbWluX3dhbF9zaXplX21iID0gODA7CS8qIDgwIE1CICovCi1pbnQJCQl3YWxf a2VlcF9zZWdtZW50cyA9IDA7CitpbnQJCQl3YWxfa2VlcF9zaXplX21iID0gMDsKIGludAkJ CVhMT0didWZmZXJzID0gLTE7CiBpbnQJCQlYTG9nQXJjaGl2ZVRpbWVvdXQgPSAwOwogaW50 CQkJWExvZ0FyY2hpdmVNb2RlID0gQVJDSElWRV9NT0RFX09GRjsKQEAgLTk1MjcsNyArOTUy Nyw3IEBAIEdldFdBTEF2YWlsYWJpbGl0eShYTG9nUmVjUHRyIHRhcmdldExTTikKIAogCS8q CiAJICogY2FsY3VsYXRlIHRoZSBvbGRlc3Qgc2VnbWVudCBjdXJyZW50bHkgcmVzZXJ2ZWQg YnkgYWxsIHNsb3RzLAotCSAqIGNvbnNpZGVyaW5nIHdhbF9rZWVwX3NlZ21lbnRzIGFuZCBt YXhfc2xvdF93YWxfa2VlcF9zaXplCisJICogY29uc2lkZXJpbmcgd2FsX2tlZXBfc2l6ZSBh bmQgbWF4X3Nsb3Rfd2FsX2tlZXBfc2l6ZQogCSAqLwogCVhMQnl0ZVRvU2VnKHRhcmdldExT TiwgdGFyZ2V0U2VnLCB3YWxfc2VnbWVudF9zaXplKTsKIAlLZWVwTG9nU2VnKGN1cnJwb3Ms ICZvbGRlc3RTbG90U2VnKTsKQEAgLTk1NzMsOSArOTU3Myw5IEBAIEdldFdBTEF2YWlsYWJp bGl0eShYTG9nUmVjUHRyIHRhcmdldExTTikKIAogLyoKICAqIFJldHJlYXQgKmxvZ1NlZ05v IHRvIHRoZSBsYXN0IHNlZ21lbnQgdGhhdCB3ZSBuZWVkIHRvIHJldGFpbiBiZWNhdXNlIG9m Ci0gKiBlaXRoZXIgd2FsX2tlZXBfc2VnbWVudHMgb3IgcmVwbGljYXRpb24gc2xvdHMuCisg KiBlaXRoZXIgd2FsX2tlZXBfc2l6ZSBvciByZXBsaWNhdGlvbiBzbG90cy4KICAqCi0gKiBU aGlzIGlzIGNhbGN1bGF0ZWQgYnkgc3VidHJhY3Rpbmcgd2FsX2tlZXBfc2VnbWVudHMgZnJv bSB0aGUgZ2l2ZW4geGxvZworICogVGhpcyBpcyBjYWxjdWxhdGVkIGJ5IHN1YnRyYWN0aW5n IHdhbF9rZWVwX3NpemUgZnJvbSB0aGUgZ2l2ZW4geGxvZwogICogbG9jYXRpb24sIHJlY3B0 ciBhbmQgYnkgbWFraW5nIHN1cmUgdGhhdCB0aGF0IHJlc3VsdCBpcyBiZWxvdyB0aGUKICAq IHJlcXVpcmVtZW50IG9mIHJlcGxpY2F0aW9uIHNsb3RzLiAgRm9yIHRoZSBsYXR0ZXIgY3Jp dGVyaW9uIHdlIGRvIGNvbnNpZGVyCiAgKiB0aGUgZWZmZWN0cyBvZiBtYXhfc2xvdF93YWxf a2VlcF9zaXplOiByZXNlcnZlIGF0IG1vc3QgdGhhdCBtdWNoIHNwYWNlIGJhY2sKQEAgLTk2 MTMsMTQgKzk2MTMsMjAgQEAgS2VlcExvZ1NlZyhYTG9nUmVjUHRyIHJlY3B0ciwgWExvZ1Nl Z05vICpsb2dTZWdObykKIAkJfQogCX0KIAotCS8qIGJ1dCwga2VlcCBhdCBsZWFzdCB3YWxf a2VlcF9zZWdtZW50cyBpZiB0aGF0J3Mgc2V0ICovCi0JaWYgKHdhbF9rZWVwX3NlZ21lbnRz ID4gMCAmJiBjdXJyU2VnTm8gLSBzZWdubyA8IHdhbF9rZWVwX3NlZ21lbnRzKQorCS8qIGJ1 dCwga2VlcCBhdCBsZWFzdCB3YWxfa2VlcF9zaXplIGlmIHRoYXQncyBzZXQgKi8KKwlpZiAo d2FsX2tlZXBfc2l6ZV9tYiA+IDApCiAJewotCQkvKiBhdm9pZCB1bmRlcmZsb3csIGRvbid0 IGdvIGJlbG93IDEgKi8KLQkJaWYgKGN1cnJTZWdObyA8PSB3YWxfa2VlcF9zZWdtZW50cykK LQkJCXNlZ25vID0gMTsKLQkJZWxzZQotCQkJc2Vnbm8gPSBjdXJyU2VnTm8gLSB3YWxfa2Vl cF9zZWdtZW50czsKKwkJdWludDY0CQlrZWVwX3NlZ3M7CisKKwkJa2VlcF9zZWdzID0gQ29u dmVydFRvWFNlZ3Mod2FsX2tlZXBfc2l6ZV9tYiwgd2FsX3NlZ21lbnRfc2l6ZSk7CisJCWlm IChjdXJyU2VnTm8gLSBzZWdubyA8IGtlZXBfc2VncykKKwkJeworCQkJLyogYXZvaWQgdW5k ZXJmbG93LCBkb24ndCBnbyBiZWxvdyAxICovCisJCQlpZiAoY3VyclNlZ05vIDw9IGtlZXBf c2VncykKKwkJCQlzZWdubyA9IDE7CisJCQllbHNlCisJCQkJc2Vnbm8gPSBjdXJyU2VnTm8g LSBrZWVwX3NlZ3M7CisJCX0KIAl9CiAKIAkvKiBkb24ndCBkZWxldGUgV0FMIHNlZ21lbnRz IG5ld2VyIHRoYW4gdGhlIGNhbGN1bGF0ZWQgc2VnbWVudCAqLwpAQCAtMTEzMjUsNyArMTEz MzEsNyBAQCBkb19wZ19zdG9wX2JhY2t1cChjaGFyICpsYWJlbGZpbGUsIGJvb2wgd2FpdGZv cmFyY2hpdmUsIFRpbWVMaW5lSUQgKnN0b3B0bGlfcCkKIAkgKiBJZiBhcmNoaXZpbmcgaXMg ZW5hYmxlZCwgd2FpdCBmb3IgYWxsIHRoZSByZXF1aXJlZCBXQUwgZmlsZXMgdG8gYmUKIAkg KiBhcmNoaXZlZCBiZWZvcmUgcmV0dXJuaW5nLiBJZiBhcmNoaXZpbmcgaXNuJ3QgZW5hYmxl ZCwgdGhlIHJlcXVpcmVkIFdBTAogCSAqIG5lZWRzIHRvIGJlIHRyYW5zcG9ydGVkIHZpYSBz dHJlYW1pbmcgcmVwbGljYXRpb24gKGhvcGVmdWxseSB3aXRoCi0JICogd2FsX2tlZXBfc2Vn bWVudHMgc2V0IGhpZ2ggZW5vdWdoKSwgb3Igc29tZSBtb3JlIGV4b3RpYyBtZWNoYW5pc20g bGlrZQorCSAqIHdhbF9rZWVwX3NpemUgc2V0IGhpZ2ggZW5vdWdoKSwgb3Igc29tZSBtb3Jl IGV4b3RpYyBtZWNoYW5pc20gbGlrZQogCSAqIHBvbGxpbmcgYW5kIGNvcHlpbmcgZmlsZXMg ZnJvbSBwZ193YWwgd2l0aCBzY3JpcHQuIFdlIGhhdmUgbm8ga25vd2xlZGdlCiAJICogb2Yg dGhvc2UgbWVjaGFuaXNtcywgc28gaXQncyB1cCB0byB0aGUgdXNlciB0byBlbnN1cmUgdGhh dCBoZSBnZXRzIGFsbAogCSAqIHRoZSByZXF1aXJlZCBXQUwuCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3Nsb3RmdW5jcy5jCmluZGV4IDlmZTE0N2JmNDQuLmY4ODY5NDY3MmYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCisrKyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCkBAIC00MTMsMTkgKzQxMywyMCBAQCBwZ19n ZXRfcmVwbGljYXRpb25fc2xvdHMoUEdfRlVOQ1RJT05fQVJHUykKIAkJZWxzZQogCQl7CiAJ CQlYTG9nU2VnTm8gICB0YXJnZXRTZWc7Ci0JCQlYTG9nU2VnTm8gICBrZWVwU2VnczsKKwkJ CXVpbnQ2NCAgIHNsb3RLZWVwU2VnczsKKwkJCXVpbnQ2NCAgIGtlZXBTZWdzOwogCQkJWExv Z1NlZ05vICAgZmFpbFNlZzsKIAkJCVhMb2dSZWNQdHIgIGZhaWxMU047CiAKIAkJCVhMQnl0 ZVRvU2VnKHNsb3RfY29udGVudHMuZGF0YS5yZXN0YXJ0X2xzbiwgdGFyZ2V0U2VnLCB3YWxf c2VnbWVudF9zaXplKTsKIAotCQkJLyogZGV0ZXJtaW5lIGhvdyBtYW55IHNlZ21lbnRzIHNs b3RzIGNhbiBiZSBrZXB0IGJ5IHNsb3RzIC4uLiAqLwotCQkJa2VlcFNlZ3MgPSBYTG9nTUJW YXJUb1NlZ3MobWF4X3Nsb3Rfd2FsX2tlZXBfc2l6ZV9tYiwgd2FsX3NlZ21lbnRfc2l6ZSk7 Ci0JCQkvKiAuLi4gYW5kIG92ZXJyaWRlIGJ5IHdhbF9rZWVwX3NlZ21lbnRzIGFzIG5lZWRl ZCAqLwotCQkJa2VlcFNlZ3MgPSBNYXgoa2VlcFNlZ3MsIHdhbF9rZWVwX3NlZ21lbnRzKTsK KwkJCS8qIGRldGVybWluZSBob3cgbWFueSBzZWdtZW50cyBzbG90cyBjYW4gYmUga2VwdCBi eSBzbG90cyAqLworCQkJc2xvdEtlZXBTZWdzID0gWExvZ01CVmFyVG9TZWdzKG1heF9zbG90 X3dhbF9rZWVwX3NpemVfbWIsIHdhbF9zZWdtZW50X3NpemUpOworCQkJLyogZGl0dG8gZm9y IHdhbF9rZWVwX3NpemUgKi8KKwkJCWtlZXBTZWdzID0gWExvZ01CVmFyVG9TZWdzKHdhbF9r ZWVwX3NpemVfbWIsIHdhbF9zZWdtZW50X3NpemUpOwogCiAJCQkvKiBpZiBjdXJycG9zIHJl YWNoZXMgZmFpbExTTiwgd2UgbG9zZSBvdXIgc2VnbWVudCAqLwotCQkJZmFpbFNlZyA9IHRh cmdldFNlZyArIGtlZXBTZWdzICsgMTsKKwkJCWZhaWxTZWcgPSB0YXJnZXRTZWcgKyBNYXgo c2xvdEtlZXBTZWdzLCBrZWVwU2VncykgKyAxOwogCQkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQ dHIoZmFpbFNlZywgMCwgd2FsX3NlZ21lbnRfc2l6ZSwgZmFpbExTTik7CiAKIAkJCXZhbHVl c1tpKytdID0gSW50NjRHZXREYXR1bShmYWlsTFNOIC0gY3Vycmxzbik7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9ndWMuYwppbmRleCAwMzFjYTAzMjdmLi44YjcxZDE2ZjkyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9taXNjL2d1Yy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv Z3VjLmMKQEAgLTI2MzEsMTIgKzI2MzEsMTMgQEAgc3RhdGljIHN0cnVjdCBjb25maWdfaW50 IENvbmZpZ3VyZU5hbWVzSW50W10gPQogCX0sCiAKIAl7Ci0JCXsid2FsX2tlZXBfc2VnbWVu dHMiLCBQR0NfU0lHSFVQLCBSRVBMSUNBVElPTl9TRU5ESU5HLAotCQkJZ2V0dGV4dF9ub29w KCJTZXRzIHRoZSBudW1iZXIgb2YgV0FMIGZpbGVzIGhlbGQgZm9yIHN0YW5kYnkgc2VydmVy cy4iKSwKLQkJCU5VTEwKKwkJeyJ3YWxfa2VlcF9zaXplIiwgUEdDX1NJR0hVUCwgUkVQTElD QVRJT05fU0VORElORywKKwkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgc2l6ZSBvZiBXQUwg ZmlsZXMgaGVsZCBmb3Igc3RhbmRieSBzZXJ2ZXJzLiIpLAorCQkJTlVMTCwKKwkJCUdVQ19V TklUX01CCiAJCX0sCi0JCSZ3YWxfa2VlcF9zZWdtZW50cywKLQkJMCwgMCwgSU5UX01BWCwK KwkJJndhbF9rZWVwX3NpemVfbWIsCisJCTAsIDAsIE1BWF9LSUxPQllURVMsCiAJCU5VTEws IE5VTEwsIE5VTEwKIAl9LAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNj L3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUKaW5kZXggZTQzMGUzM2M3Yi4uOTBiZWI4NzA2MSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpAQCAt Mjg4LDcgKzI4OCw3IEBACiAKICNtYXhfd2FsX3NlbmRlcnMgPSAxMAkJIyBtYXggbnVtYmVy IG9mIHdhbHNlbmRlciBwcm9jZXNzZXMKIAkJCQkjIChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFy dCkKLSN3YWxfa2VlcF9zZWdtZW50cyA9IDAJCSMgaW4gbG9nZmlsZSBzZWdtZW50czsgMCBk aXNhYmxlcworI3dhbF9rZWVwX3NpemUgPSAwCQkjIGluIG1lZ2FieXRlczsgMCBkaXNhYmxl cwogI21heF9zbG90X3dhbF9rZWVwX3NpemUgPSAtMQkjIGluIG1lZ2FieXRlczsgLTEgZGlz YWJsZXMKICN3YWxfc2VuZGVyX3RpbWVvdXQgPSA2MHMJIyBpbiBtaWxsaXNlY29uZHM7IDAg ZGlzYWJsZXMKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19yZXdpbmQvdC9SZXdpbmRUZXN0 LnBtIGIvc3JjL2Jpbi9wZ19yZXdpbmQvdC9SZXdpbmRUZXN0LnBtCmluZGV4IDc1MTZhZjdh MDEuLjQxZWQ3ZDRiM2IgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfcmV3aW5kL3QvUmV3aW5k VGVzdC5wbQorKysgYi9zcmMvYmluL3BnX3Jld2luZC90L1Jld2luZFRlc3QucG0KQEAgLTEz NSwxMSArMTM1LDExIEBAIHN1YiBzZXR1cF9jbHVzdGVyCiAJCWV4dHJhICAgICAgICAgICAg PT4gJGV4dHJhLAogCQlhdXRoX2V4dHJhICAgICAgID0+IFsgJy0tY3JlYXRlLXJvbGUnLCAn cmV3aW5kX3VzZXInIF0pOwogCi0JIyBTZXQgd2FsX2tlZXBfc2VnbWVudHMgdG8gcHJldmVu dCBXQUwgc2VnbWVudCByZWN5Y2xpbmcgYWZ0ZXIgZW5mb3JjZWQKKwkjIFNldCB3YWxfa2Vl cF9zaXplIHRvIHByZXZlbnQgV0FMIHNlZ21lbnQgcmVjeWNsaW5nIGFmdGVyIGVuZm9yY2Vk CiAJIyBjaGVja3BvaW50cyBpbiB0aGUgdGVzdHMuCiAJJG5vZGVfcHJpbWFyeS0+YXBwZW5k X2NvbmYoCiAJCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKLXdhbF9rZWVwX3NlZ21lbnRzID0g MjAKK3dhbF9rZWVwX3NpemUgPSAzMjBNQgogKSk7CiAJcmV0dXJuOwogfQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9n LmgKaW5kZXggNWIxNDMzNDg4Ny4uNDU2ZjBkMTMyMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvYWNjZXNzL3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCkBAIC0x MDcsNyArMTA3LDcgQEAgZXh0ZXJuIGJvb2wgcmVhY2hlZENvbnNpc3RlbmN5OwogZXh0ZXJu IGludAl3YWxfc2VnbWVudF9zaXplOwogZXh0ZXJuIGludAltaW5fd2FsX3NpemVfbWI7CiBl eHRlcm4gaW50CW1heF93YWxfc2l6ZV9tYjsKLWV4dGVybiBpbnQJd2FsX2tlZXBfc2VnbWVu dHM7CitleHRlcm4gaW50CXdhbF9rZWVwX3NpemVfbWI7CiBleHRlcm4gaW50CW1heF9zbG90 X3dhbF9rZWVwX3NpemVfbWI7CiBleHRlcm4gaW50CVhMT0didWZmZXJzOwogZXh0ZXJuIGlu dAlYTG9nQXJjaGl2ZVRpbWVvdXQ7CkBAIC0yNzIsNyArMjcyLDcgQEAgdHlwZWRlZiBlbnVt IFdBTEF2YWlsYWJpbGl0eQogCVdBTEFWQUlMX0lOVkFMSURfTFNOLAkJLyogcGFyYW1ldGVy IGVycm9yICovCiAJV0FMQVZBSUxfUkVTRVJWRUQsCQkJLyogV0FMIHNlZ21lbnQgaXMgd2l0 aGluIG1heF93YWxfc2l6ZSAqLwogCVdBTEFWQUlMX0VYVEVOREVELAkJCS8qIFdBTCBzZWdt ZW50IGlzIHJlc2VydmVkIGJ5IGEgc2xvdCBvcgotCQkJCQkJCQkgKiB3YWxfa2VlcF9zZWdt ZW50cyAqLworCQkJCQkJCQkgKiB3YWxfa2VlcF9zaXplICovCiAJV0FMQVZBSUxfVU5SRVNF UlZFRCwJCS8qIG5vIGxvbmdlciByZXNlcnZlZCwgYnV0IG5vdCByZW1vdmVkIHlldCAqLwog CVdBTEFWQUlMX1JFTU9WRUQJCQkvKiBXQUwgc2VnbWVudCBoYXMgYmVlbiByZW1vdmVkICov CiB9IFdBTEF2YWlsYWJpbGl0eTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3Qv MDE5X3JlcGxzbG90X2xpbWl0LnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMTlfcmVwbHNs b3RfbGltaXQucGwKaW5kZXggMWZjZWQxMmZjYS4uMjBmNGExYmJjMyAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMTlfcmVwbHNsb3RfbGltaXQucGwKKysrIGIvc3JjL3Rl c3QvcmVjb3ZlcnkvdC8wMTlfcmVwbHNsb3RfbGltaXQucGwKQEAgLTExNiwxOSArMTE2LDE5 IEBAICRzdGFydF9sc24gPSAkbm9kZV9wcmltYXJ5LT5sc24oJ3dyaXRlJyk7CiAkbm9kZV9w cmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkc3Rh cnRfbHNuKTsKICRub2RlX3N0YW5kYnktPnN0b3A7CiAKLSMgd2FsX2tlZXBfc2VnbWVudHMg b3ZlcnJpZGVzIG1heF9zbG90X3dhbF9rZWVwX3NpemUKKyMgd2FsX2tlZXBfc2l6ZSBvdmVy cmlkZXMgbWF4X3Nsb3Rfd2FsX2tlZXBfc2l6ZQogJHJlc3VsdCA9ICRub2RlX3ByaW1hcnkt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJBTFRFUiBTWVNURU0gU0VUIHdhbF9rZWVwX3Nl Z21lbnRzIHRvIDg7IFNFTEVDVCBwZ19yZWxvYWRfY29uZigpOyIpOworCSJBTFRFUiBTWVNU RU0gU0VUIHdhbF9rZWVwX3NpemUgdG8gJzhNQic7IFNFTEVDVCBwZ19yZWxvYWRfY29uZigp OyIpOwogIyBBZHZhbmNlIFdBTCBhZ2FpbiB0aGVuIGNoZWNrcG9pbnQsIHJlZHVjaW5nIHJl bWFpbiBieSA2IE1CLgogYWR2YW5jZV93YWwoJG5vZGVfcHJpbWFyeSwgNik7CiAkcmVzdWx0 ID0gJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlNFTEVDVCB3YWxf c3RhdHVzIGFzIHJlbWFpbiBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3Rf bmFtZSA9ICdyZXAxJyIKICk7CiBpcygkcmVzdWx0LCAiZXh0ZW5kZWQiLAotCSdjaGVjayB0 aGF0IHdhbF9rZWVwX3NlZ21lbnRzIG92ZXJyaWRlcyBtYXhfc2xvdF93YWxfa2VlcF9zaXpl Jyk7Ci0jIHJlc3RvcmUgd2FsX2tlZXBfc2VnbWVudHMKKwknY2hlY2sgdGhhdCB3YWxfa2Vl cF9zaXplIG92ZXJyaWRlcyBtYXhfc2xvdF93YWxfa2VlcF9zaXplJyk7CisjIHJlc3RvcmUg d2FsX2tlZXBfc2l6ZQogJHJlc3VsdCA9ICRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgncG9z dGdyZXMnLAotCSJBTFRFUiBTWVNURU0gU0VUIHdhbF9rZWVwX3NlZ21lbnRzIHRvIDA7IFNF TEVDVCBwZ19yZWxvYWRfY29uZigpOyIpOworCSJBTFRFUiBTWVNURU0gU0VUIHdhbF9rZWVw X3NpemUgdG8gMDsgU0VMRUNUIHBnX3JlbG9hZF9jb25mKCk7Iik7CiAKICMgVGhlIHN0YW5k YnkgY2FuIHJlY29ubmVjdCB0byBwcmltYXJ5CiAkbm9kZV9zdGFuZGJ5LT5zdGFydDsK --------------88BCF3C831B3B0F2C6D040CE--