Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:47960 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 41051 invoked from network); 15 Apr 2010 09:32:19 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 15 Apr 2010 09:32:19 -0000 Authentication-Results: pb1.pair.com smtp.mail=patrick.allaert@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=patrick.allaert@gmail.com; sender-id=pass; domainkeys=bad Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.170 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: patrick.allaert@gmail.com X-Host-Fingerprint: 74.125.82.170 mail-wy0-f170.google.com Received: from [74.125.82.170] ([74.125.82.170:39340] helo=mail-wy0-f170.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 44/49-20494-12DD6CB4 for ; Thu, 15 Apr 2010 05:32:19 -0400 Received: by wyb34 with SMTP id 34so500287wyb.29 for ; Thu, 15 Apr 2010 02:32:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:date:x-google-sender-auth:received:message-id:subject :from:to:cc:content-type; bh=IrW6oxKosb/I68l16TthSaq/17xrnrDi/mWlki7qlmY=; b=kXtBOKxdx+w1yvToybIcR0yJp4rqIyDPKIJJYqDuyhnGV6WuI3NsaIJnh2mZjllWzC Uk4O5k51wl3InSGumH76m0EzeoszarqgOPAYqCH2KQa6PyTZ6pcngCeuRNZ/u87tR5zu lu4KkR1aNSiWUNmycOKHMg61ZZTCWaucyzsZs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; b=P0z2VIP8/YBXTwu/mnCy07iq16ALi5pnb6W3/bUrlCsNR+RtgQPcdeJf7XhaXSW5ur cxDuDqzxtqAV5mzr/Dut1TUTD35wrDUIVU8qxt6GoNucMJ5+ex4JZTxAW/liikCyrcxP YP4kaQUqA9tP380MPqHMav3P+5fCRGm19Bjlg= MIME-Version: 1.0 Sender: patrick.allaert@gmail.com Received: by 10.216.81.81 with HTTP; Thu, 15 Apr 2010 02:32:14 -0700 (PDT) In-Reply-To: References: Date: Thu, 15 Apr 2010 11:32:14 +0200 X-Google-Sender-Auth: be455bce7dbd07b3 Received: by 10.216.159.141 with SMTP id s13mr1099612wek.64.1271323934965; Thu, 15 Apr 2010 02:32:14 -0700 (PDT) Message-ID: To: Kalle Sommer Nielsen Cc: Internals , Philip Olson Content-Type: multipart/mixed; boundary=0016e64f5de489c0630484432b24 Subject: Re: [PHP-DEV] [RFC] Removal of deprecated features From: patrickallaert@php.net (Patrick ALLAERT) --0016e64f5de489c0630484432b24 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 2010/4/9 Kalle Sommer Nielsen : > Hey Everyone > > I've put together a simple RFC[1] that lists features thats been > deprecated in 5.3, someone of them which I propose we remove in the > next version of PHP, depending on the version number. Most of the > features, which is listed below are taken from the old 6.0 NEWS[2] > file, and items from the old PHP6 TODO[3]. > > safe_mode/register_globals/register_long_arrays/magic_quotes_*/allow_call= _time_pass_reference > =C2=A0- Something we have long time been wanted to remove from PHP, I don= 't > see a big reason to keep those in the next version, even if its going > to be a 5.4, since we already removed things like > zend.ze1_compatibility_mode. See the magic quotes RFC[4]. > > define_syslog_variables and its associated function > =C2=A0- Originally agreed to be removed in PHP6 during the 5.3 developmen= t, > if there is no objects then I will remove by the end of this weekend. > > asp_tags > =C2=A0- Proposed to be removed aswell, Tony had a patch for this[5]. > > sql_safe_mode > =C2=A0- Theres currently an RFC in the works about this by Johannes[6]. > > session_register/session_is_registered/session_register > =C2=A0- Only needed for register_globals, Hannes removed those in PHP6. > > enable_dl > =C2=A0- Is this really worth keeping, since dl() was disabled on almost a= ll > SAPIs except for CLI/CGI/Embed? > > Support for Freetype 1 and GD 1 > =C2=A0- Removed by Pierre in PHP6 > > Support for "continue" and "break" operators with non constant operands > =C2=A0- Removed by Dmitry in PHP6. > > Undocumented and incomplete support for strings in list() operator > =C2=A0- Removed by Dmitry in PHP6 aswell. > > detect_unicode/highlight_bg > =C2=A0- Two ini values thats been marked as removed features from PHP6 in > the manual. Not sure about detect_unicode, but highlight_bg is pretty > pointless. > > y2k_compliance > =C2=A0- From the manual "Enforce year 2000 compliance (will cause problem= s > with non-compliant browsers)", we are in 2010, we should remove this > option and enable it by default and remove the checks. Perhaps Derick > got an insight here? > > Class named constructors > =C2=A0- A feature thats been marked in the manual as something that would > be removed in a future version of PHP6. It was not to be knowing ever > decided to be kept or not, but now with the recent removal of them in > namespaces then I don't see a big point in keeping them. > > > If there is anything I forgot then let me know and I will add it to > the RFC, else discussions away! > > > [1] http://wiki.php.net/rfc/removal-of-deprecated-features > [2] http://svn.php.net/viewvc/php/php-src/branches/FIRST_UNICODE_IMPLEMEN= TATION/NEWS?view=3Dmarkup > [3] http://wiki.php.net/todo/php60 > [4] http://wiki.php.net/rfc/magicquotes > [5] http://marc.info/?l=3Dphp-internals&m=3D117640641605813&w=3D2 > [6] http://wiki.php.net/rfc/drop_sql.safe_mode > > -- > regards, > > Kalle Sommer Nielsen > kalle@php.net > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > > Hi! I think we should also keep an eye on removing dead code. Removing the useless: main/mergesort.c for example (Patch in attachment). I think I don't have enough karma to commit this. Regards, --=20 Patrick Allaert --- http://code.google.com/p/peclapm/ - Alternative PHP Monitor --0016e64f5de489c0630484432b24 Content-Type: text/plain; charset=US-ASCII; name="cleanup.diff.txt" Content-Disposition: attachment; filename="cleanup.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g81dcqvu0 SW5kZXg6IGNvbmZpZ3VyZS5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjb25maWd1cmUuaW4JKHJldmlzaW9u IDI5ODAxOCkKKysrIGNvbmZpZ3VyZS5pbgkod29ya2luZyBjb3B5KQpAQCAtMTM5NCw3ICsxMzk0 LDcgQEAKIFBIUF9BRERfU09VUkNFUyhtYWluLCBtYWluLmMgc25wcmludGYuYyBzcHByaW50Zi5j IHBocF9zcHJpbnRmLmMgXAogICAgICAgIHNhZmVfbW9kZS5jIGZvcGVuX3dyYXBwZXJzLmMgYWxs b2NhLmMgIHBocF9zY2FuZGlyLmMgXAogICAgICAgIHBocF9pbmkuYyBTQVBJLmMgcmZjMTg2Ny5j IHBocF9jb250ZW50X3R5cGVzLmMgc3RybGNweS5jIFwKLSAgICAgICBzdHJsY2F0LmMgbWVyZ2Vz b3J0LmMgcmVlbnRyYW5jeS5jIHBocF92YXJpYWJsZXMuYyBwaHBfdGlja3MuYyBcCisgICAgICAg c3RybGNhdC5jIHJlZW50cmFuY3kuYyBwaHBfdmFyaWFibGVzLmMgcGhwX3RpY2tzLmMgXAogICAg ICAgIG5ldHdvcmsuYyBwaHBfb3Blbl90ZW1wb3JhcnlfZmlsZS5jIHBocF9sb2dvcy5jIFwKICAg ICAgICBvdXRwdXQuYyBnZXRvcHQuYykKIApJbmRleDogbWFpbi9tZXJnZXNvcnQuYwo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBtYWluL21lcmdlc29ydC5jCShyZXZpc2lvbiAyOTgwMTgpCisrKyBtYWluL21lcmdl c29ydC5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM1OCArMCwwIEBACi0vKi0KLSAqIENvcHlyaWdo dCAoYykgMTk5MiwgMTk5MwotICoJVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2Fs aWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBjb2RlIGlzIGRlcml2 ZWQgZnJvbSBzb2Z0d2FyZSBjb250cmlidXRlZCB0byBCZXJrZWxleSBieQotICogUGV0ZXIgTWNJ bHJveS4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5 IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl IGRpc3RyaWJ1dGlvbi4KLSAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmlu ZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBzb2Z0d2FyZQotICogICAgbXVzdCBkaXNwbGF5IHRo ZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgotICoJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNv ZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgVW5pdmVyc2l0eSBvZgotICoJQ2FsaWZvcm5pYSwgQmVy a2VsZXkgYW5kIGl0cyBjb250cmlidXRvcnMuCi0gKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRo ZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwotICogICAgbWF5 IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlz IHNvZnR3YXJlCi0gKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBD T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRQotICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5U UyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCi0gKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotICogREFN QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU SVRVVEUgR09PRFMKLSAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQotICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSAqIExJ QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT SU5HIElOIEFOWSBXQVkKLSAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0K LS8qICRJZCQgKi8KLQotI2lmIGRlZmluZWQoTElCQ19TQ0NTKSAmJiAhZGVmaW5lZChsaW50KQot c3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKW1lcmdlLmMJOC4yIChCZXJrZWxleSkgMi8xNC85 NCI7Ci0jZW5kaWYgLyogTElCQ19TQ0NTIGFuZCBub3QgbGludCAqLwotCi0vKgotICogSHlicmlk IGV4cG9uZW50aWFsIHNlYXJjaC9saW5lYXIgc2VhcmNoIG1lcmdlIHNvcnQgd2l0aCBoeWJyaWQK LSAqIG5hdHVyYWwvcGFpcndpc2UgZmlyc3QgcGFzcy4gIFJlcXVpcmVzIGFib3V0IC4zJSBtb3Jl IGNvbXBhcmlzb25zCi0gKiBmb3IgcmFuZG9tIGRhdGEgdGhhbiBMU01TIHdpdGggcGFpcndpc2Ug Zmlyc3QgcGFzcyBhbG9uZS4KLSAqIEl0IHdvcmtzIGZvciBvYmplY3RzIGFzIHNtYWxsIGFzIHR3 byBieXRlcy4KLSAqLwotCi0jZGVmaW5lIE5BVFVSQUwKLSNkZWZpbmUgVEhSRVNIT0xEIDE2CS8q IEJlc3QgY2hvaWNlIGZvciBuYXR1cmFsIG1lcmdlIGN1dC1vZmYuICovCi0KLS8qICNkZWZpbmUg TkFUVVJBTCB0byBnZXQgaHlicmlkIG5hdHVyYWwgbWVyZ2UuCi0gKiAoVGhlIGRlZmF1bHQgaXMg cGFpcndpc2UgbWVyZ2luZy4pCi0gKi8KLQotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotCi0jaW5j bHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4K LQotI2luY2x1ZGUgInBocC5oIgotCi0jaWZkZWYgUEhQX1dJTjMyCi0jaW5jbHVkZSA8d2luc29j azIuaD4gLyogSW5jbHVkZXMgZGVmaW5pdGlvbiBmb3IgdV9jaGFyICovCi0jZW5kaWYKLQotc3Rh dGljIHZvaWQgc2V0dXAodV9jaGFyICpsaXN0MSwgdV9jaGFyICpsaXN0Miwgc2l6ZV90IG4sIHNp emVfdCBzaXplLCBpbnQgKCpjbXApKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqIFRTUk1MU19E QykgVFNSTUxTX0RDKTsKLXN0YXRpYyB2b2lkIGluc2VydGlvbnNvcnQodV9jaGFyICphLCBzaXpl X3Qgbiwgc2l6ZV90IHNpemUsIGludCAoKmNtcCkoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICog VFNSTUxTX0RDKSBUU1JNTFNfREMpOwotCi0jZGVmaW5lIElTSVpFIHNpemVvZihpbnQpCi0jZGVm aW5lIFBTSVpFIHNpemVvZih1X2NoYXIgKikKLSNkZWZpbmUgSUNPUFlfTElTVChzcmMsIGRzdCwg bGFzdCkJCQkJXAotCWRvCQkJCQkJCVwKLQkqKGludCopZHN0ID0gKihpbnQqKXNyYywgc3JjICs9 IElTSVpFLCBkc3QgKz0gSVNJWkU7CVwKLQl3aGlsZShzcmMgPCBsYXN0KQotI2RlZmluZSBJQ09Q WV9FTFQoc3JjLCBkc3QsIGkpCQkJCQlcCi0JZG8JCQkJCQkJXAotCSooaW50KikgZHN0ID0gKihp bnQqKSBzcmMsIHNyYyArPSBJU0laRSwgZHN0ICs9IElTSVpFOwlcCi0Jd2hpbGUgKGkgLT0gSVNJ WkUpCi0KLSNkZWZpbmUgQ0NPUFlfTElTVChzcmMsIGRzdCwgbGFzdCkJCVwKLQlkbwkJCQkJXAot CQkqZHN0KysgPSAqc3JjKys7CQlcCi0Jd2hpbGUgKHNyYyA8IGxhc3QpCi0jZGVmaW5lIENDT1BZ X0VMVChzcmMsIGRzdCwgaSkJCQlcCi0JZG8JCQkJCVwKLQkJKmRzdCsrID0gKnNyYysrOwkJXAot CXdoaWxlIChpIC09IDEpCi0KLS8qCi0gKiBGaW5kIHRoZSBuZXh0IHBvc3NpYmxlIHBvaW50ZXIg aGVhZC4gIChUcmlja2VyeSBmb3IgZm9yY2luZyBhbiBhcnJheQotICogdG8gZG8gZG91YmxlIGR1 dHkgYXMgYSBsaW5rZWQgbGlzdCB3aGVuIG9iamVjdHMgZG8gbm90IGFsaWduIHdpdGggd29yZAot ICogYm91bmRhcmllcy4KLSAqLwotLyogQXNzdW1wdGlvbjogUFNJWkUgaXMgYSBwb3dlciBvZiAy LiAqLwotI2RlZmluZSBFVkFMKHApICh1X2NoYXIgKiopCQkJCQkJXAotICAgICAgIAkoKHVfY2hh ciAqKTAgKwkJCQkJCQlcCi0JICAgICgoKHVfY2hhciAqKXAgKyBQU0laRSAtIDEgLSAodV9jaGFy ICopIDApICYgfihQU0laRSAtIDEpKSkKLQotLyoge3t7IHBocF9tZXJnZXNvcnQKLSAqIEFyZ3Vt ZW50cyBhcmUgYXMgZm9yIHFzb3J0LgotICovCi1QSFBBUEkgaW50IHBocF9tZXJnZXNvcnQodm9p ZCAqYmFzZSwgc2l6ZV90IG5tZW1iLCBzaXplX3Qgc2l6ZSwgaW50ICgqY21wKShjb25zdCB2b2lk ICosIGNvbnN0IHZvaWQgKiBUU1JNTFNfREMpIFRTUk1MU19EQykKLXsKLQlyZWdpc3RlciB1bnNp Z25lZCBpbnQgaTsKLQlyZWdpc3RlciBpbnQgc2Vuc2U7Ci0JaW50IGJpZywgaWZsYWc7Ci0JcmVn aXN0ZXIgdV9jaGFyICpmMSwgKmYyLCAqdCwgKmIsICp0cDIsICpxLCAqbDEsICpsMjsKLQl1X2No YXIgKmxpc3QyLCAqbGlzdDEsICpwMiwgKnAsICpsYXN0LCAqKnAxOwotCi0JaWYgKHNpemUgPCBQ U0laRSAvIDIpIHsJCS8qIFBvaW50ZXJzIG11c3QgZml0IGludG8gMiAqIHNpemUuICovCi0JCWVy cm5vID0gRUlOVkFMOwotCQlyZXR1cm4gKC0xKTsKLQl9Ci0KLQlpZiAobm1lbWIgPT0gMCkKLQkJ cmV0dXJuICgwKTsKLQotCS8qCi0JICogWFhYCi0JICogU3R1cGlkIHN1YnRyYWN0aW9uIGZvciB0 aGUgQ3JheS4KLQkgKi8KLQlpZmxhZyA9IDA7Ci0JaWYgKCEoc2l6ZSAlIElTSVpFKSAmJiAhKCgo Y2hhciAqKWJhc2UgLSAoY2hhciAqKTApICUgSVNJWkUpKQotCQlpZmxhZyA9IDE7Ci0KLQlpZiAo KGxpc3QyID0gbWFsbG9jKG5tZW1iICogc2l6ZSArIFBTSVpFKSkgPT0gTlVMTCkKLQkJcmV0dXJu ICgtMSk7Ci0KLQlsaXN0MSA9IGJhc2U7Ci0Jc2V0dXAobGlzdDEsIGxpc3QyLCBubWVtYiwgc2l6 ZSwgY21wIFRTUk1MU19DQyk7Ci0JbGFzdCA9IGxpc3QyICsgbm1lbWIgKiBzaXplOwotCWkgPSBi aWcgPSAwOwotCXdoaWxlICgqRVZBTChsaXN0MikgIT0gbGFzdCkgewotCSAgICBsMiA9IGxpc3Qx OwotCSAgICBwMSA9IEVWQUwobGlzdDEpOwotCSAgICBmb3IgKHRwMiA9IHAyID0gbGlzdDI7IHAy ICE9IGxhc3Q7IHAxID0gRVZBTChsMikpIHsKLQkgICAgCXAyID0gKkVWQUwocDIpOwotCSAgICAJ ZjEgPSBsMjsKLQkgICAgCWYyID0gbDEgPSBsaXN0MSArIChwMiAtIGxpc3QyKTsKLQkgICAgCWlm IChwMiAhPSBsYXN0KQotCSAgICAJCXAyID0gKkVWQUwocDIpOwotCSAgICAJbDIgPSBsaXN0MSAr IChwMiAtIGxpc3QyKTsKLQkgICAgCXdoaWxlIChmMSA8IGwxICYmIGYyIDwgbDIpIHsKLQkgICAg CQlpZiAoKCpjbXApKGYxLCBmMiBUU1JNTFNfQ0MpIDw9IDApIHsKLQkgICAgCQkJcSA9IGYyOwot CSAgICAJCQliID0gZjEsIHQgPSBsMTsKLQkgICAgCQkJc2Vuc2UgPSAtMTsKLQkgICAgCQl9IGVs c2UgewotCSAgICAJCQlxID0gZjE7Ci0JICAgIAkJCWIgPSBmMiwgdCA9IGwyOwotCSAgICAJCQlz ZW5zZSA9IDA7Ci0JICAgIAkJfQotCSAgICAJCWlmICghYmlnKSB7CS8qIGhlcmUgaSA9IDAgKi8K LQkJCQl3aGlsZSAoKGIgKz0gc2l6ZSkgPCB0ICYmIGNtcChxLCBiIFRTUk1MU19DQykgPnNlbnNl KQotCSAgICAJCQkJaWYgKCsraSA9PSA2KSB7Ci0JICAgIAkJCQkJYmlnID0gMTsKLQkgICAgCQkJ CQlnb3RvIEVYUE9ORU5USUFMOwotCSAgICAJCQkJfQotCSAgICAJCX0gZWxzZSB7Ci1FWFBPTkVO VElBTDoJICAgIAkJZm9yIChpID0gc2l6ZTsgOyBpIDw8PSAxKQotCSAgICAJCQkJaWYgKChwID0g KGIgKyBpKSkgPj0gdCkgewotCSAgICAJCQkJCWlmICgocCA9IHQgLSBzaXplKSA+IGIgJiYKLQkJ CQkJCSAgICAoKmNtcCkocSwgcCBUU1JNTFNfQ0MpIDw9IHNlbnNlKQotCSAgICAJCQkJCQl0ID0g cDsKLQkgICAgCQkJCQllbHNlCi0JICAgIAkJCQkJCWIgPSBwOwotCSAgICAJCQkJCWJyZWFrOwot CSAgICAJCQkJfSBlbHNlIGlmICgoKmNtcCkocSwgcCBUU1JNTFNfQ0MpIDw9IHNlbnNlKSB7Ci0J ICAgIAkJCQkJdCA9IHA7Ci0JICAgIAkJCQkJaWYgKGkgPT0gc2l6ZSkKLQkgICAgCQkJCQkJYmln ID0gMDsKLQkgICAgCQkJCQlnb3RvIEZBU1RDQVNFOwotCSAgICAJCQkJfSBlbHNlCi0JICAgIAkJ CQkJYiA9IHA7Ci0JCQkJd2hpbGUgKHQgPiBiK3NpemUpIHsKLQkgICAgCQkJCWkgPSAoKCh0IC0g YikgLyBzaXplKSA+PiAxKSAqIHNpemU7Ci0JICAgIAkJCQlpZiAoKCpjbXApKHEsIHAgPSBiICsg aSBUU1JNTFNfQ0MpIDw9IHNlbnNlKQotCSAgICAJCQkJCXQgPSBwOwotCSAgICAJCQkJZWxzZQot CSAgICAJCQkJCWIgPSBwOwotCSAgICAJCQl9Ci0JICAgIAkJCWdvdG8gQ09QWTsKLUZBU1RDQVNF OgkgICAgCQl3aGlsZSAoaSA+IHNpemUpCi0JICAgIAkJCQlpZiAoKCpjbXApKHEsCi0JICAgIAkJ CQkJcCA9IGIgKyAoaSA+Pj0gMSkgVFNSTUxTX0NDKSA8PSBzZW5zZSkKLQkgICAgCQkJCQl0ID0g cDsKLQkgICAgCQkJCWVsc2UKLQkgICAgCQkJCQliID0gcDsKLUNPUFk6CSAgICAJCQliID0gdDsK LQkgICAgCQl9Ci0JICAgIAkJaSA9IHNpemU7Ci0JICAgIAkJaWYgKHEgPT0gZjEpIHsKLQkgICAg CQkJaWYgKGlmbGFnKSB7Ci0JICAgIAkJCQlJQ09QWV9MSVNUKGYyLCB0cDIsIGIpOwotCSAgICAJ CQkJSUNPUFlfRUxUKGYxLCB0cDIsIGkpOwotCSAgICAJCQl9IGVsc2UgewotCSAgICAJCQkJQ0NP UFlfTElTVChmMiwgdHAyLCBiKTsKLQkgICAgCQkJCUNDT1BZX0VMVChmMSwgdHAyLCBpKTsKLQkg ICAgCQkJfQotCSAgICAJCX0gZWxzZSB7Ci0JICAgIAkJCWlmIChpZmxhZykgewotCSAgICAJCQkJ SUNPUFlfTElTVChmMSwgdHAyLCBiKTsKLQkgICAgCQkJCUlDT1BZX0VMVChmMiwgdHAyLCBpKTsK LQkgICAgCQkJfSBlbHNlIHsKLQkgICAgCQkJCUNDT1BZX0xJU1QoZjEsIHRwMiwgYik7Ci0JICAg IAkJCQlDQ09QWV9FTFQoZjIsIHRwMiwgaSk7Ci0JICAgIAkJCX0KLQkgICAgCQl9Ci0JICAgIAl9 Ci0JICAgIAlpZiAoZjIgPCBsMikgewotCSAgICAJCWlmIChpZmxhZykKLQkgICAgCQkJSUNPUFlf TElTVChmMiwgdHAyLCBsMik7Ci0JICAgIAkJZWxzZQotCSAgICAJCQlDQ09QWV9MSVNUKGYyLCB0 cDIsIGwyKTsKLQkgICAgCX0gZWxzZSBpZiAoZjEgPCBsMSkgewotCSAgICAJCWlmIChpZmxhZykK LQkgICAgCQkJSUNPUFlfTElTVChmMSwgdHAyLCBsMSk7Ci0JICAgIAkJZWxzZQotCSAgICAJCQlD Q09QWV9MSVNUKGYxLCB0cDIsIGwxKTsKLQkgICAgCX0KLQkgICAgCSpwMSA9IGwyOwotCSAgICB9 Ci0JICAgIHRwMiA9IGxpc3QxOwkvKiBzd2FwIGxpc3QxLCBsaXN0MiAqLwotCSAgICBsaXN0MSA9 IGxpc3QyOwotCSAgICBsaXN0MiA9IHRwMjsKLQkgICAgbGFzdCA9IGxpc3QyICsgbm1lbWIqc2l6 ZTsKLQl9Ci0JaWYgKGJhc2UgPT0gbGlzdDIpIHsKLQkJbWVtbW92ZShsaXN0MiwgbGlzdDEsIG5t ZW1iKnNpemUpOwotCQlsaXN0MiA9IGxpc3QxOwotCX0KLQlmcmVlKGxpc3QyKTsKLQlyZXR1cm4g KDApOwotfQotLyogfX19ICovCi0KLSNkZWZpbmUJc3dhcChhLCBiKSB7CQkJCQlcCi0JCXMgPSBi OwkJCQkJXAotCQlpID0gc2l6ZTsJCQkJXAotCQlkbyB7CQkJCQlcCi0JCQl0bXAgPSAqYTsgKmEr KyA9ICpzOyAqcysrID0gdG1wOyBcCi0JCX0gd2hpbGUgKC0taSk7CQkJCVwKLQkJYSAtPSBzaXpl OwkJCQlcCi0JfQotI2RlZmluZSByZXZlcnNlKGJvdCwgdG9wKSB7CQkJCVwKLQlzID0gdG9wOwkJ CQkJXAotCWRvIHsJCQkJCQlcCi0JCWkgPSBzaXplOwkJCQlcCi0JCWRvIHsJCQkJCVwKLQkJCXRt cCA9ICpib3Q7ICpib3QrKyA9ICpzOyAqcysrID0gdG1wOyBcCi0JCX0gd2hpbGUgKC0taSk7CQkJ CVwKLQkJcyAtPSBzaXplMjsJCQkJXAotCX0gd2hpbGUoYm90IDwgcyk7CQkJCVwKLX0KLQotLyog e3t7IHNldHVwCi0gKiBPcHRpb25hbCBoeWJyaWQgbmF0dXJhbC9wYWlyd2lzZSBmaXJzdCBwYXNz LiAgRWF0cyB1cCBsaXN0MSBpbiBydW5zIG9mCi0gKiBpbmNyZWFzaW5nIG9yZGVyLCBsaXN0MiBp biBhIGNvcnJlc3BvbmRpbmcgbGlua2VkIGxpc3QuICBDaGVja3MgZm9yIHJ1bnMKLSAqIHdoZW4g VEhSRVNIT0xELzIgcGFpcnMgY29tcGFyZSB3aXRoIHNhbWUgc2Vuc2UuICAoT25seSB1c2VkIHdo ZW4gTkFUVVJBTAotICogaXMgZGVmaW5lZC4gIE90aGVyd2lzZSBzaW1wbGUgcGFpcndpc2UgbWVy Z2luZyBpcyB1c2VkLikKLSAqLwotc3RhdGljIHZvaWQgc2V0dXAodV9jaGFyICpsaXN0MSwgdV9j aGFyICpsaXN0Miwgc2l6ZV90IG4sIHNpemVfdCBzaXplLCBpbnQgKCpjbXApKGNvbnN0IHZvaWQg KiwgY29uc3Qgdm9pZCAqIFRTUk1MU19EQykgVFNSTUxTX0RDKQotewotCWludCBpLCBsZW5ndGgs IHNpemUyLCB0bXAsIHNlbnNlOwotCXVfY2hhciAqZjEsICpmMiwgKnMsICpsMiwgKmxhc3QsICpw MjsKLQotCXNpemUyID0gc2l6ZSoyOwotCWlmIChuIDw9IDUpIHsKLQkJaW5zZXJ0aW9uc29ydChs aXN0MSwgbiwgc2l6ZSwgY21wIFRTUk1MU19DQyk7Ci0JCSpFVkFMKGxpc3QyKSA9ICh1X2NoYXIq KSBsaXN0MiArIG4qc2l6ZTsKLQkJcmV0dXJuOwotCX0KLQkvKgotCSAqIEF2b2lkIHJ1bm5pbmcg cG9pbnRlcnMgb3V0IG9mIGJvdW5kczsgbGltaXQgbiB0byBldmVucwotCSAqIGZvciBzaW1wbGlj aXR5LgotCSAqLwotCWkgPSA0ICsgKG4gJiAxKTsKLQlpbnNlcnRpb25zb3J0KGxpc3QxICsgKG4g LSBpKSAqIHNpemUsIGksIHNpemUsIGNtcCBUU1JNTFNfQ0MpOwotCWxhc3QgPSBsaXN0MSArIHNp emUgKiAobiAtIGkpOwotCSpFVkFMKGxpc3QyICsgKGxhc3QgLSBsaXN0MSkpID0gbGlzdDIgKyBu ICogc2l6ZTsKLQotI2lmZGVmIE5BVFVSQUwKLQlwMiA9IGxpc3QyOwotCWYxID0gbGlzdDE7Ci0J c2Vuc2UgPSAoY21wKGYxLCBmMSArIHNpemUgVFNSTUxTX0NDKSA+IDApOwotCWZvciAoOyBmMSA8 IGxhc3Q7IHNlbnNlID0gIXNlbnNlKSB7Ci0JCWxlbmd0aCA9IDI7Ci0JCQkJCS8qIEZpbmQgcGFp cnMgd2l0aCBzYW1lIHNlbnNlLiAqLwotCQlmb3IgKGYyID0gZjEgKyBzaXplMjsgZjIgPCBsYXN0 OyBmMiArPSBzaXplMikgewotCQkJaWYgKChjbXAoZjIsIGYyKyBzaXplIFRTUk1MU19DQykgPiAw KSAhPSBzZW5zZSkKLQkJCQlicmVhazsKLQkJCWxlbmd0aCArPSAyOwotCQl9Ci0JCWlmIChsZW5n dGggPCBUSFJFU0hPTEQpIHsJCS8qIFBhaXJ3aXNlIG1lcmdlICovCi0JCQlkbyB7Ci0JCQkJcDIg PSAqRVZBTChwMikgPSBmMSArIHNpemUyIC0gbGlzdDEgKyBsaXN0MjsKLQkJCQlpZiAoc2Vuc2Ug PiAwKQotCQkJCQlzd2FwIChmMSwgZjEgKyBzaXplKTsKLQkJCX0gd2hpbGUgKChmMSArPSBzaXpl MikgPCBmMik7Ci0JCX0gZWxzZSB7CQkJCS8qIE5hdHVyYWwgbWVyZ2UgKi8KLQkJCWwyID0gZjI7 Ci0JCQlmb3IgKGYyID0gZjEgKyBzaXplMjsgZjIgPCBsMjsgZjIgKz0gc2l6ZTIpIHsKLQkJCQlp ZiAoKGNtcChmMi1zaXplLCBmMiBUU1JNTFNfQ0MpID4gMCkgIT0gc2Vuc2UpIHsKLQkJCQkJcDIg PSAqRVZBTChwMikgPSBmMiAtIGxpc3QxICsgbGlzdDI7Ci0JCQkJCWlmIChzZW5zZSA+IDApCi0J CQkJCQlyZXZlcnNlKGYxLCBmMi1zaXplKTsKLQkJCQkJZjEgPSBmMjsKLQkJCQl9Ci0JCQl9Ci0J CQlpZiAoc2Vuc2UgPiAwKQotCQkJCXJldmVyc2UgKGYxLCBmMi1zaXplKTsKLQkJCWYxID0gZjI7 Ci0JCQlpZiAoZjIgPCBsYXN0IHx8IGNtcChmMiAtIHNpemUsIGYyIFRTUk1MU19DQykgPiAwKQot CQkJCXAyID0gKkVWQUwocDIpID0gZjIgLSBsaXN0MSArIGxpc3QyOwotCQkJZWxzZQotCQkJCXAy ID0gKkVWQUwocDIpID0gbGlzdDIgKyBuKnNpemU7Ci0JCX0KLQl9Ci0jZWxzZQkJLyogcGFpcndp c2UgbWVyZ2Ugb25seS4gKi8KLQlmb3IgKGYxID0gbGlzdDEsIHAyID0gbGlzdDI7IGYxIDwgbGFz dDsgZjEgKz0gc2l6ZTIpIHsKLQkJcDIgPSAqRVZBTChwMikgPSBwMiArIHNpemUyOwotCQlpZiAo Y21wIChmMSwgZjEgKyBzaXplIFRTUk1MU19DQykgPiAwKQotCQkJc3dhcChmMSwgZjEgKyBzaXpl KTsKLQl9Ci0jZW5kaWYgLyogTkFUVVJBTCAqLwotfQotLyogfX19ICovCi0KLS8qIHt7eyBpbnNl cnRpb25zb3J0Ci0gKiBUaGlzIGlzIHRvIGF2b2lkIG91dC1vZi1ib3VuZHMgYWRkcmVzc2VzIGlu IHNvcnRpbmcgdGhlCi0gKiBsYXN0IDQgZWxlbWVudHMuCi0gKi8KLXN0YXRpYyB2b2lkIGluc2Vy dGlvbnNvcnQodV9jaGFyICphLCBzaXplX3Qgbiwgc2l6ZV90IHNpemUsIGludCAoKmNtcCkoY29u c3Qgdm9pZCAqLCBjb25zdCB2b2lkICogVFNSTUxTX0RDKSBUU1JNTFNfREMpCi17Ci0JdV9jaGFy ICphaSwgKnMsICp0LCAqdSwgdG1wOwotCWludCBpOwotCi0JZm9yIChhaSA9IGErc2l6ZTsgLS1u ID49IDE7IGFpICs9IHNpemUpCi0JCWZvciAodCA9IGFpOyB0ID4gYTsgdCAtPSBzaXplKSB7Ci0J CQl1ID0gdCAtIHNpemU7Ci0JCQlpZiAoY21wKHUsIHQgVFNSTUxTX0NDKSA8PSAwKQotCQkJCWJy ZWFrOwotCQkJc3dhcCh1LCB0KTsKLQkJfQotfQotLyogfX19ICovCi0KLS8qCi0gKiBMb2NhbCB2 YXJpYWJsZXM6Ci0gKiB0YWItd2lkdGg6IDQKLSAqIGMtYmFzaWMtb2Zmc2V0OiA0Ci0gKiBFbmQ6 Ci0gKiB2aW02MDA6IGZkbT1tYXJrZXIKLSAqIHZpbTogbm9ldCBzdz00IHRzPTQKLSAqLwpJbmRl eDogd2luMzIvcGhwNWRsbHRzLmRzcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3aW4zMi9waHA1ZGxsdHMuZHNw CShyZXZpc2lvbiAyOTgwMTgpCisrKyB3aW4zMi9waHA1ZGxsdHMuZHNwCSh3b3JraW5nIGNvcHkp CkBAIC0xODEsMTAgKzE4MSw2IEBACiAjIEVuZCBTb3VyY2UgRmlsZQ0KICMgQmVnaW4gU291cmNl IEZpbGUNCiANCi1TT1VSQ0U9Li5cbWFpblxtZXJnZXNvcnQuYw0KLSMgRW5kIFNvdXJjZSBGaWxl DQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KIFNPVVJDRT0uLlxtYWluXG5ldHdvcmsuYw0KICMg RW5kIFNvdXJjZSBGaWxlDQogIyBCZWdpbiBTb3VyY2UgRmlsZQ0KSW5kZXg6IHdpbjMyL3BocDVk bGwuZHNwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIHdpbjMyL3BocDVkbGwuZHNwCShyZXZpc2lvbiAyOTgwMTgp CisrKyB3aW4zMi9waHA1ZGxsLmRzcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDEwICsxNDQsNiBA QAogIyBFbmQgU291cmNlIEZpbGUNCiAjIEJlZ2luIFNvdXJjZSBGaWxlDQogDQotU09VUkNFPS4u XG1haW5cbWVyZ2Vzb3J0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZp bGUNCi0NCiBTT1VSQ0U9Li5cbWFpblxuZXR3b3JrLmMNCiAjIEVuZCBTb3VyY2UgRmlsZQ0KICMg QmVnaW4gU291cmNlIEZpbGUNCkluZGV4OiB3aW4zMi9idWlsZC9jb25maWcudzMyCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIHdpbjMyL2J1aWxkL2NvbmZpZy53MzIJKHJldmlzaW9uIDI5ODAxOCkKKysrIHdpbjMy L2J1aWxkL2NvbmZpZy53MzIJKHdvcmtpbmcgY29weSkKQEAgLTMzMyw3ICszMzMsNyBAQAogCiBB RERfU09VUkNFUygibWFpbiIsICJtYWluLmMgc25wcmludGYuYyBzcHByaW50Zi5jIHNhZmVfbW9k ZS5jIGdldG9wdC5jIGZvcGVuX3dyYXBwZXJzLmMgXAogCXBocF9zY2FuZGlyLmMgcGhwX2luaS5j IFNBUEkuYyByZmMxODY3LmMgcGhwX2NvbnRlbnRfdHlwZXMuYyBzdHJsY3B5LmMgXAotCXN0cmxj YXQuYyBtZXJnZXNvcnQuYyByZWVudHJhbmN5LmMgcGhwX3ZhcmlhYmxlcy5jIHBocF90aWNrcy5j IG5ldHdvcmsuYyBcCisJc3RybGNhdC5jIHJlZW50cmFuY3kuYyBwaHBfdmFyaWFibGVzLmMgcGhw X3RpY2tzLmMgbmV0d29yay5jIFwKIAlwaHBfb3Blbl90ZW1wb3JhcnlfZmlsZS5jIHBocF9sb2dv cy5jIG91dHB1dC5jIGludGVybmFsX2Z1bmN0aW9ucy5jIHBocF9zcHJpbnRmLmMiKTsKIEFERF9T T1VSQ0VTKCJ3aW4zMiIsICJpbmV0LmMgZm5tYXRjaC5jIHNvY2tldHMuYyIpOwogCg== --0016e64f5de489c0630484432b24--