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 1jtQFY-0004Yc-L9 for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Jul 2020 06:41:40 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jtQFW-0002uy-4r for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Jul 2020 06:41:38 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jtQFV-0002uq-R7 for pgsql-hackers@lists.postgresql.org; Thu, 09 Jul 2020 06:41:37 +0000 Received: from courriel-2.mines-paristech.fr ([77.158.173.19] helo=antispam-1.ensmp.fr) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jtQFO-0000SY-9X for pgsql-hackers@lists.postgresql.org; Thu, 09 Jul 2020 06:41:36 +0000 Received: from smtp-5.mines-paristech.fr (smtp.mines-paristech.fr [77.158.173.146]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by antispam-1.ensmp.fr (antispam.mines-paristech.fr) with ESMTPS id EDF2055ED3; Thu, 9 Jul 2020 08:41:28 +0200 (CEST) Received: from petersbourg.cri.ensmp.fr (sfr-16.cri.mines-paristech.fr [77.158.180.240]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp-5.mines-paristech.fr (Postfix) with ESMTPSA id D3D36201C7; Thu, 9 Jul 2020 08:41:28 +0200 (CEST) Date: Thu, 9 Jul 2020 08:41:22 +0200 (CEST) From: Fabien COELHO X-X-Sender: fabien@pseudo Reply-To: Fabien COELHO To: PostgreSQL Developers cc: David Rowley , Tom Lane , Jaime Soler Subject: Re: pgbench and timestamps (bounced) In-Reply-To: Message-ID: References: User-Agent: Alpine 2.22 (DEB 394 2020-01-19) MIME-Version: 1.0 Content-Type: multipart/mixed; BOUNDARY="2056645051-1442683260-1594276823=:417896" Content-ID: X-CLAMAV-SCAN: ok X-VRSPAM-SCORE: -100 X-VRSPAM-STATE: legit X-VRSPAM-CAUSE: gggruggvucftvghtrhhoucdtuddrgeduiedrudekgdduuddvucetufdoteggodetrfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpeffhfhrvffujgfkfhgfgggtsehmtderredtredvnecuhfhrohhmpefhrggsihgvnhcuvefqgffnjffquceotghovghlhhhosegtrhhirdgvnhhsmhhprdhfrheqnecuggftrfgrthhtvghrnhepleejgeffgfdvgefgudffueffvdeugfeitdejfefhheffieeiffefgeekiefgkeehnecukfhppeejjedrudehkedrudektddrvdegtdenucfrrghrrghmpehmohguvgepshhmthhpohhuth X-VRSPAM-EXTCAUSE: mhhouggvpehsmhhtphhouhht List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --2056645051-1442683260-1594276823=:417896 Content-Type: text/plain; CHARSET=US-ASCII; format=flowed Content-ID: Attached v2 fixes some errors, per cfbot. -- Fabien. --2056645051-1442683260-1594276823=:417896 Content-Type: text/x-diff; NAME=pgbench-var-fix-2.patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; FILENAME=pgbench-var-fix-2.patch ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdiZW5jaC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9wZ2JlbmNoLnNnbWwNCmluZGV4IDlmM2JiNWZj ZTYuLjk4OTRhZTljMDQgMTAwNjQ0DQotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L3BnYmVuY2guc2dtbA0KKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ2JlbmNo LnNnbWwNCkBAIC05OTgsMTUgKzk5OCwxNCBAQCBwZ2JlbmNoIDxvcHRpb25h bD4gPHJlcGxhY2VhYmxlPm9wdGlvbnM8L3JlcGxhY2VhYmxlPiA8L29wdGlv bmFsPiA8cmVwbGFjZWFibGU+ZA0KICAgPHBhcmE+DQogICAgVGhlcmUgaXMg YSBzaW1wbGUgdmFyaWFibGUtc3Vic3RpdHV0aW9uIGZhY2lsaXR5IGZvciBz Y3JpcHQgZmlsZXMuDQogICAgVmFyaWFibGUgbmFtZXMgbXVzdCBjb25zaXN0 IG9mIGxldHRlcnMgKGluY2x1ZGluZyBub24tTGF0aW4gbGV0dGVycyksDQot ICAgZGlnaXRzLCBhbmQgdW5kZXJzY29yZXMuDQorICAgZGlnaXRzIChidXQg bm90IG9uIHRoZSBmaXJzdCBjaGFyYWN0ZXIpLCBhbmQgdW5kZXJzY29yZXMu DQogICAgVmFyaWFibGVzIGNhbiBiZSBzZXQgYnkgdGhlIGNvbW1hbmQtbGlu ZSA8b3B0aW9uPi1EPC9vcHRpb24+IG9wdGlvbiwNCiAgICBleHBsYWluZWQg YWJvdmUsIG9yIGJ5IHRoZSBtZXRhIGNvbW1hbmRzIGV4cGxhaW5lZCBiZWxv dy4NCiAgICBJbiBhZGRpdGlvbiB0byBhbnkgdmFyaWFibGVzIHByZXNldCBi eSA8b3B0aW9uPi1EPC9vcHRpb24+IGNvbW1hbmQtbGluZSBvcHRpb25zLA0K ICAgIHRoZXJlIGFyZSBhIGZldyB2YXJpYWJsZXMgdGhhdCBhcmUgcHJlc2V0 IGF1dG9tYXRpY2FsbHksIGxpc3RlZCBpbg0KICAgIDx4cmVmIGxpbmtlbmQ9 InBnYmVuY2gtYXV0b21hdGljLXZhcmlhYmxlcyIvPi4gQSB2YWx1ZSBzcGVj aWZpZWQgZm9yIHRoZXNlDQogICAgdmFyaWFibGVzIHVzaW5nIDxvcHRpb24+ LUQ8L29wdGlvbj4gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZSBhdXRvbWF0 aWMgcHJlc2V0cy4NCi0gICBPbmNlIHNldCwgYSB2YXJpYWJsZSdzDQotICAg dmFsdWUgY2FuIGJlIGluc2VydGVkIGludG8gYSBTUUwgY29tbWFuZCBieSB3 cml0aW5nDQorICAgT25jZSBzZXQsIGEgdmFyaWFibGUncyB2YWx1ZSBjYW4g YmUgaW5zZXJ0ZWQgaW50byBhIFNRTCBjb21tYW5kIGJ5IHdyaXRpbmcNCiAg ICA8bGl0ZXJhbD46PC9saXRlcmFsPjxyZXBsYWNlYWJsZT52YXJpYWJsZW5h bWU8L3JlcGxhY2VhYmxlPi4gIFdoZW4gcnVubmluZyBtb3JlIHRoYW4NCiAg ICBvbmUgY2xpZW50IHNlc3Npb24sIGVhY2ggc2Vzc2lvbiBoYXMgaXRzIG93 biBzZXQgb2YgdmFyaWFibGVzLg0KICAgIDxhcHBsaWNhdGlvbj5wZ2JlbmNo PC9hcHBsaWNhdGlvbj4gc3VwcG9ydHMgdXAgdG8gMjU1IHZhcmlhYmxlIHVz ZXMgaW4gb25lDQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ2JlbmNoL3BnYmVu Y2guYyBiL3NyYy9iaW4vcGdiZW5jaC9wZ2JlbmNoLmMNCmluZGV4IDA4YTU5 NDdhOWUuLjM4NzliZWY2ZGEgMTAwNjQ0DQotLS0gYS9zcmMvYmluL3BnYmVu Y2gvcGdiZW5jaC5jDQorKysgYi9zcmMvYmluL3BnYmVuY2gvcGdiZW5jaC5j DQpAQCAtMTE5LDEyICsxMTksMjQgQEAgdHlwZWRlZiBpbnQgcHRocmVhZF9h dHRyX3Q7DQogDQogc3RhdGljIGludAlwdGhyZWFkX2NyZWF0ZShwdGhyZWFk X3QgKnRocmVhZCwgcHRocmVhZF9hdHRyX3QgKmF0dHIsIHZvaWQgKigqc3Rh cnRfcm91dGluZSkgKHZvaWQgKiksIHZvaWQgKmFyZyk7DQogc3RhdGljIGlu dAlwdGhyZWFkX2pvaW4ocHRocmVhZF90IHRoLCB2b2lkICoqdGhyZWFkX3Jl dHVybik7DQorDQordHlwZWRlZiBIQU5ETEUgcHRocmVhZF9tdXRleF90Ow0K K3N0YXRpYyB2b2lkIHB0aHJlYWRfbXV0ZXhfaW5pdChwdGhyZWFkX211dGV4 X3QgKnBtLCB2b2lkICp1bnVzZWQpOw0KK3N0YXRpYyB2b2lkIHB0aHJlYWRf bXV0ZXhfbG9jayhwdGhyZWFkX211dGV4X3QgKnBtKTsNCitzdGF0aWMgdm9p ZCBwdGhyZWFkX211dGV4X3VubG9jayhwdGhyZWFkX211dGV4X3QgKnBtKTsN CitzdGF0aWMgdm9pZCBwdGhyZWFkX211dGV4X2Rlc3Ryb3kocHRocmVhZF9t dXRleF90ICpwbSk7DQorDQogI2VsaWYgZGVmaW5lZChFTkFCTEVfVEhSRUFE X1NBRkVUWSkNCiAvKiBVc2UgcGxhdGZvcm0tZGVwZW5kZW50IHB0aHJlYWQg Y2FwYWJpbGl0eSAqLw0KICNpbmNsdWRlIDxwdGhyZWFkLmg+DQogI2Vsc2UN CiAvKiBObyB0aHJlYWRzIGltcGxlbWVudGF0aW9uLCB1c2Ugbm9uZSAoLWog MSkgKi8NCiAjZGVmaW5lIHB0aHJlYWRfdCB2b2lkICoNCisjZGVmaW5lIHB0 aHJlYWRfbXV0ZXhfdCB2b2lkICoNCisjZGVmaW5lIHB0aHJlYWRfbXV0ZXhf aW5pdChtLCBwKQ0KKyNkZWZpbmUgcHRocmVhZF9tdXRleF9sb2NrKG0pDQor I2RlZmluZSBwdGhyZWFkX211dGV4X3VubG9jayhtKQ0KKyNkZWZpbmUgcHRo cmVhZF9tdXRleF9kZXN0cm95KG0pDQogI2VuZGlmDQogDQogDQpAQCAtNDIy LDcgKzQzNCw3IEBAIHR5cGVkZWYgc3RydWN0DQogCWluc3RyX3RpbWUJdHhu X2JlZ2luOwkJLyogdXNlZCBmb3IgbWVhc3VyaW5nIHNjaGVkdWxlIGxhZyB0 aW1lcyAqLw0KIAlpbnN0cl90aW1lCXN0bXRfYmVnaW47CQkvKiB1c2VkIGZv ciBtZWFzdXJpbmcgc3RhdGVtZW50IGxhdGVuY2llcyAqLw0KIA0KLQlib29s CQlwcmVwYXJlZFtNQVhfU0NSSVBUU107CS8qIHdoZXRoZXIgY2xpZW50IHBy ZXBhcmVkIHRoZSBzY3JpcHQgKi8NCisJYm9vbCoJCXByZXBhcmVkW01BWF9T Q1JJUFRTXTsJLyogd2hldGhlciBjbGllbnQgcHJlcGFyZWQgdGhlIHNjcmlw dCBjb21tYW5kcyAqLw0KIA0KIAkvKiBwZXIgY2xpZW50IGNvbGxlY3RlZCBz dGF0cyAqLw0KIAlpbnQ2NAkJY250OwkJCS8qIGNsaWVudCB0cmFuc2FjdGlv biBjb3VudCwgZm9yIC10ICovDQpAQCAtNDcyLDcgKzQ4NCw3IEBAIHR5cGVk ZWYgc3RydWN0DQogICovDQogI2RlZmluZSBNQVhfQVJHUwkJMjU2DQogDQot dHlwZWRlZiBlbnVtIE1ldGFDb21tYW5kDQordHlwZWRlZiBlbnVtIE1ldGEN CiB7DQogCU1FVEFfTk9ORSwJCQkJCS8qIG5vdCBhIGtub3duIG1ldGEtY29t bWFuZCAqLw0KIAlNRVRBX1NFVCwJCQkJCS8qIFxzZXQgKi8NCkBAIC01MDMs NiArNTE1LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKlFVRVJZTU9ERVtdID0g eyJzaW1wbGUiLCAiZXh0ZW5kZWQiLCAicHJlcGFyZWQifTsNCiAgKg0KICAq IGxpbmVzCQlUaGUgcmF3LCBwb3NzaWJseSBtdWx0aS1saW5lIGNvbW1hbmQg dGV4dC4gIFZhcmlhYmxlIHN1YnN0aXR1dGlvbg0KICAqCQkJCW5vdCBhcHBs aWVkLg0KKyAqIHN1YnN0aXR1dGVkCVdoZXRoZXIgY29tbWFuZAk6LXZhcmlh YmxlcyB3ZXJlIHN1YnN0aXR1dGVkIGZvcg0KKyAqCQkJCVFVRVJZX0VYVEVO REVEIGFuZCBRVUVSWV9QUkVQQVJFRA0KICAqIGZpcnN0X2xpbmUJQSBzaG9y dCwgc2luZ2xlLWxpbmUgZXh0cmFjdCBvZiAnbGluZXMnLCBmb3IgZXJyb3Ig cmVwb3J0aW5nLg0KICAqIHR5cGUJCQlTUUxfQ09NTUFORCBvciBNRVRBX0NP TU1BTkQNCiAgKiBtZXRhCQkJVGhlIHR5cGUgb2YgbWV0YS1jb21tYW5kLCB3 aXRoIE1FVEFfTk9ORS9HU0VUL0FTRVQgaWYgY29tbWFuZA0KQEAgLTUxNywx MCArNTMxLDEyIEBAIHN0YXRpYyBjb25zdCBjaGFyICpRVUVSWU1PREVbXSA9 IHsic2ltcGxlIiwgImV4dGVuZGVkIiwgInByZXBhcmVkIn07DQogICogYXNl dAkJCWRvIGdzZXQgb24gYWxsIHBvc3NpYmxlIHF1ZXJpZXMgb2YgYSBjb21i aW5lZCBxdWVyeSAoXDspLg0KICAqIGV4cHIJCQlQYXJzZWQgZXhwcmVzc2lv biwgaWYgbmVlZGVkLg0KICAqIHN0YXRzCQlUaW1lIHNwZW50IGluIHRoaXMg Y29tbWFuZC4NCisgKiBtdXRleAkJRm9yIGRlbGF5ZWQgaW5pdGlhbGl6YXRp b25zIG9mIFNRTCBjb21tYW5kcy4NCiAgKi8NCiB0eXBlZGVmIHN0cnVjdCBD b21tYW5kDQogew0KIAlQUUV4cEJ1ZmZlckRhdGEgbGluZXM7DQorCWJvb2wJ CXN1YnN0aXR1dGVkOw0KIAljaGFyCSAgICpmaXJzdF9saW5lOw0KIAlpbnQJ CQl0eXBlOw0KIAlNZXRhQ29tbWFuZCBtZXRhOw0KQEAgLTUyOSw2ICs1NDUs NyBAQCB0eXBlZGVmIHN0cnVjdCBDb21tYW5kDQogCWNoYXIJICAgKnZhcnBy ZWZpeDsNCiAJUGdCZW5jaEV4cHIgKmV4cHI7DQogCVNpbXBsZVN0YXRzIHN0 YXRzOw0KKwlwdGhyZWFkX211dGV4X3QJbXV0ZXg7DQogfSBDb21tYW5kOw0K IA0KIHR5cGVkZWYgc3RydWN0IFBhcnNlZFNjcmlwdA0KQEAgLTYxMyw2ICs2 MzAsNyBAQCBzdGF0aWMgdm9pZCBjbGVhcl9zb2NrZXRfc2V0KHNvY2tldF9z ZXQgKnNhKTsNCiBzdGF0aWMgdm9pZCBhZGRfc29ja2V0X3RvX3NldChzb2Nr ZXRfc2V0ICpzYSwgaW50IGZkLCBpbnQgaWR4KTsNCiBzdGF0aWMgaW50CXdh aXRfb25fc29ja2V0X3NldChzb2NrZXRfc2V0ICpzYSwgaW50NjQgdXNlY3Mp Ow0KIHN0YXRpYyBib29sIHNvY2tldF9oYXNfaW5wdXQoc29ja2V0X3NldCAq c2EsIGludCBmZCwgaW50IGlkeCk7DQorc3RhdGljIGJvb2wgbWFrZVZhcmlh Ymxlc1BhcmFtZXRlcnMoQ1N0YXRlICpzdCwgQ29tbWFuZCAqY21kKTsNCiAN CiANCiAvKiBjYWxsYmFjayBmdW5jdGlvbnMgZm9yIG91ciBmbGV4IGxleGVy ICovDQpAQCAtMTI3Myw3ICsxMjkxLDcgQEAgbG9va3VwVmFyaWFibGUoQ1N0 YXRlICpzdCwgY2hhciAqbmFtZSkNCiANCiAvKiBHZXQgdGhlIHZhbHVlIG9m IGEgdmFyaWFibGUsIGluIHN0cmluZyBmb3JtOyByZXR1cm5zIE5VTEwgaWYg dW5rbm93biAqLw0KIHN0YXRpYyBjaGFyICoNCi1nZXRWYXJpYWJsZShDU3Rh dGUgKnN0LCBjaGFyICpuYW1lKQ0KK2dldFZhcmlhYmxlKENTdGF0ZSAqc3Qs IGNoYXIgKm5hbWUsIGJvb2wgKmlzbnVsbCkNCiB7DQogCVZhcmlhYmxlICAg KnZhcjsNCiAJY2hhcgkJc3RyaW5nZm9ybVs2NF07DQpAQCAtMTI4Miw2ICsx MzAwLDkgQEAgZ2V0VmFyaWFibGUoQ1N0YXRlICpzdCwgY2hhciAqbmFtZSkN CiAJaWYgKHZhciA9PSBOVUxMKQ0KIAkJcmV0dXJuIE5VTEw7CQkJLyogbm90 IGZvdW5kICovDQogDQorCWlmIChpc251bGwgIT0gTlVMTCkNCisJCSppc251 bGwgPSB2YXItPnZhbHVlLnR5cGUgPT0gUEdCVF9OVUxMOw0KKw0KIAlpZiAo dmFyLT5zdmFsdWUpDQogCQlyZXR1cm4gdmFyLT5zdmFsdWU7CQkvKiB3ZSBo YXZlIGl0IGluIHN0cmluZyBmb3JtICovDQogDQpAQCAtMTM3Nyw2ICsxMzk4 LDkgQEAgbWFrZVZhcmlhYmxlVmFsdWUoVmFyaWFibGUgKnZhcikNCiAgKiAi c3JjL2Jpbi9wZ2JlbmNoL2V4cHJzY2FuLmwiLiAgQWxzbyBzZWUgcGFyc2VW YXJpYWJsZSgpLCBiZWxvdy4NCiAgKg0KICAqIE5vdGU6IHRoaXMgc3RhdGlj IGZ1bmN0aW9uIGlzIGNvcGllZCBmcm9tICJzcmMvYmluL3BzcWwvdmFyaWFi bGVzLmMiDQorICogYnV0IGNoYW5nZWQgdG8gZGlzYWxsb3cgdmFyaWFibGUg bmFtZXMgc3RhcnRpbmcgd2l0aCBhIGZpZ3VyZS4NCisgKg0KKyAqIEZJWE1F IGRvZXMgdGhpcyBjaGFuZ2UgbmVlZHMgdG8gYmUgcmV2ZXJ0ZWQ/DQogICov DQogc3RhdGljIGJvb2wNCiB2YWxpZF92YXJpYWJsZV9uYW1lKGNvbnN0IGNo YXIgKm5hbWUpDQpAQCAtMTM4Nyw2ICsxNDExLDE1IEBAIHZhbGlkX3Zhcmlh YmxlX25hbWUoY29uc3QgY2hhciAqbmFtZSkNCiAJaWYgKCpwdHIgPT0gJ1ww JykNCiAJCXJldHVybiBmYWxzZTsNCiANCisJLyogbXVzdCBub3Qgc3RhcnQg d2l0aCBbMC05XSAqLw0KKwlpZiAoSVNfSElHSEJJVF9TRVQoKnB0cikgfHwN CisJCXN0cmNocigiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiICJhYmNk ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiINCisJCQkgICAiXyIsICpwdHIpICE9 IE5VTEwpDQorCQlwdHIrKzsNCisJZWxzZQ0KKwkJcmV0dXJuIGZhbHNlOw0K Kw0KKwkvKiByZW1haW5kZXIgY2hhcmFjdGVycyBjYW4gaW5jbHVkZSBbMC05 XSAqLw0KIAl3aGlsZSAoKnB0cikNCiAJew0KIAkJaWYgKElTX0hJR0hCSVRf U0VUKCpwdHIpIHx8DQpAQCAtMTUwMiw2ICsxNTM1LDE2IEBAIHB1dFZhcmlh YmxlSW50KENTdGF0ZSAqc3QsIGNvbnN0IGNoYXIgKmNvbnRleHQsIGNoYXIg Km5hbWUsIGludDY0IHZhbHVlKQ0KIAlyZXR1cm4gcHV0VmFyaWFibGVWYWx1 ZShzdCwgY29udGV4dCwgbmFtZSwgJnZhbCk7DQogfQ0KIA0KKy8qIEFzc2ln biB2YXJpYWJsZSB0byBOVUxMLCByZXR1cm4gZmFsc2Ugb24gYmFkIG5hbWUg Ki8NCitzdGF0aWMgYm9vbA0KK3B1dFZhcmlhYmxlTnVsbChDU3RhdGUgKnN0 LCBjb25zdCBjaGFyICpjb250ZXh0LCBjaGFyICpuYW1lKQ0KK3sNCisJUGdC ZW5jaFZhbHVlIHZhbDsNCisNCisJc2V0TnVsbFZhbHVlKCZ2YWwpOw0KKwly ZXR1cm4gcHV0VmFyaWFibGVWYWx1ZShzdCwgY29udGV4dCwgbmFtZSwgJnZh bCk7DQorfQ0KKw0KIC8qDQogICogUGFyc2UgYSBwb3NzaWJsZSB2YXJpYWJs ZSByZWZlcmVuY2UgKDp2YXJuYW1lKS4NCiAgKg0KQEAgLTE1MTYsMTQgKzE1 NTksMjIgQEAgcGFyc2VWYXJpYWJsZShjb25zdCBjaGFyICpzcWwsIGludCAq ZWF0ZW4pDQogCWludAkJCWkgPSAwOw0KIAljaGFyCSAgICpuYW1lOw0KIA0K LQlkbw0KLQl7DQorCS8qIHNraXAgJzonICovDQorCWkrKzsNCisNCisJLyog Zmlyc3QgY2hhciBvZiBuYW1lIG11c3QgYmUgdmFsaWQgYnV0IG5vdCBbMC05 XSAqLw0KKwlpZiAoSVNfSElHSEJJVF9TRVQoc3FsW2ldKSB8fA0KKwkJc3Ry Y2hyKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIgImFiY2RlZmdoaWpr bG1ub3BxcnN0dXZ3eHl6Ig0KKwkJCSAgICJfIiwgc3FsW2ldKSAhPSBOVUxM KQ0KKwkJaSsrOw0KKwllbHNlDQorCQlyZXR1cm4gTlVMTDsNCisNCisJLyog dGhlbiBwcm9jZWVkIHRvIGNoZWNrIG90aGVyIGNoYXJzICovDQorCXdoaWxl IChJU19ISUdIQklUX1NFVChzcWxbaV0pIHx8DQorCQkgICBzdHJjaHIoIkFC Q0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIiAiYWJjZGVmZ2hpamtsbW5vcHFy c3R1dnd4eXoiDQorCQkJCSAgIl8wMTIzNDU2Nzg5Iiwgc3FsW2ldKSAhPSBO VUxMKQ0KIAkJaSsrOw0KLQl9IHdoaWxlIChJU19ISUdIQklUX1NFVChzcWxb aV0pIHx8DQotCQkJIHN0cmNocigiQUJDREVGR0hJSktMTU5PUFFSU1RVVldY WVoiICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiINCi0JCQkJCSJfMDEy MzQ1Njc4OSIsIHNxbFtpXSkgIT0gTlVMTCk7DQotCWlmIChpID09IDEpDQot CQlyZXR1cm4gTlVMTDsJCQkvKiBubyB2YWxpZCB2YXJpYWJsZSBuYW1lIGNo YXJzICovDQogDQogCW5hbWUgPSBwZ19tYWxsb2MoaSk7DQogCW1lbWNweShu YW1lLCAmc3FsWzFdLCBpIC0gMSk7DQpAQCAtMTU3NSw3ICsxNjI2LDcgQEAg YXNzaWduVmFyaWFibGVzKENTdGF0ZSAqc3QsIGNoYXIgKnNxbCkNCiAJCQlj b250aW51ZTsNCiAJCX0NCiANCi0JCXZhbCA9IGdldFZhcmlhYmxlKHN0LCBu YW1lKTsNCisJCXZhbCA9IGdldFZhcmlhYmxlKHN0LCBuYW1lLCBOVUxMKTsN CiAJCWZyZWUobmFtZSk7DQogCQlpZiAodmFsID09IE5VTEwpDQogCQl7DQpA QCAtMTU5MiwxMCArMTY0MywxMiBAQCBhc3NpZ25WYXJpYWJsZXMoQ1N0YXRl ICpzdCwgY2hhciAqc3FsKQ0KIHN0YXRpYyB2b2lkDQogZ2V0UXVlcnlQYXJh bXMoQ1N0YXRlICpzdCwgY29uc3QgQ29tbWFuZCAqY29tbWFuZCwgY29uc3Qg Y2hhciAqKnBhcmFtcykNCiB7DQotCWludAkJCWk7DQotDQotCWZvciAoaSA9 IDA7IGkgPCBjb21tYW5kLT5hcmdjIC0gMTsgaSsrKQ0KLQkJcGFyYW1zW2ld ID0gZ2V0VmFyaWFibGUoc3QsIGNvbW1hbmQtPmFyZ3ZbaSArIDFdKTsNCisJ Zm9yIChpbnQgaSA9IDA7IGkgPCBjb21tYW5kLT5hcmdjIC0gMTsgaSsrKQ0K Kwl7DQorCQlib29sCWlzbnVsbDsNCisJCWNoYXIgICAqc3ZhbCA9IGdldFZh cmlhYmxlKHN0LCBjb21tYW5kLT5hcmd2W2kgKyAxXSwgJmlzbnVsbCk7DQor CQlwYXJhbXNbaV0gPSBpc251bGwgPyBOVUxMIDogc3ZhbDsNCisJfQ0KIH0N CiANCiBzdGF0aWMgY2hhciAqDQpAQCAtMjUzNSw3ICsyNTg4LDcgQEAgcnVu U2hlbGxDb21tYW5kKENTdGF0ZSAqc3QsIGNoYXIgKnZhcmlhYmxlLCBjaGFy ICoqYXJndiwgaW50IGFyZ2MpDQogCQl7DQogCQkJYXJnID0gYXJndltpXSAr IDE7CS8qIGEgc3RyaW5nIGxpdGVyYWwgc3RhcnRpbmcgd2l0aCBjb2xvbnMg Ki8NCiAJCX0NCi0JCWVsc2UgaWYgKChhcmcgPSBnZXRWYXJpYWJsZShzdCwg YXJndltpXSArIDEpKSA9PSBOVUxMKQ0KKwkJZWxzZSBpZiAoKGFyZyA9IGdl dFZhcmlhYmxlKHN0LCBhcmd2W2ldICsgMSwgTlVMTCkpID09IE5VTEwpDQog CQl7DQogCQkJcGdfbG9nX2Vycm9yKCIlczogdW5kZWZpbmVkIHZhcmlhYmxl IFwiJXNcIiIsIGFyZ3ZbMF0sIGFyZ3ZbaV0pOw0KIAkJCXJldHVybiBmYWxz ZTsNCkBAIC0yNjU2LDEzICsyNzA5LDI5IEBAIHNlbmRDb21tYW5kKENTdGF0 ZSAqc3QsIENvbW1hbmQgKmNvbW1hbmQpDQogCX0NCiAJZWxzZSBpZiAocXVl cnltb2RlID09IFFVRVJZX0VYVEVOREVEKQ0KIAl7DQotCQljb25zdCBjaGFy ICpzcWwgPSBjb21tYW5kLT5hcmd2WzBdOw0KIAkJY29uc3QgY2hhciAqcGFy YW1zW01BWF9BUkdTXTsNCiANCisJCS8qIGRvIG5vdCB0cnkgdGhlIG11dGV4 IHVubGVzcyBpdCB3aWxsIGJlIG5lY2Vzc2FyeSAqLw0KKwkJaWYgKCFjb21t YW5kLT5zdWJzdGl0dXRlZCkNCisJCXsNCisJCQlwdGhyZWFkX211dGV4X2xv Y2soJmNvbW1hbmQtPm11dGV4KTsNCisJCQlpZiAoIWNvbW1hbmQtPnN1YnN0 aXR1dGVkKQ0KKwkJCXsNCisJCQkJaWYgKCFtYWtlVmFyaWFibGVzUGFyYW1l dGVycyhzdCwgY29tbWFuZCkpDQorCQkJCXsNCisJCQkJCXBnX2xvZ19mYXRh bCgiY2xpZW50ICVkIHNjcmlwdCAlcyBjb21tYW5kICVkIHBnYmVuY2ggdmFy aWFibGUgc3Vic3RpdHV0aW9uIGZhaWxlZCIsDQorCQkJCQkJCQkgc3QtPmlk LCBzcWxfc2NyaXB0W3N0LT51c2VfZmlsZV0uZGVzYywgc3QtPmNvbW1hbmQp Ow0KKwkJCQkJZXhpdCgxKTsNCisJCQkJfQ0KKwkJCQljb21tYW5kLT5zdWJz dGl0dXRlZCA9IHRydWU7DQorCQkJfQ0KKwkJCXB0aHJlYWRfbXV0ZXhfdW5s b2NrKCZjb21tYW5kLT5tdXRleCk7DQorCQl9DQorDQogCQlnZXRRdWVyeVBh cmFtcyhzdCwgY29tbWFuZCwgcGFyYW1zKTsNCiANCi0JCXBnX2xvZ19kZWJ1 ZygiY2xpZW50ICVkIHNlbmRpbmcgJXMiLCBzdC0+aWQsIHNxbCk7DQotCQly ID0gUFFzZW5kUXVlcnlQYXJhbXMoc3QtPmNvbiwgc3FsLCBjb21tYW5kLT5h cmdjIC0gMSwNCisJCXBnX2xvZ19kZWJ1ZygiY2xpZW50ICVkIHNlbmRpbmcg JXMiLCBzdC0+aWQsIGNvbW1hbmQtPmFyZ3ZbMF0pOw0KKwkJciA9IFBRc2Vu ZFF1ZXJ5UGFyYW1zKHN0LT5jb24sIGNvbW1hbmQtPmFyZ3ZbMF0sIGNvbW1h bmQtPmFyZ2MgLSAxLA0KIAkJCQkJCQkgIE5VTEwsIHBhcmFtcywgTlVMTCwg TlVMTCwgMCk7DQogCX0NCiAJZWxzZSBpZiAocXVlcnltb2RlID09IFFVRVJZ X1BSRVBBUkVEKQ0KQEAgLTI2NzAsMzEgKzI3MzksNDIgQEAgc2VuZENvbW1h bmQoQ1N0YXRlICpzdCwgQ29tbWFuZCAqY29tbWFuZCkNCiAJCWNoYXIJCW5h bWVbTUFYX1BSRVBBUkVfTkFNRV07DQogCQljb25zdCBjaGFyICpwYXJhbXNb TUFYX0FSR1NdOw0KIA0KLQkJaWYgKCFzdC0+cHJlcGFyZWRbc3QtPnVzZV9m aWxlXSkNCisJCS8qIGRvIG5vdCB0cnkgdGhlIG11dGV4IHVubGVzcyBpdCB3 aWxsIGJlIG5lY2Vzc2FyeSAqLw0KKwkJaWYgKCFjb21tYW5kLT5zdWJzdGl0 dXRlZCkNCiAJCXsNCi0JCQlpbnQJCQlqOw0KLQkJCUNvbW1hbmQgICAqKmNv bW1hbmRzID0gc3FsX3NjcmlwdFtzdC0+dXNlX2ZpbGVdLmNvbW1hbmRzOw0K LQ0KLQkJCWZvciAoaiA9IDA7IGNvbW1hbmRzW2pdICE9IE5VTEw7IGorKykN CisJCQlwdGhyZWFkX211dGV4X2xvY2soJmNvbW1hbmQtPm11dGV4KTsNCisJ CQlpZiAoIWNvbW1hbmQtPnN1YnN0aXR1dGVkKQ0KIAkJCXsNCi0JCQkJUEdy ZXN1bHQgICAqcmVzOw0KLQkJCQljaGFyCQluYW1lW01BWF9QUkVQQVJFX05B TUVdOw0KLQ0KLQkJCQlpZiAoY29tbWFuZHNbal0tPnR5cGUgIT0gU1FMX0NP TU1BTkQpDQotCQkJCQljb250aW51ZTsNCi0JCQkJcHJlcGFyZWRTdGF0ZW1l bnROYW1lKG5hbWUsIHN0LT51c2VfZmlsZSwgaik7DQotCQkJCXJlcyA9IFBR cHJlcGFyZShzdC0+Y29uLCBuYW1lLA0KLQkJCQkJCQkJY29tbWFuZHNbal0t PmFyZ3ZbMF0sIGNvbW1hbmRzW2pdLT5hcmdjIC0gMSwgTlVMTCk7DQotCQkJ CWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0sp DQotCQkJCQlwZ19sb2dfZXJyb3IoIiVzIiwgUFFlcnJvck1lc3NhZ2Uoc3Qt PmNvbikpOw0KLQkJCQlQUWNsZWFyKHJlcyk7DQorCQkJCWlmICghbWFrZVZh cmlhYmxlc1BhcmFtZXRlcnMoc3QsIGNvbW1hbmQpKQ0KKwkJCQl7DQorCQkJ CQlwZ19sb2dfZmF0YWwoImNsaWVudCAlZCBzY3JpcHQgJXMgY29tbWFuZCAl ZCBwZ2JlbmNoIHZhcmlhYmxlIHN1YnN0aXR1dGlvbiBmYWlsZWQiLA0KKwkJ CQkJCQkJIHN0LT5pZCwgc3FsX3NjcmlwdFtzdC0+dXNlX2ZpbGVdLmRlc2Ms IHN0LT5jb21tYW5kKTsNCisJCQkJCWV4aXQoMSk7DQorCQkJCX0NCisJCQkJ Y29tbWFuZC0+c3Vic3RpdHV0ZWQgPSB0cnVlOw0KIAkJCX0NCi0JCQlzdC0+ cHJlcGFyZWRbc3QtPnVzZV9maWxlXSA9IHRydWU7DQorCQkJcHRocmVhZF9t dXRleF91bmxvY2soJmNvbW1hbmQtPm11dGV4KTsNCiAJCX0NCiANCi0JCWdl dFF1ZXJ5UGFyYW1zKHN0LCBjb21tYW5kLCBwYXJhbXMpOw0KIAkJcHJlcGFy ZWRTdGF0ZW1lbnROYW1lKG5hbWUsIHN0LT51c2VfZmlsZSwgc3QtPmNvbW1h bmQpOw0KIA0KKwkJLyogZWFjaCBjbGllbnQgbXVzdCBwcmVwYXJlIGVhY2gg c3FsIGNvbW1hbmQgb25jZSAqLw0KKwkJaWYgKCFzdC0+cHJlcGFyZWRbc3Qt PnVzZV9maWxlXVtzdC0+Y29tbWFuZF0pDQorCQl7DQorCQkJUEdyZXN1bHQg ICAqcmVzOw0KKw0KKwkJCXJlcyA9IFBRcHJlcGFyZShzdC0+Y29uLCBuYW1l LA0KKwkJCQkJCQljb21tYW5kLT5hcmd2WzBdLCBjb21tYW5kLT5hcmdjIC0g MSwgTlVMTCk7DQorCQkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdS RVNfQ09NTUFORF9PSykNCisJCQkJcGdfbG9nX2Vycm9yKCIlcyIsIFBRZXJy b3JNZXNzYWdlKHN0LT5jb24pKTsNCisNCisJCQlQUWNsZWFyKHJlcyk7DQor DQorCQkJc3QtPnByZXBhcmVkW3N0LT51c2VfZmlsZV1bc3QtPmNvbW1hbmRd ID0gdHJ1ZTsNCisJCX0NCisNCisJCWdldFF1ZXJ5UGFyYW1zKHN0LCBjb21t YW5kLCBwYXJhbXMpOw0KKw0KIAkJcGdfbG9nX2RlYnVnKCJjbGllbnQgJWQg c2VuZGluZyAlcyIsIHN0LT5pZCwgbmFtZSk7DQogCQlyID0gUFFzZW5kUXVl cnlQcmVwYXJlZChzdC0+Y29uLCBuYW1lLCBjb21tYW5kLT5hcmdjIC0gMSwN CiAJCQkJCQkJCXBhcmFtcywgTlVMTCwgTlVMTCwgMCk7DQpAQCAtMjc4NSw3 ICsyODY1LDkgQEAgcmVhZENvbW1hbmRSZXNwb25zZShDU3RhdGUgKnN0LCBN ZXRhQ29tbWFuZCBtZXRhLCBjaGFyICp2YXJwcmVmaXgpDQogCQkJCQkJCXZh cm5hbWUgPSBwc3ByaW50ZigiJXMlcyIsIHZhcnByZWZpeCwgdmFybmFtZSk7 DQogDQogCQkJCQkJLyogc3RvcmUgbGFzdCByb3cgcmVzdWx0IGFzIGEgc3Ry aW5nICovDQotCQkJCQkJaWYgKCFwdXRWYXJpYWJsZShzdCwgbWV0YSA9PSBN RVRBX0FTRVQgPyAiYXNldCIgOiAiZ3NldCIsIHZhcm5hbWUsDQorCQkJCQkJ aWYgKFBRZ2V0aXNudWxsKHJlcywgbnR1cGxlcyAtIDEsIGZsZCkgPw0KKwkJ CQkJCQkhcHV0VmFyaWFibGVOdWxsKHN0LCBtZXRhID09IE1FVEFfQVNFVCA/ ICJhc2V0IiA6ICJnc2V0IiwgdmFybmFtZSkgOg0KKwkJCQkJCQkhcHV0VmFy aWFibGUoc3QsIG1ldGEgPT0gTUVUQV9BU0VUID8gImFzZXQiIDogImdzZXQi LCB2YXJuYW1lLA0KIAkJCQkJCQkJCQkgUFFnZXR2YWx1ZShyZXMsIG50dXBs ZXMgLSAxLCBmbGQpKSkNCiAJCQkJCQl7DQogCQkJCQkJCS8qIGludGVybmFs IGVycm9yICovDQpAQCAtMjg0OCw3ICsyOTMwLDcgQEAgZXZhbHVhdGVTbGVl cChDU3RhdGUgKnN0LCBpbnQgYXJnYywgY2hhciAqKmFyZ3YsIGludCAqdXNl Y3MpDQogDQogCWlmICgqYXJndlsxXSA9PSAnOicpDQogCXsNCi0JCWlmICgo dmFyID0gZ2V0VmFyaWFibGUoc3QsIGFyZ3ZbMV0gKyAxKSkgPT0gTlVMTCkN CisJCWlmICgodmFyID0gZ2V0VmFyaWFibGUoc3QsIGFyZ3ZbMV0gKyAxLCBO VUxMKSkgPT0gTlVMTCkNCiAJCXsNCiAJCQlwZ19sb2dfZXJyb3IoIiVzOiB1 bmRlZmluZWQgdmFyaWFibGUgXCIlc1wiIiwgYXJndlswXSwgYXJndlsxXSAr IDEpOw0KIAkJCXJldHVybiBmYWxzZTsNCkBAIC00MzAxLDExICs0MzgzLDE1 IEBAIEdldFRhYmxlSW5mbyhQR2Nvbm4gKmNvbiwgYm9vbCBzY2FsZV9naXZl bikNCiB9DQogDQogLyoNCi0gKiBSZXBsYWNlIDpwYXJhbSB3aXRoICRuIHRo cm91Z2hvdXQgdGhlIGNvbW1hbmQncyBTUUwgdGV4dCwgd2hpY2gNCisgKiBS b3VnaGx5IHJlcGxhY2UgOnBhcmFtIHdpdGggJG4gdGhyb3VnaG91dCB0aGUg Y29tbWFuZCdzIFNRTCB0ZXh0LCB3aGljaA0KICAqIGlzIGEgbW9kaWZpYWJs ZSBzdHJpbmcgaW4gY21kLT5saW5lcy4NCisgKg0KKyAqIFdoZXJldmVyIDp3 aGF0ZXZlciBpcyBmb3VuZCwgaXQgaXMgdHJpZWQgYXMgYSBwb3NzaWJsZSBh IHZhcmlhYmxlIG5hbWUuDQorICoNCisgKiBGSVhNRSBzaG91bGQgaXQgZG8g bWluaW1hbCBsZXhpbmcgKGluIHMvZCBxdW90ZXMsIC4uLik/DQogICovDQog c3RhdGljIGJvb2wNCi1wYXJzZVF1ZXJ5KENvbW1hbmQgKmNtZCkNCittYWtl VmFyaWFibGVzUGFyYW1ldGVycyhDU3RhdGUgKnN0LCBDb21tYW5kICpjbWQp DQogew0KIAljaGFyCSAgICpzcWwsDQogCQkJICAgKnA7DQpAQCAtNDMxNywx NSArNDQwMywyMyBAQCBwYXJzZVF1ZXJ5KENvbW1hbmQgKmNtZCkNCiAJew0K IAkJY2hhcgkJdmFyWzEzXTsNCiAJCWNoYXIJICAgKm5hbWU7DQorCQljaGFy CSAgICp2YWw7DQogCQlpbnQJCQllYXRlbjsNCiANCiAJCW5hbWUgPSBwYXJz ZVZhcmlhYmxlKHAsICZlYXRlbik7DQogCQlpZiAobmFtZSA9PSBOVUxMKQ0K IAkJew0KIAkJCXdoaWxlICgqcCA9PSAnOicpDQotCQkJew0KIAkJCQlwKys7 DQotCQkJfQ0KKwkJCWNvbnRpbnVlOw0KKwkJfQ0KKw0KKwkJLyogc2tpcCBp ZiB2YXJpYWJsZSBpcyB1bmRlZmluZWQ/ICovDQorCQl2YWwgPSBnZXRWYXJp YWJsZShzdCwgbmFtZSwgTlVMTCk7DQorCQlpZiAodmFsID09IE5VTEwpDQor CQl7DQorCQkJcGdfZnJlZShuYW1lKTsNCisJCQlwKys7DQogCQkJY29udGlu dWU7DQogCQl9DQogDQpAQCAtNDQ0OSw2ICs0NTQzLDcgQEAgY3JlYXRlX3Nx bF9jb21tYW5kKFBRRXhwQnVmZmVyIGJ1ZiwgY29uc3QgY2hhciAqc291cmNl KQ0KIAlteV9jb21tYW5kID0gKENvbW1hbmQgKikgcGdfbWFsbG9jKHNpemVv ZihDb21tYW5kKSk7DQogCWluaXRQUUV4cEJ1ZmZlcigmbXlfY29tbWFuZC0+ bGluZXMpOw0KIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmbXlfY29tbWFuZC0+ bGluZXMsIHApOw0KKwlteV9jb21tYW5kLT5zdWJzdGl0dXRlZCA9IGZhbHNl Ow0KIAlteV9jb21tYW5kLT5maXJzdF9saW5lID0gTlVMTDsJLyogdGhpcyBp cyBzZXQgbGF0ZXIgKi8NCiAJbXlfY29tbWFuZC0+dHlwZSA9IFNRTF9DT01N QU5EOw0KIAlteV9jb21tYW5kLT5tZXRhID0gTUVUQV9OT05FOw0KQEAgLTQ0 NTYsNiArNDU1MSw3IEBAIGNyZWF0ZV9zcWxfY29tbWFuZChQUUV4cEJ1ZmZl ciBidWYsIGNvbnN0IGNoYXIgKnNvdXJjZSkNCiAJbWVtc2V0KG15X2NvbW1h bmQtPmFyZ3YsIDAsIHNpemVvZihteV9jb21tYW5kLT5hcmd2KSk7DQogCW15 X2NvbW1hbmQtPnZhcnByZWZpeCA9IE5VTEw7CS8qIGFsbG9jYXRlZCBsYXRl ciwgaWYgbmVlZGVkICovDQogCW15X2NvbW1hbmQtPmV4cHIgPSBOVUxMOw0K KwlwdGhyZWFkX211dGV4X2luaXQoJm15X2NvbW1hbmQtPm11dGV4LCBOVUxM KTsNCiAJaW5pdFNpbXBsZVN0YXRzKCZteV9jb21tYW5kLT5zdGF0cyk7DQog DQogCXJldHVybiBteV9jb21tYW5kOw0KQEAgLTQ0OTYsMjAgKzQ1OTIsMTEg QEAgcG9zdHByb2Nlc3Nfc3FsX2NvbW1hbmQoQ29tbWFuZCAqbXlfY29tbWFu ZCkNCiAJYnVmZmVyW3N0cmNzcG4oYnVmZmVyLCAiXG5cciIpXSA9ICdcMCc7 DQogCW15X2NvbW1hbmQtPmZpcnN0X2xpbmUgPSBwZ19zdHJkdXAoYnVmZmVy KTsNCiANCi0JLyogcGFyc2UgcXVlcnkgaWYgbmVjZXNzYXJ5ICovDQotCXN3 aXRjaCAocXVlcnltb2RlKQ0KKwkvKiBhZGp1c3QgYXJndlswXSBvbiBzaW1w bGUgcXVlcnkgKi8NCisJaWYgKHF1ZXJ5bW9kZSA9PSBRVUVSWV9TSU1QTEUp DQogCXsNCi0JCWNhc2UgUVVFUllfU0lNUExFOg0KLQkJCW15X2NvbW1hbmQt PmFyZ3ZbMF0gPSBteV9jb21tYW5kLT5saW5lcy5kYXRhOw0KLQkJCW15X2Nv bW1hbmQtPmFyZ2MrKzsNCi0JCQlicmVhazsNCi0JCWNhc2UgUVVFUllfRVhU RU5ERUQ6DQotCQljYXNlIFFVRVJZX1BSRVBBUkVEOg0KLQkJCWlmICghcGFy c2VRdWVyeShteV9jb21tYW5kKSkNCi0JCQkJZXhpdCgxKTsNCi0JCQlicmVh azsNCi0JCWRlZmF1bHQ6DQotCQkJZXhpdCgxKTsNCisJCW15X2NvbW1hbmQt PmFyZ3ZbMF0gPSBteV9jb21tYW5kLT5saW5lcy5kYXRhOw0KKwkJbXlfY29t bWFuZC0+YXJnYysrOw0KIAl9DQogfQ0KIA0KQEAgLTQ4OTMsNiArNDk4MCwx NSBAQCBQYXJzZVNjcmlwdChjb25zdCBjaGFyICpzY3JpcHQsIGNvbnN0IGNo YXIgKmRlc2MsIGludCB3ZWlnaHQpDQogCXBzcWxfc2Nhbl9kZXN0cm95KHNz dGF0ZSk7DQogfQ0KIA0KK3N0YXRpYyBpbnQNCitudW1iZXJfb2ZfY29tbWFu ZHMoUGFyc2VkU2NyaXB0ICpwcykNCit7DQorCWludCBpID0gMDsNCisJd2hp bGUgKHBzLT5jb21tYW5kc1tpXSAhPSBOVUxMKQ0KKwkJaSsrOw0KKwlyZXR1 cm4gaSArIDE7DQorfQ0KKw0KIC8qDQogICogUmVhZCB0aGUgZW50aXJlIGNv bnRlbnRzIG9mIGZpbGUgZmQsIGFuZCByZXR1cm4gaXQgaW4gYSBtYWxsb2Mn ZCBidWZmZXIuDQogICoNCkBAIC02MDE4LDYgKzYxMTQsOSBAQCBtYWluKGlu dCBhcmdjLCBjaGFyICoqYXJndikNCiAJew0KIAkJc3RhdGVbaV0uY3N0YWNr ID0gY29uZGl0aW9uYWxfc3RhY2tfY3JlYXRlKCk7DQogCQlpbml0UmFuZG9t U3RhdGUoJnN0YXRlW2ldLmNzX2Z1bmNfcnMpOw0KKwkJZm9yIChpbnQgcyA9 IDA7IHMgPCBudW1fc2NyaXB0czsgcysrKQ0KKwkJCXN0YXRlW2ldLnByZXBh cmVkW3NdID0NCisJCQkJcGdfbWFsbG9jMChzaXplb2YoYm9vbCkgKiBudW1i ZXJfb2ZfY29tbWFuZHMoJnNxbF9zY3JpcHRbc10pKTsNCiAJfQ0KIA0KIAlw Z19sb2dfZGVidWcoInBnaG9zdDogJXMgcGdwb3J0OiAlcyBuY2xpZW50czog JWQgJXM6ICVkIGRiTmFtZTogJXMiLA0KQEAgLTY4MDksNCArNjkwOCwyNyBA QCBwdGhyZWFkX2pvaW4ocHRocmVhZF90IHRoLCB2b2lkICoqdGhyZWFkX3Jl dHVybikNCiAJcmV0dXJuIDA7DQogfQ0KIA0KK3N0YXRpYyB2b2lkDQorcHRo cmVhZF9tdXRleF9pbml0KHB0aHJlYWRfbXV0ZXhfdCAqcG0sIHZvaWQgKnVu dXNlZCkNCit7DQorCSpwbSA9IENyZWF0ZU11dGV4KE5VTEwsIEZBTFNFLCBO VUxMKTsNCit9DQorDQorc3RhdGljIHZvaWQNCitwdGhyZWFkX211dGV4X2xv Y2socHRocmVhZF9tdXRleF90ICpwbSkNCit7DQorCVdhaXRGb3JTaW5nbGVP YmplY3QoKnBtLCBJTkZJTklURSk7DQorfQ0KKw0KK3N0YXRpYyB2b2lkDQor cHRocmVhZF9tdXRleF91bmxvY2socHRocmVhZF9tdXRleF90ICpwbSkNCit7 DQorCVJlbGVhc2VNdXRleCgqcG0pOw0KK30NCisNCitzdGF0aWMgdm9pZA0K K3B0aHJlYWRfbXV0ZXhfZGVzdHJveShwdGhyZWFkX211dGV4X3QgKnBtKQ0K K3sNCisJQ2xvc2VIYW5kbGUoKnBtKTsNCit9DQogI2VuZGlmCQkJCQkJCS8q IFdJTjMyICovDQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ2JlbmNoL3QvMDAx X3BnYmVuY2hfd2l0aF9zZXJ2ZXIucGwgYi9zcmMvYmluL3BnYmVuY2gvdC8w MDFfcGdiZW5jaF93aXRoX3NlcnZlci5wbA0KaW5kZXggNTIwMDljMzUyNC4u OTg2YWIxYmZhNyAxMDA2NDQNCi0tLSBhL3NyYy9iaW4vcGdiZW5jaC90LzAw MV9wZ2JlbmNoX3dpdGhfc2VydmVyLnBsDQorKysgYi9zcmMvYmluL3BnYmVu Y2gvdC8wMDFfcGdiZW5jaF93aXRoX3NlcnZlci5wbA0KQEAgLTMxOCw3ICsz MTgsNyBAQCBwZ2JlbmNoKA0KIAldLA0KIAknc2VydmVyIHBhcmFtZXRlciBs b2dnaW5nJywNCiAJew0KLQkJJzAwMV9wYXJhbV8yJyA9PiBxe3NlbGVjdCAn MScgYXMgb25lIFxnc2V0DQorCQknMDAxX3BhcmFtXzInID0+IHF7c2VsZWN0 ICcxJyBhcyBvbmUsIG51bGwgYXMgdHdvIFxnc2V0DQogU0VMRUNUIDEgLyAo cmFuZG9tKCkgLyAyKTo6aW50LCA6b25lOjppbnQsIDp0d286OmludDsNCiB9 DQogCX0pOw0KQEAgLTM2MCw3ICszNjAsNyBAQCBwZ2JlbmNoKA0KIAldLA0K IAknc2VydmVyIHBhcmFtZXRlciBsb2dnaW5nJywNCiAJew0KLQkJJzAwMV9w YXJhbV80JyA9PiBxe3NlbGVjdCAnMScgYXMgb25lIFxnc2V0DQorCQknMDAx X3BhcmFtXzQnID0+IHF7c2VsZWN0ICcxJyBhcyBvbmUsIG51bGwgYXMgdHdv IFxnc2V0DQogU0VMRUNUIDEgLyAocmFuZG9tKCkgLyAyKTo6aW50LCA6b25l OjppbnQsIDp0d286OmludDsNCiB9DQogCX0pOw0KQEAgLTQ2Nyw2ICs0Njcs OCBAQCBwZ2JlbmNoKA0KIAkJcXJ7Y29tbWFuZD05OC46IGludCA1NDMyXGJ9 LCAgICAgICAgICAgICAgICAgICAgIyA6cmFuZG9tX3NlZWQNCiAJCXFye2Nv bW1hbmQ9OTkuOiBpbnQgLTkyMjMzNzIwMzY4NTQ3NzU4MDhcYn0sICAgICMg bWluIGludA0KIAkJcXJ7Y29tbWFuZD0xMDAuOiBpbnQgOTIyMzM3MjAzNjg1 NDc3NTgwN1xifSwgICAgIyBtYXggaW50DQorCQlxcntjb21tYW5kPTEwMy46 IGJvb2xlYW4gdHJ1ZVxifSwNCisJCXFye2NvbW1hbmQ9MTA1LjogYm9vbGVh biB0cnVlXGJ9LA0KIAldLA0KIAkncGdiZW5jaCBleHByZXNzaW9ucycsDQog CXsNCkBAIC01OTQsNiArNTk2LDEzIEBAIFNFTEVDVCA6djAsIDp2MSwgOnYy LCA6djM7DQogLS0gbWluaW50IGNvbnN0YW50IHBhcnNpbmcNCiBcc2V0IG1p biBkZWJ1ZygtOTIyMzM3MjAzNjg1NDc3NTgwOCkNCiBcc2V0IG1heCBkZWJ1 ZygtKDptaW4gKyAxKSkNCistLSBudWxsIGhhbmRsaW5nDQorXHNldCBuMCBu dWxsDQorU0VMRUNUIE5VTEwgQVMgbjEsIDEgQVMgb25lIFxnc2V0DQorXHNl dCBuMiBkZWJ1Zyg6bjAgaXMgbnVsbCBhbmQgOm4xIGlzIG51bGwgYW5kIDpv bmUgaXMgbm90IG51bGwpDQorLS0gdW5kZWZpbmVkIHZhcmlhYmxlcyBhcmUg bm90IHN1YnN0aXR1dGVkDQorU0VMRUNUICc6bm9fc3VjaF92YXJpYWJsZScg PSAnOicgfHwgJ25vX3N1Y2hfdmFyaWFibGUnIEFTIGVxIFxnc2V0DQorXHNl dCBvayBkZWJ1Zyg6ZXEpDQogfQ0KIAl9KTsNCiANCg== --2056645051-1442683260-1594276823=:417896--