Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sFCRx-007y3d-Ca for pgsql-bugs@arkaria.postgresql.org; Thu, 06 Jun 2024 12:42:38 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sFCRx-0012Ql-Dk for pgsql-bugs@arkaria.postgresql.org; Thu, 06 Jun 2024 12:42:37 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sF9YW-00H9dA-02 for pgsql-bugs@lists.postgresql.org; Thu, 06 Jun 2024 09:37:12 +0000 Received: from mahout.postgresql.org ([2001:4800:3e1:1::227]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sF9YR-000Gs1-2T for pgsql-bugs@lists.postgresql.org; Thu, 06 Jun 2024 09:37:11 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Message-ID:Date:Reply-To:Cc:From:To:Subject: MIME-Version:Content-Type:Sender:Content-Transfer-Encoding:Content-ID: Content-Description:In-Reply-To:References; bh=IAxTwW7eiOcvhkVFY+9VsGhOiLdwCwje7O8t8m6gZHI=; b=6jWDmxHbfORymT2h/KpThxCW+e 3DZNhdKF7lj1G7qDItkpK2HUJkQlLvmCn1APg5NXGx8c7ET65XY8glrNaZ4urZ7pj4x9LUPTg0ASr nyke/VxHE/Wtm28EI68fquXaiKCvC4DbxXqRwROh3ayOFexouMnwhGV3U5pZ1C/9RQIf3ACCCBADV PwhWdA7Jv4DFF2Znl6ziKxAqH2GLBDeX3K6mjGC4r96mbRZekP63dw3/lc9T24evUkQOgpu61trzA WDKrP3ZUbidUEcEwuxzNfwopWVZkLH8q1Ihzf2ZLDgL+0+PJIyjlDTJbV2Nx+m8h4dep4Gu+USpr4 dOb20nQw==; Received: from wrigleys.postgresql.org ([2a02:16a8:dc51::60]) by mahout.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sF9YO-00CMMN-HY for pgsql-bugs@lists.postgresql.org; Thu, 06 Jun 2024 09:37:05 +0000 Received: from localhost ([127.0.0.1] helo=wrigleys.postgresql.org) by wrigleys.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sF9YM-005J1N-1f for pgsql-bugs@lists.postgresql.org; Thu, 06 Jun 2024 09:37:02 +0000 Content-Type: multipart/mixed; boundary="===============5705726271520145391==" MIME-Version: 1.0 Subject: BUG #18497: Heap-use-after-free in plpgsql To: pgsql-bugs@lists.postgresql.org From: PG Bug reporting form Cc: n.kalinin@postgrespro.ru Reply-To: n.kalinin@postgrespro.ru, pgsql-bugs@lists.postgresql.org Date: Thu, 06 Jun 2024 09:36:15 +0000 Message-ID: <18497-fe93b6da82ce31d4@postgresql.org> X-Auto-Response-Suppress: All Auto-Submitted: auto-generated List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --===============5705726271520145391== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJzaXRlOgoKQnVnIHJl ZmVyZW5jZTogICAgICAxODQ5NwpMb2dnZWQgYnk6ICAgICAgICAgIE5pa2l0YSBLYWxpbmluCkVt YWlsIGFkZHJlc3M6ICAgICAgbi5rYWxpbmluQHBvc3RncmVzcHJvLnJ1ClBvc3RncmVTUUwgdmVy c2lvbjogMTYuMwpPcGVyYXRpbmcgc3lzdGVtOiAgIHVidW50dSAyMi4wNApEZXNjcmlwdGlvbjog ICAgICAgIAoKV2hlbiBidWlsZGluZyBwb3N0Z3Jlc3FsIG9uIFJFTF8xNl9TVEFCTEUgdGFnIHdp dGggQVNBTiBhc3NlcnRpb24gZXJyb3I6DQoNCiMwICAweDAwMDA3ZjQ5MWY0NDE5ZmMgaW4gcHRo cmVhZF9raWxsICgpIGZyb20KL2xpYi94ODZfNjQtbGludXgtZ251L2xpYmMuc28uNg0KKGdkYikg YnQNCiMwICAweDAwMDA3ZjQ5MWY0NDE5ZmMgaW4gcHRocmVhZF9raWxsICgpIGZyb20KL2xpYi94 ODZfNjQtbGludXgtZ251L2xpYmMuc28uNg0KIzEgIDB4MDAwMDdmNDkxZjNlZDQ3NiBpbiByYWlz ZSAoKSBmcm9tIC9saWIveDg2XzY0LWxpbnV4LWdudS9saWJjLnNvLjYNCiMyICAweDAwMDA3ZjQ5 MWYzZDM3ZjMgaW4gYWJvcnQgKCkgZnJvbSAvbGliL3g4Nl82NC1saW51eC1nbnUvbGliYy5zby42 DQojMyAgMHgwMDAwNTU1N2NlMGIzYzIyIGluIF9fc2FuaXRpemVyOjpBYm9ydCgpICgpDQojNCAg MHgwMDAwNTU1N2NlMGJmN2RjIGluIF9fc2FuaXRpemVyOjpEaWUoKSAoKQ0KIzUgIDB4MDAwMDU1 NTdjZTA5ZWM4YyBpbgpfX2FzYW46OlNjb3BlZEluRXJyb3JSZXBvcnQ6On5TY29wZWRJbkVycm9y UmVwb3J0KCkgKCkNCiM2ICAweDAwMDA1NTU3Y2UwOWU1MjUgaW4gX19hc2FuOjpSZXBvcnRHZW5l cmljRXJyb3IodW5zaWduZWQgbG9uZywgdW5zaWduZWQKbG9uZywgdW5zaWduZWQgbG9uZywgdW5z aWduZWQgbG9uZywgYm9vbCwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgaW50LCBib29sKQooKQ0K IzcgIDB4MDAwMDU1NTdjZTA5ZjI0YiBpbiBfX2FzYW5fcmVwb3J0X2xvYWQ0ICgpDQojOCAgMHgw MDAwNTU1N2NlODQxMTQ3IGluIGV4cHJfc2V0dXBfd2Fsa2VyCihub2RlPW5vZGVAZW50cnk9MHg2 MTkwMDAwMmU0YjgsDQogICAgaW5mbz1pbmZvQGVudHJ5PTB4N2ZmZWM0MmEwMTcwKSBhdCBleGVj RXhwci5jOjI3NTcNCiM5ICAweDAwMDA1NTU3Y2U4NDMzN2QgaW4gRXhlY0NyZWF0ZUV4cHJTZXR1 cFN0ZXBzICgNCiAgICBzdGF0ZT1zdGF0ZUBlbnRyeT0weDYyNTAwMDA3MGQwOCwgbm9kZT1ub2Rl QGVudHJ5PTB4NjE5MDAwMDJlNGI4KQ0KICAgIGF0IGV4ZWNFeHByLmM6MjY1OQ0KIzEwIDB4MDAw MDU1NTdjZTg1MTVlNyBpbiBFeGVjSW5pdEV4cHJXaXRoUGFyYW1zIChub2RlPTB4NjE5MDAwMDJl NGI4LA0KICAgIGV4dF9wYXJhbXM9ZXh0X3BhcmFtc0BlbnRyeT0weDYyNTAwMDA3NWExOCkgYXQg ZXhlY0V4cHIuYzoxODANCiMxMSAweDAwMDA3ZjQ5MTExYTBhODUgaW4gZXhlY19ldmFsX3NpbXBs ZV9leHByICgNCiAgICBlc3RhdGU9ZXN0YXRlQGVudHJ5PTB4N2ZmZWM0MmEwNzkwLCBleHByPWV4 cHJAZW50cnk9MHg2MjUwMDAwNWFhOTgsDQogICAgcmVzdWx0PXJlc3VsdEBlbnRyeT0weDdmZmVj NDJhMDM0MCwKaXNOdWxsPWlzTnVsbEBlbnRyeT0weDdmZmVjNDJhMDNkMCwNCiAgICByZXR0eXBl PXJldHR5cGVAZW50cnk9MHg3ZmZlYzQyYTAzZTAsCnJldHR5cG1vZD1yZXR0eXBtb2RAZW50cnk9 MHg3ZmZlYzQyYTAzZjApDQogICAgYXQgcGxfZXhlYy5jOjYxNzgNCiMxMiAweDAwMDA3ZjQ5MTEx YTM3ODggaW4gZXhlY19ldmFsX2V4cHIKKGVzdGF0ZT1lc3RhdGVAZW50cnk9MHg3ZmZlYzQyYTA3 OTAsDQogICAgZXhwcj1leHByQGVudHJ5PTB4NjI1MDAwMDVhYTk4LCBpc051bGw9aXNOdWxsQGVu dHJ5PTB4N2ZmZWM0MmEwM2QwLA0KICAgIHJldHR5cGU9cmV0dHlwZUBlbnRyeT0weDdmZmVjNDJh MDNlMCwKcmV0dHlwbW9kPXJldHR5cG1vZEBlbnRyeT0weDdmZmVjNDJhMDNmMCkgYXQgcGxfZXhl Yy5jOjU3MDINCiMxMyAweDAwMDA3ZjQ5MTExYWZiMTggaW4gZXhlY19hc3NpZ25fZXhwciAoZXN0 YXRlPTxvcHRpbWl6ZWQgb3V0PiwKdGFyZ2V0PTB4NjI1MDAwMDc1YWQwLCBleHByPTB4NjI1MDAw MDVhYTk4KSBhdCBwbF9leGVjLmM6NTAzNA0KIzE0IDB4MDAwMDdmNDkxMTFhZmYzNiBpbiBleGVj X3N0bXRfYXNzaWduCihlc3RhdGU9ZXN0YXRlQGVudHJ5PTB4N2ZmZWM0MmEwNzkwLCBzdG10PXN0 bXRAZW50cnk9MHg2MjUwMDAwNWJmMzApIGF0CnBsX2V4ZWMuYzoyMTU1DQojMTUgMHgwMDAwN2Y0 OTExMWIzNjVjIGluIGV4ZWNfc3RtdHMgKGVzdGF0ZT1lc3RhdGVAZW50cnk9MHg3ZmZlYzQyYTA3 OTAsCnN0bXRzPTB4NjI1MDAwMDViZjc4KSBhdCBwbF9leGVjLmM6MjAxOQ0KIzE2IDB4MDAwMDdm NDkxMTFiNTI0MiBpbiBleGVjX3N0bXRfYmxvY2sKKGVzdGF0ZT1lc3RhdGVAZW50cnk9MHg3ZmZl YzQyYTA3OTAsIGJsb2NrPWJsb2NrQGVudHJ5PTB4NjI1MDAwMDViZmM4KSBhdApwbF9leGVjLmM6 MTk0Mg0KIzE3IDB4MDAwMDdmNDkxMTFiNTRjYyBpbiBleGVjX3RvcGxldmVsX2Jsb2NrCihlc3Rh dGU9ZXN0YXRlQGVudHJ5PTB4N2ZmZWM0MmEwNzkwLCBibG9jaz0weDYyNTAwMDA1YmZjOCkgYXQK cGxfZXhlYy5jOjE2MzMNCiMxOCAweDAwMDA3ZjQ5MTExYjYyMzQgaW4gcGxwZ3NxbF9leGVjX2Z1 bmN0aW9uCihmdW5jPWZ1bmNAZW50cnk9MHg2MjkwMDAwMjRhZDAsIGZjaW5mbz1mY2luZm9AZW50 cnk9MHg2MjUwMDAwNTgxMDAsCnNpbXBsZV9ldmFsX2VzdGF0ZT1zaW1wbGVfZXZhbF9lc3RhdGVA ZW50cnk9MHgwLApzaW1wbGVfZXZhbF9yZXNvd25lcj1zaW1wbGVfZXZhbF9yZXNvd25lckBlbnRy eT0weDAsCnByb2NlZHVyZV9yZXNvd25lcj1wcm9jZWR1cmVfcmVzb3duZXJAZW50cnk9MHgwLCBh dG9taWM9PG9wdGltaXplZCBvdXQ+KSBhdApwbF9leGVjLmM6NjIyDQojMTkgMHgwMDAwN2Y0OTEx MWRmYTNmIGluIHBscGdzcWxfY2FsbF9oYW5kbGVyIChmY2luZm89PG9wdGltaXplZCBvdXQ+KSBh dApwbF9oYW5kbGVyLmM6Mjc3DQojMjAgMHgwMDAwNTU1N2NlODc0OTAxIGluIEV4ZWNJbnRlcnBF eHByIChzdGF0ZT0weDYyNTAwMDA1ODAyOCwKZWNvbnRleHQ9MHg2MjUwMDAwNTdkNTAsIGlzbnVs bD0weDdmZmVjNDJhMGJkMCkgYXQgZXhlY0V4cHJJbnRlcnAuYzo3MzQNCiMyMSAweDAwMDA1NTU3 Y2U4NjE0ZGYgaW4gRXhlY0ludGVycEV4cHJTdGlsbFZhbGlkIChzdGF0ZT0weDYyNTAwMDA1ODAy OCwKZWNvbnRleHQ9MHg2MjUwMDAwNTdkNTAsIGlzTnVsbD0weDdmZmVjNDJhMGJkMCkgYXQgZXhl Y0V4cHJJbnRlcnAuYzoxODcwDQojMjIgMHgwMDAwNTU1N2NlOThmMTliIGluIEV4ZWNFdmFsRXhw clN3aXRjaENvbnRleHQgKGlzTnVsbD0weDdmZmVjNDJhMGJkMCwKZWNvbnRleHQ9MHg2MjUwMDAw NTdkNTAsIHN0YXRlPTB4NjI1MDAwMDU4MDI4KSBhdAouLi8uLi8uLi9zcmMvaW5jbHVkZS9leGVj dXRvci9leGVjdXRvci5oOjM1NQ0KIzIzIEV4ZWNQcm9qZWN0IChwcm9qSW5mbz0weDYyNTAwMDA1 ODAyMCkgYXQKLi4vLi4vLi4vc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaDozODkNCiMy NCBFeGVjUmVzdWx0IChwc3RhdGU9PG9wdGltaXplZCBvdXQ+KSBhdCBub2RlUmVzdWx0LmM6MTM2 DQojMjUgMHgwMDAwNTU1N2NlOGIxMDRmIGluIEV4ZWNQcm9jTm9kZUZpcnN0IChub2RlPTB4NjI1 MDAwMDU3YzQwKSBhdApleGVjUHJvY25vZGUuYzo0NjQNCiMyNiAweDAwMDA1NTU3Y2U4OGYxNDYg aW4gRXhlY1Byb2NOb2RlIChub2RlPTB4NjI1MDAwMDU3YzQwKSBhdAouLi8uLi8uLi9zcmMvaW5j bHVkZS9leGVjdXRvci9leGVjdXRvci5oOjI3Mw0KIzI3IEV4ZWN1dGVQbGFuIChlc3RhdGU9ZXN0 YXRlQGVudHJ5PTB4NjI1MDAwMDU3YTE4LApwbGFuc3RhdGU9MHg2MjUwMDAwNTdjNDAsIHVzZV9w YXJhbGxlbF9tb2RlPTxvcHRpbWl6ZWQgb3V0PiwKdXNlX3BhcmFsbGVsX21vZGVAZW50cnk9ZmFs c2UsIG9wZXJhdGlvbj1vcGVyYXRpb25AZW50cnk9Q01EX1NFTEVDVCwKc2VuZFR1cGxlcz10cnVl LCBudW1iZXJUdXBsZXM9bnVtYmVyVHVwbGVzQGVudHJ5PTAsCmRpcmVjdGlvbj1Gb3J3YXJkU2Nh bkRpcmVjdGlvbiwgZGVzdD0weDYyNTAwMDA4NTA5OCwgZXhlY3V0ZV9vbmNlPXRydWUpIGF0CmV4 ZWNNYWluLmM6MTY3MA0KIzI4IDB4MDAwMDU1NTdjZTg4Zjc0NyBpbiBzdGFuZGFyZF9FeGVjdXRv clJ1biAocXVlcnlEZXNjPTB4NjE5MDAwMDAxYTk4LApkaXJlY3Rpb249Rm9yd2FyZFNjYW5EaXJl Y3Rpb24sIGNvdW50PTAsCmV4ZWN1dGVfb25jZT1leGVjdXRlX29uY2VAZW50cnk9dHJ1ZSkgYXQg ZXhlY01haW4uYzozNjUNCiMyOSAweDAwMDA1NTU3Y2U4OGY5YWIgaW4gRXhlY3V0b3JSdW4KKHF1 ZXJ5RGVzYz1xdWVyeURlc2NAZW50cnk9MHg2MTkwMDAwMDFhOTgsCmRpcmVjdGlvbj1kaXJlY3Rp b25AZW50cnk9Rm9yd2FyZFNjYW5EaXJlY3Rpb24sIGNvdW50PWNvdW50QGVudHJ5PTAsCmV4ZWN1 dGVfb25jZT1leGVjdXRlX29uY2VAZW50cnk9dHJ1ZSkgYXQgZXhlY01haW4uYzozMDkNCiMzMCAw eDAwMDA1NTU3Y2YwMjVkOTUgaW4gUG9ydGFsUnVuU2VsZWN0Cihwb3J0YWw9cG9ydGFsQGVudHJ5 PTB4NjI1MDAwMDI1YTE4LCBmb3J3YXJkPWZvcndhcmRAZW50cnk9dHJ1ZSwgY291bnQ9MCwKY291 bnRAZW50cnk9OTIyMzM3MjAzNjg1NDc3NTgwNywgZGVzdD1kZXN0QGVudHJ5PTB4NjI1MDAwMDg1 MDk4KSBhdApwcXVlcnkuYzo5MjQNCiMzMSAweDAwMDA1NTU3Y2YwMmMwMmMgaW4gUG9ydGFsUnVu IChwb3J0YWw9cG9ydGFsQGVudHJ5PTB4NjI1MDAwMDI1YTE4LApjb3VudD1jb3VudEBlbnRyeT05 MjIzMzcyMDM2ODU0Nzc1ODA3LCBpc1RvcExldmVsPWlzVG9wTGV2ZWxAZW50cnk9dHJ1ZSwKcnVu X29uY2U9cnVuX29uY2VAZW50cnk9dHJ1ZSwgZGVzdD1kZXN0QGVudHJ5PTB4NjI1MDAwMDg1MDk4 LAphbHRkZXN0PWFsdGRlc3RAZW50cnk9MHg2MjUwMDAwODUwOTgsIHFjPTxvcHRpbWl6ZWQgb3V0 PikgYXQgcHF1ZXJ5LmM6NzY4DQojMzIgMHgwMDAwNTU1N2NmMDFmZDcwIGluIGV4ZWNfc2ltcGxl X3F1ZXJ5CihxdWVyeV9zdHJpbmc9cXVlcnlfc3RyaW5nQGVudHJ5PTB4NjI1MDAwMDA1MjE4ICJz ZWxlY3QgZjEoKTsiKSBhdApwb3N0Z3Jlcy5jOjEyNzQNCiMzMyAweDAwMDA1NTU3Y2YwMjRiODcg aW4gUG9zdGdyZXNNYWluIChkYm5hbWU9ZGJuYW1lQGVudHJ5PTB4NjI1MDAwMDAyMGM4CiJjb250 cmliX3JlZ3Jlc3Npb24iLCB1c2VybmFtZT11c2VybmFtZUBlbnRyeT0weDYyNTAwMDAwMjBmOCAi dGVzdCIpIGF0CnBvc3RncmVzLmM6NDYzNw0KIzM0IDB4MDAwMDU1NTdjZWRjMzg1ZCBpbiBCYWNr ZW5kUnVuIChwb3J0PXBvcnRAZW50cnk9MHg2MTQwMDAwMDE4NDApIGF0CnBvc3RtYXN0ZXIuYzo0 NDY0DQojMzUgMHgwMDAwNTU1N2NlZGNiZmU2IGluIEJhY2tlbmRTdGFydHVwIChwb3J0PXBvcnRA ZW50cnk9MHg2MTQwMDAwMDE4NDApIGF0CnBvc3RtYXN0ZXIuYzo0MTkyDQojMzYgMHgwMDAwNTU1 N2NlZGNjNWUzIGluIFNlcnZlckxvb3AgKCkgYXQgcG9zdG1hc3Rlci5jOjE3ODINCiMzNyAweDAw MDA1NTU3Y2VkY2VjMGUgaW4gUG9zdG1hc3Rlck1haW4gKGFyZ2M9YXJnY0BlbnRyeT0zLAphcmd2 PWFyZ3ZAZW50cnk9MHg2MDMwMDAwMDAyZTApIGF0IHBvc3RtYXN0ZXIuYzoxNDY2DQojMzggMHgw MDAwNTU1N2NlYTFmMDU0IGluIG1haW4gKGFyZ2M9MywgYXJndj0weDYwMzAwMDAwMDJlMCkgYXQg bWFpbi5jOjE5OA0KDQpIb3cgdG8gcmVwcm9kdWNlOg0KQnVpbGQgcG9zdGdyZXNxbCB3aXRoIHRo ZSBmb2xsb3dpbmcgcGFyYW1ldGVyczogDQpleHBvcnQKQVNBTl9PUFRJT05TPWRldGVjdF9sZWFr cz0wOmFib3J0X29uX2Vycm9yPTE6ZGlzYWJsZV9jb3JlZHVtcD0wOnN0cmljdF9zdHJpbmdfY2hl Y2tzPTE6Y2hlY2tfaW5pdGlhbGl6YXRpb25fb3JkZXI9MTpzdHJpY3RfaW5pdF9vcmRlcj0xDQpD UFBGTEFHUz0iLU9nIC1mc2FuaXRpemU9YWRkcmVzcyAtZnNhbml0aXplPXVuZGVmaW5lZAotZm5v LXNhbml0aXplLXJlY292ZXI9YWxsIC1mbm8tc2FuaXRpemU9bm9ubnVsbC1hdHRyaWJ1dGUgLWZz dGFjay1wcm90ZWN0b3IiCkxERkxBR1M9Jy1mc2FuaXRpemU9YWRkcmVzcyAtZnNhbml0aXplPXVu ZGVmaW5lZCAtc3RhdGljLWxpYmFzYW4nCi4vY29uZmlndXJlIC0tZW5hYmxlLXRhcC10ZXN0cyAt LWVuYWJsZS1kZWJ1ZyAtLWVuYWJsZS1jYXNzZXJ0ID4vZGV2L251bGwgJiYKbWFrZSAtajQgLXMg JiYgbWFrZSAtajQgLXMgLUMgY29udHJpYiAmJiBtYWtlIGNoZWNrDQoNClR3byBzcWwgZmlsZXMg YXJlIHJlcXVpcmVkOg0KDQpjYXQgMS5zcWwNCmNyZWF0ZSB0YWJsZSB0MShhIGludCwgYiBpbnQp Ow0Kc2VsZWN0IHBnX3NsZWVwKDEpOw0KDQpjYXQgMi5zcWwNCnNlbGVjdCBwZ19zbGVlcCgxKTsN Cg0KY3JlYXRlIGZ1bmN0aW9uIGcxKG91dCBhIGludCwgb3V0IGIgaW50KQ0KYXMgJCQNCiAgc2Vs ZWN0IDEwLDIwOw0KJCQgbGFuZ3VhZ2Ugc3FsOw0KDQpjcmVhdGUgZnVuY3Rpb24gZjEoKQ0KcmV0 dXJucyB2b2lkIGFzICQkDQpkZWNsYXJlIHIgcmVjb3JkOw0KYmVnaW4NCiAgciA6PSBnMSgpOw0K ZW5kOw0KJCQgbGFuZ3VhZ2UgcGxwZ3NxbDsNCg0Kc2VsZWN0IGYxKCk7DQpkcm9wIGZ1bmN0aW9u IGcxKCk7DQpjcmVhdGUgZnVuY3Rpb24gZzEob3V0IGEgaW50LCBvdXQgYiBpbnQpDQpyZXR1cm5z IHNldG9mIHJlY29yZCBhcyAkJA0Kc2VsZWN0ICogZnJvbSB0MTsNCiQkIGxhbmd1YWdlIHNxbDsN CnNlbGVjdCBmMSgpOw0Kc2VsZWN0IGYxKCk7DQoNClBsYXliYWNrIHNjcmlwdDoNCg0KKCBwc3Fs IC1mIDEuc3FsICY+IDEubG9nICkgJg0KKCBwc3FsIC1mIDIuc3FsICY+IDIubG9nICkgJg0Kd2Fp dAoK --===============5705726271520145391==--