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 1jrBiB-00023s-6F for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Jul 2020 02:45:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jrBiA-0000a0-5q for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Jul 2020 02:45:58 +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 1jrBi9-0000Zs-Mp for pgsql-hackers@lists.postgresql.org; Fri, 03 Jul 2020 02:45:57 +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 1jrBi6-0005bN-R1 for pgsql-hackers@postgresql.org; Fri, 03 Jul 2020 02:45:56 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTP id 523E760553; Fri, 3 Jul 2020 11:45:52 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.102.3 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_45ea178dc6268f316ede8046e88b76a5" Date: Fri, 03 Jul 2020 11:45:52 +0900 From: torikoshia To: Fujii Masao Cc: pgsql-hackers@postgresql.org Subject: Re: Creating a function for exposing memory usage of backend process In-Reply-To: <5cbed0cc-79fc-3b98-120a-20e07848d10a@oss.nttdata.com> References: <72a656e0f71d0860161e0b3f67e4d771@oss.nttdata.com> <398eb7cd-5f75-be1c-3897-36865b7bfabf@oss.nttdata.com> <3193c7d590f3212e543b63df977da758@oss.nttdata.com> <78268b5f-53ed-4645-1abb-23c1030cce0a@oss.nttdata.com> <6c828f3a1d44dba81999fc7990b8f1c5@oss.nttdata.com> <062bab2db5645812fae12e3a965de463@oss.nttdata.com> <5cbed0cc-79fc-3b98-120a-20e07848d10a@oss.nttdata.com> Message-ID: <805313b5f7dc2e6c19b209ff930a7a61@oss.nttdata.com> X-Sender: torikoshia@oss.nttdata.com User-Agent: Roundcube Webmail/1.1.9 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --=_45ea178dc6268f316ede8046e88b76a5 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On Wed, Jul 1, 2020 at 10:15 PM torikoshia wrote: > I'm going to do some renaming and transportations. > > - view name: pg_memory_contexts > - function name: pg_get_memory_contexts() > - source file: mainly src/backend/utils/mmgr/mcxt.c Attached an updated patch. On Wed, Jul 1, 2020 at 10:58 PM Fujii Masao wrote: > Ok, understood! I agree that it's strange to display different names > for the same memory context between this view and logging. > > It's helpful if the comment there refers to MemoryContextStatsPrint() > and mentions the reason that you told. Agreed. I changed the comments. > > It also derived from MemoryContextStatsPrint(). > > I suppose it is for keeping readability of the log.. > > Understood. I may want to change the upper limit of query size to > display. > But at the first step, I'm fine with limitting 1024 bytes. Thanks, I've left it as it was. > > I'm going to follow the discussion on the mailing list and find why > > these codes were introduced. > > https://www.postgresql.org/message-id/12319.1521999065%40sss.pgh.pa.us Thanks for sharing! Regards, -- Atsushi Torikoshi NTT DATA CORPORATION --=_45ea178dc6268f316ede8046e88b76a5 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0003-Adding-a-function-exposing-memory-usage-of-local-backend.patch Content-Disposition: attachment; filename*0*=UTF-8''0003-Adding-a-function-exposing-memory-usage-of-local-; filename*1*=backend.patch; size=12606 RnJvbSAwNTVhZjkwM2EzZGJmMTQ2ZDk3ZGQzZmIwMWE2YTdkM2QzYmQyYWUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IFdlZCwgMyBKdWwgMjAyMCAxMTowMDo0MiArMDkwMApTdWJqZWN0OiBb UEFUQ0hdIEFkZCBhIGZ1bmN0aW9uIGV4cG9zaW5nIG1lbW9yeSB1c2FnZSBvZiBsb2NhbCBiYWNr ZW5kLgoKUHJldmlvdXNseSwgdGhlIG9ubHkgd2F5IHRvIGV4YW1pbmUgdGhlIHVzYWdlIG9mIGJh Y2tlbmQgcHJvY2Vzc2VzCndhcyBhdHRhY2hpbmcgYSBkZWJ1Z2dlciBhbmQgY2FsbCBNZW1vcnlD b250ZXh0U3RhdHMoKSBhbmQgaXQgd2FzCm5vdCBzbyBjb252ZW5pZW50IGluIHNvbWUgY2FzZXMu CgpUaGlzIHBhdGNoIGltcGxlbWVudHMgYSBuZXcgU1FMLWNhbGxhYmxlIGZ1bmN0aW9uCnBnX2dl dF9tZW1vcnlfY29udGV4dHMgd2hpY2ggZXhwb3NlcyBtZW1vcnkgdXNhZ2Ugb2YgdGhlIGxvY2Fs CmJhY2tlbmQuCkl0IGFsc28gYWRkcyBhIG5ldyB2aWV3IHBnX21lbW9yeV9jb250ZXh0cyBmb3Ig ZXhwb3NpbmcgbG9jYWwKYmFja2VuZCBtZW1vcnkgY29udGV4dHMuCi0tLQogZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwgICAgICAgICAgIHwgMTI2ICsrKysrKysrKysrKysrKysrKysrKysrKysr CiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgfCAgIDMgKwogc3JjL2JhY2tl bmQvdXRpbHMvbW1nci9tY3h0LmMgICAgICAgIHwgMTMwICsrKysrKysrKysrKysrKysrKysrKysr KysrLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgIHwgICA5ICsrCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgfCAgMTAgKysrCiA1IGZpbGVzIGNoYW5n ZWQsIDI3NyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCA0 OWE4ODFiMjYyLi5lN2VjODIyMTM5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTI0OCw2ICs5MjQ4LDEx IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9y ZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8ZW50cnk+bWF0ZXJpYWxpemVkIHZp ZXdzPC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGlu ayBsaW5rZW5kPSJ2aWV3LXBnLW1lbW9yeS1jb250ZXh0cyI+PHN0cnVjdG5hbWU+cGdfbWVtb3J5 X2NvbnRleHRzPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5PmJhY2tl bmQgbWVtb3J5IGNvbnRleHRzPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAg ICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJ2aWV3LXBnLXBvbGljaWVzIj48c3RydWN0bmFtZT5w Z19wb2xpY2llczwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KICAgICAgIDxlbnRyeT5wb2xp Y2llczwvZW50cnk+CkBAIC0xMDUyNiw2ICsxMDUzMSwxMjcgQEAgU0VMRUNUICogRlJPTSBwZ19s b2NrcyBwbCBMRUZUIEpPSU4gcGdfcHJlcGFyZWRfeGFjdHMgcHB4CiAKICA8L3NlY3QxPgogCisg PHNlY3QxIGlkPSJ2aWV3LXBnLW1lbW9yeS1jb250ZXh0cyI+CisgIDx0aXRsZT48c3RydWN0bmFt ZT5wZ19tZW1vcnlfY29udGV4dHM8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJt IHpvbmU9InZpZXctcGctbWVtb3J5LWNvbnRleHRzIj4KKyAgIDxwcmltYXJ5PnBnX21lbW9yeV9j b250ZXh0czwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPGluZGV4dGVybSB6b25lPSJ2 aWV3LXBnLW1lbW9yeS1jb250ZXh0cyI+CisgICA8cHJpbWFyeT5iYWNrZW5kIG1lbW9yeSBjb250 ZXh0czwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgdmlldyA8 c3RydWN0bmFtZT5wZ19tZW1vcnlfY29udGV4dHM8L3N0cnVjdG5hbWU+IGRpc3BsYXlzIGFsbAor ICAgdGhlIGxvY2FsIGJhY2tlbmQgbWVtb3J5IGNvbnRleHRzLgorICA8L3BhcmE+CisgIDxwYXJh PgorICAgPHN0cnVjdG5hbWU+cGdfbWVtb3J5X2NvbnRleHRzPC9zdHJ1Y3RuYW1lPiBjb250YWlu cyBvbmUgcm93CisgICBmb3IgZWFjaCBtZW1vcnkgY29udGV4dC4KKyAgPC9wYXJhPgorCisgIDx0 YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19tZW1vcnlfY29udGV4dHM8L3N0cnVjdG5h bWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+Cisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50 cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5uYW1lPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5h bWUgb2YgdGhlIG1lbW9yeSBjb250ZXh0CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmlk ZW50PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIElkZW50aWZpY2F0aW9uIGluZm9ybWF0aW9uIG9mIHRoZSBtZW1vcnkg Y29udGV4dC4gVGhpcyBmaWVsZCBpcyB0cnVuY2F0ZWQgaWYgdGhlIGlkZW50aWZpY2F0aW9uIGZp ZWxkIGlzIGxvbmdlciB0aGFuIDEwMjQgY2hhcmFjdGVycworICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5wYXJlbnQ8L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgcGFyZW50IG9mIHRoaXMgbWVt b3J5IGNvbnRleHQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+bGV2ZWw8L3N0cnVjdGZp ZWxkPiA8dHlwZT5pbnRlZ2VyPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgRGlzdGFuY2UgZnJvbSBUb3BNZW1vcnlDb250ZXh0IGluIGNvbnRleHQgdHJlZQorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9ieXRlczwvc3RydWN0ZmllbGQ+IDx0eXBl PmJpZ2ludDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRvdGFs IGJ5dGVzIHJlcXVlc3RlZCBmcm9tIG1hbGxvYworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD50b3RhbF9uYmxvY2tzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVG90YWwgbnVtYmVyIG9mIG1hbGxvYyBibG9j a3MKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZnJlZV9ieXRlczwvc3RydWN0ZmllbGQ+ IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IEZyZWUgc3BhY2UgaW4gYnl0ZXMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZnJlZV9j aHVua3M8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBUb3RhbCBudW1iZXIgb2YgZnJlZSBjaHVua3MKKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dXNlZF9ieXRlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2lu dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFVzZWQgc3BhY2Ug aW4gYnl0ZXMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5 PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisKKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJ2 aWV3LXBnLW1hdHZpZXdzIj4KICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX21hdHZpZXdzPC9zdHJ1 Y3RuYW1lPjwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVt X3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCA1 MzE0ZTkzNDhmLi43OWQ0NDg0MmM2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5 c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3Fs CkBAIC01NTQsNiArNTU0LDkgQEAgQ1JFQVRFIFZJRVcgcGdfc2htZW1fYWxsb2NhdGlvbnMgQVMK IFJFVk9LRSBBTEwgT04gcGdfc2htZW1fYWxsb2NhdGlvbnMgRlJPTSBQVUJMSUM7CiBSRVZPS0Ug RVhFQ1VURSBPTiBGVU5DVElPTiBwZ19nZXRfc2htZW1fYWxsb2NhdGlvbnMoKSBGUk9NIFBVQkxJ QzsKIAorQ1JFQVRFIFZJRVcgcGdfbWVtb3J5X2NvbnRleHRzIEFTCisgICAgU0VMRUNUICogRlJP TSBwZ19nZXRfbWVtb3J5X2NvbnRleHRzKCk7CisKIC0tIFN0YXRpc3RpY3Mgdmlld3MKIAogQ1JF QVRFIFZJRVcgcGdfc3RhdF9hbGxfdGFibGVzIEFTCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9tbWdyL21jeHQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvbWN4dC5jCmluZGV4IGFi ZGEyMmZhNTcuLjc2ZmQ2ZjlhNmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3Iv bWN4dC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvbWN4dC5jCkBAIC0yMSwxMiArMjEs MTMgQEAKIAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNsdWRlICJmdW5jYXBpLmgiCiAj aW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRl ICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL21lbWRlYnVnLmgiCiAjaW5jbHVk ZSAidXRpbHMvbWVtdXRpbHMuaCIKIAotCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCSAgR0xP QkFMIE1FTU9SWQkJCQkJCQkJCQkJCQkJCSAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC02 Nyw2ICs2OCwxMiBAQCBzdGF0aWMgdm9pZCBNZW1vcnlDb250ZXh0U3RhdHNQcmludChNZW1vcnlD b250ZXh0IGNvbnRleHQsIHZvaWQgKnBhc3N0aHJ1LAogI2RlZmluZSBBc3NlcnROb3RJbkNyaXRp Y2FsU2VjdGlvbihjb250ZXh0KSBcCiAJQXNzZXJ0KENyaXRTZWN0aW9uQ291bnQgPT0gMCB8fCAo Y29udGV4dCktPmFsbG93SW5Dcml0U2VjdGlvbikKIAorLyogLS0tLS0tLS0tLQorICogVGhlIG1h eCBieXRlcyBmb3Igc2hvd2luZyBpZGVudGlmaWVycyBvZiBNZW1vcnlDb250ZXh0LgorICogLS0t LS0tLS0tLQorICovCisjZGVmaW5lIE1FTU9SWV9DT05URVhUX0lERU5UX1NJWkUJMTAyNAorCiAv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKICAqCSAgRVhQT1JURUQgUk9VVElORVMJCQkJCQkJCQkJCQkJ CSAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0xMjIwLDMgKzEyMjcsMTI0IEBAIHBjaG9t cChjb25zdCBjaGFyICppbikKIAkJbi0tOwogCXJldHVybiBwbnN0cmR1cChpbiwgbik7CiB9CisK Ky8qCisgKiBQdXRNZW1vcnlDb250ZXh0c1N0YXRzVHVwbGVTdG9yZQorICoJCU9uZSByZWN1cnNp b24gbGV2ZWwgZm9yIHBnX2dldF9tZW1vcnlfY29udGV4dHMuCisgKi8KK3N0YXRpYyB2b2lkCitQ dXRNZW1vcnlDb250ZXh0c1N0YXRzVHVwbGVTdG9yZShUdXBsZXN0b3Jlc3RhdGUgKnR1cHN0b3Jl LAorCQkJCQkJCQlUdXBsZURlc2MgdHVwZGVzYywgTWVtb3J5Q29udGV4dCBjb250ZXh0LAorCQkJ CQkJCQlNZW1vcnlDb250ZXh0IHBhcmVudCwgaW50IGxldmVsKQoreworI2RlZmluZSBQR19TVEFU X0dFVF9NRU1PUllfQ09OVEVYVF9DT0xTCTkKKwlEYXR1bQkJdmFsdWVzW1BHX1NUQVRfR0VUX01F TU9SWV9DT05URVhUX0NPTFNdOworCWJvb2wJCW51bGxzW1BHX1NUQVRfR0VUX01FTU9SWV9DT05U RVhUX0NPTFNdOworCU1lbW9yeUNvbnRleHRDb3VudGVycyBzdGF0OworCU1lbW9yeUNvbnRleHQg Y2hpbGQ7CisJY29uc3QgY2hhciAqbmFtZSA9IGNvbnRleHQtPm5hbWU7CisJY29uc3QgY2hhciAq aWRlbnQgPSBjb250ZXh0LT5pZGVudDsKKworCWlmIChjb250ZXh0ID09IE5VTEwpCisJCXJldHVy bjsKKworCS8qCisJICogVG8gYmUgY29uc2lzdGVudCB3aXRoIGxvZ2dpbmcgb3V0cHV0LCB3ZSBs YWJlbCBkeW5haGFzaCBjb250ZXh0cworCSAqIHdpdGgganVzdCB0aGUgaGFzaCB0YWJsZSBuYW1l IGFzIHdpdGggTWVtb3J5Q29udGV4dFN0YXRzUHJpbnQoKS4KKwkgKi8KKwlpZiAoaWRlbnQgJiYg c3RyY21wKG5hbWUsICJkeW5haGFzaCIpID09IDApCisJeworCQluYW1lID0gaWRlbnQ7CisJCWlk ZW50ID0gTlVMTDsKKwl9CisKKwkvKiBFeGFtaW5lIHRoZSBjb250ZXh0IGl0c2VsZiAqLworCW1l bXNldCgmc3RhdCwgMCwgc2l6ZW9mKHN0YXQpKTsKKwkoKmNvbnRleHQtPm1ldGhvZHMtPnN0YXRz KSAoY29udGV4dCwgTlVMTCwgKHZvaWQgKikgJmxldmVsLCAmc3RhdCk7CisKKwltZW1zZXQobnVs bHMsIDAsIHNpemVvZihudWxscykpOworCXZhbHVlc1swXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0o bmFtZSk7CisKKwlpZiAoaWRlbnQpCisJeworCQlpbnQJCWlkbGVuID0gc3RybGVuKGlkZW50KTsK KwkJY2hhcgkJY2xpcHBlZF9pZGVudFtNRU1PUllfQ09OVEVYVF9JREVOVF9TSVpFXTsKKworCQkv KgorCQkgKiBTb21lIGlkZW50aWZpZXJzIHN1Y2ggYXMgU1FMIHF1ZXJ5IHN0cmluZyBjYW4gYmUg dmVyeSBsb25nLAorCQkgKiB0cnVuY2F0ZSBvdmVyc2l6ZSBpZGVudGlmaWVycy4KKwkJICovCisJ CWlmIChpZGxlbiA+PSBNRU1PUllfQ09OVEVYVF9JREVOVF9TSVpFKQorCQkJaWRsZW4gPSBwZ19t YmNsaXBsZW4oaWRlbnQsIGlkbGVuLCBNRU1PUllfQ09OVEVYVF9JREVOVF9TSVpFIC0gMSk7CisK KwkJbWVtY3B5KGNsaXBwZWRfaWRlbnQsIGlkZW50LCBpZGxlbik7CisJCWNsaXBwZWRfaWRlbnRb aWRsZW5dID0gJ1wwJzsKKwkJdmFsdWVzWzFdID0gQ1N0cmluZ0dldFRleHREYXR1bShjbGlwcGVk X2lkZW50KTsKKwl9CisJZWxzZQorCQludWxsc1sxXSA9IHRydWU7CisKKwlpZiAocGFyZW50ID09 IE5VTEwpCisJCW51bGxzWzJdID0gdHJ1ZTsKKwllbHNlCisJCXZhbHVlc1syXSA9IENTdHJpbmdH ZXRUZXh0RGF0dW0ocGFyZW50LT5uYW1lKTsKKwl2YWx1ZXNbM10gPSBJbnQzMkdldERhdHVtKGxl dmVsKTsKKwl2YWx1ZXNbNF0gPSBJbnQ2NEdldERhdHVtKHN0YXQudG90YWxzcGFjZSk7CisJdmFs dWVzWzVdID0gSW50NjRHZXREYXR1bShzdGF0Lm5ibG9ja3MpOworCXZhbHVlc1s2XSA9IEludDY0 R2V0RGF0dW0oc3RhdC5mcmVlc3BhY2UpOworCXZhbHVlc1s3XSA9IEludDY0R2V0RGF0dW0oc3Rh dC5mcmVlY2h1bmtzKTsKKwl2YWx1ZXNbOF0gPSBJbnQ2NEdldERhdHVtKHN0YXQudG90YWxzcGFj ZSAtIHN0YXQuZnJlZXNwYWNlKTsKKwl0dXBsZXN0b3JlX3B1dHZhbHVlcyh0dXBzdG9yZSwgdHVw ZGVzYywgdmFsdWVzLCBudWxscyk7CisKKwlmb3IgKGNoaWxkID0gY29udGV4dC0+Zmlyc3RjaGls ZDsgY2hpbGQgIT0gTlVMTDsgY2hpbGQgPSBjaGlsZC0+bmV4dGNoaWxkKQorCXsKKwkJUHV0TWVt b3J5Q29udGV4dHNTdGF0c1R1cGxlU3RvcmUodHVwc3RvcmUsIHR1cGRlc2MsCisJCQkJCQkJCSAg Y2hpbGQsIGNvbnRleHQsIGxldmVsICsgMSk7CisJfQorfQorCisvKgorICogcGdfZ2V0X21lbW9y eV9jb250ZXh0cworICoJCVNRTCBTUkYgc2hvd2luZyBiYWNrZW5kIG1lbW9yeSBjb250ZXh0Lgor ICovCitEYXR1bQorcGdfZ2V0X21lbW9yeV9jb250ZXh0cyhQR19GVU5DVElPTl9BUkdTKQorewor CVJldHVyblNldEluZm8gKnJzaW5mbyA9IChSZXR1cm5TZXRJbmZvICopIGZjaW5mby0+cmVzdWx0 aW5mbzsKKwlUdXBsZURlc2MJdHVwZGVzYzsKKwlUdXBsZXN0b3Jlc3RhdGUgKnR1cHN0b3JlOwor CU1lbW9yeUNvbnRleHQgcGVyX3F1ZXJ5X2N0eDsKKwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7 CisKKwkvKiBjaGVjayB0byBzZWUgaWYgY2FsbGVyIHN1cHBvcnRzIHVzIHJldHVybmluZyBhIHR1 cGxlc3RvcmUgKi8KKwlpZiAocnNpbmZvID09IE5VTEwgfHwgIUlzQShyc2luZm8sIFJldHVyblNl dEluZm8pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9O T1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJzZXQtdmFsdWVkIGZ1bmN0aW9uIGNhbGxlZCBp biBjb250ZXh0IHRoYXQgY2Fubm90IGFjY2VwdCBhIHNldCIpKSk7CisJaWYgKCEocnNpbmZvLT5h bGxvd2VkTW9kZXMgJiBTRlJNX01hdGVyaWFsaXplKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygibWF0 ZXJpYWxpemUgbW9kZSByZXF1aXJlZCwgYnV0IGl0IGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgY29u dGV4dCIpKSk7CisKKwkvKiBCdWlsZCBhIHR1cGxlIGRlc2NyaXB0b3IgZm9yIG91ciByZXN1bHQg dHlwZSAqLworCWlmIChnZXRfY2FsbF9yZXN1bHRfdHlwZShmY2luZm8sIE5VTEwsICZ0dXBkZXNj KSAhPSBUWVBFRlVOQ19DT01QT1NJVEUpCisJCWVsb2coRVJST1IsICJyZXR1cm4gdHlwZSBtdXN0 IGJlIGEgcm93IHR5cGUiKTsKKworCXBlcl9xdWVyeV9jdHggPSByc2luZm8tPmVjb250ZXh0LT5l Y3h0X3Blcl9xdWVyeV9tZW1vcnk7CisJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hU byhwZXJfcXVlcnlfY3R4KTsKKworCXR1cHN0b3JlID0gdHVwbGVzdG9yZV9iZWdpbl9oZWFwKHRy dWUsIGZhbHNlLCB3b3JrX21lbSk7CisJcnNpbmZvLT5yZXR1cm5Nb2RlID0gU0ZSTV9NYXRlcmlh bGl6ZTsKKwlyc2luZm8tPnNldFJlc3VsdCA9IHR1cHN0b3JlOworCXJzaW5mby0+c2V0RGVzYyA9 IHR1cGRlc2M7CisKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisKKwlQdXRN ZW1vcnlDb250ZXh0c1N0YXRzVHVwbGVTdG9yZSh0dXBzdG9yZSwgdHVwZGVzYywKKwkJCQkJCQkJ VG9wTWVtb3J5Q29udGV4dCwgTlVMTCwgMCk7CisKKwkvKiBjbGVhbiB1cCBhbmQgcmV0dXJuIHRo ZSB0dXBsZXN0b3JlICovCisJdHVwbGVzdG9yZV9kb25lc3RvcmluZyh0dXBzdG9yZSk7CisKKwly ZXR1cm4gKERhdHVtKSAwOworfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w cm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggMzgyOTVhY2E0 OC4uMjIwMjRjNmQ1MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC03Nzk3LDYgKzc3OTcs MTUgQEAKICAgcHJvYXJnbmFtZXMgPT4gJ3tuYW1lLG9mZixzaXplLGFsbG9jYXRlZF9zaXplfScs CiAgIHByb3NyYyA9PiAncGdfZ2V0X3NobWVtX2FsbG9jYXRpb25zJyB9LAogCisjIG1lbW9yeSBj b250ZXh0IG9mIGxvY2FsIGJhY2tlbmQKK3sgb2lkID0+ICcyMjgyJywgZGVzY3IgPT4gJ3N0YXRp c3RpY3M6IGluZm9ybWF0aW9uIGFib3V0IGFsbCBtZW1vcnkgY29udGV4dHMgb2YgbG9jYWwgYmFj a2VuZCcsCisgIHByb25hbWUgPT4gJ3BnX2dldF9tZW1vcnlfY29udGV4dHMnLCBwcm9yb3dzID0+ ICcxMDAnLCBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm92b2xhdGlsZSA9PiAndicsIHByb3BhcmFs bGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywgcHJvYXJndHlwZXMgPT4gJycsCisg IHByb2FsbGFyZ3R5cGVzID0+ICd7dGV4dCx0ZXh0LHRleHQsaW50NCxpbnQ4LGludDgsaW50OCxp bnQ4LGludDh9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG8sb30nLAorICBw cm9hcmduYW1lcyA9PiAne25hbWUsIGlkZW50LCBwYXJlbnQsIGxldmVsLCB0b3RhbF9ieXRlcywg dG90YWxfbmJsb2NrcywgZnJlZV9ieXRlcywgZnJlZV9jaHVua3MsIHVzZWRfYnl0ZXN9JywKKyAg cHJvc3JjID0+ICdwZ19nZXRfbWVtb3J5X2NvbnRleHRzJyB9LAorCiAjIG5vbi1wZXJzaXN0ZW50 IHNlcmllcyBnZW5lcmF0b3IKIHsgb2lkID0+ICcxMDY2JywgZGVzY3IgPT4gJ25vbi1wZXJzaXN0 ZW50IHNlcmllcyBnZW5lcmF0b3InLAogICBwcm9uYW1lID0+ICdnZW5lcmF0ZV9zZXJpZXMnLCBw cm9yb3dzID0+ICcxMDAwJywKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggYjgx M2UzMjIxNS4uNmJiNTY4NDdjMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAg LTEzOTcsNiArMTM5NywxNiBAQCBwZ19tYXR2aWV3c3wgU0VMRUNUIG4ubnNwbmFtZSBBUyBzY2hl bWFuYW1lLAogICAgICBMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG4gT04gKChuLm9pZCA9IGMucmVs bmFtZXNwYWNlKSkpCiAgICAgIExFRlQgSk9JTiBwZ190YWJsZXNwYWNlIHQgT04gKCh0Lm9pZCA9 IGMucmVsdGFibGVzcGFjZSkpKQogICBXSEVSRSAoYy5yZWxraW5kID0gJ20nOjoiY2hhciIpOwor cGdfbWVtb3J5X2NvbnRleHRzfCBTRUxFQ1QgcGdfZ2V0X21lbW9yeV9jb250ZXh0cy5uYW1lLAor ICAgIHBnX2dldF9tZW1vcnlfY29udGV4dHMuaWRlbnQsCisgICAgcGdfZ2V0X21lbW9yeV9jb250 ZXh0cy5wYXJlbnQsCisgICAgcGdfZ2V0X21lbW9yeV9jb250ZXh0cy5sZXZlbCwKKyAgICBwZ19n ZXRfbWVtb3J5X2NvbnRleHRzLnRvdGFsX2J5dGVzLAorICAgIHBnX2dldF9tZW1vcnlfY29udGV4 dHMudG90YWxfbmJsb2NrcywKKyAgICBwZ19nZXRfbWVtb3J5X2NvbnRleHRzLmZyZWVfYnl0ZXMs CisgICAgcGdfZ2V0X21lbW9yeV9jb250ZXh0cy5mcmVlX2NodW5rcywKKyAgICBwZ19nZXRfbWVt b3J5X2NvbnRleHRzLnVzZWRfYnl0ZXMKKyAgIEZST00gcGdfZ2V0X21lbW9yeV9jb250ZXh0cygp IHBnX2dldF9tZW1vcnlfY29udGV4dHMobmFtZSwgaWRlbnQsIHBhcmVudCwgbGV2ZWwsIHRvdGFs X2J5dGVzLCB0b3RhbF9uYmxvY2tzLCBmcmVlX2J5dGVzLCBmcmVlX2NodW5rcywgdXNlZF9ieXRl cyk7CiBwZ19wb2xpY2llc3wgU0VMRUNUIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgIGMu cmVsbmFtZSBBUyB0YWJsZW5hbWUsCiAgICAgcG9sLnBvbG5hbWUgQVMgcG9saWN5bmFtZSwKLS0g CjIuMTguMQoK --=_45ea178dc6268f316ede8046e88b76a5--