Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:126284 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by qa.php.net (Postfix) with ESMTPS id DC5CF1A00BC for ; Tue, 4 Feb 2025 18:55:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1738695157; bh=fonU2u+lOuHlVn2VF2QwkiNq3AxeeLFjfuOcpmma/WI=; h=Date:Subject:To:References:From:In-Reply-To:From; b=HaMu/mqjZy3XtnIHoioCklBOmdiTHPnOrbY1ImD9NVuY53VPUqfoybTc4fjvQ+NzX DyVsaCIIGtTZ7zrNKt/1jwbf6vo7PiNQeIkRHk7/IAdQBemqpfr9d4+vVx7EAmWBJg F41P8PjSAOA1cfKJ30uJeCdngyoQ7GPHLlvqkUSrijv4qXOSSb3Sdl3one7mSJWQBT pOw64A1rsY8y886CTKoTijDpRh45suuLE5ZTR8Et6JI3aIVH5EaqtXge1qGfQnAT5H m4IH+zMnx+KibIZ5pmsTwTkTPFeTPEhocIB3tRvvXASrTesHtTmQX+znGOWaIwBwxi 1g7UuCgulCJfQ== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id DBEAF180079 for ; Tue, 4 Feb 2025 18:52:36 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.4 required=5.0 tests=BAYES_50,DKIM_INVALID, DKIM_SIGNED,DMARC_MISSING,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS,URIBL_SBL_A autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from wp160.webpack.hosteurope.de (wp160.webpack.hosteurope.de [80.237.132.167]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 4 Feb 2025 18:52:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mabe.berlin ; s=he194859; h=Content-Type:In-Reply-To:From:References:To:Subject: MIME-Version:Date:Message-ID:From:Sender:Reply-To:Subject:Date:Message-ID:To: Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:In-Reply-To:References; bh=36FdBTdMOc2BBswVbphwZYM5XlCTmEvRN0v5mMgYX00=; t=1738695322; x=1739127322; b=kOSDe4atnjMPQHit/8KP6ZKjnoz6P8Sd71o7cup1vDMKieTRmXauulGjZW7eNn/qsbRWbFnPQjl 3Bg7PDwJ95Ibs6Hevuht0YbnPIMwu9UxGXspxdvhxpab6dtiY55vB5YkB+OmByKhwKuonCEabtfc5 yIqxsTZB0HTYFYPBKMNGkXHEayrzMOHA96+TRncPD+0zfKE9h5ltejr1tOS3SDNW65mCCvrOlct7J FMMFm85MjSwkkRiV+4zDW3zmUeNrh07lTcB3Y/xr60+mhu8XxiASG8DxEkkN6JAEEKLsyK9V/ACsi EkBFejpYVvQBKDc5tGI3D5PNZxEH0gjoEegA==; Received: from [2a02:8109:b313:5900:f92e:9559:65e4:541c]; authenticated by wp160.webpack.hosteurope.de running ExIM with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_128_GCM:128) id 1tfO4t-00GzLB-2M; Tue, 04 Feb 2025 19:55:19 +0100 Message-ID: Date: Tue, 4 Feb 2025 19:55:19 +0100 Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PHP-DEV] Empty subject in match and switch constructions To: internals@lists.php.net References: <2A357F88-BAF4-41DE-8646-6BBBF4EFF6F6@gmail.com> <99F2F71B-8BBA-449B-9FB4-54B1B608BB0A@gmail.com> <296A94B1-3107-4DEB-8366-006BD73E63E2@gmail.com> <88F8E170-5AFB-46B3-BBBF-9430F00ECEFC@gmail.com> Content-Language: en-US Autocrypt: addr=marc@mabe.berlin; keydata= xsBNBFby8roBCAD4qHjbk9+V3SmB5DfpkTtX58jYJ9VXVfF54MDoI0fQiYvKyrrghfO78alH c12RsEZxLH2F5kEfu8WO4wA4apg2gBnRRxqPj7krsct1ySOAdMrRVp8Wtaeaznpdcn2gJZyA MSI6LTzebT25N77ksvSrUi1BuCKyOa7SmYff3xGgOwYsHQlT5opMNGPCVegiPmO/K37anwts gj6L7RVtjXtp2Z3wAs6r3EmO318PL48xDLUgYMvEFAPJglth5FGH2En6n6HFIhxh43LqXQiN eHVjLjS2y8huNBswwc9ZVxk3ip5z/GCmpWnNkgGBOSJ7loJRsq2tOaU6yU8KWb5rhOoFABEB AAHNIU1hcmMgQmVubmV3aXR6IDxtYXJjQG1hYmUuYmVybGluPsLAeAQTAQIAIgUCVvLyugIb AwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQOTar91O8iM6jzggAwvV6MqU/hcAI6ldp xVjucGz2J9cAWtva8GL+rm9zvEs7EENtamehJiZob/CTw50WiI/zsJzPblktpT0D2AFBEp9k P5/8CmCpZzxYPsxnLtsFM52fOBpO+aP0PSStBpJjndjBH7HPqKcTCXM3ZM+SL6lyRweAJR7G +JXIZbuUrbjB2lbGx3itNZ6TeXqqnE6KTXNKLEbNHfVdzE4sPDkmuZRo/M2h+gmeS1iQb29W BmhvL6czugCQI9rYl7C4Nci9wPii1lTYyfCWQfQKID4/F2HiOv+N/vDMCK1xV8TUeCy8w4X+ nYj+wDog046ki9lUM60oPij6WoSJLqfsXr1kNc7ATQRW8vK6AQgAq7QYLB1Dz+8RSi5AGJP1 tOFQXtcxyOhNVQZsI1mCQiHay4wteQ+5m4EOUuR+FrFIlnbSrPdTkKD2wvQDHVqpZivThBpJ vara/ick0wi2R3dasu1sPMu1P6h1EwUsydhviNJB07aLfPAWD6eoqmGTd8236znIIq7mbnNp OnxIQxviTyELUekrNw38uQtVzR6XZv9PAThA2o1J1JZID7QUpKcNyo9ebYlwxyS+xzhA4DLD qfD6O5sKoKvxEf2fIZeP0ETPpHNYk0WiWnmNoPy8eEY07LriYALVidBwPBcxus0wGoKf8Nun y2aE13SHmj0ioBI1bXMGJx3hEbvzXK6WrwARAQABwsBfBBgBAgAJBQJW8vK6AhsMAAoJEDk2 q/dTvIjOkowIAI70P8U4j3eqyK/7x1bnCZZRcpwZ1aH+LR1yMKTINo9NDqlOBWQTLT69YMfV 4UN+nTSiD/uLw1fSeLSzBwpoalCMLPVOX/d3Mq5JtL5cKtWUTIVf3Vb7VbN4Rvb8HgWjeSnM 1PiG9yQBmLKI68sG/gdgvA/xANdUatkDgG0yj8PCdt+Vy4EblXbIAXZXJ6eRugSKowTjst7i HXKOJxivomHFcmqmkiqjwGTGx/jrhbDtEpPDRk+U9W45D4CbUcyPR6lMSrje5JPGQDv/45M5 wPe286YelBjnb0cWRJpA7GZCWDKZOsQ2H6cCRBi8i4m+vfRk7GLA536XnmvWxKFVP9U= In-Reply-To: <88F8E170-5AFB-46B3-BBBF-9430F00ECEFC@gmail.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------cAENRCe4uu4CKGGxGHRIZ0AS" X-bounce-key: webpack.hosteurope.de;marc@mabe.berlin;1738695322;d36b21b7; X-HE-SMSGID: 1tfO4t-00GzLB-2M From: marc@mabe.berlin (Marc Bennewitz) This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------cAENRCe4uu4CKGGxGHRIZ0AS Content-Type: multipart/mixed; boundary="------------mZZNHmrk4G1q5OMijALyS93U"; protected-headers="v1" From: Marc Bennewitz To: internals@lists.php.net Message-ID: Subject: Re: [PHP-DEV] Empty subject in match and switch constructions References: <2A357F88-BAF4-41DE-8646-6BBBF4EFF6F6@gmail.com> <99F2F71B-8BBA-449B-9FB4-54B1B608BB0A@gmail.com> <296A94B1-3107-4DEB-8366-006BD73E63E2@gmail.com> <88F8E170-5AFB-46B3-BBBF-9430F00ECEFC@gmail.com> In-Reply-To: <88F8E170-5AFB-46B3-BBBF-9430F00ECEFC@gmail.com> --------------mZZNHmrk4G1q5OMijALyS93U Content-Type: multipart/mixed; boundary="------------0EKE3qK2RWWd8S2IWw0WYZxR" --------------0EKE3qK2RWWd8S2IWw0WYZxR Content-Type: multipart/alternative; boundary="------------cJsi3ic0YC75FPZybVc2oTgK" --------------cJsi3ic0YC75FPZybVc2oTgK Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 SGkgQ2xhdWRlLA0KDQpPbiAwNC4wMi4yNSAxMToxMCwgQ2xhdWRlIFBhY2hlIHdyb3RlOg0K Pg0KPg0KPj4gTGUgNCBmw6l2ci4gMjAyNSDDoCAxMDozNCwgRG1pdHJ5IERlcmVwa28gPHhl cG96emRAZ21haWwuY29tPiBhIMOpY3JpdCA6DQo+Pg0KPj4gSGksIENsYXVkZSENCj4+DQo+ Pj4gT24gRmViIDQsIDIwMjUsIGF0IDExOjQ04oCvQU0sIENsYXVkZSBQYWNoZSA8Y2xhdWRl LnBhY2hlQGdtYWlsLmNvbT4gDQo+Pj4gd3JvdGU6DQo+Pj4NCj4+PiBIaSwNCj4+Pg0KPj4+ IE9uZSBpc3N1ZSB0byByZXNvbHZlIGlzIGhvdyB0byBpbnRlcnByZXQ6DQo+Pj4NCj4+PiBg YGBwaHANCj4+PiAkeCA9IG1hdGNoIHsNCj4+PiDCoMKgcHJlZ19tYXRjaCgnL2EvJywgJ2En KSA9PiAid2lsbCBpdCBiZSBtYXRjaGVkIC4uLiINCj4+PiDCoCwgZGVmYXVsdCA9PiAiLi4u IG9yIG5vdD8iDQo+Pj4gfTsNCj4+PiBgYGANCj4+Pg0KPj4+IOKAlENsYXVkZQ0KPj4NCj4+ IEkgd291bGRu4oCZdCBkaXNjdXNzIGl0IHRoZXJlIGJlY2F1c2UgdGhlIHByb3Bvc2FsIGlz IG9ubHkgYWJvdXQgc2hvcnQgDQo+PiBzeW50YXguDQo+PiBTbyBtYWtpbmcg4oCcbWF0Y2ji gJ0gd29yayBpbiBkaWZmZXJlbnQgd2F5IGlzIG5vdCBhIGdvYWwgZm9yIHRoZSBjaGFuZ2Uu DQo+Pg0KPj4gSXQgbXVzdCB3b3JrIGFzIGZ1bGwgZm9ybSDigJxtYXRjaCh0cnVlKeKAnTog c3RyaWN0IG1hdGNoLCB3aGljaCBpcyAiPT094oCcLg0KPj4gSWYgeW914oCZcmUgZ29pbmcg dG8gdXNlIG5vbi1zdHJpY3QgY29tcGFyaXNvbiBjaGVjayDigJxzd2l0Y2jigJ0gb3BlcmF0 b3I6IA0KPj4gaHR0cHM6Ly8zdjRsLm9yZy90SGtKdQ0KPj4gQW55d2F5LCBhcyBmb3IgbWUg aXQgc2hvdWxkIGJlIGFub3RoZXIgdGhyZWFkLiBUaGFua3MhDQo+DQo+IEhpIERtaXRyeSwN Cj4NCj4gVGhlIGlzc3VlIGFic29sdXRlbHkgYmVsb25nIHRvIGEgdGhyZWFkIGRpc2N1c3Np bmcgbWFraW5nIOKAnG1hdGNoIA0KPiAodHJ1ZSkge33igJ0gZXF1aXZhbGVudCB0byDigJxt YXRjaCB7feKAnS4NCg0KYWdyZWUNCg0KDQo+IEl0IGRvZXNu4oCZdCBtYXR0ZXIgd2hhdCBp cyBsb2dpY2FsIG9yIHNpbXBsZSwgeW91IGhhdmUgYWxzbyB0aGluayBhYm91dCANCj4gd2hh dCBpcyBpbnR1aXRpdmUgb3IsIGNvbnZlcnNlbHksIGNvbmZ1c2luZy4NCg0KT2YgY291cnNl IGl0IG1hdHRlcnMgd2hhdCBpcyBsb2dpY2FsIGFzIGEgbG9naWNhbCBydWxlIGlzIG11Y2gg YmV0dGVyIHRvIA0KcmVtZW1iZXIgYW5kIGRvY3VtZW50IGFzIGEgcnVsZSB3aXRoIHRvbnMg b2YgZXhjZXB0aW9ucy4NCg0KDQo+DQo+IFdpdGggYG1hdGNoICh0cnVlKSB7ICRmb28gPT4g Li4uIH1gLCBpdCBpcyBjbGVhciB5b3UgYXJlIGNvbXBhcmluZyANCj4gwqAkZm9vIHdpdGgg dGhlIGxpdGVyYWwgdmFsdWUgYHRydWVgLg0KPg0KPiBXaXRoIGBtYXRjaCB7ICRmb28gPT4g Li4uIH1gLCBpdCBpcyBub3QgaW50dWl0aXZlIGF0IGFsbCB0aGF0IHlvdSBhcmUgDQo+ICpu b3QqIGp1c3QgY2hlY2tpbmcgdGhlIGNvbmRpdGlvbiAkZm9vLCBidXQgcmF0aGVyIHlvdSBh cmUgY29tcGFyaW5nIA0KPiAkZm9vIHdpdGggc29tZSBkZWZhdWx0IGxpdGVyYWwgdmFsdWUu IFRoZSBkaWZmZXJlbmNlIG1hdHRlcnMuDQo+DQo+IFRoZXJlZm9yZSwgSSB0aGluayBpdCBp cyBhIGJhZCBpZGVhIHRvIG1ha2UgYG1hdGNoICh0cnVlKSB7IH1gIA0KPiBlcXVpdmFsZW50 IHRvIGBtYXRjaCB7IH1gLg0KDQpObywgZm9yIG1lIHRoaXMgaXNuJ3QgbG9naWNhbCBhbmQg aXQncyBnb2luZyB0byBiZSBhbiBleGNlcHRpb24gd2hpY2ggaXMgDQpoYXJkZXIgdG8gZm9s bG93Lg0KDQpHaXZlbiB5b3VyIGV4YW1wbGUgZnJvbSBhYm92ZSBhY3R1YWxseSBzaG93cyBt ZSB0aGF0IHRoaXMgd291bGQgaGlkZSBhbiANCmVycm9yIGNhc2UgKG9yIGJldHRlciBtYWtl cyB0aGUgZXJyb3IgY2FzZSBsb29rIGxpa2UgdGhlIHVzdWFsIG9uZSBpbiANCnRoaXMgY2Fz ZSkNCg0KQWRkaXRpb25hbGx5LCBpZiB5b3UgcmVhbGx5IHdoYXQgdG8gY29tcGFyZSBlbXB0 eSB2cy4gbm9uIGVtcHR5IHlvdSBjYW4gDQp1c2UgZW1wdHkgdG8gbWFrZSBpdCBleHBsaWNp dC4NCg0KDQpNYXJjDQoNCg== --------------cJsi3ic0YC75FPZybVc2oTgK Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

Hi Claude,

On 04.02.25 11:10, Claude Pache wrote:=


Le 4 f=C3=A9vr. 2025 =C3=A0 10:34, Dmitry Derepko <xepozzd@gmail.com> a =C3=A9crit :

Hi, Claude!

On Feb 4, 2025, at 11:44=E2=80=AFAM, Claude Pache <claude.pache@gmail.com> wrote:

Hi,

One issue to resolve is how to interpret:

```php
$x =3D match {
=C2=A0 =C2=A0=C2=A0preg_match('/a/', 'a') =3D> "will it= be matched ..."
=C2=A0, default =3D> "... or not?"
};
```

=E2=80=94Claude

I wouldn=E2=80=99t discuss it there because the propos= al is only about short syntax.
So making =E2=80=9Cmatch=E2=80=9D work in different wa= y is not a goal for the change.

It must work as full form =E2=80=9Cmatch(true)=E2=80=9D= : strict match, which is "=3D=3D=3D=E2=80=9C.
If you=E2=80=99re going to use non-strict comparison c= heck =E2=80=9Cswitch=E2=80=9D operator:=C2=A0https://3v4l.org/tHkJu
Anyway, as for me it should be another thread. Thanks!

Hi Dmitry,

The issue absolutely belong to a thread discussing making =E2=80=9Cmatch (true) {}=E2=80=9D equivalent to =E2=80=9Cmatch {}= =E2=80=9D.

agree


It doesn=E2=80=99t matter what is logical or simple, you have = also think about what is intuitive or, conversely, confusing.

Of course it matters what is logical as a logical rule is much better to remember and document as a rule with tons of exceptions.<= br>



With `match (true) { $foo =3D> ... }`, it is clear you are comparing =C2=A0$foo with the literal value `true`.

With `match { $foo =3D> ... }`, it is not intuitive at all that you are *not* just checking the condition $foo, but rather you are comparing $foo with some default literal value. The difference matters.

Therefore, I think it is a bad idea to make `match (true) { }` equivalent to `match { }`.

No, for me this isn't logical and it's going to be an exception which is harder to follow.

Given your example from above actually shows me that this would hide an error case (or better makes the error case look like the usual one in this case)

Additionally, if you really what to compare empty vs. non empty you can use empty to make it explicit.


Marc

--------------cJsi3ic0YC75FPZybVc2oTgK-- --------------0EKE3qK2RWWd8S2IWw0WYZxR Content-Type: application/pgp-keys; name="OpenPGP_0x3936ABF753BC88CE.asc" Content-Disposition: attachment; filename="OpenPGP_0x3936ABF753BC88CE.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- xsBNBFby8roBCAD4qHjbk9+V3SmB5DfpkTtX58jYJ9VXVfF54MDoI0fQiYvKyrrg hfO78alHc12RsEZxLH2F5kEfu8WO4wA4apg2gBnRRxqPj7krsct1ySOAdMrRVp8W taeaznpdcn2gJZyAMSI6LTzebT25N77ksvSrUi1BuCKyOa7SmYff3xGgOwYsHQlT 5opMNGPCVegiPmO/K37anwtsgj6L7RVtjXtp2Z3wAs6r3EmO318PL48xDLUgYMvE FAPJglth5FGH2En6n6HFIhxh43LqXQiNeHVjLjS2y8huNBswwc9ZVxk3ip5z/GCm pWnNkgGBOSJ7loJRsq2tOaU6yU8KWb5rhOoFABEBAAHNIU1hcmMgQmVubmV3aXR6 IDxtYXJjQG1hYmUuYmVybGluPsLAeAQTAQIAIgUCVvLyugIbAwYLCQgHAwIGFQgC CQoLBBYCAwECHgECF4AACgkQOTar91O8iM6jzggAwvV6MqU/hcAI6ldpxVjucGz2 J9cAWtva8GL+rm9zvEs7EENtamehJiZob/CTw50WiI/zsJzPblktpT0D2AFBEp9k P5/8CmCpZzxYPsxnLtsFM52fOBpO+aP0PSStBpJjndjBH7HPqKcTCXM3ZM+SL6ly RweAJR7G+JXIZbuUrbjB2lbGx3itNZ6TeXqqnE6KTXNKLEbNHfVdzE4sPDkmuZRo /M2h+gmeS1iQb29WBmhvL6czugCQI9rYl7C4Nci9wPii1lTYyfCWQfQKID4/F2Hi Ov+N/vDMCK1xV8TUeCy8w4X+nYj+wDog046ki9lUM60oPij6WoSJLqfsXr1kNc7A TQRW8vK6AQgAq7QYLB1Dz+8RSi5AGJP1tOFQXtcxyOhNVQZsI1mCQiHay4wteQ+5 m4EOUuR+FrFIlnbSrPdTkKD2wvQDHVqpZivThBpJvara/ick0wi2R3dasu1sPMu1 P6h1EwUsydhviNJB07aLfPAWD6eoqmGTd8236znIIq7mbnNpOnxIQxviTyELUekr Nw38uQtVzR6XZv9PAThA2o1J1JZID7QUpKcNyo9ebYlwxyS+xzhA4DLDqfD6O5sK oKvxEf2fIZeP0ETPpHNYk0WiWnmNoPy8eEY07LriYALVidBwPBcxus0wGoKf8Nun y2aE13SHmj0ioBI1bXMGJx3hEbvzXK6WrwARAQABwsBfBBgBAgAJBQJW8vK6AhsM AAoJEDk2q/dTvIjOkowIAI70P8U4j3eqyK/7x1bnCZZRcpwZ1aH+LR1yMKTINo9N DqlOBWQTLT69YMfV4UN+nTSiD/uLw1fSeLSzBwpoalCMLPVOX/d3Mq5JtL5cKtWU TIVf3Vb7VbN4Rvb8HgWjeSnM1PiG9yQBmLKI68sG/gdgvA/xANdUatkDgG0yj8PC dt+Vy4EblXbIAXZXJ6eRugSKowTjst7iHXKOJxivomHFcmqmkiqjwGTGx/jrhbDt EpPDRk+U9W45D4CbUcyPR6lMSrje5JPGQDv/45M5wPe286YelBjnb0cWRJpA7GZC WDKZOsQ2H6cCRBi8i4m+vfRk7GLA536XnmvWxKFVP9U=3D =3Doi2m -----END PGP PUBLIC KEY BLOCK----- --------------0EKE3qK2RWWd8S2IWw0WYZxR-- --------------mZZNHmrk4G1q5OMijALyS93U-- --------------cAENRCe4uu4CKGGxGHRIZ0AS Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wsB5BAABCAAjFiEENJIbKB0SAX2RmUKbOTar91O8iM4FAmeiYpcFAwAAAAAACgkQOTar91O8iM4l nAf9EU4Y3FrXoGOJwyi3qQTroJ+tyPF5MjlzYJ0I9e7c59oBKgCFxrRtqxv48J0PDnFlJCm9oQ5D GvkoOII+I4jIbKZQUtpOaFTxvr3zFBgPSmFpkY7yscMfB1n6W4ZeWBLDWVmiuKGX3K8KETc+igpq IeDERloxMvfgxk2GezZBt72IryqOijtWK7BrwU1gq/6/P8x/EfmGxhWM4X6I6lWiOokqgYapEhHj Y+946FlLG2BncCObVtGLDhtOEs+JZ9eUeQOVbSa9S8ARGFsDWE5cg/YWbQhVmzQjD952wmkTdW+S DHsYTOlGeI234tkrEZT4TIvxyIpNf5GHFt3GdrQvgA== =agp2 -----END PGP SIGNATURE----- --------------cAENRCe4uu4CKGGxGHRIZ0AS--