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 1owHNi-0001TL-QC for pgsql-hackers@arkaria.postgresql.org; Sat, 19 Nov 2022 06:31:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1owHNh-00072G-96 for pgsql-hackers@arkaria.postgresql.org; Sat, 19 Nov 2022 06:31:13 +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 1owHNg-000726-Om for pgsql-hackers@lists.postgresql.org; Sat, 19 Nov 2022 06:31:12 +0000 Received: from 18.mo584.mail-out.ovh.net ([188.165.54.143]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1owHNb-0007qP-W5 for pgsql-hackers@postgresql.org; Sat, 19 Nov 2022 06:31:12 +0000 Received: from player797.ha.ovh.net (unknown [10.109.143.136]) by mo584.mail-out.ovh.net (Postfix) with ESMTP id 82B1E24393 for ; Sat, 19 Nov 2022 06:31:06 +0000 (UTC) Received: from darold.net (amontpellier-652-1-149-133.w81-251.abo.wanadoo.fr [81.251.156.133]) (Authenticated sender: gilles@darold.net) by player797.ha.ovh.net (Postfix) with ESMTPSA id DF77B2CD1B9B6; Sat, 19 Nov 2022 06:30:59 +0000 (UTC) Authentication-Results: garm.ovh; auth=pass (GARM-103G005c3a5d662-fe74-4653-ad91-4a69b5bc7448, DBFED3128F613F3E27353AD0055AC9FEDDDA528C) smtp.auth=gilles@darold.net X-OVh-ClientIp: 81.251.156.133 Content-Type: multipart/mixed; boundary="------------eSTz3TyN3jYSyhRd41a1TRSF" Message-ID: <475e579b-6910-91e6-65bd-513fcf3db1da@darold.net> Date: Sat, 19 Nov 2022 07:30:59 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 To: Tom Lane , Gilles Darold Cc: PostgreSQL Hackers References: <45c93d57-9973-248e-d2df-e02ca9af48d4@darold.net> <1847848.1668704358@sss.pgh.pa.us> Content-Language: en-US From: Gilles Darold Subject: Re: [BUG] pg_dump blocked In-Reply-To: <1847848.1668704358@sss.pgh.pa.us> X-Ovh-Tracer-Id: 8658733234506079840 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvgedrhedugdeljecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpegtkfffgggfvfevfhfhufgjsehmtderredtfeejnecuhfhrohhmpefiihhllhgvshcuffgrrhholhguuceoghhilhhlvghssegurghrohhlugdrnhgvtheqnecuggftrfgrthhtvghrnhepudeigeeiieejvdfhueegjeelueelhfehteehfeevkeegudelgefgtdfhgeehieegnecukfhppeduvdejrddtrddtrddupdekuddrvdehuddrudehiedrudeffeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepoehgihhllhgvshesuggrrhholhgurdhnvghtqedpnhgspghrtghpthhtohepuddprhgtphhtthhopehpghhsqhhlqdhhrggtkhgvrhhssehpohhsthhgrhgvshhqlhdrohhrghdpoffvtefjohhsthepmhhoheekgedpmhhouggvpehsmhhtphhouhht List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------eSTz3TyN3jYSyhRd41a1TRSF Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Le 17/11/2022 à 17:59, Tom Lane a écrit : > Gilles Darold writes: >> I have an incorrect behavior with pg_dump prior PG version 15. With >> PostgreSQL 15, thanks to commit e3fcbbd623b9ccc16cdbda374654d91a4727d173 >> the problem is gone but for older versions it persists with locks on >> partitioned tables. > I didn't want to back-patch e3fcbbd62 at the time, but it's probably aged > long enough now to be safe to back-patch. If we do anything here, > it should be to back-patch the whole thing, else we've only partially > fixed the issue. Here are the different patched following the PostgreSQL version from 11 to 14, they should apply on the corresponding stable branches. The patches only concern the move of the unsafe functions, pg_get_partkeydef() and pg_get_expr(). They should all apply without problem on their respective branch, pg_dump tap regression test passed on all versions. Regards, -- Gilles Darold --------------eSTz3TyN3jYSyhRd41a1TRSF Content-Type: text/x-patch; charset=UTF-8; name="0001-move-unsafe-function-calls-14-backport-1.patch" Content-Disposition: attachment; filename="0001-move-unsafe-function-calls-14-backport-1.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCmluZGV4IGUxMTAyNTczOTUuLmNiZTdjMWUwMWQgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwpAQCAtNjMyMiwxNCArNjMyMiwxNSBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwg aW50ICpudW1UYWJsZXMpCiAJaW50CQkJaV9mb3JlaWduc2VydmVyOwogCWludAkJCWlfaXNf aWRlbnRpdHlfc2VxdWVuY2U7CiAJaW50CQkJaV9jaGFuZ2VkX2FjbDsKLQlpbnQJCQlpX3Bh cnRrZXlkZWY7CiAJaW50CQkJaV9pc3BhcnRpdGlvbjsKLQlpbnQJCQlpX3BhcnRib3VuZDsK IAlpbnQJCQlpX2FtbmFtZTsKIAogCS8qCiAJICogRmluZCBhbGwgdGhlIHRhYmxlcyBhbmQg dGFibGUtbGlrZSBvYmplY3RzLgogCSAqCisJICogV2UgbXVzdCBmZXRjaCBhbGwgdGFibGVz IGluIHRoaXMgcGhhc2UgYmVjYXVzZSBvdGhlcndpc2Ugd2UgY2Fubm90CisJICogY29ycmVj dGx5IGlkZW50aWZ5IGluaGVyaXRlZCBjb2x1bW5zLCBvd25lZCBzZXF1ZW5jZXMsIGV0Yy4K KwkgKgogCSAqIFdlIGluY2x1ZGUgc3lzdGVtIGNhdGFsb2dzLCBzbyB0aGF0IHdlIGNhbiB3 b3JrIGlmIGEgdXNlciB0YWJsZSBpcwogCSAqIGRlZmluZWQgdG8gaW5oZXJpdCBmcm9tIGEg c3lzdGVtIGNhdGFsb2cgKHByZXR0eSB3ZWlyZCwgYnV0Li4uKQogCSAqCkBAIC02MzQzLDgg KzYzNDQsMTAgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQog CSAqCiAJICogTm90ZTogaW4gdGhpcyBwaGFzZSB3ZSBzaG91bGQgY29sbGVjdCBvbmx5IGEg bWluaW1hbCBhbW91bnQgb2YKIAkgKiBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIHRhYmxlLCBi YXNpY2FsbHkganVzdCBlbm91Z2ggdG8gZGVjaWRlIGlmIGl0IGlzCi0JICogaW50ZXJlc3Rp bmcuIFdlIG11c3QgZmV0Y2ggYWxsIHRhYmxlcyBpbiB0aGlzIHBoYXNlIGJlY2F1c2Ugb3Ro ZXJ3aXNlCi0JICogd2UgY2Fubm90IGNvcnJlY3RseSBpZGVudGlmeSBpbmhlcml0ZWQgY29s dW1ucywgb3duZWQgc2VxdWVuY2VzLCBldGMuCisJICogaW50ZXJlc3RpbmcuICBJbiBwYXJ0 aWN1bGFyLCBzaW5jZSB3ZSBkbyBub3QgeWV0IGhhdmUgbG9jayBvbiBhbnkgdXNlcgorCSAq IHRhYmxlLCB3ZSBNVVNUIE5PVCBpbnZva2UgYW55IHNlcnZlci1zaWRlIGRhdGEgY29sbGVj dGlvbiBmdW5jdGlvbnMKKwkgKiAoZm9yIGluc3RhbmNlLCBwZ19nZXRfcGFydGtleWRlZigp KS4gIFRob3NlIGFyZSBsaWtlbHkgdG8gZmFpbCBvciBnaXZlCisJICogd3JvbmcgYW5zd2Vy cyBpZiBhbnkgY29uY3VycmVudCBEREwgaXMgaGFwcGVuaW5nLgogCSAqCiAJICogV2UgcHVy cG9zZWZ1bGx5IGlnbm9yZSB0b2FzdCBPSURzIGZvciBwYXJ0aXRpb25lZCB0YWJsZXM7IHRo ZSByZWFzb24gaXMKIAkgKiB0aGF0IHZlcnNpb25zIDEwIGFuZCAxMSBoYXZlIHRoZW0sIGJ1 dCAxMiBkb2VzIG5vdCwgc28gZW1pdHRpbmcgdGhlbQpAQCAtNjM1Myw5ICs2MzU2LDcgQEAg Z2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCiAJaWYgKGZvdXQt PnJlbW90ZVZlcnNpb24gPj0gOTA2MDApCiAJewotCQljaGFyCSAgICpwYXJ0a2V5ZGVmID0g Ik5VTEwiOwogCQljaGFyCSAgICppc3BhcnRpdGlvbiA9ICJmYWxzZSI7Ci0JCWNoYXIJICAg KnBhcnRib3VuZCA9ICJOVUxMIjsKIAkJY2hhcgkgICAqcmVsaGFzb2lkcyA9ICJjLnJlbGhh c29pZHMiOwogCiAJCVBRRXhwQnVmZmVyIGFjbF9zdWJxdWVyeSA9IGNyZWF0ZVBRRXhwQnVm ZmVyKCk7CkBAIC02Mzc0LDExICs2Mzc1LDcgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQs IGludCAqbnVtVGFibGVzKQogCQkgKi8KIAogCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+ PSAxMDAwMDApCi0JCXsKLQkJCXBhcnRrZXlkZWYgPSAicGdfZ2V0X3BhcnRrZXlkZWYoYy5v aWQpIjsKIAkJCWlzcGFydGl0aW9uID0gImMucmVsaXNwYXJ0aXRpb24iOwotCQkJcGFydGJv dW5kID0gInBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9pZCkiOwotCQl9CiAKIAkJ LyogSW4gUEcxMiB1cHdhcmRzIFdJVEggT0lEUyBkb2VzIG5vdCBleGlzdCBhbnltb3JlLiAq LwogCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxMjAwMDApCkBAIC02NDE5LDcgKzY0 MTYsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJCQkJ CQkgICJDQVNFIFdIRU4gYy5yZWxraW5kID0gJ2YnIFRIRU4gIgogCQkJCQkJICAiKFNFTEVD VCBmdHNlcnZlciBGUk9NIHBnX2NhdGFsb2cucGdfZm9yZWlnbl90YWJsZSBXSEVSRSBmdHJl bGlkID0gYy5vaWQpICIKIAkJCQkJCSAgIkVMU0UgMCBFTkQgQVMgZm9yZWlnbnNlcnZlciwg IgotCQkJCQkJICAiQ0FTRSBXSEVOIGMucmVsb2Z0eXBlIDw+IDAgVEhFTiBjLnJlbG9mdHlw ZTo6cGdfY2F0YWxvZy5yZWd0eXBlIEVMU0UgTlVMTCBFTkQgQVMgcmVsb2Z0eXBlLCAiCisJ CQkJCQkgICJjLnJlbG9mdHlwZSwgIgogCQkJCQkJICAiZC5yZWZvYmppZCBBUyBvd25pbmdf dGFiLCAiCiAJCQkJCQkgICJkLnJlZm9ianN1YmlkIEFTIG93bmluZ19jb2wsICIKIAkJCQkJ CSAgIihTRUxFQ1Qgc3BjbmFtZSBGUk9NIHBnX3RhYmxlc3BhY2UgdCBXSEVSRSB0Lm9pZCA9 IGMucmVsdGFibGVzcGFjZSkgQVMgcmVsdGFibGVzcGFjZSwgIgpAQCAtNjQzOSw5ICs2NDM2 LDcgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJCQkJ ICAiT1IgJXMgSVMgTk9UIE5VTEwiCiAJCQkJCQkgICIpKSIKIAkJCQkJCSAgIkFTIGNoYW5n ZWRfYWNsLCAiCi0JCQkJCQkgICIlcyBBUyBwYXJ0a2V5ZGVmLCAiCi0JCQkJCQkgICIlcyBB UyBpc3BhcnRpdGlvbiwgIgotCQkJCQkJICAiJXMgQVMgcGFydGJvdW5kICIKKwkJCQkJCSAg IiVzIEFTIGlzcGFydGl0aW9uICIKIAkJCQkJCSAgIkZST00gcGdfY2xhc3MgYyAiCiAJCQkJ CQkgICJMRUZUIEpPSU4gcGdfZGVwZW5kIGQgT04gIgogCQkJCQkJICAiKGMucmVsa2luZCA9 ICclYycgQU5EICIKQEAgLTY0NjcsOSArNjQ2Miw3IEBAIGdldFRhYmxlcyhBcmNoaXZlICpm b3V0LCBpbnQgKm51bVRhYmxlcykKIAkJCQkJCSAgYXR0cmFjbF9zdWJxdWVyeS0+ZGF0YSwK IAkJCQkJCSAgYXR0aW5pdGFjbF9zdWJxdWVyeS0+ZGF0YSwKIAkJCQkJCSAgYXR0aW5pdHJh Y2xfc3VicXVlcnktPmRhdGEsCi0JCQkJCQkgIHBhcnRrZXlkZWYsCiAJCQkJCQkgIGlzcGFy dGl0aW9uLAotCQkJCQkJICBwYXJ0Ym91bmQsCiAJCQkJCQkgIFJFTEtJTkRfU0VRVUVOQ0Us CiAJCQkJCQkgIFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUsCiAJCQkJCQkgIFJFTEtJTkRf UkVMQVRJT04sIFJFTEtJTkRfU0VRVUVOQ0UsCkBAIC02NTEyLDcgKzY1MDUsNyBAQCBnZXRU YWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJCQkJCQkgICJDQVNFIFdI RU4gYy5yZWxraW5kID0gJ2YnIFRIRU4gIgogCQkJCQkJICAiKFNFTEVDVCBmdHNlcnZlciBG Uk9NIHBnX2NhdGFsb2cucGdfZm9yZWlnbl90YWJsZSBXSEVSRSBmdHJlbGlkID0gYy5vaWQp ICIKIAkJCQkJCSAgIkVMU0UgMCBFTkQgQVMgZm9yZWlnbnNlcnZlciwgIgotCQkJCQkJICAi Q0FTRSBXSEVOIGMucmVsb2Z0eXBlIDw+IDAgVEhFTiBjLnJlbG9mdHlwZTo6cGdfY2F0YWxv Zy5yZWd0eXBlIEVMU0UgTlVMTCBFTkQgQVMgcmVsb2Z0eXBlLCAiCisJCQkJCQkgICJjLnJl bG9mdHlwZSwgIgogCQkJCQkJICAiZC5yZWZvYmppZCBBUyBvd25pbmdfdGFiLCAiCiAJCQkJ CQkgICJkLnJlZm9ianN1YmlkIEFTIG93bmluZ19jb2wsICIKIAkJCQkJCSAgIihTRUxFQ1Qg c3BjbmFtZSBGUk9NIHBnX3RhYmxlc3BhY2UgdCBXSEVSRSB0Lm9pZCA9IGMucmVsdGFibGVz cGFjZSkgQVMgcmVsdGFibGVzcGFjZSwgIgpAQCAtNjUyMSw5ICs2NTE0LDcgQEAgZ2V0VGFi bGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJCQkJICAiV0hFTiAnY2hl Y2tfb3B0aW9uPWNhc2NhZGVkJyA9IEFOWSAoYy5yZWxvcHRpb25zKSBUSEVOICdDQVNDQURF RCc6OnRleHQgRUxTRSBOVUxMIEVORCBBUyBjaGVja29wdGlvbiwgIgogCQkJCQkJICAidGMu cmVsb3B0aW9ucyBBUyB0b2FzdF9yZWxvcHRpb25zLCAiCiAJCQkJCQkgICJOVUxMIEFTIGNo YW5nZWRfYWNsLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRrZXlkZWYsICIKLQkJCQkJCSAg ImZhbHNlIEFTIGlzcGFydGl0aW9uLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRib3VuZCAi CisJCQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiAiCiAJCQkJCQkgICJGUk9NIHBnX2Ns YXNzIGMgIgogCQkJCQkJICAiTEVGVCBKT0lOIHBnX2RlcGVuZCBkIE9OICIKIAkJCQkJCSAg IihjLnJlbGtpbmQgPSAnJWMnIEFORCAiCkBAIC02NTY1LDcgKzY1NTYsNyBAQCBnZXRUYWJs ZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJCQkJCQkgICJDQVNFIFdIRU4g Yy5yZWxraW5kID0gJ2YnIFRIRU4gIgogCQkJCQkJICAiKFNFTEVDVCBmdHNlcnZlciBGUk9N IHBnX2NhdGFsb2cucGdfZm9yZWlnbl90YWJsZSBXSEVSRSBmdHJlbGlkID0gYy5vaWQpICIK IAkJCQkJCSAgIkVMU0UgMCBFTkQgQVMgZm9yZWlnbnNlcnZlciwgIgotCQkJCQkJICAiQ0FT RSBXSEVOIGMucmVsb2Z0eXBlIDw+IDAgVEhFTiBjLnJlbG9mdHlwZTo6cGdfY2F0YWxvZy5y ZWd0eXBlIEVMU0UgTlVMTCBFTkQgQVMgcmVsb2Z0eXBlLCAiCisJCQkJCQkgICJjLnJlbG9m dHlwZSwgIgogCQkJCQkJICAiZC5yZWZvYmppZCBBUyBvd25pbmdfdGFiLCAiCiAJCQkJCQkg ICJkLnJlZm9ianN1YmlkIEFTIG93bmluZ19jb2wsICIKIAkJCQkJCSAgIihTRUxFQ1Qgc3Bj bmFtZSBGUk9NIHBnX3RhYmxlc3BhY2UgdCBXSEVSRSB0Lm9pZCA9IGMucmVsdGFibGVzcGFj ZSkgQVMgcmVsdGFibGVzcGFjZSwgIgpAQCAtNjU3NCw5ICs2NTY1LDcgQEAgZ2V0VGFibGVz KEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJCQkJICAiV0hFTiAnY2hlY2tf b3B0aW9uPWNhc2NhZGVkJyA9IEFOWSAoYy5yZWxvcHRpb25zKSBUSEVOICdDQVNDQURFRCc6 OnRleHQgRUxTRSBOVUxMIEVORCBBUyBjaGVja29wdGlvbiwgIgogCQkJCQkJICAidGMucmVs b3B0aW9ucyBBUyB0b2FzdF9yZWxvcHRpb25zLCAiCiAJCQkJCQkgICJOVUxMIEFTIGNoYW5n ZWRfYWNsLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRrZXlkZWYsICIKLQkJCQkJCSAgImZh bHNlIEFTIGlzcGFydGl0aW9uLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRib3VuZCAiCisJ CQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiAiCiAJCQkJCQkgICJGUk9NIHBnX2NsYXNz IGMgIgogCQkJCQkJICAiTEVGVCBKT0lOIHBnX2RlcGVuZCBkIE9OICIKIAkJCQkJCSAgIihj LnJlbGtpbmQgPSAnJWMnIEFORCAiCkBAIC02NjE4LDcgKzY2MDcsNyBAQCBnZXRUYWJsZXMo QXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJCQkJCQkgICJDQVNFIFdIRU4gYy5y ZWxraW5kID0gJ2YnIFRIRU4gIgogCQkJCQkJICAiKFNFTEVDVCBmdHNlcnZlciBGUk9NIHBn X2NhdGFsb2cucGdfZm9yZWlnbl90YWJsZSBXSEVSRSBmdHJlbGlkID0gYy5vaWQpICIKIAkJ CQkJCSAgIkVMU0UgMCBFTkQgQVMgZm9yZWlnbnNlcnZlciwgIgotCQkJCQkJICAiQ0FTRSBX SEVOIGMucmVsb2Z0eXBlIDw+IDAgVEhFTiBjLnJlbG9mdHlwZTo6cGdfY2F0YWxvZy5yZWd0 eXBlIEVMU0UgTlVMTCBFTkQgQVMgcmVsb2Z0eXBlLCAiCisJCQkJCQkgICJjLnJlbG9mdHlw ZSwgIgogCQkJCQkJICAiZC5yZWZvYmppZCBBUyBvd25pbmdfdGFiLCAiCiAJCQkJCQkgICJk LnJlZm9ianN1YmlkIEFTIG93bmluZ19jb2wsICIKIAkJCQkJCSAgIihTRUxFQ1Qgc3BjbmFt ZSBGUk9NIHBnX3RhYmxlc3BhY2UgdCBXSEVSRSB0Lm9pZCA9IGMucmVsdGFibGVzcGFjZSkg QVMgcmVsdGFibGVzcGFjZSwgIgpAQCAtNjYyNyw5ICs2NjE2LDcgQEAgZ2V0VGFibGVzKEFy Y2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJCQkJICAiV0hFTiAnY2hlY2tfb3B0 aW9uPWNhc2NhZGVkJyA9IEFOWSAoYy5yZWxvcHRpb25zKSBUSEVOICdDQVNDQURFRCc6OnRl eHQgRUxTRSBOVUxMIEVORCBBUyBjaGVja29wdGlvbiwgIgogCQkJCQkJICAidGMucmVsb3B0 aW9ucyBBUyB0b2FzdF9yZWxvcHRpb25zLCAiCiAJCQkJCQkgICJOVUxMIEFTIGNoYW5nZWRf YWNsLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRrZXlkZWYsICIKLQkJCQkJCSAgImZhbHNl IEFTIGlzcGFydGl0aW9uLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRib3VuZCAiCisJCQkJ CQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiAiCiAJCQkJCQkgICJGUk9NIHBnX2NsYXNzIGMg IgogCQkJCQkJICAiTEVGVCBKT0lOIHBnX2RlcGVuZCBkIE9OICIKIAkJCQkJCSAgIihjLnJl bGtpbmQgPSAnJWMnIEFORCAiCkBAIC02NjcxLDE2ICs2NjU4LDE0IEBAIGdldFRhYmxlcyhB cmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAkJCQkJCSAgIkNBU0UgV0hFTiBjLnJl bGtpbmQgPSAnZicgVEhFTiAiCiAJCQkJCQkgICIoU0VMRUNUIGZ0c2VydmVyIEZST00gcGdf Y2F0YWxvZy5wZ19mb3JlaWduX3RhYmxlIFdIRVJFIGZ0cmVsaWQgPSBjLm9pZCkgIgogCQkJ CQkJICAiRUxTRSAwIEVORCBBUyBmb3JlaWduc2VydmVyLCAiCi0JCQkJCQkgICJDQVNFIFdI RU4gYy5yZWxvZnR5cGUgPD4gMCBUSEVOIGMucmVsb2Z0eXBlOjpwZ19jYXRhbG9nLnJlZ3R5 cGUgRUxTRSBOVUxMIEVORCBBUyByZWxvZnR5cGUsICIKKwkJCQkJCSAgImMucmVsb2Z0eXBl LCAiCiAJCQkJCQkgICJkLnJlZm9iamlkIEFTIG93bmluZ190YWIsICIKIAkJCQkJCSAgImQu cmVmb2Jqc3ViaWQgQVMgb3duaW5nX2NvbCwgIgogCQkJCQkJICAiKFNFTEVDVCBzcGNuYW1l IEZST00gcGdfdGFibGVzcGFjZSB0IFdIRVJFIHQub2lkID0gYy5yZWx0YWJsZXNwYWNlKSBB UyByZWx0YWJsZXNwYWNlLCAiCiAJCQkJCQkgICJjLnJlbG9wdGlvbnMgQVMgcmVsb3B0aW9u cywgIgogCQkJCQkJICAidGMucmVsb3B0aW9ucyBBUyB0b2FzdF9yZWxvcHRpb25zLCAiCiAJ CQkJCQkgICJOVUxMIEFTIGNoYW5nZWRfYWNsLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRr ZXlkZWYsICIKLQkJCQkJCSAgImZhbHNlIEFTIGlzcGFydGl0aW9uLCAiCi0JCQkJCQkgICJO VUxMIEFTIHBhcnRib3VuZCAiCisJCQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiAiCiAJ CQkJCQkgICJGUk9NIHBnX2NsYXNzIGMgIgogCQkJCQkJICAiTEVGVCBKT0lOIHBnX2RlcGVu ZCBkIE9OICIKIAkJCQkJCSAgIihjLnJlbGtpbmQgPSAnJWMnIEFORCAiCkBAIC02NzIwLDE2 ICs2NzA1LDE0IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykK IAkJCQkJCSAgIidkJyBBUyByZWxyZXBsaWRlbnQsIGMucmVscGFnZXMsICIKIAkJCQkJCSAg Ik5VTEwgQVMgYW1uYW1lLCAiCiAJCQkJCQkgICJOVUxMIEFTIGZvcmVpZ25zZXJ2ZXIsICIK LQkJCQkJCSAgIkNBU0UgV0hFTiBjLnJlbG9mdHlwZSA8PiAwIFRIRU4gYy5yZWxvZnR5cGU6 OnBnX2NhdGFsb2cucmVndHlwZSBFTFNFIE5VTEwgRU5EIEFTIHJlbG9mdHlwZSwgIgorCQkJ CQkJICAiYy5yZWxvZnR5cGUsICIKIAkJCQkJCSAgImQucmVmb2JqaWQgQVMgb3duaW5nX3Rh YiwgIgogCQkJCQkJICAiZC5yZWZvYmpzdWJpZCBBUyBvd25pbmdfY29sLCAiCiAJCQkJCQkg ICIoU0VMRUNUIHNwY25hbWUgRlJPTSBwZ190YWJsZXNwYWNlIHQgV0hFUkUgdC5vaWQgPSBj LnJlbHRhYmxlc3BhY2UpIEFTIHJlbHRhYmxlc3BhY2UsICIKIAkJCQkJCSAgImMucmVsb3B0 aW9ucyBBUyByZWxvcHRpb25zLCAiCiAJCQkJCQkgICJ0Yy5yZWxvcHRpb25zIEFTIHRvYXN0 X3JlbG9wdGlvbnMsICIKIAkJCQkJCSAgIk5VTEwgQVMgY2hhbmdlZF9hY2wsICIKLQkJCQkJ CSAgIk5VTEwgQVMgcGFydGtleWRlZiwgIgotCQkJCQkJICAiZmFsc2UgQVMgaXNwYXJ0aXRp b24sICIKLQkJCQkJCSAgIk5VTEwgQVMgcGFydGJvdW5kICIKKwkJCQkJCSAgImZhbHNlIEFT IGlzcGFydGl0aW9uICIKIAkJCQkJCSAgIkZST00gcGdfY2xhc3MgYyAiCiAJCQkJCQkgICJM RUZUIEpPSU4gcGdfZGVwZW5kIGQgT04gIgogCQkJCQkJICAiKGMucmVsa2luZCA9ICclYycg QU5EICIKQEAgLTY3NjgsMTYgKzY3NTEsMTQgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQs IGludCAqbnVtVGFibGVzKQogCQkJCQkJICAiJ2QnIEFTIHJlbHJlcGxpZGVudCwgYy5yZWxw YWdlcywgIgogCQkJCQkJICAiTlVMTCBBUyBhbW5hbWUsICIKIAkJCQkJCSAgIk5VTEwgQVMg Zm9yZWlnbnNlcnZlciwgIgotCQkJCQkJICAiTlVMTCBBUyByZWxvZnR5cGUsICIKKwkJCQkJ CSAgIjAgQVMgcmVsb2Z0eXBlLCAiCiAJCQkJCQkgICJkLnJlZm9iamlkIEFTIG93bmluZ190 YWIsICIKIAkJCQkJCSAgImQucmVmb2Jqc3ViaWQgQVMgb3duaW5nX2NvbCwgIgogCQkJCQkJ ICAiKFNFTEVDVCBzcGNuYW1lIEZST00gcGdfdGFibGVzcGFjZSB0IFdIRVJFIHQub2lkID0g Yy5yZWx0YWJsZXNwYWNlKSBBUyByZWx0YWJsZXNwYWNlLCAiCiAJCQkJCQkgICJjLnJlbG9w dGlvbnMgQVMgcmVsb3B0aW9ucywgIgogCQkJCQkJICAidGMucmVsb3B0aW9ucyBBUyB0b2Fz dF9yZWxvcHRpb25zLCAiCiAJCQkJCQkgICJOVUxMIEFTIGNoYW5nZWRfYWNsLCAiCi0JCQkJ CQkgICJOVUxMIEFTIHBhcnRrZXlkZWYsICIKLQkJCQkJCSAgImZhbHNlIEFTIGlzcGFydGl0 aW9uLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRib3VuZCAiCisJCQkJCQkgICJmYWxzZSBB UyBpc3BhcnRpdGlvbiAiCiAJCQkJCQkgICJGUk9NIHBnX2NsYXNzIGMgIgogCQkJCQkJICAi TEVGVCBKT0lOIHBnX2RlcGVuZCBkIE9OICIKIAkJCQkJCSAgIihjLnJlbGtpbmQgPSAnJWMn IEFORCAiCkBAIC02ODE2LDE2ICs2Nzk3LDE0IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0 LCBpbnQgKm51bVRhYmxlcykKIAkJCQkJCSAgIidkJyBBUyByZWxyZXBsaWRlbnQsIGMucmVs cGFnZXMsICIKIAkJCQkJCSAgIk5VTEwgQVMgYW1uYW1lLCAiCiAJCQkJCQkgICJOVUxMIEFT IGZvcmVpZ25zZXJ2ZXIsICIKLQkJCQkJCSAgIk5VTEwgQVMgcmVsb2Z0eXBlLCAiCisJCQkJ CQkgICIwIEFTIHJlbG9mdHlwZSwgIgogCQkJCQkJICAiZC5yZWZvYmppZCBBUyBvd25pbmdf dGFiLCAiCiAJCQkJCQkgICJkLnJlZm9ianN1YmlkIEFTIG93bmluZ19jb2wsICIKIAkJCQkJ CSAgIihTRUxFQ1Qgc3BjbmFtZSBGUk9NIHBnX3RhYmxlc3BhY2UgdCBXSEVSRSB0Lm9pZCA9 IGMucmVsdGFibGVzcGFjZSkgQVMgcmVsdGFibGVzcGFjZSwgIgogCQkJCQkJICAiYy5yZWxv cHRpb25zIEFTIHJlbG9wdGlvbnMsICIKIAkJCQkJCSAgIk5VTEwgQVMgdG9hc3RfcmVsb3B0 aW9ucywgIgogCQkJCQkJICAiTlVMTCBBUyBjaGFuZ2VkX2FjbCwgIgotCQkJCQkJICAiTlVM TCBBUyBwYXJ0a2V5ZGVmLCAiCi0JCQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiwgIgot CQkJCQkJICAiTlVMTCBBUyBwYXJ0Ym91bmQgIgorCQkJCQkJICAiZmFsc2UgQVMgaXNwYXJ0 aXRpb24gIgogCQkJCQkJICAiRlJPTSBwZ19jbGFzcyBjICIKIAkJCQkJCSAgIkxFRlQgSk9J TiBwZ19kZXBlbmQgZCBPTiAiCiAJCQkJCQkgICIoYy5yZWxraW5kID0gJyVjJyBBTkQgIgpA QCAtNjg2MywxNiArNjg0MiwxNCBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpu dW1UYWJsZXMpCiAJCQkJCQkgICInZCcgQVMgcmVscmVwbGlkZW50LCByZWxwYWdlcywgIgog CQkJCQkJICAiTlVMTCBBUyBhbW5hbWUsICIKIAkJCQkJCSAgIk5VTEwgQVMgZm9yZWlnbnNl cnZlciwgIgotCQkJCQkJICAiTlVMTCBBUyByZWxvZnR5cGUsICIKKwkJCQkJCSAgIjAgQVMg cmVsb2Z0eXBlLCAiCiAJCQkJCQkgICJkLnJlZm9iamlkIEFTIG93bmluZ190YWIsICIKIAkJ CQkJCSAgImQucmVmb2Jqc3ViaWQgQVMgb3duaW5nX2NvbCwgIgogCQkJCQkJICAiKFNFTEVD VCBzcGNuYW1lIEZST00gcGdfdGFibGVzcGFjZSB0IFdIRVJFIHQub2lkID0gYy5yZWx0YWJs ZXNwYWNlKSBBUyByZWx0YWJsZXNwYWNlLCAiCiAJCQkJCQkgICJOVUxMIEFTIHJlbG9wdGlv bnMsICIKIAkJCQkJCSAgIk5VTEwgQVMgdG9hc3RfcmVsb3B0aW9ucywgIgogCQkJCQkJICAi TlVMTCBBUyBjaGFuZ2VkX2FjbCwgIgotCQkJCQkJICAiTlVMTCBBUyBwYXJ0a2V5ZGVmLCAi Ci0JCQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiwgIgotCQkJCQkJICAiTlVMTCBBUyBw YXJ0Ym91bmQgIgorCQkJCQkJICAiZmFsc2UgQVMgaXNwYXJ0aXRpb24gIgogCQkJCQkJICAi RlJPTSBwZ19jbGFzcyBjICIKIAkJCQkJCSAgIkxFRlQgSk9JTiBwZ19kZXBlbmQgZCBPTiAi CiAJCQkJCQkgICIoYy5yZWxraW5kID0gJyVjJyBBTkQgIgpAQCAtNjk0MCw5ICs2OTE3LDcg QEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCWlfcmVsb2Z0 eXBlID0gUFFmbnVtYmVyKHJlcywgInJlbG9mdHlwZSIpOwogCWlfaXNfaWRlbnRpdHlfc2Vx dWVuY2UgPSBQUWZudW1iZXIocmVzLCAiaXNfaWRlbnRpdHlfc2VxdWVuY2UiKTsKIAlpX2No YW5nZWRfYWNsID0gUFFmbnVtYmVyKHJlcywgImNoYW5nZWRfYWNsIik7Ci0JaV9wYXJ0a2V5 ZGVmID0gUFFmbnVtYmVyKHJlcywgInBhcnRrZXlkZWYiKTsKIAlpX2lzcGFydGl0aW9uID0g UFFmbnVtYmVyKHJlcywgImlzcGFydGl0aW9uIik7Ci0JaV9wYXJ0Ym91bmQgPSBQUWZudW1i ZXIocmVzLCAicGFydGJvdW5kIik7CiAJaV9hbW5hbWUgPSBQUWZudW1iZXIocmVzLCAiYW1u YW1lIik7CiAKIAlpZiAoZG9wdC0+bG9ja1dhaXRUaW1lb3V0KQpAQCAtNjk5MCwxMCArNjk2 NSw3IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAkJdGJs aW5mb1tpXS50b2FzdF9vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdG9hc3Rv aWQpKTsKIAkJdGJsaW5mb1tpXS50b2FzdF9mcm96ZW54aWQgPSBhdG9vaWQoUFFnZXR2YWx1 ZShyZXMsIGksIGlfdG9hc3Rmcm96ZW54aWQpKTsKIAkJdGJsaW5mb1tpXS50b2FzdF9taW5t eGlkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RvYXN0bWlubXhpZCkpOwotCQlp ZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3JlbG9mdHlwZSkpCi0JCQl0YmxpbmZvW2ldLnJl bG9mdHlwZSA9IE5VTEw7Ci0JCWVsc2UKLQkJCXRibGluZm9baV0ucmVsb2Z0eXBlID0gcGdf c3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3JlbG9mdHlwZSkpOworCQl0YmxpbmZvW2ld LnJlbG9mdHlwZSA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9yZWxvZnR5cGUpKTsK IAkJdGJsaW5mb1tpXS5uY2hlY2sgPSBhdG9pKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3JlbGNo ZWNrcykpOwogCQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX293bmluZ190YWIpKQogCQl7 CkBAIC03MDUwLDkgKzcwMjIsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpu dW1UYWJsZXMpCiAJCQkJCQkJCQkJICAgc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2lz X2lkZW50aXR5X3NlcXVlbmNlKSwgInQiKSA9PSAwKTsKIAogCQkvKiBQYXJ0aXRpb24ga2V5 IHN0cmluZyBvciBOVUxMICovCi0JCXRibGluZm9baV0ucGFydGtleWRlZiA9IHBnX3N0cmR1 cChQUWdldHZhbHVlKHJlcywgaSwgaV9wYXJ0a2V5ZGVmKSk7CiAJCXRibGluZm9baV0uaXNw YXJ0aXRpb24gPSAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2lzcGFydGl0aW9uKSwg InQiKSA9PSAwKTsKLQkJdGJsaW5mb1tpXS5wYXJ0Ym91bmQgPSBwZ19zdHJkdXAoUFFnZXR2 YWx1ZShyZXMsIGksIGlfcGFydGJvdW5kKSk7CiAKIAkJLyogZm9yZWlnbiBzZXJ2ZXIgKi8K IAkJdGJsaW5mb1tpXS5mb3JlaWduX3NlcnZlciA9IGF0b29pZChQUWdldHZhbHVlKHJlcywg aSwgaV9mb3JlaWduc2VydmVyKSk7CkBAIC0xNTkzMCwxMiArMTU5MDAsMzQgQEAgZHVtcFRh YmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvKQogCX0K IAllbHNlCiAJeworCQljaGFyCSAgICpwYXJ0a2V5ZGVmID0gTlVMTDsKIAkJY2hhcgkgICAq ZnRvcHRpb25zID0gTlVMTDsKIAkJY2hhcgkgICAqc3J2bmFtZSA9IE5VTEw7CiAJCWNoYXIJ ICAgKmZvcmVpZ24gPSAiIjsKIAorCQkvKgorCQkgKiBTZXQgcmVsdHlwZW5hbWUsIGFuZCBj b2xsZWN0IGFueSByZWxraW5kLXNwZWNpZmljIGRhdGEgdGhhdCB3ZQorCQkgKiBkaWRuJ3Qg ZmV0Y2ggZHVyaW5nIGdldFRhYmxlcygpLgorCQkgKi8KIAkJc3dpdGNoICh0YmluZm8tPnJl bGtpbmQpCiAJCXsKKwkJCWNhc2UgUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRToKKwkJCQl7 CisJCQkJCVBRRXhwQnVmZmVyIHF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwkJCQkJ UEdyZXN1bHQgICAqcmVzOworCisJCQkJCXJlbHR5cGVuYW1lID0gIlRBQkxFIjsKKworCQkJ CQkvKiByZXRyaWV2ZSBwYXJ0aXRpb24ga2V5IGRlZmluaXRpb24gKi8KKwkJCQkJYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksCisJCQkJCQkJCQkgICJTRUxFQ1QgcGdfZ2V0X3BhcnRrZXlk ZWYoJyV1JykiLAorCQkJCQkJCQkJICB0YmluZm8tPmRvYmouY2F0SWQub2lkKTsKKwkJCQkJ cmVzID0gRXhlY3V0ZVNxbFF1ZXJ5Rm9yU2luZ2xlUm93KGZvdXQsIHF1ZXJ5LT5kYXRhKTsK KwkJCQkJcGFydGtleWRlZiA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgMCwgMCkpOwor CQkJCQlQUWNsZWFyKHJlcyk7CisJCQkJCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CisJ CQkJCWJyZWFrOworCQkJCX0KIAkJCWNhc2UgUkVMS0lORF9GT1JFSUdOX1RBQkxFOgogCQkJ CXsKIAkJCQkJUFFFeHBCdWZmZXIgcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOwpAQCAt MTU5NzUsNiArMTU5NjcsNyBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29u c3QgVGFibGVJbmZvICp0YmluZm8pCiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCXJl bHR5cGVuYW1lID0gIlRBQkxFIjsKKwkJCQlicmVhazsKIAkJfQogCiAJCW51bVBhcmVudHMg PSB0YmluZm8tPm51bVBhcmVudHM7CkBAIC0xNTk5Niw4ICsxNTk4OSwxMCBAQCBkdW1wVGFi bGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFibGVJbmZvICp0YmluZm8pCiAJCSAq IEF0dGFjaCB0byB0eXBlLCBpZiByZWxvZnR5cGU7IGV4Y2VwdCBpbiBjYXNlIG9mIGEgYmlu YXJ5IHVwZ3JhZGUsCiAJCSAqIHdlIGR1bXAgdGhlIHRhYmxlIG5vcm1hbGx5IGFuZCBhdHRh Y2ggaXQgdG8gdGhlIHR5cGUgYWZ0ZXJ3YXJkLgogCQkgKi8KLQkJaWYgKHRiaW5mby0+cmVs b2Z0eXBlICYmICFkb3B0LT5iaW5hcnlfdXBncmFkZSkKLQkJCWFwcGVuZFBRRXhwQnVmZmVy KHEsICIgT0YgJXMiLCB0YmluZm8tPnJlbG9mdHlwZSk7CisJCWlmIChPaWRJc1ZhbGlkKHRi aW5mby0+cmVsb2Z0eXBlKSAmJiAhZG9wdC0+YmluYXJ5X3VwZ3JhZGUpCisJCQlhcHBlbmRQ UUV4cEJ1ZmZlcihxLCAiIE9GICVzIiwKKwkJCQkJCQkgIGdldEZvcm1hdHRlZFR5cGVOYW1l KGZvdXQsIHRiaW5mby0+cmVsb2Z0eXBlLAorCQkJCQkJCQkJCQkJICAgemVyb0lzRXJyb3Ip KTsKIAogCQlpZiAodGJpbmZvLT5yZWxraW5kICE9IFJFTEtJTkRfTUFUVklFVykKIAkJewpA QCAtMTYwMzUsNyArMTYwMzAsOCBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwg Y29uc3QgVGFibGVJbmZvICp0YmluZm8pCiAJCQkJCSAqIFNraXAgY29sdW1uIGlmIGZ1bGx5 IGRlZmluZWQgYnkgcmVsb2Z0eXBlLCBleGNlcHQgaW4KIAkJCQkJICogYmluYXJ5IHVwZ3Jh ZGUKIAkJCQkJICovCi0JCQkJCWlmICh0YmluZm8tPnJlbG9mdHlwZSAmJiAhcHJpbnRfZGVm YXVsdCAmJiAhcHJpbnRfbm90bnVsbCAmJgorCQkJCQlpZiAoT2lkSXNWYWxpZCh0YmluZm8t PnJlbG9mdHlwZSkgJiYKKwkJCQkJCSFwcmludF9kZWZhdWx0ICYmICFwcmludF9ub3RudWxs ICYmCiAJCQkJCQkhZG9wdC0+YmluYXJ5X3VwZ3JhZGUpCiAJCQkJCQljb250aW51ZTsKIApA QCAtMTYwNjgsNyArMTYwNjQsNyBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwg Y29uc3QgVGFibGVJbmZvICp0YmluZm8pCiAJCQkJCSAqIHRhYmxlICgnT0YgdHlwZV9uYW1l JyksIGJ1dCBpbiBiaW5hcnktdXBncmFkZSBtb2RlLAogCQkJCQkgKiBwcmludCBpdCBpbiB0 aGF0IGNhc2UgdG9vLgogCQkJCQkgKi8KLQkJCQkJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRl IHx8ICF0YmluZm8tPnJlbG9mdHlwZSkKKwkJCQkJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRl IHx8ICFPaWRJc1ZhbGlkKHRiaW5mby0+cmVsb2Z0eXBlKSkKIAkJCQkJewogCQkJCQkJYXBw ZW5kUFFFeHBCdWZmZXIocSwgIiAlcyIsCiAJCQkJCQkJCQkJICB0YmluZm8tPmF0dHR5cG5h bWVzW2pdKTsKQEAgLTE2MTMxLDcgKzE2MTI3LDcgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hp dmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvKQogCiAJCQlpZiAoYWN0dWFsX2F0 dHMpCiAJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgIlxuKSIpOwotCQkJZWxzZSBpZiAo ISh0YmluZm8tPnJlbG9mdHlwZSAmJiAhZG9wdC0+YmluYXJ5X3VwZ3JhZGUpKQorCQkJZWxz ZSBpZiAoIShPaWRJc1ZhbGlkKHRiaW5mby0+cmVsb2Z0eXBlKSAmJiAhZG9wdC0+YmluYXJ5 X3VwZ3JhZGUpKQogCQkJewogCQkJCS8qCiAJCQkJICogTm8gYXR0cmlidXRlcz8gd2UgbXVz dCBoYXZlIGEgcGFyZW50aGVzaXplZCBhdHRyaWJ1dGUgbGlzdCwKQEAgLTE2MTYwLDcgKzE2 MTU2LDcgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5m byAqdGJpbmZvKQogCQkJfQogCiAJCQlpZiAodGJpbmZvLT5yZWxraW5kID09IFJFTEtJTkRf UEFSVElUSU9ORURfVEFCTEUpCi0JCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIlxuUEFSVElU SU9OIEJZICVzIiwgdGJpbmZvLT5wYXJ0a2V5ZGVmKTsKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZl cihxLCAiXG5QQVJUSVRJT04gQlkgJXMiLCBwYXJ0a2V5ZGVmKTsKIAogCQkJaWYgKHRiaW5m by0+cmVsa2luZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUpCiAJCQkJYXBwZW5kUFFFeHBC dWZmZXIocSwgIlxuU0VSVkVSICVzIiwgZm10SWQoc3J2bmFtZSkpOwpAQCAtMTYzNDMsMTIg KzE2MzM5LDEzIEBAIGR1bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJs ZUluZm8gKnRiaW5mbykKIAkJCQl9CiAJCQl9CiAKLQkJCWlmICh0YmluZm8tPnJlbG9mdHlw ZSkKKwkJCWlmIChPaWRJc1ZhbGlkKHRiaW5mby0+cmVsb2Z0eXBlKSkKIAkJCXsKIAkJCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cihxLCAiXG4tLSBGb3IgYmluYXJ5IHVwZ3JhZGUsIHNldCB1 cCB0eXBlZCB0YWJsZXMgdGhpcyB3YXkuXG4iKTsKIAkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihx LCAiQUxURVIgVEFCTEUgT05MWSAlcyBPRiAlcztcbiIsCiAJCQkJCQkJCSAgcXVhbHJlbG5h bWUsCi0JCQkJCQkJCSAgdGJpbmZvLT5yZWxvZnR5cGUpOworCQkJCQkJCQkgIGdldEZvcm1h dHRlZFR5cGVOYW1lKGZvdXQsIHRiaW5mby0+cmVsb2Z0eXBlLAorCQkJCQkJCQkJCQkJCSAg IHplcm9Jc0Vycm9yKSk7CiAJCQl9CiAJCX0KIApAQCAtMTY2MjgsNiArMTY2MjUsOCBAQCBk dW1wVGFibGVBdHRhY2goQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFibGVBdHRhY2hJbmZvICph dHRhY2hpbmZvKQogewogCUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKIAlQUUV4 cEJ1ZmZlciBxOworCVBHcmVzdWx0ICAgKnJlczsKKwljaGFyCSAgICpwYXJ0Ym91bmQ7CiAK IAlpZiAoZG9wdC0+ZGF0YU9ubHkpCiAJCXJldHVybjsKQEAgLTE2NjM3LDE0ICsxNjYzNiwy MyBAQCBkdW1wVGFibGVBdHRhY2goQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFibGVBdHRhY2hJ bmZvICphdHRhY2hpbmZvKQogCiAJcSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CiAKLQkvKiBQ ZXJmb3JtIEFMVEVSIFRBQkxFIG9uIHRoZSBwYXJlbnQgKi8KKwkvKiBGZXRjaCB0aGUgcGFy dGl0aW9uJ3MgcGFydGJvdW5kICovCiAJYXBwZW5kUFFFeHBCdWZmZXIocSwKKwkJCQkJICAi U0VMRUNUIHBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9pZCkgIgorCQkJCQkgICJG Uk9NIHBnX2NsYXNzIGMgIgorCQkJCQkgICJXSEVSRSBjLm9pZCA9ICcldSciLAorCQkJCQkg IGF0dGFjaGluZm8tPnBhcnRpdGlvblRibC0+ZG9iai5jYXRJZC5vaWQpOworCXJlcyA9IEV4 ZWN1dGVTcWxRdWVyeUZvclNpbmdsZVJvdyhmb3V0LCBxLT5kYXRhKTsKKwlwYXJ0Ym91bmQg PSBQUWdldHZhbHVlKHJlcywgMCwgMCk7CisKKwkvKiBQZXJmb3JtIEFMVEVSIFRBQkxFIG9u IHRoZSBwYXJlbnQgKi8KKwlwcmludGZQUUV4cEJ1ZmZlcihxLAogCQkJCQkgICJBTFRFUiBU QUJMRSBPTkxZICVzICIsCiAJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoYXR0YWNoaW5m by0+cGFyZW50VGJsKSk7CiAJYXBwZW5kUFFFeHBCdWZmZXIocSwKIAkJCQkJICAiQVRUQUNI IFBBUlRJVElPTiAlcyAlcztcbiIsCiAJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoYXR0 YWNoaW5mby0+cGFydGl0aW9uVGJsKSwKLQkJCQkJICBhdHRhY2hpbmZvLT5wYXJ0aXRpb25U YmwtPnBhcnRib3VuZCk7CisJCQkJCSAgcGFydGJvdW5kKTsKIAogCS8qCiAJICogVGhlcmUg aXMgbm8gcG9pbnQgaW4gY3JlYXRpbmcgYSBkcm9wIHF1ZXJ5IGFzIHRoZSBkcm9wIGlzIGRv bmUgYnkgdGFibGUKQEAgLTE2NjYxLDYgKzE2NjY5LDcgQEAgZHVtcFRhYmxlQXR0YWNoKEFy Y2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlQXR0YWNoSW5mbyAqYXR0YWNoaW5mbykKIAkJCQkJ CQkgIC5zZWN0aW9uID0gU0VDVElPTl9QUkVfREFUQSwKIAkJCQkJCQkgIC5jcmVhdGVTdG10 ID0gcS0+ZGF0YSkpOwogCisJUFFjbGVhcihyZXMpOwogCWRlc3Ryb3lQUUV4cEJ1ZmZlcihx KTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggOGIyYThiNjdlNy4uMmYyNDQ4MWVjMiAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5oCkBAIC0yODYsNyArMjg2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX3RhYmxl SW5mbwogCXVpbnQzMgkJdG9hc3RfZnJvemVueGlkOwkvKiB0b2FzdCB0YWJsZSdzIHJlbGZy b3plbnhpZCwgaWYgYW55ICovCiAJdWludDMyCQl0b2FzdF9taW5teGlkOwkvKiB0b2FzdCB0 YWJsZSdzIHJlbG1pbm14aWQgKi8KIAlpbnQJCQluY2hlY2s7CQkJLyogIyBvZiBDSEVDSyBl eHByZXNzaW9ucyAqLwotCWNoYXIJICAgKnJlbG9mdHlwZTsJCS8qIHVuZGVybHlpbmcgdHlw ZSBmb3IgdHlwZWQgdGFibGUgKi8KKwlPaWQJICAgcmVsb2Z0eXBlOwkJLyogdW5kZXJseWlu ZyB0eXBlIGZvciB0eXBlZCB0YWJsZSAqLwogCU9pZAkJCWZvcmVpZ25fc2VydmVyOyAvKiBm b3JlaWduIHNlcnZlciBvaWQsIGlmIGFwcGxpY2FibGUgKi8KIAkvKiB0aGVzZSB0d28gYXJl IHNldCBvbmx5IGlmIHRhYmxlIGlzIGEgc2VxdWVuY2Ugb3duZWQgYnkgYSBjb2x1bW46ICov CiAJT2lkCQkJb3duaW5nX3RhYjsJCS8qIE9JRCBvZiB0YWJsZSBvd25pbmcgc2VxdWVuY2Ug Ki8KQEAgLTMyNSw4ICszMjUsNiBAQCB0eXBlZGVmIHN0cnVjdCBfdGFibGVJbmZvCiAJYm9v bAkgICAqaW5oTm90TnVsbDsJCS8qIHRydWUgaWYgTk9UIE5VTEwgaXMgaW5oZXJpdGVkICov CiAJc3RydWN0IF9hdHRyRGVmSW5mbyAqKmF0dHJkZWZzOyAvKiBERUZBVUxUIGV4cHJlc3Np b25zICovCiAJc3RydWN0IF9jb25zdHJhaW50SW5mbyAqY2hlY2tleHByczsgLyogQ0hFQ0sg Y29uc3RyYWludHMgKi8KLQljaGFyCSAgICpwYXJ0a2V5ZGVmOwkJLyogcGFydGl0aW9uIGtl eSBkZWZpbml0aW9uICovCi0JY2hhcgkgICAqcGFydGJvdW5kOwkJLyogcGFydGl0aW9uIGJv dW5kIGRlZmluaXRpb24gKi8KIAlib29sCQluZWVkc19vdmVycmlkZTsgLyogaGFzIEdFTkVS QVRFRCBBTFdBWVMgQVMgSURFTlRJVFkgKi8KIAljaGFyCSAgICphbW5hbWU7CQkJLyogcmVs YXRpb24gYWNjZXNzIG1ldGhvZCAqLwogCg== --------------eSTz3TyN3jYSyhRd41a1TRSF Content-Type: text/x-patch; charset=UTF-8; name="0002-move-unsafe-function-calls-13-backport-1.patch" Content-Disposition: attachment; filename="0002-move-unsafe-function-calls-13-backport-1.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCmluZGV4IDE0N2E4NjBiOWIuLjEwODFhODFkOTEgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwpAQCAtNjEyOSwxNCArNjEyOSwxNSBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwg aW50ICpudW1UYWJsZXMpCiAJaW50CQkJaV9mb3JlaWduc2VydmVyOwogCWludAkJCWlfaXNf aWRlbnRpdHlfc2VxdWVuY2U7CiAJaW50CQkJaV9jaGFuZ2VkX2FjbDsKLQlpbnQJCQlpX3Bh cnRrZXlkZWY7CiAJaW50CQkJaV9pc3BhcnRpdGlvbjsKLQlpbnQJCQlpX3BhcnRib3VuZDsK IAlpbnQJCQlpX2FtbmFtZTsKIAogCS8qCiAJICogRmluZCBhbGwgdGhlIHRhYmxlcyBhbmQg dGFibGUtbGlrZSBvYmplY3RzLgogCSAqCisJICogV2UgbXVzdCBmZXRjaCBhbGwgdGFibGVz IGluIHRoaXMgcGhhc2UgYmVjYXVzZSBvdGhlcndpc2Ugd2UgY2Fubm90CisJICogY29ycmVj dGx5IGlkZW50aWZ5IGluaGVyaXRlZCBjb2x1bW5zLCBvd25lZCBzZXF1ZW5jZXMsIGV0Yy4K KwkgKgogCSAqIFdlIGluY2x1ZGUgc3lzdGVtIGNhdGFsb2dzLCBzbyB0aGF0IHdlIGNhbiB3 b3JrIGlmIGEgdXNlciB0YWJsZSBpcwogCSAqIGRlZmluZWQgdG8gaW5oZXJpdCBmcm9tIGEg c3lzdGVtIGNhdGFsb2cgKHByZXR0eSB3ZWlyZCwgYnV0Li4uKQogCSAqCkBAIC02MTUwLDgg KzYxNTEsMTAgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQog CSAqCiAJICogTm90ZTogaW4gdGhpcyBwaGFzZSB3ZSBzaG91bGQgY29sbGVjdCBvbmx5IGEg bWluaW1hbCBhbW91bnQgb2YKIAkgKiBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIHRhYmxlLCBi YXNpY2FsbHkganVzdCBlbm91Z2ggdG8gZGVjaWRlIGlmIGl0IGlzCi0JICogaW50ZXJlc3Rp bmcuIFdlIG11c3QgZmV0Y2ggYWxsIHRhYmxlcyBpbiB0aGlzIHBoYXNlIGJlY2F1c2Ugb3Ro ZXJ3aXNlCi0JICogd2UgY2Fubm90IGNvcnJlY3RseSBpZGVudGlmeSBpbmhlcml0ZWQgY29s dW1ucywgb3duZWQgc2VxdWVuY2VzLCBldGMuCisJICogaW50ZXJlc3RpbmcuICBJbiBwYXJ0 aWN1bGFyLCBzaW5jZSB3ZSBkbyBub3QgeWV0IGhhdmUgbG9jayBvbiBhbnkgdXNlcgorCSAq IHRhYmxlLCB3ZSBNVVNUIE5PVCBpbnZva2UgYW55IHNlcnZlci1zaWRlIGRhdGEgY29sbGVj dGlvbiBmdW5jdGlvbnMKKwkgKiAoZm9yIGluc3RhbmNlLCBwZ19nZXRfcGFydGtleWRlZigp KS4gIFRob3NlIGFyZSBsaWtlbHkgdG8gZmFpbCBvciBnaXZlCisJICogd3JvbmcgYW5zd2Vy cyBpZiBhbnkgY29uY3VycmVudCBEREwgaXMgaGFwcGVuaW5nLgogCSAqCiAJICogV2UgcHVy cG9zZWZ1bGx5IGlnbm9yZSB0b2FzdCBPSURzIGZvciBwYXJ0aXRpb25lZCB0YWJsZXM7IHRo ZSByZWFzb24gaXMKIAkgKiB0aGF0IHZlcnNpb25zIDEwIGFuZCAxMSBoYXZlIHRoZW0sIGJ1 dCAxMiBkb2VzIG5vdCwgc28gZW1pdHRpbmcgdGhlbQpAQCAtNjE2MCw5ICs2MTYzLDcgQEAg Z2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCiAJaWYgKGZvdXQt PnJlbW90ZVZlcnNpb24gPj0gOTA2MDApCiAJewotCQljaGFyCSAgICpwYXJ0a2V5ZGVmID0g Ik5VTEwiOwogCQljaGFyCSAgICppc3BhcnRpdGlvbiA9ICJmYWxzZSI7Ci0JCWNoYXIJICAg KnBhcnRib3VuZCA9ICJOVUxMIjsKIAkJY2hhcgkgICAqcmVsaGFzb2lkcyA9ICJjLnJlbGhh c29pZHMiOwogCiAJCVBRRXhwQnVmZmVyIGFjbF9zdWJxdWVyeSA9IGNyZWF0ZVBRRXhwQnVm ZmVyKCk7CkBAIC02MTgxLDExICs2MTgyLDcgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQs IGludCAqbnVtVGFibGVzKQogCQkgKi8KIAogCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+ PSAxMDAwMDApCi0JCXsKLQkJCXBhcnRrZXlkZWYgPSAicGdfZ2V0X3BhcnRrZXlkZWYoYy5v aWQpIjsKIAkJCWlzcGFydGl0aW9uID0gImMucmVsaXNwYXJ0aXRpb24iOwotCQkJcGFydGJv dW5kID0gInBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9pZCkiOwotCQl9CiAKIAkJ LyogSW4gUEcxMiB1cHdhcmRzIFdJVEggT0lEUyBkb2VzIG5vdCBleGlzdCBhbnltb3JlLiAq LwogCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxMjAwMDApCkBAIC02MjI2LDcgKzYy MjMsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJCQkJ CQkgICJDQVNFIFdIRU4gYy5yZWxraW5kID0gJ2YnIFRIRU4gIgogCQkJCQkJICAiKFNFTEVD VCBmdHNlcnZlciBGUk9NIHBnX2NhdGFsb2cucGdfZm9yZWlnbl90YWJsZSBXSEVSRSBmdHJl bGlkID0gYy5vaWQpICIKIAkJCQkJCSAgIkVMU0UgMCBFTkQgQVMgZm9yZWlnbnNlcnZlciwg IgotCQkJCQkJICAiQ0FTRSBXSEVOIGMucmVsb2Z0eXBlIDw+IDAgVEhFTiBjLnJlbG9mdHlw ZTo6cGdfY2F0YWxvZy5yZWd0eXBlIEVMU0UgTlVMTCBFTkQgQVMgcmVsb2Z0eXBlLCAiCisJ CQkJCQkgICJjLnJlbG9mdHlwZSwgIgogCQkJCQkJICAiZC5yZWZvYmppZCBBUyBvd25pbmdf dGFiLCAiCiAJCQkJCQkgICJkLnJlZm9ianN1YmlkIEFTIG93bmluZ19jb2wsICIKIAkJCQkJ CSAgIihTRUxFQ1Qgc3BjbmFtZSBGUk9NIHBnX3RhYmxlc3BhY2UgdCBXSEVSRSB0Lm9pZCA9 IGMucmVsdGFibGVzcGFjZSkgQVMgcmVsdGFibGVzcGFjZSwgIgpAQCAtNjI0Niw5ICs2MjQz LDcgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJCQkJ ICAiT1IgJXMgSVMgTk9UIE5VTEwiCiAJCQkJCQkgICIpKSIKIAkJCQkJCSAgIkFTIGNoYW5n ZWRfYWNsLCAiCi0JCQkJCQkgICIlcyBBUyBwYXJ0a2V5ZGVmLCAiCi0JCQkJCQkgICIlcyBB UyBpc3BhcnRpdGlvbiwgIgotCQkJCQkJICAiJXMgQVMgcGFydGJvdW5kICIKKwkJCQkJCSAg IiVzIEFTIGlzcGFydGl0aW9uICIKIAkJCQkJCSAgIkZST00gcGdfY2xhc3MgYyAiCiAJCQkJ CQkgICJMRUZUIEpPSU4gcGdfZGVwZW5kIGQgT04gIgogCQkJCQkJICAiKGMucmVsa2luZCA9 ICclYycgQU5EICIKQEAgLTYyNzQsOSArNjI2OSw3IEBAIGdldFRhYmxlcyhBcmNoaXZlICpm b3V0LCBpbnQgKm51bVRhYmxlcykKIAkJCQkJCSAgYXR0cmFjbF9zdWJxdWVyeS0+ZGF0YSwK IAkJCQkJCSAgYXR0aW5pdGFjbF9zdWJxdWVyeS0+ZGF0YSwKIAkJCQkJCSAgYXR0aW5pdHJh Y2xfc3VicXVlcnktPmRhdGEsCi0JCQkJCQkgIHBhcnRrZXlkZWYsCiAJCQkJCQkgIGlzcGFy dGl0aW9uLAotCQkJCQkJICBwYXJ0Ym91bmQsCiAJCQkJCQkgIFJFTEtJTkRfU0VRVUVOQ0Us CiAJCQkJCQkgIFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUsCiAJCQkJCQkgIFJFTEtJTkRf UkVMQVRJT04sIFJFTEtJTkRfU0VRVUVOQ0UsCkBAIC02MzE5LDcgKzYzMTIsNyBAQCBnZXRU YWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJCQkJCQkgICJDQVNFIFdI RU4gYy5yZWxraW5kID0gJ2YnIFRIRU4gIgogCQkJCQkJICAiKFNFTEVDVCBmdHNlcnZlciBG Uk9NIHBnX2NhdGFsb2cucGdfZm9yZWlnbl90YWJsZSBXSEVSRSBmdHJlbGlkID0gYy5vaWQp ICIKIAkJCQkJCSAgIkVMU0UgMCBFTkQgQVMgZm9yZWlnbnNlcnZlciwgIgotCQkJCQkJICAi Q0FTRSBXSEVOIGMucmVsb2Z0eXBlIDw+IDAgVEhFTiBjLnJlbG9mdHlwZTo6cGdfY2F0YWxv Zy5yZWd0eXBlIEVMU0UgTlVMTCBFTkQgQVMgcmVsb2Z0eXBlLCAiCisJCQkJCQkgICJjLnJl bG9mdHlwZSwgIgogCQkJCQkJICAiZC5yZWZvYmppZCBBUyBvd25pbmdfdGFiLCAiCiAJCQkJ CQkgICJkLnJlZm9ianN1YmlkIEFTIG93bmluZ19jb2wsICIKIAkJCQkJCSAgIihTRUxFQ1Qg c3BjbmFtZSBGUk9NIHBnX3RhYmxlc3BhY2UgdCBXSEVSRSB0Lm9pZCA9IGMucmVsdGFibGVz cGFjZSkgQVMgcmVsdGFibGVzcGFjZSwgIgpAQCAtNjMyOCw5ICs2MzIxLDcgQEAgZ2V0VGFi bGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJCQkJICAiV0hFTiAnY2hl Y2tfb3B0aW9uPWNhc2NhZGVkJyA9IEFOWSAoYy5yZWxvcHRpb25zKSBUSEVOICdDQVNDQURF RCc6OnRleHQgRUxTRSBOVUxMIEVORCBBUyBjaGVja29wdGlvbiwgIgogCQkJCQkJICAidGMu cmVsb3B0aW9ucyBBUyB0b2FzdF9yZWxvcHRpb25zLCAiCiAJCQkJCQkgICJOVUxMIEFTIGNo YW5nZWRfYWNsLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRrZXlkZWYsICIKLQkJCQkJCSAg ImZhbHNlIEFTIGlzcGFydGl0aW9uLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRib3VuZCAi CisJCQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiAiCiAJCQkJCQkgICJGUk9NIHBnX2Ns YXNzIGMgIgogCQkJCQkJICAiTEVGVCBKT0lOIHBnX2RlcGVuZCBkIE9OICIKIAkJCQkJCSAg IihjLnJlbGtpbmQgPSAnJWMnIEFORCAiCkBAIC02MzcyLDcgKzYzNjMsNyBAQCBnZXRUYWJs ZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJCQkJCQkgICJDQVNFIFdIRU4g Yy5yZWxraW5kID0gJ2YnIFRIRU4gIgogCQkJCQkJICAiKFNFTEVDVCBmdHNlcnZlciBGUk9N IHBnX2NhdGFsb2cucGdfZm9yZWlnbl90YWJsZSBXSEVSRSBmdHJlbGlkID0gYy5vaWQpICIK IAkJCQkJCSAgIkVMU0UgMCBFTkQgQVMgZm9yZWlnbnNlcnZlciwgIgotCQkJCQkJICAiQ0FT RSBXSEVOIGMucmVsb2Z0eXBlIDw+IDAgVEhFTiBjLnJlbG9mdHlwZTo6cGdfY2F0YWxvZy5y ZWd0eXBlIEVMU0UgTlVMTCBFTkQgQVMgcmVsb2Z0eXBlLCAiCisJCQkJCQkgICJjLnJlbG9m dHlwZSwgIgogCQkJCQkJICAiZC5yZWZvYmppZCBBUyBvd25pbmdfdGFiLCAiCiAJCQkJCQkg ICJkLnJlZm9ianN1YmlkIEFTIG93bmluZ19jb2wsICIKIAkJCQkJCSAgIihTRUxFQ1Qgc3Bj bmFtZSBGUk9NIHBnX3RhYmxlc3BhY2UgdCBXSEVSRSB0Lm9pZCA9IGMucmVsdGFibGVzcGFj ZSkgQVMgcmVsdGFibGVzcGFjZSwgIgpAQCAtNjM4MSw5ICs2MzcyLDcgQEAgZ2V0VGFibGVz KEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJCQkJICAiV0hFTiAnY2hlY2tf b3B0aW9uPWNhc2NhZGVkJyA9IEFOWSAoYy5yZWxvcHRpb25zKSBUSEVOICdDQVNDQURFRCc6 OnRleHQgRUxTRSBOVUxMIEVORCBBUyBjaGVja29wdGlvbiwgIgogCQkJCQkJICAidGMucmVs b3B0aW9ucyBBUyB0b2FzdF9yZWxvcHRpb25zLCAiCiAJCQkJCQkgICJOVUxMIEFTIGNoYW5n ZWRfYWNsLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRrZXlkZWYsICIKLQkJCQkJCSAgImZh bHNlIEFTIGlzcGFydGl0aW9uLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRib3VuZCAiCisJ CQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiAiCiAJCQkJCQkgICJGUk9NIHBnX2NsYXNz IGMgIgogCQkJCQkJICAiTEVGVCBKT0lOIHBnX2RlcGVuZCBkIE9OICIKIAkJCQkJCSAgIihj LnJlbGtpbmQgPSAnJWMnIEFORCAiCkBAIC02NDI1LDcgKzY0MTQsNyBAQCBnZXRUYWJsZXMo QXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJCQkJCQkgICJDQVNFIFdIRU4gYy5y ZWxraW5kID0gJ2YnIFRIRU4gIgogCQkJCQkJICAiKFNFTEVDVCBmdHNlcnZlciBGUk9NIHBn X2NhdGFsb2cucGdfZm9yZWlnbl90YWJsZSBXSEVSRSBmdHJlbGlkID0gYy5vaWQpICIKIAkJ CQkJCSAgIkVMU0UgMCBFTkQgQVMgZm9yZWlnbnNlcnZlciwgIgotCQkJCQkJICAiQ0FTRSBX SEVOIGMucmVsb2Z0eXBlIDw+IDAgVEhFTiBjLnJlbG9mdHlwZTo6cGdfY2F0YWxvZy5yZWd0 eXBlIEVMU0UgTlVMTCBFTkQgQVMgcmVsb2Z0eXBlLCAiCisJCQkJCQkgICJjLnJlbG9mdHlw ZSwgIgogCQkJCQkJICAiZC5yZWZvYmppZCBBUyBvd25pbmdfdGFiLCAiCiAJCQkJCQkgICJk LnJlZm9ianN1YmlkIEFTIG93bmluZ19jb2wsICIKIAkJCQkJCSAgIihTRUxFQ1Qgc3BjbmFt ZSBGUk9NIHBnX3RhYmxlc3BhY2UgdCBXSEVSRSB0Lm9pZCA9IGMucmVsdGFibGVzcGFjZSkg QVMgcmVsdGFibGVzcGFjZSwgIgpAQCAtNjQzNCw5ICs2NDIzLDcgQEAgZ2V0VGFibGVzKEFy Y2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJCQkJICAiV0hFTiAnY2hlY2tfb3B0 aW9uPWNhc2NhZGVkJyA9IEFOWSAoYy5yZWxvcHRpb25zKSBUSEVOICdDQVNDQURFRCc6OnRl eHQgRUxTRSBOVUxMIEVORCBBUyBjaGVja29wdGlvbiwgIgogCQkJCQkJICAidGMucmVsb3B0 aW9ucyBBUyB0b2FzdF9yZWxvcHRpb25zLCAiCiAJCQkJCQkgICJOVUxMIEFTIGNoYW5nZWRf YWNsLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRrZXlkZWYsICIKLQkJCQkJCSAgImZhbHNl IEFTIGlzcGFydGl0aW9uLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRib3VuZCAiCisJCQkJ CQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiAiCiAJCQkJCQkgICJGUk9NIHBnX2NsYXNzIGMg IgogCQkJCQkJICAiTEVGVCBKT0lOIHBnX2RlcGVuZCBkIE9OICIKIAkJCQkJCSAgIihjLnJl bGtpbmQgPSAnJWMnIEFORCAiCkBAIC02NDc4LDE2ICs2NDY1LDE0IEBAIGdldFRhYmxlcyhB cmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAkJCQkJCSAgIkNBU0UgV0hFTiBjLnJl bGtpbmQgPSAnZicgVEhFTiAiCiAJCQkJCQkgICIoU0VMRUNUIGZ0c2VydmVyIEZST00gcGdf Y2F0YWxvZy5wZ19mb3JlaWduX3RhYmxlIFdIRVJFIGZ0cmVsaWQgPSBjLm9pZCkgIgogCQkJ CQkJICAiRUxTRSAwIEVORCBBUyBmb3JlaWduc2VydmVyLCAiCi0JCQkJCQkgICJDQVNFIFdI RU4gYy5yZWxvZnR5cGUgPD4gMCBUSEVOIGMucmVsb2Z0eXBlOjpwZ19jYXRhbG9nLnJlZ3R5 cGUgRUxTRSBOVUxMIEVORCBBUyByZWxvZnR5cGUsICIKKwkJCQkJCSAgImMucmVsb2Z0eXBl LCAiCiAJCQkJCQkgICJkLnJlZm9iamlkIEFTIG93bmluZ190YWIsICIKIAkJCQkJCSAgImQu cmVmb2Jqc3ViaWQgQVMgb3duaW5nX2NvbCwgIgogCQkJCQkJICAiKFNFTEVDVCBzcGNuYW1l IEZST00gcGdfdGFibGVzcGFjZSB0IFdIRVJFIHQub2lkID0gYy5yZWx0YWJsZXNwYWNlKSBB UyByZWx0YWJsZXNwYWNlLCAiCiAJCQkJCQkgICJjLnJlbG9wdGlvbnMgQVMgcmVsb3B0aW9u cywgIgogCQkJCQkJICAidGMucmVsb3B0aW9ucyBBUyB0b2FzdF9yZWxvcHRpb25zLCAiCiAJ CQkJCQkgICJOVUxMIEFTIGNoYW5nZWRfYWNsLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRr ZXlkZWYsICIKLQkJCQkJCSAgImZhbHNlIEFTIGlzcGFydGl0aW9uLCAiCi0JCQkJCQkgICJO VUxMIEFTIHBhcnRib3VuZCAiCisJCQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiAiCiAJ CQkJCQkgICJGUk9NIHBnX2NsYXNzIGMgIgogCQkJCQkJICAiTEVGVCBKT0lOIHBnX2RlcGVu ZCBkIE9OICIKIAkJCQkJCSAgIihjLnJlbGtpbmQgPSAnJWMnIEFORCAiCkBAIC02NTI3LDE2 ICs2NTEyLDE0IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykK IAkJCQkJCSAgIidkJyBBUyByZWxyZXBsaWRlbnQsIGMucmVscGFnZXMsICIKIAkJCQkJCSAg Ik5VTEwgQVMgYW1uYW1lLCAiCiAJCQkJCQkgICJOVUxMIEFTIGZvcmVpZ25zZXJ2ZXIsICIK LQkJCQkJCSAgIkNBU0UgV0hFTiBjLnJlbG9mdHlwZSA8PiAwIFRIRU4gYy5yZWxvZnR5cGU6 OnBnX2NhdGFsb2cucmVndHlwZSBFTFNFIE5VTEwgRU5EIEFTIHJlbG9mdHlwZSwgIgorCQkJ CQkJICAiYy5yZWxvZnR5cGUsICIKIAkJCQkJCSAgImQucmVmb2JqaWQgQVMgb3duaW5nX3Rh YiwgIgogCQkJCQkJICAiZC5yZWZvYmpzdWJpZCBBUyBvd25pbmdfY29sLCAiCiAJCQkJCQkg ICIoU0VMRUNUIHNwY25hbWUgRlJPTSBwZ190YWJsZXNwYWNlIHQgV0hFUkUgdC5vaWQgPSBj LnJlbHRhYmxlc3BhY2UpIEFTIHJlbHRhYmxlc3BhY2UsICIKIAkJCQkJCSAgImMucmVsb3B0 aW9ucyBBUyByZWxvcHRpb25zLCAiCiAJCQkJCQkgICJ0Yy5yZWxvcHRpb25zIEFTIHRvYXN0 X3JlbG9wdGlvbnMsICIKIAkJCQkJCSAgIk5VTEwgQVMgY2hhbmdlZF9hY2wsICIKLQkJCQkJ CSAgIk5VTEwgQVMgcGFydGtleWRlZiwgIgotCQkJCQkJICAiZmFsc2UgQVMgaXNwYXJ0aXRp b24sICIKLQkJCQkJCSAgIk5VTEwgQVMgcGFydGJvdW5kICIKKwkJCQkJCSAgImZhbHNlIEFT IGlzcGFydGl0aW9uICIKIAkJCQkJCSAgIkZST00gcGdfY2xhc3MgYyAiCiAJCQkJCQkgICJM RUZUIEpPSU4gcGdfZGVwZW5kIGQgT04gIgogCQkJCQkJICAiKGMucmVsa2luZCA9ICclYycg QU5EICIKQEAgLTY1NzUsMTYgKzY1NTgsMTQgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQs IGludCAqbnVtVGFibGVzKQogCQkJCQkJICAiJ2QnIEFTIHJlbHJlcGxpZGVudCwgYy5yZWxw YWdlcywgIgogCQkJCQkJICAiTlVMTCBBUyBhbW5hbWUsICIKIAkJCQkJCSAgIk5VTEwgQVMg Zm9yZWlnbnNlcnZlciwgIgotCQkJCQkJICAiTlVMTCBBUyByZWxvZnR5cGUsICIKKwkJCQkJ CSAgIjAgQVMgcmVsb2Z0eXBlLCAiCiAJCQkJCQkgICJkLnJlZm9iamlkIEFTIG93bmluZ190 YWIsICIKIAkJCQkJCSAgImQucmVmb2Jqc3ViaWQgQVMgb3duaW5nX2NvbCwgIgogCQkJCQkJ ICAiKFNFTEVDVCBzcGNuYW1lIEZST00gcGdfdGFibGVzcGFjZSB0IFdIRVJFIHQub2lkID0g Yy5yZWx0YWJsZXNwYWNlKSBBUyByZWx0YWJsZXNwYWNlLCAiCiAJCQkJCQkgICJjLnJlbG9w dGlvbnMgQVMgcmVsb3B0aW9ucywgIgogCQkJCQkJICAidGMucmVsb3B0aW9ucyBBUyB0b2Fz dF9yZWxvcHRpb25zLCAiCiAJCQkJCQkgICJOVUxMIEFTIGNoYW5nZWRfYWNsLCAiCi0JCQkJ CQkgICJOVUxMIEFTIHBhcnRrZXlkZWYsICIKLQkJCQkJCSAgImZhbHNlIEFTIGlzcGFydGl0 aW9uLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRib3VuZCAiCisJCQkJCQkgICJmYWxzZSBB UyBpc3BhcnRpdGlvbiAiCiAJCQkJCQkgICJGUk9NIHBnX2NsYXNzIGMgIgogCQkJCQkJICAi TEVGVCBKT0lOIHBnX2RlcGVuZCBkIE9OICIKIAkJCQkJCSAgIihjLnJlbGtpbmQgPSAnJWMn IEFORCAiCkBAIC02NjIzLDE2ICs2NjA0LDE0IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0 LCBpbnQgKm51bVRhYmxlcykKIAkJCQkJCSAgIidkJyBBUyByZWxyZXBsaWRlbnQsIGMucmVs cGFnZXMsICIKIAkJCQkJCSAgIk5VTEwgQVMgYW1uYW1lLCAiCiAJCQkJCQkgICJOVUxMIEFT IGZvcmVpZ25zZXJ2ZXIsICIKLQkJCQkJCSAgIk5VTEwgQVMgcmVsb2Z0eXBlLCAiCisJCQkJ CQkgICIwIEFTIHJlbG9mdHlwZSwgIgogCQkJCQkJICAiZC5yZWZvYmppZCBBUyBvd25pbmdf dGFiLCAiCiAJCQkJCQkgICJkLnJlZm9ianN1YmlkIEFTIG93bmluZ19jb2wsICIKIAkJCQkJ CSAgIihTRUxFQ1Qgc3BjbmFtZSBGUk9NIHBnX3RhYmxlc3BhY2UgdCBXSEVSRSB0Lm9pZCA9 IGMucmVsdGFibGVzcGFjZSkgQVMgcmVsdGFibGVzcGFjZSwgIgogCQkJCQkJICAiYy5yZWxv cHRpb25zIEFTIHJlbG9wdGlvbnMsICIKIAkJCQkJCSAgIk5VTEwgQVMgdG9hc3RfcmVsb3B0 aW9ucywgIgogCQkJCQkJICAiTlVMTCBBUyBjaGFuZ2VkX2FjbCwgIgotCQkJCQkJICAiTlVM TCBBUyBwYXJ0a2V5ZGVmLCAiCi0JCQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiwgIgot CQkJCQkJICAiTlVMTCBBUyBwYXJ0Ym91bmQgIgorCQkJCQkJICAiZmFsc2UgQVMgaXNwYXJ0 aXRpb24gIgogCQkJCQkJICAiRlJPTSBwZ19jbGFzcyBjICIKIAkJCQkJCSAgIkxFRlQgSk9J TiBwZ19kZXBlbmQgZCBPTiAiCiAJCQkJCQkgICIoYy5yZWxraW5kID0gJyVjJyBBTkQgIgpA QCAtNjY3MCwxNiArNjY0OSwxNCBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpu dW1UYWJsZXMpCiAJCQkJCQkgICInZCcgQVMgcmVscmVwbGlkZW50LCByZWxwYWdlcywgIgog CQkJCQkJICAiTlVMTCBBUyBhbW5hbWUsICIKIAkJCQkJCSAgIk5VTEwgQVMgZm9yZWlnbnNl cnZlciwgIgotCQkJCQkJICAiTlVMTCBBUyByZWxvZnR5cGUsICIKKwkJCQkJCSAgIjAgQVMg cmVsb2Z0eXBlLCAiCiAJCQkJCQkgICJkLnJlZm9iamlkIEFTIG93bmluZ190YWIsICIKIAkJ CQkJCSAgImQucmVmb2Jqc3ViaWQgQVMgb3duaW5nX2NvbCwgIgogCQkJCQkJICAiKFNFTEVD VCBzcGNuYW1lIEZST00gcGdfdGFibGVzcGFjZSB0IFdIRVJFIHQub2lkID0gYy5yZWx0YWJs ZXNwYWNlKSBBUyByZWx0YWJsZXNwYWNlLCAiCiAJCQkJCQkgICJOVUxMIEFTIHJlbG9wdGlv bnMsICIKIAkJCQkJCSAgIk5VTEwgQVMgdG9hc3RfcmVsb3B0aW9ucywgIgogCQkJCQkJICAi TlVMTCBBUyBjaGFuZ2VkX2FjbCwgIgotCQkJCQkJICAiTlVMTCBBUyBwYXJ0a2V5ZGVmLCAi Ci0JCQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiwgIgotCQkJCQkJICAiTlVMTCBBUyBw YXJ0Ym91bmQgIgorCQkJCQkJICAiZmFsc2UgQVMgaXNwYXJ0aXRpb24gIgogCQkJCQkJICAi RlJPTSBwZ19jbGFzcyBjICIKIAkJCQkJCSAgIkxFRlQgSk9JTiBwZ19kZXBlbmQgZCBPTiAi CiAJCQkJCQkgICIoYy5yZWxraW5kID0gJyVjJyBBTkQgIgpAQCAtNjc0Nyw5ICs2NzI0LDcg QEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCWlfcmVsb2Z0 eXBlID0gUFFmbnVtYmVyKHJlcywgInJlbG9mdHlwZSIpOwogCWlfaXNfaWRlbnRpdHlfc2Vx dWVuY2UgPSBQUWZudW1iZXIocmVzLCAiaXNfaWRlbnRpdHlfc2VxdWVuY2UiKTsKIAlpX2No YW5nZWRfYWNsID0gUFFmbnVtYmVyKHJlcywgImNoYW5nZWRfYWNsIik7Ci0JaV9wYXJ0a2V5 ZGVmID0gUFFmbnVtYmVyKHJlcywgInBhcnRrZXlkZWYiKTsKIAlpX2lzcGFydGl0aW9uID0g UFFmbnVtYmVyKHJlcywgImlzcGFydGl0aW9uIik7Ci0JaV9wYXJ0Ym91bmQgPSBQUWZudW1i ZXIocmVzLCAicGFydGJvdW5kIik7CiAJaV9hbW5hbWUgPSBQUWZudW1iZXIocmVzLCAiYW1u YW1lIik7CiAKIAlpZiAoZG9wdC0+bG9ja1dhaXRUaW1lb3V0KQpAQCAtNjc5OCwxMCArNjc3 Myw3IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAkJdGJs aW5mb1tpXS50b2FzdF9vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdG9hc3Rv aWQpKTsKIAkJdGJsaW5mb1tpXS50b2FzdF9mcm96ZW54aWQgPSBhdG9vaWQoUFFnZXR2YWx1 ZShyZXMsIGksIGlfdG9hc3Rmcm96ZW54aWQpKTsKIAkJdGJsaW5mb1tpXS50b2FzdF9taW5t eGlkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RvYXN0bWlubXhpZCkpOwotCQlp ZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3JlbG9mdHlwZSkpCi0JCQl0YmxpbmZvW2ldLnJl bG9mdHlwZSA9IE5VTEw7Ci0JCWVsc2UKLQkJCXRibGluZm9baV0ucmVsb2Z0eXBlID0gcGdf c3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3JlbG9mdHlwZSkpOworCQl0YmxpbmZvW2ld LnJlbG9mdHlwZSA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9yZWxvZnR5cGUpKTsK IAkJdGJsaW5mb1tpXS5uY2hlY2sgPSBhdG9pKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3JlbGNo ZWNrcykpOwogCQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX293bmluZ190YWIpKQogCQl7 CkBAIC02ODU4LDkgKzY4MzAsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpu dW1UYWJsZXMpCiAJCQkJCQkJCQkJICAgc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2lz X2lkZW50aXR5X3NlcXVlbmNlKSwgInQiKSA9PSAwKTsKIAogCQkvKiBQYXJ0aXRpb24ga2V5 IHN0cmluZyBvciBOVUxMICovCi0JCXRibGluZm9baV0ucGFydGtleWRlZiA9IHBnX3N0cmR1 cChQUWdldHZhbHVlKHJlcywgaSwgaV9wYXJ0a2V5ZGVmKSk7CiAJCXRibGluZm9baV0uaXNw YXJ0aXRpb24gPSAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2lzcGFydGl0aW9uKSwg InQiKSA9PSAwKTsKLQkJdGJsaW5mb1tpXS5wYXJ0Ym91bmQgPSBwZ19zdHJkdXAoUFFnZXR2 YWx1ZShyZXMsIGksIGlfcGFydGJvdW5kKSk7CiAKIAkJLyogZm9yZWlnbiBzZXJ2ZXIgKi8K IAkJdGJsaW5mb1tpXS5mb3JlaWduX3NlcnZlciA9IGF0b29pZChQUWdldHZhbHVlKHJlcywg aSwgaV9mb3JlaWduc2VydmVyKSk7CkBAIC0xNTIxNywxNSArMTUxODcsMTUgQEAgZHVtcERl ZmF1bHRBQ0woQXJjaGl2ZSAqZm91dCwgRGVmYXVsdEFDTEluZm8gKmRhY2xpbmZvKQogICog J25zcG5hbWUnIGlzIHRoZSBuYW1lc3BhY2UgdGhlIG9iamVjdCBpcyBpbiAoTlVMTCBpZiBu b25lKS4KICAqICdvd25lcicgaXMgdGhlIG93bmVyLCBOVUxMIGlmIHRoZXJlIGlzIG5vIG93 bmVyIChmb3IgbGFuZ3VhZ2VzKS4KICAqICdhY2xzJyBjb250YWlucyB0aGUgQUNMIHN0cmlu ZyBvZiB0aGUgb2JqZWN0IGZyb20gdGhlIGFwcHJvcHJpYXRlIHN5c3RlbQotICogCQljYXRh bG9nIGZpZWxkOyBpdCB3aWxsIGJlIHBhc3NlZCB0byBidWlsZEFDTENvbW1hbmRzIGZvciBi dWlsZGluZyB0aGUKLSAqIAkJYXBwcm9wcmlhdGUgR1JBTlQgY29tbWFuZHMuCisgKgkJY2F0 YWxvZyBmaWVsZDsgaXQgd2lsbCBiZSBwYXNzZWQgdG8gYnVpbGRBQ0xDb21tYW5kcyBmb3Ig YnVpbGRpbmcgdGhlCisgKgkJYXBwcm9wcmlhdGUgR1JBTlQgY29tbWFuZHMuCiAgKiAncmFj bHMnIGNvbnRhaW5zIHRoZSBBQ0wgc3RyaW5nIG9mIGFueSBpbml0aWFsLWJ1dC1ub3ctcmV2 b2tlZCBBQ0xzIG9mIHRoZQotICogCQlvYmplY3Q7IGl0IHdpbGwgYmUgcGFzc2VkIHRvIGJ1 aWxkQUNMQ29tbWFuZHMgZm9yIGJ1aWxkaW5nIHRoZQotICogCQlhcHByb3ByaWF0ZSBSRVZP S0UgY29tbWFuZHMuCisgKgkJb2JqZWN0OyBpdCB3aWxsIGJlIHBhc3NlZCB0byBidWlsZEFD TENvbW1hbmRzIGZvciBidWlsZGluZyB0aGUKKyAqCQlhcHByb3ByaWF0ZSBSRVZPS0UgY29t bWFuZHMuCiAgKiAnaW5pdGFjbHMnIEluIGJpbmFyeS11cGdyYWRlIG1vZGUsIEFDTCBzdHJp bmcgb2YgdGhlIG9iamVjdCdzIGluaXRpYWwKLSAqIAkJcHJpdmlsZWdlcywgdG8gYmUgcmVj b3JkZWQgaW50byBwZ19pbml0X3ByaXZzCisgKgkJcHJpdmlsZWdlcywgdG8gYmUgcmVjb3Jk ZWQgaW50byBwZ19pbml0X3ByaXZzCiAgKiAnaW5pdHJhY2xzJyBJbiBiaW5hcnktdXBncmFk ZSBtb2RlLCBBQ0wgc3RyaW5nIG9mIHRoZSBvYmplY3QncwotICogCQlyZXZva2VkLWZyb20t ZGVmYXVsdCBwcml2aWxlZ2VzLCB0byBiZSByZWNvcmRlZCBpbnRvIHBnX2luaXRfcHJpdnMK KyAqCQlyZXZva2VkLWZyb20tZGVmYXVsdCBwcml2aWxlZ2VzLCB0byBiZSByZWNvcmRlZCBp bnRvIHBnX2luaXRfcHJpdnMKICAqCiAgKiBOQjogaW5pdGFjbHMvaW5pdHJhY2xzIGFyZSBu ZWVkZWQgYmVjYXVzZSBleHRlbnNpb25zIGNhbiBzZXQgcHJpdmlsZWdlcyBvbgogICogYW4g b2JqZWN0IGR1cmluZyB0aGUgZXh0ZW5zaW9uJ3Mgc2NyaXB0IGZpbGUgYW5kIHdlIHJlY29y ZCB0aG9zZSBpbnRvCkBAIC0xNTkzNCwxMiArMTU5MDQsMzQgQEAgZHVtcFRhYmxlU2NoZW1h KEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJpbmZvKQogCX0KIAllbHNlCiAJeworCQlj aGFyCSAgICpwYXJ0a2V5ZGVmID0gTlVMTDsKIAkJY2hhcgkgICAqZnRvcHRpb25zID0gTlVM TDsKIAkJY2hhcgkgICAqc3J2bmFtZSA9IE5VTEw7CiAJCWNoYXIJICAgKmZvcmVpZ24gPSAi IjsKIAorCQkvKgorCQkgKiBTZXQgcmVsdHlwZW5hbWUsIGFuZCBjb2xsZWN0IGFueSByZWxr aW5kLXNwZWNpZmljIGRhdGEgdGhhdCB3ZQorCQkgKiBkaWRuJ3QgZmV0Y2ggZHVyaW5nIGdl dFRhYmxlcygpLgorCQkgKi8KIAkJc3dpdGNoICh0YmluZm8tPnJlbGtpbmQpCiAJCXsKKwkJ CWNhc2UgUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRToKKwkJCQl7CisJCQkJCVBRRXhwQnVm ZmVyIHF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwkJCQkJUEdyZXN1bHQgICAqcmVz OworCisJCQkJCXJlbHR5cGVuYW1lID0gIlRBQkxFIjsKKworCQkJCQkvKiByZXRyaWV2ZSBw YXJ0aXRpb24ga2V5IGRlZmluaXRpb24gKi8KKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIocXVl cnksCisJCQkJCQkJCQkgICJTRUxFQ1QgcGdfZ2V0X3BhcnRrZXlkZWYoJyV1JykiLAorCQkJ CQkJCQkJICB0YmluZm8tPmRvYmouY2F0SWQub2lkKTsKKwkJCQkJcmVzID0gRXhlY3V0ZVNx bFF1ZXJ5Rm9yU2luZ2xlUm93KGZvdXQsIHF1ZXJ5LT5kYXRhKTsKKwkJCQkJcGFydGtleWRl ZiA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgMCwgMCkpOworCQkJCQlQUWNsZWFyKHJl cyk7CisJCQkJCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CisJCQkJCWJyZWFrOworCQkJ CX0KIAkJCWNhc2UgUkVMS0lORF9GT1JFSUdOX1RBQkxFOgogCQkJCXsKIAkJCQkJUFFFeHBC dWZmZXIgcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOwpAQCAtMTU5NzksNiArMTU5NzEs NyBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmluZm8p CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCXJlbHR5cGVuYW1lID0gIlRBQkxFIjsK KwkJCQlicmVhazsKIAkJfQogCiAJCW51bVBhcmVudHMgPSB0YmluZm8tPm51bVBhcmVudHM7 CkBAIC0xNjAwMCw4ICsxNTk5MywxMCBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91 dCwgVGFibGVJbmZvICp0YmluZm8pCiAJCSAqIEF0dGFjaCB0byB0eXBlLCBpZiByZWxvZnR5 cGU7IGV4Y2VwdCBpbiBjYXNlIG9mIGEgYmluYXJ5IHVwZ3JhZGUsCiAJCSAqIHdlIGR1bXAg dGhlIHRhYmxlIG5vcm1hbGx5IGFuZCBhdHRhY2ggaXQgdG8gdGhlIHR5cGUgYWZ0ZXJ3YXJk LgogCQkgKi8KLQkJaWYgKHRiaW5mby0+cmVsb2Z0eXBlICYmICFkb3B0LT5iaW5hcnlfdXBn cmFkZSkKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICIgT0YgJXMiLCB0YmluZm8tPnJlbG9m dHlwZSk7CisJCWlmIChPaWRJc1ZhbGlkKHRiaW5mby0+cmVsb2Z0eXBlKSAmJiAhZG9wdC0+ YmluYXJ5X3VwZ3JhZGUpCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiIE9GICVzIiwKKwkJ CQkJCQkgIGdldEZvcm1hdHRlZFR5cGVOYW1lKGZvdXQsIHRiaW5mby0+cmVsb2Z0eXBlLAor CQkJCQkJCQkJCQkJICAgemVyb0lzRXJyb3IpKTsKIAogCQlpZiAodGJpbmZvLT5yZWxraW5k ICE9IFJFTEtJTkRfTUFUVklFVykKIAkJewpAQCAtMTYwMzksNyArMTYwMzQsOCBAQCBkdW1w VGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmluZm8pCiAJCQkJCSAq IFNraXAgY29sdW1uIGlmIGZ1bGx5IGRlZmluZWQgYnkgcmVsb2Z0eXBlLCBleGNlcHQgaW4K IAkJCQkJICogYmluYXJ5IHVwZ3JhZGUKIAkJCQkJICovCi0JCQkJCWlmICh0YmluZm8tPnJl bG9mdHlwZSAmJiAhcHJpbnRfZGVmYXVsdCAmJiAhcHJpbnRfbm90bnVsbCAmJgorCQkJCQlp ZiAoT2lkSXNWYWxpZCh0YmluZm8tPnJlbG9mdHlwZSkgJiYKKwkJCQkJCSFwcmludF9kZWZh dWx0ICYmICFwcmludF9ub3RudWxsICYmCiAJCQkJCQkhZG9wdC0+YmluYXJ5X3VwZ3JhZGUp CiAJCQkJCQljb250aW51ZTsKIApAQCAtMTYwNzIsNyArMTYwNjgsNyBAQCBkdW1wVGFibGVT Y2hlbWEoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmluZm8pCiAJCQkJCSAqIHRhYmxl ICgnT0YgdHlwZV9uYW1lJyksIGJ1dCBpbiBiaW5hcnktdXBncmFkZSBtb2RlLAogCQkJCQkg KiBwcmludCBpdCBpbiB0aGF0IGNhc2UgdG9vLgogCQkJCQkgKi8KLQkJCQkJaWYgKGRvcHQt PmJpbmFyeV91cGdyYWRlIHx8ICF0YmluZm8tPnJlbG9mdHlwZSkKKwkJCQkJaWYgKGRvcHQt PmJpbmFyeV91cGdyYWRlIHx8ICFPaWRJc1ZhbGlkKHRiaW5mby0+cmVsb2Z0eXBlKSkKIAkJ CQkJewogCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIiAlcyIsCiAJCQkJCQkJCQkJICB0 YmluZm8tPmF0dHR5cG5hbWVzW2pdKTsKQEAgLTE2MTM1LDcgKzE2MTMxLDcgQEAgZHVtcFRh YmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJpbmZvKQogCiAJCQlpZiAo YWN0dWFsX2F0dHMpCiAJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgIlxuKSIpOwotCQkJ ZWxzZSBpZiAoISh0YmluZm8tPnJlbG9mdHlwZSAmJiAhZG9wdC0+YmluYXJ5X3VwZ3JhZGUp KQorCQkJZWxzZSBpZiAoIShPaWRJc1ZhbGlkKHRiaW5mby0+cmVsb2Z0eXBlKSAmJiAhZG9w dC0+YmluYXJ5X3VwZ3JhZGUpKQogCQkJewogCQkJCS8qCiAJCQkJICogTm8gYXR0cmlidXRl cz8gd2UgbXVzdCBoYXZlIGEgcGFyZW50aGVzaXplZCBhdHRyaWJ1dGUgbGlzdCwKQEAgLTE2 MTY0LDcgKzE2MTYwLDcgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIFRhYmxl SW5mbyAqdGJpbmZvKQogCQkJfQogCiAJCQlpZiAodGJpbmZvLT5yZWxraW5kID09IFJFTEtJ TkRfUEFSVElUSU9ORURfVEFCTEUpCi0JCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIlxuUEFS VElUSU9OIEJZICVzIiwgdGJpbmZvLT5wYXJ0a2V5ZGVmKTsKKwkJCQlhcHBlbmRQUUV4cEJ1 ZmZlcihxLCAiXG5QQVJUSVRJT04gQlkgJXMiLCBwYXJ0a2V5ZGVmKTsKIAogCQkJaWYgKHRi aW5mby0+cmVsa2luZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUpCiAJCQkJYXBwZW5kUFFF eHBCdWZmZXIocSwgIlxuU0VSVkVSICVzIiwgZm10SWQoc3J2bmFtZSkpOwpAQCAtMTYzNDcs MTIgKzE2MzQzLDEzIEBAIGR1bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBUYWJsZUlu Zm8gKnRiaW5mbykKIAkJCQl9CiAJCQl9CiAKLQkJCWlmICh0YmluZm8tPnJlbG9mdHlwZSkK KwkJCWlmIChPaWRJc1ZhbGlkKHRiaW5mby0+cmVsb2Z0eXBlKSkKIAkJCXsKIAkJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihxLCAiXG4tLSBGb3IgYmluYXJ5IHVwZ3JhZGUsIHNldCB1cCB0 eXBlZCB0YWJsZXMgdGhpcyB3YXkuXG4iKTsKIAkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAi QUxURVIgVEFCTEUgT05MWSAlcyBPRiAlcztcbiIsCiAJCQkJCQkJCSAgcXVhbHJlbG5hbWUs Ci0JCQkJCQkJCSAgdGJpbmZvLT5yZWxvZnR5cGUpOworCQkJCQkJCQkgIGdldEZvcm1hdHRl ZFR5cGVOYW1lKGZvdXQsIHRiaW5mby0+cmVsb2Z0eXBlLAorCQkJCQkJCQkJCQkJCSAgIHpl cm9Jc0Vycm9yKSk7CiAJCQl9CiAJCX0KIApAQCAtMTYzNjUsMTYgKzE2MzYyLDMyIEBAIGR1 bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRiaW5mbykKIAkJICov CiAJCWlmICh0YmluZm8tPmlzcGFydGl0aW9uKQogCQl7CisJCQlQR3Jlc3VsdCAgICphcmVz OworCQkJY2hhciAgICAgICAqcGFydGJvdW5kOworCQkJUFFFeHBCdWZmZXIgcTI7CisKIAkJ CS8qIFdpdGggcGFydGl0aW9ucyB0aGVyZSBjYW4gb25seSBiZSBvbmUgcGFyZW50ICovCiAJ CQlpZiAodGJpbmZvLT5udW1QYXJlbnRzICE9IDEpCiAJCQkJZmF0YWwoImludmFsaWQgbnVt YmVyIG9mIHBhcmVudHMgJWQgZm9yIHRhYmxlIFwiJXNcIiIsCiAJCQkJCSAgdGJpbmZvLT5u dW1QYXJlbnRzLCB0YmluZm8tPmRvYmoubmFtZSk7CiAKKwkJCXEyID0gY3JlYXRlUFFFeHBC dWZmZXIoKTsKKwkJCS8qIEZldGNoIHRoZSBwYXJ0aXRpb24ncyBwYXJ0Ym91bmQgKi8KKwkJ CWFwcGVuZFBRRXhwQnVmZmVyKHEyLAorCQkJCQkJCSAgIlNFTEVDVCBwZ19nZXRfZXhwcihj LnJlbHBhcnRib3VuZCwgYy5vaWQpICIKKwkJCQkJCQkgICJGUk9NIHBnX2NsYXNzIGMgIgor CQkJCQkJCSAgIldIRVJFIGMub2lkID0gJyV1JyIsCisJCQkJCQkJICB0YmluZm8tPmRvYmou Y2F0SWQub2lkKTsKKwkJCWFyZXMgPSBFeGVjdXRlU3FsUXVlcnlGb3JTaW5nbGVSb3coZm91 dCwgcTItPmRhdGEpOworCQkJcGFydGJvdW5kID0gUFFnZXR2YWx1ZShhcmVzLCAwLCAwKTsK KwogCQkJLyogUGVyZm9ybSBBTFRFUiBUQUJMRSBvbiB0aGUgcGFyZW50ICovCiAJCQlhcHBl bmRQUUV4cEJ1ZmZlcihxLAogCQkJCQkJCSAgIkFMVEVSIFRBQkxFIE9OTFkgJXMgQVRUQUNI IFBBUlRJVElPTiAlcyAlcztcbiIsCiAJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZShw YXJlbnRzWzBdKSwKLQkJCQkJCQkgIHF1YWxyZWxuYW1lLCB0YmluZm8tPnBhcnRib3VuZCk7 CisJCQkJCQkJICBxdWFscmVsbmFtZSwgcGFydGJvdW5kKTsKKwkJCVBRY2xlYXIoYXJlcyk7 CisJCQlkZXN0cm95UFFFeHBCdWZmZXIocTIpOwogCQl9CiAKIAkJLyoKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5o CmluZGV4IDdkNDEwNjRiOGEuLmNhZDMzNmMyZmYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtMjg0 LDcgKzI4NCw3IEBAIHR5cGVkZWYgc3RydWN0IF90YWJsZUluZm8KIAl1aW50MzIJCXRvYXN0 X2Zyb3plbnhpZDsJLyogdG9hc3QgdGFibGUncyByZWxmcm96ZW54aWQsIGlmIGFueSAqLwog CXVpbnQzMgkJdG9hc3RfbWlubXhpZDsJLyogdG9hc3QgdGFibGUncyByZWxtaW5teGlkICov CiAJaW50CQkJbmNoZWNrOwkJCS8qICMgb2YgQ0hFQ0sgZXhwcmVzc2lvbnMgKi8KLQljaGFy CSAgICpyZWxvZnR5cGU7CQkvKiB1bmRlcmx5aW5nIHR5cGUgZm9yIHR5cGVkIHRhYmxlICov CisJT2lkCSAgIHJlbG9mdHlwZTsJCS8qIHVuZGVybHlpbmcgdHlwZSBmb3IgdHlwZWQgdGFi bGUgKi8KIAlPaWQJCQlmb3JlaWduX3NlcnZlcjsgLyogZm9yZWlnbiBzZXJ2ZXIgb2lkLCBp ZiBhcHBsaWNhYmxlICovCiAJLyogdGhlc2UgdHdvIGFyZSBzZXQgb25seSBpZiB0YWJsZSBp cyBhIHNlcXVlbmNlIG93bmVkIGJ5IGEgY29sdW1uOiAqLwogCU9pZAkJCW93bmluZ190YWI7 CQkvKiBPSUQgb2YgdGFibGUgb3duaW5nIHNlcXVlbmNlICovCkBAIC0zMjIsOCArMzIyLDYg QEAgdHlwZWRlZiBzdHJ1Y3QgX3RhYmxlSW5mbwogCWJvb2wJICAgKmluaE5vdE51bGw7CQkv KiB0cnVlIGlmIE5PVCBOVUxMIGlzIGluaGVyaXRlZCAqLwogCXN0cnVjdCBfYXR0ckRlZklu Zm8gKiphdHRyZGVmczsgLyogREVGQVVMVCBleHByZXNzaW9ucyAqLwogCXN0cnVjdCBfY29u c3RyYWludEluZm8gKmNoZWNrZXhwcnM7IC8qIENIRUNLIGNvbnN0cmFpbnRzICovCi0JY2hh cgkgICAqcGFydGtleWRlZjsJCS8qIHBhcnRpdGlvbiBrZXkgZGVmaW5pdGlvbiAqLwotCWNo YXIJICAgKnBhcnRib3VuZDsJCS8qIHBhcnRpdGlvbiBib3VuZCBkZWZpbml0aW9uICovCiAJ Ym9vbAkJbmVlZHNfb3ZlcnJpZGU7IC8qIGhhcyBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5U SVRZICovCiAJY2hhcgkgICAqYW1uYW1lOwkJCS8qIHJlbGF0aW9uIGFjY2VzcyBtZXRob2Qg Ki8KIAo= --------------eSTz3TyN3jYSyhRd41a1TRSF Content-Type: text/x-patch; charset=UTF-8; name="0003-move-unsafe-function-calls-12-backport-1.patch" Content-Disposition: attachment; filename="0003-move-unsafe-function-calls-12-backport-1.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCmluZGV4IDE3YWQxZmUwN2UuLjY2NzhjYzFmNWMgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwpAQCAtNjA0MiwxNCArNjA0MiwxNSBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwg aW50ICpudW1UYWJsZXMpCiAJaW50CQkJaV9yZWxwYWdlczsKIAlpbnQJCQlpX2lzX2lkZW50 aXR5X3NlcXVlbmNlOwogCWludAkJCWlfY2hhbmdlZF9hY2w7Ci0JaW50CQkJaV9wYXJ0a2V5 ZGVmOwogCWludAkJCWlfaXNwYXJ0aXRpb247Ci0JaW50CQkJaV9wYXJ0Ym91bmQ7CiAJaW50 CQkJaV9hbW5hbWU7CiAKIAkvKgogCSAqIEZpbmQgYWxsIHRoZSB0YWJsZXMgYW5kIHRhYmxl LWxpa2Ugb2JqZWN0cy4KIAkgKgorCSAqIFdlIG11c3QgZmV0Y2ggYWxsIHRhYmxlcyBpbiB0 aGlzIHBoYXNlIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIGNhbm5vdAorCSAqIGNvcnJlY3RseSBp ZGVudGlmeSBpbmhlcml0ZWQgY29sdW1ucywgb3duZWQgc2VxdWVuY2VzLCBldGMuCisJICoK IAkgKiBXZSBpbmNsdWRlIHN5c3RlbSBjYXRhbG9ncywgc28gdGhhdCB3ZSBjYW4gd29yayBp ZiBhIHVzZXIgdGFibGUgaXMKIAkgKiBkZWZpbmVkIHRvIGluaGVyaXQgZnJvbSBhIHN5c3Rl bSBjYXRhbG9nIChwcmV0dHkgd2VpcmQsIGJ1dC4uLikKIAkgKgpAQCAtNjA2Myw4ICs2MDY0 LDEwIEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAkgKgog CSAqIE5vdGU6IGluIHRoaXMgcGhhc2Ugd2Ugc2hvdWxkIGNvbGxlY3Qgb25seSBhIG1pbmlt YWwgYW1vdW50IG9mCiAJICogaW5mb3JtYXRpb24gYWJvdXQgZWFjaCB0YWJsZSwgYmFzaWNh bGx5IGp1c3QgZW5vdWdoIHRvIGRlY2lkZSBpZiBpdCBpcwotCSAqIGludGVyZXN0aW5nLiBX ZSBtdXN0IGZldGNoIGFsbCB0YWJsZXMgaW4gdGhpcyBwaGFzZSBiZWNhdXNlIG90aGVyd2lz ZQotCSAqIHdlIGNhbm5vdCBjb3JyZWN0bHkgaWRlbnRpZnkgaW5oZXJpdGVkIGNvbHVtbnMs IG93bmVkIHNlcXVlbmNlcywgZXRjLgorCSAqIGludGVyZXN0aW5nLiAgSW4gcGFydGljdWxh ciwgc2luY2Ugd2UgZG8gbm90IHlldCBoYXZlIGxvY2sgb24gYW55IHVzZXIKKwkgKiB0YWJs ZSwgd2UgTVVTVCBOT1QgaW52b2tlIGFueSBzZXJ2ZXItc2lkZSBkYXRhIGNvbGxlY3Rpb24g ZnVuY3Rpb25zCisJICogKGZvciBpbnN0YW5jZSwgcGdfZ2V0X3BhcnRrZXlkZWYoKSkuICBU aG9zZSBhcmUgbGlrZWx5IHRvIGZhaWwgb3IgZ2l2ZQorCSAqIHdyb25nIGFuc3dlcnMgaWYg YW55IGNvbmN1cnJlbnQgRERMIGlzIGhhcHBlbmluZy4KIAkgKgogCSAqIFdlIHB1cnBvc2Vm dWxseSBpZ25vcmUgdG9hc3QgT0lEcyBmb3IgcGFydGl0aW9uZWQgdGFibGVzOyB0aGUgcmVh c29uIGlzCiAJICogdGhhdCB2ZXJzaW9ucyAxMCBhbmQgMTEgaGF2ZSB0aGVtLCBidXQgMTIg ZG9lcyBub3QsIHNvIGVtaXR0aW5nIHRoZW0KQEAgLTYwNzMsOSArNjA3Niw3IEBAIGdldFRh YmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAogCWlmIChmb3V0LT5yZW1v dGVWZXJzaW9uID49IDkwNjAwKQogCXsKLQkJY2hhcgkgICAqcGFydGtleWRlZiA9ICJOVUxM IjsKIAkJY2hhcgkgICAqaXNwYXJ0aXRpb24gPSAiZmFsc2UiOwotCQljaGFyCSAgICpwYXJ0 Ym91bmQgPSAiTlVMTCI7CiAJCWNoYXIJICAgKnJlbGhhc29pZHMgPSAiYy5yZWxoYXNvaWRz IjsKIAogCQlQUUV4cEJ1ZmZlciBhY2xfc3VicXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigp OwpAQCAtNjA5NCwxMSArNjA5NSw3IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQg Km51bVRhYmxlcykKIAkJICovCiAKIAkJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTAw MDAwKQotCQl7Ci0JCQlwYXJ0a2V5ZGVmID0gInBnX2dldF9wYXJ0a2V5ZGVmKGMub2lkKSI7 CiAJCQlpc3BhcnRpdGlvbiA9ICJjLnJlbGlzcGFydGl0aW9uIjsKLQkJCXBhcnRib3VuZCA9 ICJwZ19nZXRfZXhwcihjLnJlbHBhcnRib3VuZCwgYy5vaWQpIjsKLQkJfQogCiAJCS8qIElu IFBHMTIgdXB3YXJkcyBXSVRIIE9JRFMgZG9lcyBub3QgZXhpc3QgYW55bW9yZS4gKi8KIAkJ aWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTIwMDAwKQpAQCAtNjEzNiw3ICs2MTMzLDcg QEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJCQkJICAi dGMucmVsbWlubXhpZCBBUyB0bWlubXhpZCwgIgogCQkJCQkJICAiYy5yZWxwZXJzaXN0ZW5j ZSwgYy5yZWxpc3BvcHVsYXRlZCwgIgogCQkJCQkJICAiYy5yZWxyZXBsaWRlbnQsIGMucmVs cGFnZXMsIGFtLmFtbmFtZSwgIgotCQkJCQkJICAiQ0FTRSBXSEVOIGMucmVsb2Z0eXBlIDw+ IDAgVEhFTiBjLnJlbG9mdHlwZTo6cGdfY2F0YWxvZy5yZWd0eXBlIEVMU0UgTlVMTCBFTkQg QVMgcmVsb2Z0eXBlLCAiCisJCQkJCQkgICJjLnJlbG9mdHlwZSwgIgogCQkJCQkJICAiZC5y ZWZvYmppZCBBUyBvd25pbmdfdGFiLCAiCiAJCQkJCQkgICJkLnJlZm9ianN1YmlkIEFTIG93 bmluZ19jb2wsICIKIAkJCQkJCSAgIihTRUxFQ1Qgc3BjbmFtZSBGUk9NIHBnX3RhYmxlc3Bh Y2UgdCBXSEVSRSB0Lm9pZCA9IGMucmVsdGFibGVzcGFjZSkgQVMgcmVsdGFibGVzcGFjZSwg IgpAQCAtNjE1Niw5ICs2MTUzLDcgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAq bnVtVGFibGVzKQogCQkJCQkJICAiT1IgJXMgSVMgTk9UIE5VTEwiCiAJCQkJCQkgICIpKSIK IAkJCQkJCSAgIkFTIGNoYW5nZWRfYWNsLCAiCi0JCQkJCQkgICIlcyBBUyBwYXJ0a2V5ZGVm LCAiCi0JCQkJCQkgICIlcyBBUyBpc3BhcnRpdGlvbiwgIgotCQkJCQkJICAiJXMgQVMgcGFy dGJvdW5kICIKKwkJCQkJCSAgIiVzIEFTIGlzcGFydGl0aW9uICIKIAkJCQkJCSAgIkZST00g cGdfY2xhc3MgYyAiCiAJCQkJCQkgICJMRUZUIEpPSU4gcGdfZGVwZW5kIGQgT04gIgogCQkJ CQkJICAiKGMucmVsa2luZCA9ICclYycgQU5EICIKQEAgLTYxODQsOSArNjE3OSw3IEBAIGdl dFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAkJCQkJCSAgYXR0cmFj bF9zdWJxdWVyeS0+ZGF0YSwKIAkJCQkJCSAgYXR0aW5pdGFjbF9zdWJxdWVyeS0+ZGF0YSwK IAkJCQkJCSAgYXR0aW5pdHJhY2xfc3VicXVlcnktPmRhdGEsCi0JCQkJCQkgIHBhcnRrZXlk ZWYsCiAJCQkJCQkgIGlzcGFydGl0aW9uLAotCQkJCQkJICBwYXJ0Ym91bmQsCiAJCQkJCQkg IFJFTEtJTkRfU0VRVUVOQ0UsCiAJCQkJCQkgIFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUs CiAJCQkJCQkgIFJFTEtJTkRfUkVMQVRJT04sIFJFTEtJTkRfU0VRVUVOQ0UsCkBAIC02MjI2 LDcgKzYyMTksNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMp CiAJCQkJCQkgICJjLnJlbHBlcnNpc3RlbmNlLCBjLnJlbGlzcG9wdWxhdGVkLCAiCiAJCQkJ CQkgICJjLnJlbHJlcGxpZGVudCwgYy5yZWxwYWdlcywgIgogCQkJCQkJICAiTlVMTCBBUyBh bW5hbWUsICIKLQkJCQkJCSAgIkNBU0UgV0hFTiBjLnJlbG9mdHlwZSA8PiAwIFRIRU4gYy5y ZWxvZnR5cGU6OnBnX2NhdGFsb2cucmVndHlwZSBFTFNFIE5VTEwgRU5EIEFTIHJlbG9mdHlw ZSwgIgorCQkJCQkJICAiYy5yZWxvZnR5cGUsICIKIAkJCQkJCSAgImQucmVmb2JqaWQgQVMg b3duaW5nX3RhYiwgIgogCQkJCQkJICAiZC5yZWZvYmpzdWJpZCBBUyBvd25pbmdfY29sLCAi CiAJCQkJCQkgICIoU0VMRUNUIHNwY25hbWUgRlJPTSBwZ190YWJsZXNwYWNlIHQgV0hFUkUg dC5vaWQgPSBjLnJlbHRhYmxlc3BhY2UpIEFTIHJlbHRhYmxlc3BhY2UsICIKQEAgLTYyMzUs OSArNjIyOCw3IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykK IAkJCQkJCSAgIldIRU4gJ2NoZWNrX29wdGlvbj1jYXNjYWRlZCcgPSBBTlkgKGMucmVsb3B0 aW9ucykgVEhFTiAnQ0FTQ0FERUQnOjp0ZXh0IEVMU0UgTlVMTCBFTkQgQVMgY2hlY2tvcHRp b24sICIKIAkJCQkJCSAgInRjLnJlbG9wdGlvbnMgQVMgdG9hc3RfcmVsb3B0aW9ucywgIgog CQkJCQkJICAiTlVMTCBBUyBjaGFuZ2VkX2FjbCwgIgotCQkJCQkJICAiTlVMTCBBUyBwYXJ0 a2V5ZGVmLCAiCi0JCQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiwgIgotCQkJCQkJICAi TlVMTCBBUyBwYXJ0Ym91bmQgIgorCQkJCQkJICAiZmFsc2UgQVMgaXNwYXJ0aXRpb24gIgog CQkJCQkJICAiRlJPTSBwZ19jbGFzcyBjICIKIAkJCQkJCSAgIkxFRlQgSk9JTiBwZ19kZXBl bmQgZCBPTiAiCiAJCQkJCQkgICIoYy5yZWxraW5kID0gJyVjJyBBTkQgIgpAQCAtNjI3Niw3 ICs2MjY3LDcgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQog CQkJCQkJICAiYy5yZWxwZXJzaXN0ZW5jZSwgYy5yZWxpc3BvcHVsYXRlZCwgIgogCQkJCQkJ ICAiYy5yZWxyZXBsaWRlbnQsIGMucmVscGFnZXMsICIKIAkJCQkJCSAgIk5VTEwgQVMgYW1u YW1lLCAiCi0JCQkJCQkgICJDQVNFIFdIRU4gYy5yZWxvZnR5cGUgPD4gMCBUSEVOIGMucmVs b2Z0eXBlOjpwZ19jYXRhbG9nLnJlZ3R5cGUgRUxTRSBOVUxMIEVORCBBUyByZWxvZnR5cGUs ICIKKwkJCQkJCSAgImMucmVsb2Z0eXBlLCAiCiAJCQkJCQkgICJkLnJlZm9iamlkIEFTIG93 bmluZ190YWIsICIKIAkJCQkJCSAgImQucmVmb2Jqc3ViaWQgQVMgb3duaW5nX2NvbCwgIgog CQkJCQkJICAiKFNFTEVDVCBzcGNuYW1lIEZST00gcGdfdGFibGVzcGFjZSB0IFdIRVJFIHQu b2lkID0gYy5yZWx0YWJsZXNwYWNlKSBBUyByZWx0YWJsZXNwYWNlLCAiCkBAIC02Mjg1LDkg KzYyNzYsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJ CQkJCQkgICJXSEVOICdjaGVja19vcHRpb249Y2FzY2FkZWQnID0gQU5ZIChjLnJlbG9wdGlv bnMpIFRIRU4gJ0NBU0NBREVEJzo6dGV4dCBFTFNFIE5VTEwgRU5EIEFTIGNoZWNrb3B0aW9u LCAiCiAJCQkJCQkgICJ0Yy5yZWxvcHRpb25zIEFTIHRvYXN0X3JlbG9wdGlvbnMsICIKIAkJ CQkJCSAgIk5VTEwgQVMgY2hhbmdlZF9hY2wsICIKLQkJCQkJCSAgIk5VTEwgQVMgcGFydGtl eWRlZiwgIgotCQkJCQkJICAiZmFsc2UgQVMgaXNwYXJ0aXRpb24sICIKLQkJCQkJCSAgIk5V TEwgQVMgcGFydGJvdW5kICIKKwkJCQkJCSAgImZhbHNlIEFTIGlzcGFydGl0aW9uICIKIAkJ CQkJCSAgIkZST00gcGdfY2xhc3MgYyAiCiAJCQkJCQkgICJMRUZUIEpPSU4gcGdfZGVwZW5k IGQgT04gIgogCQkJCQkJICAiKGMucmVsa2luZCA9ICclYycgQU5EICIKQEAgLTYzMjYsNyAr NjMxNSw3IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAkJ CQkJCSAgImMucmVscGVyc2lzdGVuY2UsIGMucmVsaXNwb3B1bGF0ZWQsICIKIAkJCQkJCSAg IidkJyBBUyByZWxyZXBsaWRlbnQsIGMucmVscGFnZXMsICIKIAkJCQkJCSAgIk5VTEwgQVMg YW1uYW1lLCAiCi0JCQkJCQkgICJDQVNFIFdIRU4gYy5yZWxvZnR5cGUgPD4gMCBUSEVOIGMu cmVsb2Z0eXBlOjpwZ19jYXRhbG9nLnJlZ3R5cGUgRUxTRSBOVUxMIEVORCBBUyByZWxvZnR5 cGUsICIKKwkJCQkJCSAgImMucmVsb2Z0eXBlLCAiCiAJCQkJCQkgICJkLnJlZm9iamlkIEFT IG93bmluZ190YWIsICIKIAkJCQkJCSAgImQucmVmb2Jqc3ViaWQgQVMgb3duaW5nX2NvbCwg IgogCQkJCQkJICAiKFNFTEVDVCBzcGNuYW1lIEZST00gcGdfdGFibGVzcGFjZSB0IFdIRVJF IHQub2lkID0gYy5yZWx0YWJsZXNwYWNlKSBBUyByZWx0YWJsZXNwYWNlLCAiCkBAIC02MzM1 LDkgKzYzMjQsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMp CiAJCQkJCQkgICJXSEVOICdjaGVja19vcHRpb249Y2FzY2FkZWQnID0gQU5ZIChjLnJlbG9w dGlvbnMpIFRIRU4gJ0NBU0NBREVEJzo6dGV4dCBFTFNFIE5VTEwgRU5EIEFTIGNoZWNrb3B0 aW9uLCAiCiAJCQkJCQkgICJ0Yy5yZWxvcHRpb25zIEFTIHRvYXN0X3JlbG9wdGlvbnMsICIK IAkJCQkJCSAgIk5VTEwgQVMgY2hhbmdlZF9hY2wsICIKLQkJCQkJCSAgIk5VTEwgQVMgcGFy dGtleWRlZiwgIgotCQkJCQkJICAiZmFsc2UgQVMgaXNwYXJ0aXRpb24sICIKLQkJCQkJCSAg Ik5VTEwgQVMgcGFydGJvdW5kICIKKwkJCQkJCSAgImZhbHNlIEFTIGlzcGFydGl0aW9uICIK IAkJCQkJCSAgIkZST00gcGdfY2xhc3MgYyAiCiAJCQkJCQkgICJMRUZUIEpPSU4gcGdfZGVw ZW5kIGQgT04gIgogCQkJCQkJICAiKGMucmVsa2luZCA9ICclYycgQU5EICIKQEAgLTYzNzYs MTYgKzYzNjMsMTQgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVz KQogCQkJCQkJICAiYy5yZWxwZXJzaXN0ZW5jZSwgJ3QnIGFzIHJlbGlzcG9wdWxhdGVkLCAi CiAJCQkJCQkgICInZCcgQVMgcmVscmVwbGlkZW50LCBjLnJlbHBhZ2VzLCAiCiAJCQkJCQkg ICJOVUxMIEFTIGFtbmFtZSwgIgotCQkJCQkJICAiQ0FTRSBXSEVOIGMucmVsb2Z0eXBlIDw+ IDAgVEhFTiBjLnJlbG9mdHlwZTo6cGdfY2F0YWxvZy5yZWd0eXBlIEVMU0UgTlVMTCBFTkQg QVMgcmVsb2Z0eXBlLCAiCisJCQkJCQkgICJjLnJlbG9mdHlwZSwgIgogCQkJCQkJICAiZC5y ZWZvYmppZCBBUyBvd25pbmdfdGFiLCAiCiAJCQkJCQkgICJkLnJlZm9ianN1YmlkIEFTIG93 bmluZ19jb2wsICIKIAkJCQkJCSAgIihTRUxFQ1Qgc3BjbmFtZSBGUk9NIHBnX3RhYmxlc3Bh Y2UgdCBXSEVSRSB0Lm9pZCA9IGMucmVsdGFibGVzcGFjZSkgQVMgcmVsdGFibGVzcGFjZSwg IgogCQkJCQkJICAiYy5yZWxvcHRpb25zIEFTIHJlbG9wdGlvbnMsICIKIAkJCQkJCSAgInRj LnJlbG9wdGlvbnMgQVMgdG9hc3RfcmVsb3B0aW9ucywgIgogCQkJCQkJICAiTlVMTCBBUyBj aGFuZ2VkX2FjbCwgIgotCQkJCQkJICAiTlVMTCBBUyBwYXJ0a2V5ZGVmLCAiCi0JCQkJCQkg ICJmYWxzZSBBUyBpc3BhcnRpdGlvbiwgIgotCQkJCQkJICAiTlVMTCBBUyBwYXJ0Ym91bmQg IgorCQkJCQkJICAiZmFsc2UgQVMgaXNwYXJ0aXRpb24gIgogCQkJCQkJICAiRlJPTSBwZ19j bGFzcyBjICIKIAkJCQkJCSAgIkxFRlQgSk9JTiBwZ19kZXBlbmQgZCBPTiAiCiAJCQkJCQkg ICIoYy5yZWxraW5kID0gJyVjJyBBTkQgIgpAQCAtNjQyNCwxNiArNjQwOSwxNCBAQCBnZXRU YWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJCQkJCQkgICIncCcgQVMg cmVscGVyc2lzdGVuY2UsICd0JyBhcyByZWxpc3BvcHVsYXRlZCwgIgogCQkJCQkJICAiJ2Qn IEFTIHJlbHJlcGxpZGVudCwgYy5yZWxwYWdlcywgIgogCQkJCQkJICAiTlVMTCBBUyBhbW5h bWUsICIKLQkJCQkJCSAgIkNBU0UgV0hFTiBjLnJlbG9mdHlwZSA8PiAwIFRIRU4gYy5yZWxv ZnR5cGU6OnBnX2NhdGFsb2cucmVndHlwZSBFTFNFIE5VTEwgRU5EIEFTIHJlbG9mdHlwZSwg IgorCQkJCQkJICAiYy5yZWxvZnR5cGUsICIKIAkJCQkJCSAgImQucmVmb2JqaWQgQVMgb3du aW5nX3RhYiwgIgogCQkJCQkJICAiZC5yZWZvYmpzdWJpZCBBUyBvd25pbmdfY29sLCAiCiAJ CQkJCQkgICIoU0VMRUNUIHNwY25hbWUgRlJPTSBwZ190YWJsZXNwYWNlIHQgV0hFUkUgdC5v aWQgPSBjLnJlbHRhYmxlc3BhY2UpIEFTIHJlbHRhYmxlc3BhY2UsICIKIAkJCQkJCSAgImMu cmVsb3B0aW9ucyBBUyByZWxvcHRpb25zLCAiCiAJCQkJCQkgICJ0Yy5yZWxvcHRpb25zIEFT IHRvYXN0X3JlbG9wdGlvbnMsICIKIAkJCQkJCSAgIk5VTEwgQVMgY2hhbmdlZF9hY2wsICIK LQkJCQkJCSAgIk5VTEwgQVMgcGFydGtleWRlZiwgIgotCQkJCQkJICAiZmFsc2UgQVMgaXNw YXJ0aXRpb24sICIKLQkJCQkJCSAgIk5VTEwgQVMgcGFydGJvdW5kICIKKwkJCQkJCSAgImZh bHNlIEFTIGlzcGFydGl0aW9uICIKIAkJCQkJCSAgIkZST00gcGdfY2xhc3MgYyAiCiAJCQkJ CQkgICJMRUZUIEpPSU4gcGdfZGVwZW5kIGQgT04gIgogCQkJCQkJICAiKGMucmVsa2luZCA9 ICclYycgQU5EICIKQEAgLTY0NzEsMTYgKzY0NTQsMTQgQEAgZ2V0VGFibGVzKEFyY2hpdmUg KmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJCQkJICAiJ3AnIEFTIHJlbHBlcnNpc3RlbmNl LCAndCcgYXMgcmVsaXNwb3B1bGF0ZWQsICIKIAkJCQkJCSAgIidkJyBBUyByZWxyZXBsaWRl bnQsIGMucmVscGFnZXMsICIKIAkJCQkJCSAgIk5VTEwgQVMgYW1uYW1lLCAiCi0JCQkJCQkg ICJOVUxMIEFTIHJlbG9mdHlwZSwgIgorCQkJCQkJICAiMCBBUyByZWxvZnR5cGUsICIKIAkJ CQkJCSAgImQucmVmb2JqaWQgQVMgb3duaW5nX3RhYiwgIgogCQkJCQkJICAiZC5yZWZvYmpz dWJpZCBBUyBvd25pbmdfY29sLCAiCiAJCQkJCQkgICIoU0VMRUNUIHNwY25hbWUgRlJPTSBw Z190YWJsZXNwYWNlIHQgV0hFUkUgdC5vaWQgPSBjLnJlbHRhYmxlc3BhY2UpIEFTIHJlbHRh Ymxlc3BhY2UsICIKIAkJCQkJCSAgImMucmVsb3B0aW9ucyBBUyByZWxvcHRpb25zLCAiCiAJ CQkJCQkgICJ0Yy5yZWxvcHRpb25zIEFTIHRvYXN0X3JlbG9wdGlvbnMsICIKIAkJCQkJCSAg Ik5VTEwgQVMgY2hhbmdlZF9hY2wsICIKLQkJCQkJCSAgIk5VTEwgQVMgcGFydGtleWRlZiwg IgotCQkJCQkJICAiZmFsc2UgQVMgaXNwYXJ0aXRpb24sICIKLQkJCQkJCSAgIk5VTEwgQVMg cGFydGJvdW5kICIKKwkJCQkJCSAgImZhbHNlIEFTIGlzcGFydGl0aW9uICIKIAkJCQkJCSAg IkZST00gcGdfY2xhc3MgYyAiCiAJCQkJCQkgICJMRUZUIEpPSU4gcGdfZGVwZW5kIGQgT04g IgogCQkJCQkJICAiKGMucmVsa2luZCA9ICclYycgQU5EICIKQEAgLTY1MTgsMTYgKzY0OTks MTQgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJCQkJ ICAiJ3AnIEFTIHJlbHBlcnNpc3RlbmNlLCAndCcgYXMgcmVsaXNwb3B1bGF0ZWQsICIKIAkJ CQkJCSAgIidkJyBBUyByZWxyZXBsaWRlbnQsIGMucmVscGFnZXMsICIKIAkJCQkJCSAgIk5V TEwgQVMgYW1uYW1lLCAiCi0JCQkJCQkgICJOVUxMIEFTIHJlbG9mdHlwZSwgIgorCQkJCQkJ ICAiMCBBUyByZWxvZnR5cGUsICIKIAkJCQkJCSAgImQucmVmb2JqaWQgQVMgb3duaW5nX3Rh YiwgIgogCQkJCQkJICAiZC5yZWZvYmpzdWJpZCBBUyBvd25pbmdfY29sLCAiCiAJCQkJCQkg ICIoU0VMRUNUIHNwY25hbWUgRlJPTSBwZ190YWJsZXNwYWNlIHQgV0hFUkUgdC5vaWQgPSBj LnJlbHRhYmxlc3BhY2UpIEFTIHJlbHRhYmxlc3BhY2UsICIKIAkJCQkJCSAgImMucmVsb3B0 aW9ucyBBUyByZWxvcHRpb25zLCAiCiAJCQkJCQkgICJOVUxMIEFTIHRvYXN0X3JlbG9wdGlv bnMsICIKIAkJCQkJCSAgIk5VTEwgQVMgY2hhbmdlZF9hY2wsICIKLQkJCQkJCSAgIk5VTEwg QVMgcGFydGtleWRlZiwgIgotCQkJCQkJICAiZmFsc2UgQVMgaXNwYXJ0aXRpb24sICIKLQkJ CQkJCSAgIk5VTEwgQVMgcGFydGJvdW5kICIKKwkJCQkJCSAgImZhbHNlIEFTIGlzcGFydGl0 aW9uICIKIAkJCQkJCSAgIkZST00gcGdfY2xhc3MgYyAiCiAJCQkJCQkgICJMRUZUIEpPSU4g cGdfZGVwZW5kIGQgT04gIgogCQkJCQkJICAiKGMucmVsa2luZCA9ICclYycgQU5EICIKQEAg LTY1NjQsMTYgKzY1NDMsMTQgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVt VGFibGVzKQogCQkJCQkJICAiJ3AnIEFTIHJlbHBlcnNpc3RlbmNlLCAndCcgYXMgcmVsaXNw b3B1bGF0ZWQsICIKIAkJCQkJCSAgIidkJyBBUyByZWxyZXBsaWRlbnQsIHJlbHBhZ2VzLCAi CiAJCQkJCQkgICJOVUxMIEFTIGFtbmFtZSwgIgotCQkJCQkJICAiTlVMTCBBUyByZWxvZnR5 cGUsICIKKwkJCQkJCSAgIjAgQVMgcmVsb2Z0eXBlLCAiCiAJCQkJCQkgICJkLnJlZm9iamlk IEFTIG93bmluZ190YWIsICIKIAkJCQkJCSAgImQucmVmb2Jqc3ViaWQgQVMgb3duaW5nX2Nv bCwgIgogCQkJCQkJICAiKFNFTEVDVCBzcGNuYW1lIEZST00gcGdfdGFibGVzcGFjZSB0IFdI RVJFIHQub2lkID0gYy5yZWx0YWJsZXNwYWNlKSBBUyByZWx0YWJsZXNwYWNlLCAiCiAJCQkJ CQkgICJOVUxMIEFTIHJlbG9wdGlvbnMsICIKIAkJCQkJCSAgIk5VTEwgQVMgdG9hc3RfcmVs b3B0aW9ucywgIgogCQkJCQkJICAiTlVMTCBBUyBjaGFuZ2VkX2FjbCwgIgotCQkJCQkJICAi TlVMTCBBUyBwYXJ0a2V5ZGVmLCAiCi0JCQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiwg IgotCQkJCQkJICAiTlVMTCBBUyBwYXJ0Ym91bmQgIgorCQkJCQkJICAiZmFsc2UgQVMgaXNw YXJ0aXRpb24gIgogCQkJCQkJICAiRlJPTSBwZ19jbGFzcyBjICIKIAkJCQkJCSAgIkxFRlQg Sk9JTiBwZ19kZXBlbmQgZCBPTiAiCiAJCQkJCQkgICIoYy5yZWxraW5kID0gJyVjJyBBTkQg IgpAQCAtNjY0MCw5ICs2NjE3LDcgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAq bnVtVGFibGVzKQogCWlfcmVsb2Z0eXBlID0gUFFmbnVtYmVyKHJlcywgInJlbG9mdHlwZSIp OwogCWlfaXNfaWRlbnRpdHlfc2VxdWVuY2UgPSBQUWZudW1iZXIocmVzLCAiaXNfaWRlbnRp dHlfc2VxdWVuY2UiKTsKIAlpX2NoYW5nZWRfYWNsID0gUFFmbnVtYmVyKHJlcywgImNoYW5n ZWRfYWNsIik7Ci0JaV9wYXJ0a2V5ZGVmID0gUFFmbnVtYmVyKHJlcywgInBhcnRrZXlkZWYi KTsKIAlpX2lzcGFydGl0aW9uID0gUFFmbnVtYmVyKHJlcywgImlzcGFydGl0aW9uIik7Ci0J aV9wYXJ0Ym91bmQgPSBQUWZudW1iZXIocmVzLCAicGFydGJvdW5kIik7CiAJaV9hbW5hbWUg PSBQUWZudW1iZXIocmVzLCAiYW1uYW1lIik7CiAKIAlpZiAoZG9wdC0+bG9ja1dhaXRUaW1l b3V0KQpAQCAtNjY5MSwxMCArNjY2Niw3IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBp bnQgKm51bVRhYmxlcykKIAkJdGJsaW5mb1tpXS50b2FzdF9vaWQgPSBhdG9vaWQoUFFnZXR2 YWx1ZShyZXMsIGksIGlfdG9hc3RvaWQpKTsKIAkJdGJsaW5mb1tpXS50b2FzdF9mcm96ZW54 aWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdG9hc3Rmcm96ZW54aWQpKTsKIAkJ dGJsaW5mb1tpXS50b2FzdF9taW5teGlkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3RvYXN0bWlubXhpZCkpOwotCQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3JlbG9mdHlw ZSkpCi0JCQl0YmxpbmZvW2ldLnJlbG9mdHlwZSA9IE5VTEw7Ci0JCWVsc2UKLQkJCXRibGlu Zm9baV0ucmVsb2Z0eXBlID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3JlbG9m dHlwZSkpOworCQl0YmxpbmZvW2ldLnJlbG9mdHlwZSA9IGF0b29pZChQUWdldHZhbHVlKHJl cywgaSwgaV9yZWxvZnR5cGUpKTsKIAkJdGJsaW5mb1tpXS5uY2hlY2sgPSBhdG9pKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3JlbGNoZWNrcykpOwogCQlpZiAoUFFnZXRpc251bGwocmVzLCBp LCBpX293bmluZ190YWIpKQogCQl7CkBAIC02NzUxLDkgKzY3MjMsNyBAQCBnZXRUYWJsZXMo QXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJCQkJCQkJCQkJICAgc3RyY21wKFBR Z2V0dmFsdWUocmVzLCBpLCBpX2lzX2lkZW50aXR5X3NlcXVlbmNlKSwgInQiKSA9PSAwKTsK IAogCQkvKiBQYXJ0aXRpb24ga2V5IHN0cmluZyBvciBOVUxMICovCi0JCXRibGluZm9baV0u cGFydGtleWRlZiA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9wYXJ0a2V5ZGVm KSk7CiAJCXRibGluZm9baV0uaXNwYXJ0aXRpb24gPSAoc3RyY21wKFBRZ2V0dmFsdWUocmVz LCBpLCBpX2lzcGFydGl0aW9uKSwgInQiKSA9PSAwKTsKLQkJdGJsaW5mb1tpXS5wYXJ0Ym91 bmQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcGFydGJvdW5kKSk7CiAKIAkJ LyoKIAkJICogUmVhZC1sb2NrIHRhcmdldCB0YWJsZXMgdG8gbWFrZSBzdXJlIHRoZXkgYXJl bid0IERST1BQRUQgb3IgYWx0ZXJlZApAQCAtMTUwOTcsMTUgKzE1MDY3LDE1IEBAIGR1bXBE ZWZhdWx0QUNMKEFyY2hpdmUgKmZvdXQsIERlZmF1bHRBQ0xJbmZvICpkYWNsaW5mbykKICAq ICduc3BuYW1lJyBpcyB0aGUgbmFtZXNwYWNlIHRoZSBvYmplY3QgaXMgaW4gKE5VTEwgaWYg bm9uZSkuCiAgKiAnb3duZXInIGlzIHRoZSBvd25lciwgTlVMTCBpZiB0aGVyZSBpcyBubyBv d25lciAoZm9yIGxhbmd1YWdlcykuCiAgKiAnYWNscycgY29udGFpbnMgdGhlIEFDTCBzdHJp bmcgb2YgdGhlIG9iamVjdCBmcm9tIHRoZSBhcHByb3ByaWF0ZSBzeXN0ZW0KLSAqIAkJY2F0 YWxvZyBmaWVsZDsgaXQgd2lsbCBiZSBwYXNzZWQgdG8gYnVpbGRBQ0xDb21tYW5kcyBmb3Ig YnVpbGRpbmcgdGhlCi0gKiAJCWFwcHJvcHJpYXRlIEdSQU5UIGNvbW1hbmRzLgorICoJCWNh dGFsb2cgZmllbGQ7IGl0IHdpbGwgYmUgcGFzc2VkIHRvIGJ1aWxkQUNMQ29tbWFuZHMgZm9y IGJ1aWxkaW5nIHRoZQorICoJCWFwcHJvcHJpYXRlIEdSQU5UIGNvbW1hbmRzLgogICogJ3Jh Y2xzJyBjb250YWlucyB0aGUgQUNMIHN0cmluZyBvZiBhbnkgaW5pdGlhbC1idXQtbm93LXJl dm9rZWQgQUNMcyBvZiB0aGUKLSAqIAkJb2JqZWN0OyBpdCB3aWxsIGJlIHBhc3NlZCB0byBi dWlsZEFDTENvbW1hbmRzIGZvciBidWlsZGluZyB0aGUKLSAqIAkJYXBwcm9wcmlhdGUgUkVW T0tFIGNvbW1hbmRzLgorICoJCW9iamVjdDsgaXQgd2lsbCBiZSBwYXNzZWQgdG8gYnVpbGRB Q0xDb21tYW5kcyBmb3IgYnVpbGRpbmcgdGhlCisgKgkJYXBwcm9wcmlhdGUgUkVWT0tFIGNv bW1hbmRzLgogICogJ2luaXRhY2xzJyBJbiBiaW5hcnktdXBncmFkZSBtb2RlLCBBQ0wgc3Ry aW5nIG9mIHRoZSBvYmplY3QncyBpbml0aWFsCi0gKiAJCXByaXZpbGVnZXMsIHRvIGJlIHJl Y29yZGVkIGludG8gcGdfaW5pdF9wcml2cworICoJCXByaXZpbGVnZXMsIHRvIGJlIHJlY29y ZGVkIGludG8gcGdfaW5pdF9wcml2cwogICogJ2luaXRyYWNscycgSW4gYmluYXJ5LXVwZ3Jh ZGUgbW9kZSwgQUNMIHN0cmluZyBvZiB0aGUgb2JqZWN0J3MKLSAqIAkJcmV2b2tlZC1mcm9t LWRlZmF1bHQgcHJpdmlsZWdlcywgdG8gYmUgcmVjb3JkZWQgaW50byBwZ19pbml0X3ByaXZz CisgKgkJcmV2b2tlZC1mcm9tLWRlZmF1bHQgcHJpdmlsZWdlcywgdG8gYmUgcmVjb3JkZWQg aW50byBwZ19pbml0X3ByaXZzCiAgKgogICogTkI6IGluaXRhY2xzL2luaXRyYWNscyBhcmUg bmVlZGVkIGJlY2F1c2UgZXh0ZW5zaW9ucyBjYW4gc2V0IHByaXZpbGVnZXMgb24KICAqIGFu IG9iamVjdCBkdXJpbmcgdGhlIGV4dGVuc2lvbidzIHNjcmlwdCBmaWxlIGFuZCB3ZSByZWNv cmQgdGhvc2UgaW50bwpAQCAtMTU4MTYsMTEgKzE1Nzg2LDMzIEBAIGR1bXBUYWJsZVNjaGVt YShBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRiaW5mbykKIAl9CiAJZWxzZQogCXsKKwkJ Y2hhciAgICAgICAqcGFydGtleWRlZiA9IE5VTEw7CiAJCWNoYXIJICAgKmZ0b3B0aW9ucyA9 IE5VTEw7CiAJCWNoYXIJICAgKnNydm5hbWUgPSBOVUxMOwogCisJCS8qCisJCSAqIFNldCBy ZWx0eXBlbmFtZSwgYW5kIGNvbGxlY3QgYW55IHJlbGtpbmQtc3BlY2lmaWMgZGF0YSB0aGF0 IHdlCisJCSAqIGRpZG4ndCBmZXRjaCBkdXJpbmcgZ2V0VGFibGVzKCkuCisJCSAqLwogCQlz d2l0Y2ggKHRiaW5mby0+cmVsa2luZCkKIAkJeworCQkJY2FzZSBSRUxLSU5EX1BBUlRJVElP TkVEX1RBQkxFOgorCQkJCXsKKwkJCQkJUFFFeHBCdWZmZXIgcXVlcnkgPSBjcmVhdGVQUUV4 cEJ1ZmZlcigpOworCQkJCQlQR3Jlc3VsdCAgICpyZXM7CisKKwkJCQkJcmVsdHlwZW5hbWUg PSAiVEFCTEUiOworCisJCQkJCS8qIHJldHJpZXZlIHBhcnRpdGlvbiBrZXkgZGVmaW5pdGlv biAqLworCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJCQkJCSAgIlNFTEVD VCBwZ19nZXRfcGFydGtleWRlZignJXUnKSIsCisJCQkJCQkJCQkgIHRiaW5mby0+ZG9iai5j YXRJZC5vaWQpOworCQkJCQlyZXMgPSBFeGVjdXRlU3FsUXVlcnlGb3JTaW5nbGVSb3coZm91 dCwgcXVlcnktPmRhdGEpOworCQkJCQlwYXJ0a2V5ZGVmID0gcGdfc3RyZHVwKFBRZ2V0dmFs dWUocmVzLCAwLCAwKSk7CisJCQkJCVBRY2xlYXIocmVzKTsKKwkJCQkJZGVzdHJveVBRRXhw QnVmZmVyKHF1ZXJ5KTsKKwkJCQkJYnJlYWs7CisJCQkJfQogCQkJY2FzZSBSRUxLSU5EX0ZP UkVJR05fVEFCTEU6CiAJCQkJewogCQkJCQlQUUV4cEJ1ZmZlciBxdWVyeSA9IGNyZWF0ZVBR RXhwQnVmZmVyKCk7CkBAIC0xNTg1OCw2ICsxNTg1MCw3IEBAIGR1bXBUYWJsZVNjaGVtYShB cmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCQlicmVhazsKIAkJCWRlZmF1 bHQ6CiAJCQkJcmVsdHlwZW5hbWUgPSAiVEFCTEUiOworCQkJCWJyZWFrOwogCQl9CiAKIAkJ bnVtUGFyZW50cyA9IHRiaW5mby0+bnVtUGFyZW50czsKQEAgLTE1ODc5LDggKzE1ODcyLDEw IEBAIGR1bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRiaW5mbykK IAkJICogQXR0YWNoIHRvIHR5cGUsIGlmIHJlbG9mdHlwZTsgZXhjZXB0IGluIGNhc2Ugb2Yg YSBiaW5hcnkgdXBncmFkZSwKIAkJICogd2UgZHVtcCB0aGUgdGFibGUgbm9ybWFsbHkgYW5k IGF0dGFjaCBpdCB0byB0aGUgdHlwZSBhZnRlcndhcmQuCiAJCSAqLwotCQlpZiAodGJpbmZv LT5yZWxvZnR5cGUgJiYgIWRvcHQtPmJpbmFyeV91cGdyYWRlKQotCQkJYXBwZW5kUFFFeHBC dWZmZXIocSwgIiBPRiAlcyIsIHRiaW5mby0+cmVsb2Z0eXBlKTsKKwkJaWYgKE9pZElzVmFs aWQodGJpbmZvLT5yZWxvZnR5cGUpICYmICFkb3B0LT5iaW5hcnlfdXBncmFkZSkKKwkJCWFw cGVuZFBRRXhwQnVmZmVyKHEsICIgT0YgJXMiLAorCQkJCQkJCSAgZ2V0Rm9ybWF0dGVkVHlw ZU5hbWUoZm91dCwgdGJpbmZvLT5yZWxvZnR5cGUsCisJCQkJCQkJCQkJCQkgICB6ZXJvQXNP cGFxdWUpKTsKIAogCQlpZiAodGJpbmZvLT5yZWxraW5kICE9IFJFTEtJTkRfTUFUVklFVykK IAkJewpAQCAtMTU5MTgsNyArMTU5MTMsOCBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAq Zm91dCwgVGFibGVJbmZvICp0YmluZm8pCiAJCQkJCSAqIFNraXAgY29sdW1uIGlmIGZ1bGx5 IGRlZmluZWQgYnkgcmVsb2Z0eXBlLCBleGNlcHQgaW4KIAkJCQkJICogYmluYXJ5IHVwZ3Jh ZGUKIAkJCQkJICovCi0JCQkJCWlmICh0YmluZm8tPnJlbG9mdHlwZSAmJiAhcHJpbnRfZGVm YXVsdCAmJiAhcHJpbnRfbm90bnVsbCAmJgorCQkJCQlpZiAoT2lkSXNWYWxpZCh0YmluZm8t PnJlbG9mdHlwZSkgJiYKKwkJCQkJCSFwcmludF9kZWZhdWx0ICYmICFwcmludF9ub3RudWxs ICYmCiAJCQkJCQkhZG9wdC0+YmluYXJ5X3VwZ3JhZGUpCiAJCQkJCQljb250aW51ZTsKIApA QCAtMTU5NTEsNyArMTU5NDcsNyBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwg VGFibGVJbmZvICp0YmluZm8pCiAJCQkJCSAqIHRhYmxlICgnT0YgdHlwZV9uYW1lJyksIGJ1 dCBpbiBiaW5hcnktdXBncmFkZSBtb2RlLAogCQkJCQkgKiBwcmludCBpdCBpbiB0aGF0IGNh c2UgdG9vLgogCQkJCQkgKi8KLQkJCQkJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRlIHx8ICF0 YmluZm8tPnJlbG9mdHlwZSkKKwkJCQkJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRlIHx8ICFP aWRJc1ZhbGlkKHRiaW5mby0+cmVsb2Z0eXBlKSkKIAkJCQkJewogCQkJCQkJYXBwZW5kUFFF eHBCdWZmZXIocSwgIiAlcyIsCiAJCQkJCQkJCQkJICB0YmluZm8tPmF0dHR5cG5hbWVzW2pd KTsKQEAgLTE2MDE0LDcgKzE2MDEwLDcgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZv dXQsIFRhYmxlSW5mbyAqdGJpbmZvKQogCiAJCQlpZiAoYWN0dWFsX2F0dHMpCiAJCQkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocSwgIlxuKSIpOwotCQkJZWxzZSBpZiAoISh0YmluZm8tPnJl bG9mdHlwZSAmJiAhZG9wdC0+YmluYXJ5X3VwZ3JhZGUpKQorCQkJZWxzZSBpZiAoIShPaWRJ c1ZhbGlkKHRiaW5mby0+cmVsb2Z0eXBlKSAmJiAhZG9wdC0+YmluYXJ5X3VwZ3JhZGUpKQog CQkJewogCQkJCS8qCiAJCQkJICogTm8gYXR0cmlidXRlcz8gd2UgbXVzdCBoYXZlIGEgcGFy ZW50aGVzaXplZCBhdHRyaWJ1dGUgbGlzdCwKQEAgLTE2MDQzLDcgKzE2MDM5LDcgQEAgZHVt cFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJpbmZvKQogCQkJfQog CiAJCQlpZiAodGJpbmZvLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUp Ci0JCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIlxuUEFSVElUSU9OIEJZICVzIiwgdGJpbmZv LT5wYXJ0a2V5ZGVmKTsKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiXG5QQVJUSVRJT04g QlkgJXMiLCBwYXJ0a2V5ZGVmKTsKIAogCQkJaWYgKHRiaW5mby0+cmVsa2luZCA9PSBSRUxL SU5EX0ZPUkVJR05fVEFCTEUpCiAJCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIlxuU0VSVkVS ICVzIiwgZm10SWQoc3J2bmFtZSkpOwpAQCAtMTYyMjcsMTIgKzE2MjIzLDEzIEBAIGR1bXBU YWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCQl9CiAJ CQl9CiAKLQkJCWlmICh0YmluZm8tPnJlbG9mdHlwZSkKKwkJCWlmIChPaWRJc1ZhbGlkKHRi aW5mby0+cmVsb2Z0eXBlKSkKIAkJCXsKIAkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLCAi XG4tLSBGb3IgYmluYXJ5IHVwZ3JhZGUsIHNldCB1cCB0eXBlZCB0YWJsZXMgdGhpcyB3YXku XG4iKTsKIAkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiQUxURVIgVEFCTEUgT05MWSAlcyBP RiAlcztcbiIsCiAJCQkJCQkJCSAgcXVhbHJlbG5hbWUsCi0JCQkJCQkJCSAgdGJpbmZvLT5y ZWxvZnR5cGUpOworCQkJCQkJCQkgIGdldEZvcm1hdHRlZFR5cGVOYW1lKGZvdXQsIHRiaW5m by0+cmVsb2Z0eXBlLAorCQkJCQkJCQkJCQkJCSAgIHplcm9Bc09wYXF1ZSkpOwogCQkJfQog CQl9CiAKQEAgLTE2MjQ1LDE2ICsxNjI0MiwzMiBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2 ZSAqZm91dCwgVGFibGVJbmZvICp0YmluZm8pCiAJCSAqLwogCQlpZiAodGJpbmZvLT5pc3Bh cnRpdGlvbikKIAkJeworCQkJUEdyZXN1bHQgICAqYXJlczsKKwkJCWNoYXIgICAgICAgKnBh cnRib3VuZDsKKwkJCVBRRXhwQnVmZmVyIHEyOworCiAJCQkvKiBXaXRoIHBhcnRpdGlvbnMg dGhlcmUgY2FuIG9ubHkgYmUgb25lIHBhcmVudCAqLwogCQkJaWYgKHRiaW5mby0+bnVtUGFy ZW50cyAhPSAxKQogCQkJCWZhdGFsKCJpbnZhbGlkIG51bWJlciBvZiBwYXJlbnRzICVkIGZv ciB0YWJsZSBcIiVzXCIiLAogCQkJCQkgIHRiaW5mby0+bnVtUGFyZW50cywgdGJpbmZvLT5k b2JqLm5hbWUpOwogCisJCQlxMiA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJCQkvKiBGZXRj aCB0aGUgcGFydGl0aW9uJ3MgcGFydGJvdW5kICovCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihx MiwKKwkJCQkJCQkgICJTRUxFQ1QgcGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lk KSAiCisJCQkJCQkJICAiRlJPTSBwZ19jbGFzcyBjICIKKwkJCQkJCQkgICJXSEVSRSBjLm9p ZCA9ICcldSciLAorCQkJCQkJCSAgdGJpbmZvLT5kb2JqLmNhdElkLm9pZCk7CisJCQlhcmVz ID0gRXhlY3V0ZVNxbFF1ZXJ5Rm9yU2luZ2xlUm93KGZvdXQsIHEyLT5kYXRhKTsKKwkJCXBh cnRib3VuZCA9IFBRZ2V0dmFsdWUoYXJlcywgMCwgMCk7CisKIAkJCS8qIFBlcmZvcm0gQUxU RVIgVEFCTEUgb24gdGhlIHBhcmVudCAqLwogCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwKIAkJ CQkJCQkgICJBTFRFUiBUQUJMRSBPTkxZICVzIEFUVEFDSCBQQVJUSVRJT04gJXMgJXM7XG4i LAogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUocGFyZW50c1swXSksCi0JCQkJCQkJ ICBxdWFscmVsbmFtZSwgdGJpbmZvLT5wYXJ0Ym91bmQpOworCQkJCQkJCSAgcXVhbHJlbG5h bWUsIHBhcnRib3VuZCk7CisJCQlQUWNsZWFyKGFyZXMpOworCQkJZGVzdHJveVBRRXhwQnVm ZmVyKHEyKTsKIAkJfQogCiAJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCAwYTI5OTE5YzEzLi43 YzkzZmEzYzBlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTI4OCw3ICsyODgsNyBAQCB0eXBlZGVm IHN0cnVjdCBfdGFibGVJbmZvCiAJdWludDMyCQl0b2FzdF9mcm96ZW54aWQ7CS8qIHRvYXN0 IHRhYmxlJ3MgcmVsZnJvemVueGlkLCBpZiBhbnkgKi8KIAl1aW50MzIJCXRvYXN0X21pbm14 aWQ7CS8qIHRvYXN0IHRhYmxlJ3MgcmVsbWlubXhpZCAqLwogCWludAkJCW5jaGVjazsJCQkv KiAjIG9mIENIRUNLIGV4cHJlc3Npb25zICovCi0JY2hhcgkgICAqcmVsb2Z0eXBlOwkJLyog dW5kZXJseWluZyB0eXBlIGZvciB0eXBlZCB0YWJsZSAqLworCU9pZAkgICByZWxvZnR5cGU7 CQkvKiB1bmRlcmx5aW5nIHR5cGUgZm9yIHR5cGVkIHRhYmxlICovCiAJLyogdGhlc2UgdHdv IGFyZSBzZXQgb25seSBpZiB0YWJsZSBpcyBhIHNlcXVlbmNlIG93bmVkIGJ5IGEgY29sdW1u OiAqLwogCU9pZAkJCW93bmluZ190YWI7CQkvKiBPSUQgb2YgdGFibGUgb3duaW5nIHNlcXVl bmNlICovCiAJaW50CQkJb3duaW5nX2NvbDsJCS8qIGF0dHIgIyBvZiBjb2x1bW4gb3duaW5n IHNlcXVlbmNlICovCkBAIC0zMjUsOCArMzI1LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX3RhYmxl SW5mbwogCWJvb2wJICAgKmluaE5vdE51bGw7CQkvKiB0cnVlIGlmIE5PVCBOVUxMIGlzIGlu aGVyaXRlZCAqLwogCXN0cnVjdCBfYXR0ckRlZkluZm8gKiphdHRyZGVmczsgLyogREVGQVVM VCBleHByZXNzaW9ucyAqLwogCXN0cnVjdCBfY29uc3RyYWludEluZm8gKmNoZWNrZXhwcnM7 IC8qIENIRUNLIGNvbnN0cmFpbnRzICovCi0JY2hhcgkgICAqcGFydGtleWRlZjsJCS8qIHBh cnRpdGlvbiBrZXkgZGVmaW5pdGlvbiAqLwotCWNoYXIJICAgKnBhcnRib3VuZDsJCS8qIHBh cnRpdGlvbiBib3VuZCBkZWZpbml0aW9uICovCiAJYm9vbAkJbmVlZHNfb3ZlcnJpZGU7IC8q IGhhcyBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZICovCiAJY2hhcgkgICAqYW1uYW1l OwkJCS8qIHJlbGF0aW9uIGFjY2VzcyBtZXRob2QgKi8KIAo= --------------eSTz3TyN3jYSyhRd41a1TRSF Content-Type: text/x-patch; charset=UTF-8; name="0004-move-unsafe-function-calls-11-backport-1.patch" Content-Disposition: attachment; filename="0004-move-unsafe-function-calls-11-backport-1.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCmluZGV4IDg1NTRiNmVlYjEuLjFkNzBmZjg0YzYgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwpAQCAtNTk2NSwxMyArNTk2NSwxNCBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwg aW50ICpudW1UYWJsZXMpCiAJaW50CQkJaV9yZWxwYWdlczsKIAlpbnQJCQlpX2lzX2lkZW50 aXR5X3NlcXVlbmNlOwogCWludAkJCWlfY2hhbmdlZF9hY2w7Ci0JaW50CQkJaV9wYXJ0a2V5 ZGVmOwogCWludAkJCWlfaXNwYXJ0aXRpb247Ci0JaW50CQkJaV9wYXJ0Ym91bmQ7CiAKIAkv KgogCSAqIEZpbmQgYWxsIHRoZSB0YWJsZXMgYW5kIHRhYmxlLWxpa2Ugb2JqZWN0cy4KIAkg KgorCSAqIFdlIG11c3QgZmV0Y2ggYWxsIHRhYmxlcyBpbiB0aGlzIHBoYXNlIGJlY2F1c2Ug b3RoZXJ3aXNlIHdlIGNhbm5vdAorCSAqIGNvcnJlY3RseSBpZGVudGlmeSBpbmhlcml0ZWQg Y29sdW1ucywgb3duZWQgc2VxdWVuY2VzLCBldGMuCisJICoKIAkgKiBXZSBpbmNsdWRlIHN5 c3RlbSBjYXRhbG9ncywgc28gdGhhdCB3ZSBjYW4gd29yayBpZiBhIHVzZXIgdGFibGUgaXMK IAkgKiBkZWZpbmVkIHRvIGluaGVyaXQgZnJvbSBhIHN5c3RlbSBjYXRhbG9nIChwcmV0dHkg d2VpcmQsIGJ1dC4uLikKIAkgKgpAQCAtNTk4NSwxNSArNTk4NiwxNSBAQCBnZXRUYWJsZXMo QXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJICoKIAkgKiBOb3RlOiBpbiB0aGlz IHBoYXNlIHdlIHNob3VsZCBjb2xsZWN0IG9ubHkgYSBtaW5pbWFsIGFtb3VudCBvZgogCSAq IGluZm9ybWF0aW9uIGFib3V0IGVhY2ggdGFibGUsIGJhc2ljYWxseSBqdXN0IGVub3VnaCB0 byBkZWNpZGUgaWYgaXQgaXMKLQkgKiBpbnRlcmVzdGluZy4gV2UgbXVzdCBmZXRjaCBhbGwg dGFibGVzIGluIHRoaXMgcGhhc2UgYmVjYXVzZSBvdGhlcndpc2UKLQkgKiB3ZSBjYW5ub3Qg Y29ycmVjdGx5IGlkZW50aWZ5IGluaGVyaXRlZCBjb2x1bW5zLCBvd25lZCBzZXF1ZW5jZXMs IGV0Yy4KKwkgKiBpbnRlcmVzdGluZy4gIEluIHBhcnRpY3VsYXIsIHNpbmNlIHdlIGRvIG5v dCB5ZXQgaGF2ZSBsb2NrIG9uIGFueSB1c2VyCisJICogdGFibGUsIHdlIE1VU1QgTk9UIGlu dm9rZSBhbnkgc2VydmVyLXNpZGUgZGF0YSBjb2xsZWN0aW9uIGZ1bmN0aW9ucworCSAqIChm b3IgaW5zdGFuY2UsIHBnX2dldF9wYXJ0a2V5ZGVmKCkpLiAgVGhvc2UgYXJlIGxpa2VseSB0 byBmYWlsIG9yIGdpdmUKKwkgKiB3cm9uZyBhbnN3ZXJzIGlmIGFueSBjb25jdXJyZW50IERE TCBpcyBoYXBwZW5pbmcuCiAJICovCiAKIAlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSA5 MDYwMCkKIAl7Ci0JCWNoYXIJICAgKnBhcnRrZXlkZWYgPSAiTlVMTCI7CiAJCWNoYXIJICAg KmlzcGFydGl0aW9uID0gImZhbHNlIjsKLQkJY2hhcgkgICAqcGFydGJvdW5kID0gIk5VTEwi OwogCiAJCVBRRXhwQnVmZmVyIGFjbF9zdWJxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7 CiAJCVBRRXhwQnVmZmVyIHJhY2xfc3VicXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOwpA QCAtNjAxMSwxMSArNjAxMiw3IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51 bVRhYmxlcykKIAkJICovCiAKIAkJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTAwMDAw KQotCQl7Ci0JCQlwYXJ0a2V5ZGVmID0gInBnX2dldF9wYXJ0a2V5ZGVmKGMub2lkKSI7CiAJ CQlpc3BhcnRpdGlvbiA9ICJjLnJlbGlzcGFydGl0aW9uIjsKLQkJCXBhcnRib3VuZCA9ICJw Z19nZXRfZXhwcihjLnJlbHBhcnRib3VuZCwgYy5vaWQpIjsKLQkJfQogCiAJCS8qCiAJCSAq IExlZnQgam9pbiB0byBwaWNrIHVwIGRlcGVuZGVuY3kgaW5mbyBsaW5raW5nIHNlcXVlbmNl cyB0byB0aGVpcgpAQCAtNjA0OSw3ICs2MDQ2LDcgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZv dXQsIGludCAqbnVtVGFibGVzKQogCQkJCQkJICAidGMucmVsbWlubXhpZCBBUyB0bWlubXhp ZCwgIgogCQkJCQkJICAiYy5yZWxwZXJzaXN0ZW5jZSwgYy5yZWxpc3BvcHVsYXRlZCwgIgog CQkJCQkJICAiYy5yZWxyZXBsaWRlbnQsIGMucmVscGFnZXMsICIKLQkJCQkJCSAgIkNBU0Ug V0hFTiBjLnJlbG9mdHlwZSA8PiAwIFRIRU4gYy5yZWxvZnR5cGU6OnBnX2NhdGFsb2cucmVn dHlwZSBFTFNFIE5VTEwgRU5EIEFTIHJlbG9mdHlwZSwgIgorCQkJCQkJICAiYy5yZWxvZnR5 cGUsICIKIAkJCQkJCSAgImQucmVmb2JqaWQgQVMgb3duaW5nX3RhYiwgIgogCQkJCQkJICAi ZC5yZWZvYmpzdWJpZCBBUyBvd25pbmdfY29sLCAiCiAJCQkJCQkgICIoU0VMRUNUIHNwY25h bWUgRlJPTSBwZ190YWJsZXNwYWNlIHQgV0hFUkUgdC5vaWQgPSBjLnJlbHRhYmxlc3BhY2Up IEFTIHJlbHRhYmxlc3BhY2UsICIKQEAgLTYwNjksOSArNjA2Niw3IEBAIGdldFRhYmxlcyhB cmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAkJCQkJCSAgIk9SICVzIElTIE5PVCBO VUxMIgogCQkJCQkJICAiKSkiCiAJCQkJCQkgICJBUyBjaGFuZ2VkX2FjbCwgIgotCQkJCQkJ ICAiJXMgQVMgcGFydGtleWRlZiwgIgotCQkJCQkJICAiJXMgQVMgaXNwYXJ0aXRpb24sICIK LQkJCQkJCSAgIiVzIEFTIHBhcnRib3VuZCAiCisJCQkJCQkgICIlcyBBUyBpc3BhcnRpdGlv biAiCiAJCQkJCQkgICJGUk9NIHBnX2NsYXNzIGMgIgogCQkJCQkJICAiTEVGVCBKT0lOIHBn X2RlcGVuZCBkIE9OICIKIAkJCQkJCSAgIihjLnJlbGtpbmQgPSAnJWMnIEFORCAiCkBAIC02 MDk1LDkgKzYwOTAsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJs ZXMpCiAJCQkJCQkgIGF0dHJhY2xfc3VicXVlcnktPmRhdGEsCiAJCQkJCQkgIGF0dGluaXRh Y2xfc3VicXVlcnktPmRhdGEsCiAJCQkJCQkgIGF0dGluaXRyYWNsX3N1YnF1ZXJ5LT5kYXRh LAotCQkJCQkJICBwYXJ0a2V5ZGVmLAogCQkJCQkJICBpc3BhcnRpdGlvbiwKLQkJCQkJCSAg cGFydGJvdW5kLAogCQkJCQkJICBSRUxLSU5EX1NFUVVFTkNFLAogCQkJCQkJICBSRUxLSU5E X1JFTEFUSU9OLCBSRUxLSU5EX1NFUVVFTkNFLAogCQkJCQkJICBSRUxLSU5EX1ZJRVcsIFJF TEtJTkRfQ09NUE9TSVRFX1RZUEUsCkBAIC02MTM1LDcgKzYxMjgsNyBAQCBnZXRUYWJsZXMo QXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJCQkJCQkgICJ0Yy5yZWxtaW5teGlk IEFTIHRtaW5teGlkLCAiCiAJCQkJCQkgICJjLnJlbHBlcnNpc3RlbmNlLCBjLnJlbGlzcG9w dWxhdGVkLCAiCiAJCQkJCQkgICJjLnJlbHJlcGxpZGVudCwgYy5yZWxwYWdlcywgIgotCQkJ CQkJICAiQ0FTRSBXSEVOIGMucmVsb2Z0eXBlIDw+IDAgVEhFTiBjLnJlbG9mdHlwZTo6cGdf Y2F0YWxvZy5yZWd0eXBlIEVMU0UgTlVMTCBFTkQgQVMgcmVsb2Z0eXBlLCAiCisJCQkJCQkg ICJjLnJlbG9mdHlwZSwgIgogCQkJCQkJICAiZC5yZWZvYmppZCBBUyBvd25pbmdfdGFiLCAi CiAJCQkJCQkgICJkLnJlZm9ianN1YmlkIEFTIG93bmluZ19jb2wsICIKIAkJCQkJCSAgIihT RUxFQ1Qgc3BjbmFtZSBGUk9NIHBnX3RhYmxlc3BhY2UgdCBXSEVSRSB0Lm9pZCA9IGMucmVs dGFibGVzcGFjZSkgQVMgcmVsdGFibGVzcGFjZSwgIgpAQCAtNjE0NCw5ICs2MTM3LDcgQEAg Z2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJCQkJICAiV0hF TiAnY2hlY2tfb3B0aW9uPWNhc2NhZGVkJyA9IEFOWSAoYy5yZWxvcHRpb25zKSBUSEVOICdD QVNDQURFRCc6OnRleHQgRUxTRSBOVUxMIEVORCBBUyBjaGVja29wdGlvbiwgIgogCQkJCQkJ ICAidGMucmVsb3B0aW9ucyBBUyB0b2FzdF9yZWxvcHRpb25zLCAiCiAJCQkJCQkgICJOVUxM IEFTIGNoYW5nZWRfYWNsLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRrZXlkZWYsICIKLQkJ CQkJCSAgImZhbHNlIEFTIGlzcGFydGl0aW9uLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRi b3VuZCAiCisJCQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiAiCiAJCQkJCQkgICJGUk9N IHBnX2NsYXNzIGMgIgogCQkJCQkJICAiTEVGVCBKT0lOIHBnX2RlcGVuZCBkIE9OICIKIAkJ CQkJCSAgIihjLnJlbGtpbmQgPSAnJWMnIEFORCAiCkBAIC02MTg0LDcgKzYxNzUsNyBAQCBn ZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJCQkJCQkgICJ0Yy5y ZWxtaW5teGlkIEFTIHRtaW5teGlkLCAiCiAJCQkJCQkgICJjLnJlbHBlcnNpc3RlbmNlLCBj LnJlbGlzcG9wdWxhdGVkLCAiCiAJCQkJCQkgICJjLnJlbHJlcGxpZGVudCwgYy5yZWxwYWdl cywgIgotCQkJCQkJICAiQ0FTRSBXSEVOIGMucmVsb2Z0eXBlIDw+IDAgVEhFTiBjLnJlbG9m dHlwZTo6cGdfY2F0YWxvZy5yZWd0eXBlIEVMU0UgTlVMTCBFTkQgQVMgcmVsb2Z0eXBlLCAi CisJCQkJCQkgICJjLnJlbG9mdHlwZSwgIgogCQkJCQkJICAiZC5yZWZvYmppZCBBUyBvd25p bmdfdGFiLCAiCiAJCQkJCQkgICJkLnJlZm9ianN1YmlkIEFTIG93bmluZ19jb2wsICIKIAkJ CQkJCSAgIihTRUxFQ1Qgc3BjbmFtZSBGUk9NIHBnX3RhYmxlc3BhY2UgdCBXSEVSRSB0Lm9p ZCA9IGMucmVsdGFibGVzcGFjZSkgQVMgcmVsdGFibGVzcGFjZSwgIgpAQCAtNjE5Myw5ICs2 MTg0LDcgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJ CQkJICAiV0hFTiAnY2hlY2tfb3B0aW9uPWNhc2NhZGVkJyA9IEFOWSAoYy5yZWxvcHRpb25z KSBUSEVOICdDQVNDQURFRCc6OnRleHQgRUxTRSBOVUxMIEVORCBBUyBjaGVja29wdGlvbiwg IgogCQkJCQkJICAidGMucmVsb3B0aW9ucyBBUyB0b2FzdF9yZWxvcHRpb25zLCAiCiAJCQkJ CQkgICJOVUxMIEFTIGNoYW5nZWRfYWNsLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRrZXlk ZWYsICIKLQkJCQkJCSAgImZhbHNlIEFTIGlzcGFydGl0aW9uLCAiCi0JCQkJCQkgICJOVUxM IEFTIHBhcnRib3VuZCAiCisJCQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiAiCiAJCQkJ CQkgICJGUk9NIHBnX2NsYXNzIGMgIgogCQkJCQkJICAiTEVGVCBKT0lOIHBnX2RlcGVuZCBk IE9OICIKIAkJCQkJCSAgIihjLnJlbGtpbmQgPSAnJWMnIEFORCAiCkBAIC02MjMzLDcgKzYy MjIsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJCQkJ CQkgICJ0Yy5yZWxtaW5teGlkIEFTIHRtaW5teGlkLCAiCiAJCQkJCQkgICJjLnJlbHBlcnNp c3RlbmNlLCBjLnJlbGlzcG9wdWxhdGVkLCAiCiAJCQkJCQkgICInZCcgQVMgcmVscmVwbGlk ZW50LCBjLnJlbHBhZ2VzLCAiCi0JCQkJCQkgICJDQVNFIFdIRU4gYy5yZWxvZnR5cGUgPD4g MCBUSEVOIGMucmVsb2Z0eXBlOjpwZ19jYXRhbG9nLnJlZ3R5cGUgRUxTRSBOVUxMIEVORCBB UyByZWxvZnR5cGUsICIKKwkJCQkJCSAgImMucmVsb2Z0eXBlLCAiCiAJCQkJCQkgICJkLnJl Zm9iamlkIEFTIG93bmluZ190YWIsICIKIAkJCQkJCSAgImQucmVmb2Jqc3ViaWQgQVMgb3du aW5nX2NvbCwgIgogCQkJCQkJICAiKFNFTEVDVCBzcGNuYW1lIEZST00gcGdfdGFibGVzcGFj ZSB0IFdIRVJFIHQub2lkID0gYy5yZWx0YWJsZXNwYWNlKSBBUyByZWx0YWJsZXNwYWNlLCAi CkBAIC02MjQyLDkgKzYyMzEsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpu dW1UYWJsZXMpCiAJCQkJCQkgICJXSEVOICdjaGVja19vcHRpb249Y2FzY2FkZWQnID0gQU5Z IChjLnJlbG9wdGlvbnMpIFRIRU4gJ0NBU0NBREVEJzo6dGV4dCBFTFNFIE5VTEwgRU5EIEFT IGNoZWNrb3B0aW9uLCAiCiAJCQkJCQkgICJ0Yy5yZWxvcHRpb25zIEFTIHRvYXN0X3JlbG9w dGlvbnMsICIKIAkJCQkJCSAgIk5VTEwgQVMgY2hhbmdlZF9hY2wsICIKLQkJCQkJCSAgIk5V TEwgQVMgcGFydGtleWRlZiwgIgotCQkJCQkJICAiZmFsc2UgQVMgaXNwYXJ0aXRpb24sICIK LQkJCQkJCSAgIk5VTEwgQVMgcGFydGJvdW5kICIKKwkJCQkJCSAgImZhbHNlIEFTIGlzcGFy dGl0aW9uICIKIAkJCQkJCSAgIkZST00gcGdfY2xhc3MgYyAiCiAJCQkJCQkgICJMRUZUIEpP SU4gcGdfZGVwZW5kIGQgT04gIgogCQkJCQkJICAiKGMucmVsa2luZCA9ICclYycgQU5EICIK QEAgLTYyODIsMTYgKzYyNjksMTQgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAq bnVtVGFibGVzKQogCQkJCQkJICAiMCBBUyB0bWlubXhpZCwgIgogCQkJCQkJICAiYy5yZWxw ZXJzaXN0ZW5jZSwgJ3QnIGFzIHJlbGlzcG9wdWxhdGVkLCAiCiAJCQkJCQkgICInZCcgQVMg cmVscmVwbGlkZW50LCBjLnJlbHBhZ2VzLCAiCi0JCQkJCQkgICJDQVNFIFdIRU4gYy5yZWxv ZnR5cGUgPD4gMCBUSEVOIGMucmVsb2Z0eXBlOjpwZ19jYXRhbG9nLnJlZ3R5cGUgRUxTRSBO VUxMIEVORCBBUyByZWxvZnR5cGUsICIKKwkJCQkJCSAgImMucmVsb2Z0eXBlLCAiCiAJCQkJ CQkgICJkLnJlZm9iamlkIEFTIG93bmluZ190YWIsICIKIAkJCQkJCSAgImQucmVmb2Jqc3Vi aWQgQVMgb3duaW5nX2NvbCwgIgogCQkJCQkJICAiKFNFTEVDVCBzcGNuYW1lIEZST00gcGdf dGFibGVzcGFjZSB0IFdIRVJFIHQub2lkID0gYy5yZWx0YWJsZXNwYWNlKSBBUyByZWx0YWJs ZXNwYWNlLCAiCiAJCQkJCQkgICJjLnJlbG9wdGlvbnMgQVMgcmVsb3B0aW9ucywgIgogCQkJ CQkJICAidGMucmVsb3B0aW9ucyBBUyB0b2FzdF9yZWxvcHRpb25zLCAiCiAJCQkJCQkgICJO VUxMIEFTIGNoYW5nZWRfYWNsLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRrZXlkZWYsICIK LQkJCQkJCSAgImZhbHNlIEFTIGlzcGFydGl0aW9uLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBh cnRib3VuZCAiCisJCQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiAiCiAJCQkJCQkgICJG Uk9NIHBnX2NsYXNzIGMgIgogCQkJCQkJICAiTEVGVCBKT0lOIHBnX2RlcGVuZCBkIE9OICIK IAkJCQkJCSAgIihjLnJlbGtpbmQgPSAnJWMnIEFORCAiCkBAIC02MzI5LDE2ICs2MzE0LDE0 IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAkJCQkJCSAg IjAgQVMgdG1pbm14aWQsICIKIAkJCQkJCSAgIidwJyBBUyByZWxwZXJzaXN0ZW5jZSwgJ3Qn IGFzIHJlbGlzcG9wdWxhdGVkLCAiCiAJCQkJCQkgICInZCcgQVMgcmVscmVwbGlkZW50LCBj LnJlbHBhZ2VzLCAiCi0JCQkJCQkgICJDQVNFIFdIRU4gYy5yZWxvZnR5cGUgPD4gMCBUSEVO IGMucmVsb2Z0eXBlOjpwZ19jYXRhbG9nLnJlZ3R5cGUgRUxTRSBOVUxMIEVORCBBUyByZWxv ZnR5cGUsICIKKwkJCQkJCSAgImMucmVsb2Z0eXBlLCAiCiAJCQkJCQkgICJkLnJlZm9iamlk IEFTIG93bmluZ190YWIsICIKIAkJCQkJCSAgImQucmVmb2Jqc3ViaWQgQVMgb3duaW5nX2Nv bCwgIgogCQkJCQkJICAiKFNFTEVDVCBzcGNuYW1lIEZST00gcGdfdGFibGVzcGFjZSB0IFdI RVJFIHQub2lkID0gYy5yZWx0YWJsZXNwYWNlKSBBUyByZWx0YWJsZXNwYWNlLCAiCiAJCQkJ CQkgICJjLnJlbG9wdGlvbnMgQVMgcmVsb3B0aW9ucywgIgogCQkJCQkJICAidGMucmVsb3B0 aW9ucyBBUyB0b2FzdF9yZWxvcHRpb25zLCAiCiAJCQkJCQkgICJOVUxMIEFTIGNoYW5nZWRf YWNsLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRrZXlkZWYsICIKLQkJCQkJCSAgImZhbHNl IEFTIGlzcGFydGl0aW9uLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRib3VuZCAiCisJCQkJ CQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiAiCiAJCQkJCQkgICJGUk9NIHBnX2NsYXNzIGMg IgogCQkJCQkJICAiTEVGVCBKT0lOIHBnX2RlcGVuZCBkIE9OICIKIAkJCQkJCSAgIihjLnJl bGtpbmQgPSAnJWMnIEFORCAiCkBAIC02Mzc1LDE2ICs2MzU4LDE0IEBAIGdldFRhYmxlcyhB cmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykKIAkJCQkJCSAgIjAgQVMgdG1pbm14aWQs ICIKIAkJCQkJCSAgIidwJyBBUyByZWxwZXJzaXN0ZW5jZSwgJ3QnIGFzIHJlbGlzcG9wdWxh dGVkLCAiCiAJCQkJCQkgICInZCcgQVMgcmVscmVwbGlkZW50LCBjLnJlbHBhZ2VzLCAiCi0J CQkJCQkgICJOVUxMIEFTIHJlbG9mdHlwZSwgIgorCQkJCQkJICAiMCBBUyByZWxvZnR5cGUs ICIKIAkJCQkJCSAgImQucmVmb2JqaWQgQVMgb3duaW5nX3RhYiwgIgogCQkJCQkJICAiZC5y ZWZvYmpzdWJpZCBBUyBvd25pbmdfY29sLCAiCiAJCQkJCQkgICIoU0VMRUNUIHNwY25hbWUg RlJPTSBwZ190YWJsZXNwYWNlIHQgV0hFUkUgdC5vaWQgPSBjLnJlbHRhYmxlc3BhY2UpIEFT IHJlbHRhYmxlc3BhY2UsICIKIAkJCQkJCSAgImMucmVsb3B0aW9ucyBBUyByZWxvcHRpb25z LCAiCiAJCQkJCQkgICJ0Yy5yZWxvcHRpb25zIEFTIHRvYXN0X3JlbG9wdGlvbnMsICIKIAkJ CQkJCSAgIk5VTEwgQVMgY2hhbmdlZF9hY2wsICIKLQkJCQkJCSAgIk5VTEwgQVMgcGFydGtl eWRlZiwgIgotCQkJCQkJICAiZmFsc2UgQVMgaXNwYXJ0aXRpb24sICIKLQkJCQkJCSAgIk5V TEwgQVMgcGFydGJvdW5kICIKKwkJCQkJCSAgImZhbHNlIEFTIGlzcGFydGl0aW9uICIKIAkJ CQkJCSAgIkZST00gcGdfY2xhc3MgYyAiCiAJCQkJCQkgICJMRUZUIEpPSU4gcGdfZGVwZW5k IGQgT04gIgogCQkJCQkJICAiKGMucmVsa2luZCA9ICclYycgQU5EICIKQEAgLTY0MjEsMTYg KzY0MDIsMTQgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQog CQkJCQkJICAiMCBBUyB0bWlubXhpZCwgIgogCQkJCQkJICAiJ3AnIEFTIHJlbHBlcnNpc3Rl bmNlLCAndCcgYXMgcmVsaXNwb3B1bGF0ZWQsICIKIAkJCQkJCSAgIidkJyBBUyByZWxyZXBs aWRlbnQsIGMucmVscGFnZXMsICIKLQkJCQkJCSAgIk5VTEwgQVMgcmVsb2Z0eXBlLCAiCisJ CQkJCQkgICIwIEFTIHJlbG9mdHlwZSwgIgogCQkJCQkJICAiZC5yZWZvYmppZCBBUyBvd25p bmdfdGFiLCAiCiAJCQkJCQkgICJkLnJlZm9ianN1YmlkIEFTIG93bmluZ19jb2wsICIKIAkJ CQkJCSAgIihTRUxFQ1Qgc3BjbmFtZSBGUk9NIHBnX3RhYmxlc3BhY2UgdCBXSEVSRSB0Lm9p ZCA9IGMucmVsdGFibGVzcGFjZSkgQVMgcmVsdGFibGVzcGFjZSwgIgogCQkJCQkJICAiYy5y ZWxvcHRpb25zIEFTIHJlbG9wdGlvbnMsICIKIAkJCQkJCSAgIk5VTEwgQVMgdG9hc3RfcmVs b3B0aW9ucywgIgogCQkJCQkJICAiTlVMTCBBUyBjaGFuZ2VkX2FjbCwgIgotCQkJCQkJICAi TlVMTCBBUyBwYXJ0a2V5ZGVmLCAiCi0JCQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiwg IgotCQkJCQkJICAiTlVMTCBBUyBwYXJ0Ym91bmQgIgorCQkJCQkJICAiZmFsc2UgQVMgaXNw YXJ0aXRpb24gIgogCQkJCQkJICAiRlJPTSBwZ19jbGFzcyBjICIKIAkJCQkJCSAgIkxFRlQg Sk9JTiBwZ19kZXBlbmQgZCBPTiAiCiAJCQkJCQkgICIoYy5yZWxraW5kID0gJyVjJyBBTkQg IgpAQCAtNjQ2NiwxNiArNjQ0NSwxNCBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50 ICpudW1UYWJsZXMpCiAJCQkJCQkgICIwIEFTIHRmcm96ZW54aWQsIDAgQVMgdG1pbm14aWQs IgogCQkJCQkJICAiJ3AnIEFTIHJlbHBlcnNpc3RlbmNlLCAndCcgYXMgcmVsaXNwb3B1bGF0 ZWQsICIKIAkJCQkJCSAgIidkJyBBUyByZWxyZXBsaWRlbnQsIHJlbHBhZ2VzLCAiCi0JCQkJ CQkgICJOVUxMIEFTIHJlbG9mdHlwZSwgIgorCQkJCQkJICAiMCBBUyByZWxvZnR5cGUsICIK IAkJCQkJCSAgImQucmVmb2JqaWQgQVMgb3duaW5nX3RhYiwgIgogCQkJCQkJICAiZC5yZWZv YmpzdWJpZCBBUyBvd25pbmdfY29sLCAiCiAJCQkJCQkgICIoU0VMRUNUIHNwY25hbWUgRlJP TSBwZ190YWJsZXNwYWNlIHQgV0hFUkUgdC5vaWQgPSBjLnJlbHRhYmxlc3BhY2UpIEFTIHJl bHRhYmxlc3BhY2UsICIKIAkJCQkJCSAgIk5VTEwgQVMgcmVsb3B0aW9ucywgIgogCQkJCQkJ ICAiTlVMTCBBUyB0b2FzdF9yZWxvcHRpb25zLCAiCiAJCQkJCQkgICJOVUxMIEFTIGNoYW5n ZWRfYWNsLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRrZXlkZWYsICIKLQkJCQkJCSAgImZh bHNlIEFTIGlzcGFydGl0aW9uLCAiCi0JCQkJCQkgICJOVUxMIEFTIHBhcnRib3VuZCAiCisJ CQkJCQkgICJmYWxzZSBBUyBpc3BhcnRpdGlvbiAiCiAJCQkJCQkgICJGUk9NIHBnX2NsYXNz IGMgIgogCQkJCQkJICAiTEVGVCBKT0lOIHBnX2RlcGVuZCBkIE9OICIKIAkJCQkJCSAgIihj LnJlbGtpbmQgPSAnJWMnIEFORCAiCkBAIC02NTQyLDkgKzY1MTksNyBAQCBnZXRUYWJsZXMo QXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJaV9yZWxvZnR5cGUgPSBQUWZudW1i ZXIocmVzLCAicmVsb2Z0eXBlIik7CiAJaV9pc19pZGVudGl0eV9zZXF1ZW5jZSA9IFBRZm51 bWJlcihyZXMsICJpc19pZGVudGl0eV9zZXF1ZW5jZSIpOwogCWlfY2hhbmdlZF9hY2wgPSBQ UWZudW1iZXIocmVzLCAiY2hhbmdlZF9hY2wiKTsKLQlpX3BhcnRrZXlkZWYgPSBQUWZudW1i ZXIocmVzLCAicGFydGtleWRlZiIpOwogCWlfaXNwYXJ0aXRpb24gPSBQUWZudW1iZXIocmVz LCAiaXNwYXJ0aXRpb24iKTsKLQlpX3BhcnRib3VuZCA9IFBRZm51bWJlcihyZXMsICJwYXJ0 Ym91bmQiKTsKIAogCWlmIChkb3B0LT5sb2NrV2FpdFRpbWVvdXQpCiAJewpAQCAtNjU5Miwx MCArNjU2Nyw3IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlcykK IAkJdGJsaW5mb1tpXS50b2FzdF9vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlf dG9hc3RvaWQpKTsKIAkJdGJsaW5mb1tpXS50b2FzdF9mcm96ZW54aWQgPSBhdG9vaWQoUFFn ZXR2YWx1ZShyZXMsIGksIGlfdG9hc3Rmcm96ZW54aWQpKTsKIAkJdGJsaW5mb1tpXS50b2Fz dF9taW5teGlkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RvYXN0bWlubXhpZCkp OwotCQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3JlbG9mdHlwZSkpCi0JCQl0YmxpbmZv W2ldLnJlbG9mdHlwZSA9IE5VTEw7Ci0JCWVsc2UKLQkJCXRibGluZm9baV0ucmVsb2Z0eXBl ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3JlbG9mdHlwZSkpOworCQl0Ymxp bmZvW2ldLnJlbG9mdHlwZSA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9yZWxvZnR5 cGUpKTsKIAkJdGJsaW5mb1tpXS5uY2hlY2sgPSBhdG9pKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3JlbGNoZWNrcykpOwogCQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX293bmluZ190YWIp KQogCQl7CkBAIC02NjQ4LDkgKzY2MjAsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwg aW50ICpudW1UYWJsZXMpCiAJCQkJCQkJCQkJICAgc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBp LCBpX2lzX2lkZW50aXR5X3NlcXVlbmNlKSwgInQiKSA9PSAwKTsKIAogCQkvKiBQYXJ0aXRp b24ga2V5IHN0cmluZyBvciBOVUxMICovCi0JCXRibGluZm9baV0ucGFydGtleWRlZiA9IHBn X3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9wYXJ0a2V5ZGVmKSk7CiAJCXRibGluZm9b aV0uaXNwYXJ0aXRpb24gPSAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2lzcGFydGl0 aW9uKSwgInQiKSA9PSAwKTsKLQkJdGJsaW5mb1tpXS5wYXJ0Ym91bmQgPSBwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfcGFydGJvdW5kKSk7CiAKIAkJLyoKIAkJICogUmVhZC1s b2NrIHRhcmdldCB0YWJsZXMgdG8gbWFrZSBzdXJlIHRoZXkgYXJlbid0IERST1BQRUQgb3Ig YWx0ZXJlZApAQCAtMTQ5MzcsMTUgKzE0OTA3LDE1IEBAIGR1bXBEZWZhdWx0QUNMKEFyY2hp dmUgKmZvdXQsIERlZmF1bHRBQ0xJbmZvICpkYWNsaW5mbykKICAqICduc3BuYW1lJyBpcyB0 aGUgbmFtZXNwYWNlIHRoZSBvYmplY3QgaXMgaW4gKE5VTEwgaWYgbm9uZSkuCiAgKiAnb3du ZXInIGlzIHRoZSBvd25lciwgTlVMTCBpZiB0aGVyZSBpcyBubyBvd25lciAoZm9yIGxhbmd1 YWdlcykuCiAgKiAnYWNscycgY29udGFpbnMgdGhlIEFDTCBzdHJpbmcgb2YgdGhlIG9iamVj dCBmcm9tIHRoZSBhcHByb3ByaWF0ZSBzeXN0ZW0KLSAqIAkJY2F0YWxvZyBmaWVsZDsgaXQg d2lsbCBiZSBwYXNzZWQgdG8gYnVpbGRBQ0xDb21tYW5kcyBmb3IgYnVpbGRpbmcgdGhlCi0g KiAJCWFwcHJvcHJpYXRlIEdSQU5UIGNvbW1hbmRzLgorICoJCWNhdGFsb2cgZmllbGQ7IGl0 IHdpbGwgYmUgcGFzc2VkIHRvIGJ1aWxkQUNMQ29tbWFuZHMgZm9yIGJ1aWxkaW5nIHRoZQor ICoJCWFwcHJvcHJpYXRlIEdSQU5UIGNvbW1hbmRzLgogICogJ3JhY2xzJyBjb250YWlucyB0 aGUgQUNMIHN0cmluZyBvZiBhbnkgaW5pdGlhbC1idXQtbm93LXJldm9rZWQgQUNMcyBvZiB0 aGUKLSAqIAkJb2JqZWN0OyBpdCB3aWxsIGJlIHBhc3NlZCB0byBidWlsZEFDTENvbW1hbmRz IGZvciBidWlsZGluZyB0aGUKLSAqIAkJYXBwcm9wcmlhdGUgUkVWT0tFIGNvbW1hbmRzLgor ICoJCW9iamVjdDsgaXQgd2lsbCBiZSBwYXNzZWQgdG8gYnVpbGRBQ0xDb21tYW5kcyBmb3Ig YnVpbGRpbmcgdGhlCisgKgkJYXBwcm9wcmlhdGUgUkVWT0tFIGNvbW1hbmRzLgogICogJ2lu aXRhY2xzJyBJbiBiaW5hcnktdXBncmFkZSBtb2RlLCBBQ0wgc3RyaW5nIG9mIHRoZSBvYmpl Y3QncyBpbml0aWFsCi0gKiAJCXByaXZpbGVnZXMsIHRvIGJlIHJlY29yZGVkIGludG8gcGdf aW5pdF9wcml2cworICoJCXByaXZpbGVnZXMsIHRvIGJlIHJlY29yZGVkIGludG8gcGdfaW5p dF9wcml2cwogICogJ2luaXRyYWNscycgSW4gYmluYXJ5LXVwZ3JhZGUgbW9kZSwgQUNMIHN0 cmluZyBvZiB0aGUgb2JqZWN0J3MKLSAqIAkJcmV2b2tlZC1mcm9tLWRlZmF1bHQgcHJpdmls ZWdlcywgdG8gYmUgcmVjb3JkZWQgaW50byBwZ19pbml0X3ByaXZzCisgKgkJcmV2b2tlZC1m cm9tLWRlZmF1bHQgcHJpdmlsZWdlcywgdG8gYmUgcmVjb3JkZWQgaW50byBwZ19pbml0X3By aXZzCiAgKgogICogTkI6IGluaXRhY2xzL2luaXRyYWNscyBhcmUgbmVlZGVkIGJlY2F1c2Ug ZXh0ZW5zaW9ucyBjYW4gc2V0IHByaXZpbGVnZXMgb24KICAqIGFuIG9iamVjdCBkdXJpbmcg dGhlIGV4dGVuc2lvbidzIHNjcmlwdCBmaWxlIGFuZCB3ZSByZWNvcmQgdGhvc2UgaW50bwpA QCAtMTU2MDAsNiArMTU1NzAsNyBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwg VGFibGVJbmZvICp0YmluZm8pCiAJY2hhcgkgICAqZnRvcHRpb25zOwogCWludAkJCWosCiAJ CQkJazsKKwljaGFyICAgICAgICpwYXJ0a2V5ZGVmOwogCiAJLyogV2UgaGFkIGJldHRlciBo YXZlIGxvYWRlZCBwZXItY29sdW1uIGRldGFpbHMgYWJvdXQgdGhpcyB0YWJsZSAqLwogCUFz c2VydCh0YmluZm8tPmludGVyZXN0aW5nKTsKQEAgLTE1NjUxLDggKzE1NjIyLDMxIEBAIGR1 bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRiaW5mbykKIAl9CiAJ ZWxzZQogCXsKKwkJc3J2bmFtZSA9IE5VTEw7CisJCWZ0b3B0aW9ucyA9IE5VTEw7CisJCXBh cnRrZXlkZWYgPSBOVUxMOworCiAJCXN3aXRjaCAodGJpbmZvLT5yZWxraW5kKQogCQl7CisJ CQljYXNlIFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEU6CisJCQkJeworCQkJCQlQUUV4cEJ1 ZmZlciBxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJCQkJCVBHcmVzdWx0ICAgKnJl czsKKwkJCQkJaW50CQlpX3BhcnRrZXlkZWY7CisKKwkJCQkJcmVsdHlwZW5hbWUgPSAiVEFC TEUiOworCisJCQkJCS8qIHJldHJpZXZlIHBhcnRpdGlvbiBrZXkgZGVmaW5pdGlvbiAqLwor CQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJCQkJCSAgIlNFTEVDVCBwZ19n ZXRfcGFydGtleWRlZignJXUnKSBhcyBwYXJ0a2V5ZGVmIiwKKwkJCQkJCQkJCSAgdGJpbmZv LT5kb2JqLmNhdElkLm9pZCk7CisJCQkJCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeUZvclNpbmds ZVJvdyhmb3V0LCBxdWVyeS0+ZGF0YSk7CisJCQkJCWlfcGFydGtleWRlZiA9IFBRZm51bWJl cihyZXMsICJwYXJ0a2V5ZGVmIik7CisJCQkJCXBhcnRrZXlkZWYgPSBwZ19zdHJkdXAoUFFn ZXR2YWx1ZShyZXMsIDAsIGlfcGFydGtleWRlZikpOworCQkJCQlQUWNsZWFyKHJlcyk7CisJ CQkJCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CisJCQkJCWJyZWFrOworCQkJCX0KIAkJ CWNhc2UgUkVMS0lORF9GT1JFSUdOX1RBQkxFOgogCQkJCXsKIAkJCQkJUFFFeHBCdWZmZXIg cXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOwpAQCAtMTU2ODcsMTMgKzE1NjgxLDEwIEBA IGR1bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRiaW5mbykKIAkJ CQl9CiAJCQljYXNlIFJFTEtJTkRfTUFUVklFVzoKIAkJCQlyZWx0eXBlbmFtZSA9ICJNQVRF UklBTElaRUQgVklFVyI7Ci0JCQkJc3J2bmFtZSA9IE5VTEw7Ci0JCQkJZnRvcHRpb25zID0g TlVMTDsKIAkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJcmVsdHlwZW5hbWUgPSAiVEFC TEUiOwotCQkJCXNydm5hbWUgPSBOVUxMOwotCQkJCWZ0b3B0aW9ucyA9IE5VTEw7CisJCQkJ YnJlYWs7CiAJCX0KIAogCQludW1QYXJlbnRzID0gdGJpbmZvLT5udW1QYXJlbnRzOwpAQCAt MTU3MTUsOCArMTU3MDYsMTAgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIFRh YmxlSW5mbyAqdGJpbmZvKQogCQkgKiBBdHRhY2ggdG8gdHlwZSwgaWYgcmVsb2Z0eXBlOyBl eGNlcHQgaW4gY2FzZSBvZiBhIGJpbmFyeSB1cGdyYWRlLAogCQkgKiB3ZSBkdW1wIHRoZSB0 YWJsZSBub3JtYWxseSBhbmQgYXR0YWNoIGl0IHRvIHRoZSB0eXBlIGFmdGVyd2FyZC4KIAkJ ICovCi0JCWlmICh0YmluZm8tPnJlbG9mdHlwZSAmJiAhZG9wdC0+YmluYXJ5X3VwZ3JhZGUp Ci0JCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiIE9GICVzIiwgdGJpbmZvLT5yZWxvZnR5cGUp OworCQlpZiAoT2lkSXNWYWxpZCh0YmluZm8tPnJlbG9mdHlwZSkgJiYgIWRvcHQtPmJpbmFy eV91cGdyYWRlKQorCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIiBPRiAlcyIsCisJCQkJCQkJ ICBnZXRGb3JtYXR0ZWRUeXBlTmFtZShmb3V0LCB0YmluZm8tPnJlbG9mdHlwZSwKKwkJCQkJ CQkJCQkJCSAgIHplcm9Bc09wYXF1ZSkpOwogCiAJCWlmICh0YmluZm8tPnJlbGtpbmQgIT0g UkVMS0lORF9NQVRWSUVXKQogCQl7CkBAIC0xNTc1NCw3ICsxNTc0Nyw4IEBAIGR1bXBUYWJs ZVNjaGVtYShBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCQkJICogU2tp cCBjb2x1bW4gaWYgZnVsbHkgZGVmaW5lZCBieSByZWxvZnR5cGUsIGV4Y2VwdCBpbgogCQkJ CQkgKiBiaW5hcnkgdXBncmFkZQogCQkJCQkgKi8KLQkJCQkJaWYgKHRiaW5mby0+cmVsb2Z0 eXBlICYmICFwcmludF9kZWZhdWx0ICYmICFwcmludF9ub3RudWxsICYmCisJCQkJCWlmIChP aWRJc1ZhbGlkKHRiaW5mby0+cmVsb2Z0eXBlKSAmJgorCQkJCQkJIXByaW50X2RlZmF1bHQg JiYgIXByaW50X25vdG51bGwgJiYKIAkJCQkJCSFkb3B0LT5iaW5hcnlfdXBncmFkZSkKIAkJ CQkJCWNvbnRpbnVlOwogCkBAIC0xNTc4Nyw3ICsxNTc4MSw3IEBAIGR1bXBUYWJsZVNjaGVt YShBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCQkJICogdGFibGUgKCdP RiB0eXBlX25hbWUnKSwgYnV0IGluIGJpbmFyeS11cGdyYWRlIG1vZGUsCiAJCQkJCSAqIHBy aW50IGl0IGluIHRoYXQgY2FzZSB0b28uCiAJCQkJCSAqLwotCQkJCQlpZiAoZG9wdC0+Ymlu YXJ5X3VwZ3JhZGUgfHwgIXRiaW5mby0+cmVsb2Z0eXBlKQorCQkJCQlpZiAoZG9wdC0+Ymlu YXJ5X3VwZ3JhZGUgfHwgIU9pZElzVmFsaWQodGJpbmZvLT5yZWxvZnR5cGUpKQogCQkJCQl7 CiAJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiICVzIiwKIAkJCQkJCQkJCQkgIHRiaW5m by0+YXR0dHlwbmFtZXNbal0pOwpAQCAtMTU4NDMsNyArMTU4MzcsNyBAQCBkdW1wVGFibGVT Y2hlbWEoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmluZm8pCiAKIAkJCWlmIChhY3R1 YWxfYXR0cykKIAkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLCAiXG4pIik7Ci0JCQllbHNl IGlmICghKHRiaW5mby0+cmVsb2Z0eXBlICYmICFkb3B0LT5iaW5hcnlfdXBncmFkZSkpCisJ CQllbHNlIGlmICghKE9pZElzVmFsaWQodGJpbmZvLT5yZWxvZnR5cGUpICYmICFkb3B0LT5i aW5hcnlfdXBncmFkZSkpCiAJCQl7CiAJCQkJLyoKIAkJCQkgKiBObyBhdHRyaWJ1dGVzPyB3 ZSBtdXN0IGhhdmUgYSBwYXJlbnRoZXNpemVkIGF0dHJpYnV0ZSBsaXN0LApAQCAtMTU4NzIs NyArMTU4NjYsNyBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZv ICp0YmluZm8pCiAJCQl9CiAKIAkJCWlmICh0YmluZm8tPnJlbGtpbmQgPT0gUkVMS0lORF9Q QVJUSVRJT05FRF9UQUJMRSkKLQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiXG5QQVJUSVRJ T04gQlkgJXMiLCB0YmluZm8tPnBhcnRrZXlkZWYpOworCQkJCWFwcGVuZFBRRXhwQnVmZmVy KHEsICJcblBBUlRJVElPTiBCWSAlcyIsIHBhcnRrZXlkZWYpOwogCiAJCQlpZiAodGJpbmZv LT5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkKIAkJCQlhcHBlbmRQUUV4cEJ1 ZmZlcihxLCAiXG5TRVJWRVIgJXMiLCBmbXRJZChzcnZuYW1lKSk7CkBAIC0xNjA1NiwxMiAr MTYwNTAsMTMgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAq dGJpbmZvKQogCQkJCX0KIAkJCX0KIAotCQkJaWYgKHRiaW5mby0+cmVsb2Z0eXBlKQorCQkJ aWYgKE9pZElzVmFsaWQodGJpbmZvLT5yZWxvZnR5cGUpKQogCQkJewogCQkJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHEsICJcbi0tIEZvciBiaW5hcnkgdXBncmFkZSwgc2V0IHVwIHR5cGVk IHRhYmxlcyB0aGlzIHdheS5cbiIpOwogCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICJBTFRF UiBUQUJMRSBPTkxZICVzIE9GICVzO1xuIiwKIAkJCQkJCQkJICBxdWFscmVsbmFtZSwKLQkJ CQkJCQkJICB0YmluZm8tPnJlbG9mdHlwZSk7CisJCQkJCQkJCSAgZ2V0Rm9ybWF0dGVkVHlw ZU5hbWUoZm91dCwgdGJpbmZvLT5yZWxvZnR5cGUsCisJCQkJCQkJCQkJCQkJICAgemVyb0Fz T3BhcXVlKSk7CiAJCQl9CiAJCX0KIApAQCAtMTYwNzQsMTYgKzE2MDY5LDMyIEBAIGR1bXBU YWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRiaW5mbykKIAkJICovCiAJ CWlmICh0YmluZm8tPmlzcGFydGl0aW9uKQogCQl7CisJCQlQR3Jlc3VsdCAgICphcmVzOwor CQkJY2hhciAgICAgICAqcGFydGJvdW5kOworCQkJUFFFeHBCdWZmZXIgcTI7CisKIAkJCS8q IFdpdGggcGFydGl0aW9ucyB0aGVyZSBjYW4gb25seSBiZSBvbmUgcGFyZW50ICovCiAJCQlp ZiAodGJpbmZvLT5udW1QYXJlbnRzICE9IDEpCiAJCQkJZXhpdF9ob3JyaWJseShOVUxMLCAi aW52YWxpZCBudW1iZXIgb2YgcGFyZW50cyAlZCBmb3IgdGFibGUgXCIlc1wiXG4iLAogCQkJ CQkgIHRiaW5mby0+bnVtUGFyZW50cywgdGJpbmZvLT5kb2JqLm5hbWUpOwogCisJCQlxMiA9 IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJCQkvKiBGZXRjaCB0aGUgcGFydGl0aW9uJ3MgcGFy dGJvdW5kICovCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxMiwKKwkJCQkJCQkgICJTRUxFQ1Qg cGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKSAiCisJCQkJCQkJICAiRlJPTSBw Z19jbGFzcyBjICIKKwkJCQkJCQkgICJXSEVSRSBjLm9pZCA9ICcldSciLAorCQkJCQkJCSAg dGJpbmZvLT5kb2JqLmNhdElkLm9pZCk7CisJCQlhcmVzID0gRXhlY3V0ZVNxbFF1ZXJ5Rm9y U2luZ2xlUm93KGZvdXQsIHEyLT5kYXRhKTsKKwkJCXBhcnRib3VuZCA9IFBRZ2V0dmFsdWUo YXJlcywgMCwgMCk7CisKIAkJCS8qIFBlcmZvcm0gQUxURVIgVEFCTEUgb24gdGhlIHBhcmVu dCAqLwogCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwKIAkJCQkJCQkgICJBTFRFUiBUQUJMRSBP TkxZICVzIEFUVEFDSCBQQVJUSVRJT04gJXMgJXM7XG4iLAogCQkJCQkJCSAgZm10UXVhbGlm aWVkRHVtcGFibGUocGFyZW50c1swXSksCi0JCQkJCQkJICBxdWFscmVsbmFtZSwgdGJpbmZv LT5wYXJ0Ym91bmQpOworCQkJCQkJCSAgcXVhbHJlbG5hbWUsIHBhcnRib3VuZCk7CisJCQlQ UWNsZWFyKGFyZXMpOworCQkJZGVzdHJveVBRRXhwQnVmZmVyKHEyKTsKIAkJfQogCiAJCS8q CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaAppbmRleCA0ZmJlMmFhZmY5Li4wYjExZjc5MmFlIDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmgKQEAgLTI4OCw3ICsyODgsNyBAQCB0eXBlZGVmIHN0cnVjdCBfdGFibGVJbmZvCiAJ dWludDMyCQl0b2FzdF9mcm96ZW54aWQ7CS8qIHRvYXN0IHRhYmxlJ3MgcmVsZnJvemVueGlk LCBpZiBhbnkgKi8KIAl1aW50MzIJCXRvYXN0X21pbm14aWQ7CS8qIHRvYXN0IHRhYmxlJ3Mg cmVsbWlubXhpZCAqLwogCWludAkJCW5jaGVjazsJCQkvKiAjIG9mIENIRUNLIGV4cHJlc3Np b25zICovCi0JY2hhcgkgICAqcmVsb2Z0eXBlOwkJLyogdW5kZXJseWluZyB0eXBlIGZvciB0 eXBlZCB0YWJsZSAqLworCU9pZAkgICByZWxvZnR5cGU7CQkvKiB1bmRlcmx5aW5nIHR5cGUg Zm9yIHR5cGVkIHRhYmxlICovCiAJLyogdGhlc2UgdHdvIGFyZSBzZXQgb25seSBpZiB0YWJs ZSBpcyBhIHNlcXVlbmNlIG93bmVkIGJ5IGEgY29sdW1uOiAqLwogCU9pZAkJCW93bmluZ190 YWI7CQkvKiBPSUQgb2YgdGFibGUgb3duaW5nIHNlcXVlbmNlICovCiAJaW50CQkJb3duaW5n X2NvbDsJCS8qIGF0dHIgIyBvZiBjb2x1bW4gb3duaW5nIHNlcXVlbmNlICovCkBAIC0zMjQs OCArMzI0LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX3RhYmxlSW5mbwogCWJvb2wJICAgKmluaE5v dE51bGw7CQkvKiB0cnVlIGlmIE5PVCBOVUxMIGlzIGluaGVyaXRlZCAqLwogCXN0cnVjdCBf YXR0ckRlZkluZm8gKiphdHRyZGVmczsgLyogREVGQVVMVCBleHByZXNzaW9ucyAqLwogCXN0 cnVjdCBfY29uc3RyYWludEluZm8gKmNoZWNrZXhwcnM7IC8qIENIRUNLIGNvbnN0cmFpbnRz ICovCi0JY2hhcgkgICAqcGFydGtleWRlZjsJCS8qIHBhcnRpdGlvbiBrZXkgZGVmaW5pdGlv biAqLwotCWNoYXIJICAgKnBhcnRib3VuZDsJCS8qIHBhcnRpdGlvbiBib3VuZCBkZWZpbml0 aW9uICovCiAJYm9vbAkJbmVlZHNfb3ZlcnJpZGU7IC8qIGhhcyBHRU5FUkFURUQgQUxXQVlT IEFTIElERU5USVRZICovCiAKIAkvKgo= --------------eSTz3TyN3jYSyhRd41a1TRSF--