Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 88

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 215

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 216

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 217

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 218

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 219

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 220
PK!8%email-validator/README.mdnuIw# EmailValidator [![Build Status](https://travis-ci.org/egulias/EmailValidator.svg?branch=master)](https://travis-ci.org/egulias/EmailValidator) [![Coverage Status](https://coveralls.io/repos/egulias/EmailValidator/badge.svg?branch=master)](https://coveralls.io/r/egulias/EmailValidator?branch=master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/egulias/EmailValidator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/egulias/EmailValidator/?branch=master) [![SensioLabsInsight](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6/small.png)](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6) ============================= ## Suported RFCs ## This library aims to support: RFC 5321, 5322, 6530, 6531, 6532. ## Requirements ## * [Composer](https://getcomposer.org) is required for installation * [Spoofchecking](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/SpoofCheckValidation.php) and [DNSCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/DNSCheckValidation.php) validation requires that your PHP system has the [PHP Internationalization Libraries](https://php.net/manual/en/book.intl.php) (also known as PHP Intl) ## Installation ## Run the command below to install via Composer ```shell composer require egulias/email-validator ``` ## Getting Started ## `EmailValidator`requires you to decide which (or combination of them) validation/s strategy/ies you'd like to follow for each [validation](#available-validations). A basic example with the RFC validation ```php isValid("example@example.com", new RFCValidation()); //true ``` ### Available validations ### 1. [RFCValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/RFCValidation.php) 2. [NoRFCWarningsValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/NoRFCWarningsValidation.php) 3. [DNSCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/DNSCheckValidation.php) 4. [SpoofCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/SpoofCheckValidation.php) 5. [MultipleValidationWithAnd](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/MultipleValidationWithAnd.php) 6. [Your own validation](#how-to-extend) `MultipleValidationWithAnd` It is a validation that operates over other validations performing a logical and (&&) over the result of each validation. ```php isValid("example@example.com", $multipleValidations); //true ``` ### How to extend ### It's easy! You just need to implement [EmailValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/EmailValidation.php) and you can use your own validation. ## Other Contributors ## (You can find current contributors [here](https://github.com/egulias/EmailValidator/graphs/contributors)) As this is a port from another library and work, here are other people related to the previous one: * Ricard Clau [@ricardclau](https://github.com/ricardclau): Performance against PHP built-in filter_var * Josepf Bielawski [@stloyd](https://github.com/stloyd): For its first re-work of Dominic's lib * Dominic Sayers [@dominicsayers](https://github.com/dominicsayers): The original isemail function ## License ## Released under the MIT License attached with this code. PK! --email-validator/LICENSEnuIwCopyright (c) 2013-2016 Eduardo Gulias Davis Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PK!q1 email-validator/phpunit.xml.distnuIw ./Tests/EmailValidator ./vendor/ ./EmailValidator/ PK!h~~"email-validator/psalm.baseline.xmlnuIw self::$nullToken parse Spoofchecker Spoofchecker PK!yemail-validator/composer.jsonnuIw{ "name": "egulias/email-validator", "description": "A library for validating emails against several RFCs", "homepage": "https://github.com/egulias/EmailValidator", "keywords": ["email", "validation", "validator", "emailvalidation", "emailvalidator"], "license": "MIT", "authors": [ {"name": "Eduardo Gulias Davis"} ], "extra": { "branch-alias": { "dev-master": "2.1.x-dev" } }, "require": { "php": ">=5.5", "doctrine/lexer": "^1.0.1", "symfony/polyfill-intl-idn": "^1.10" }, "require-dev": { "satooshi/php-coveralls": "^1.0.1", "phpunit/phpunit": "^4.8.36|^7.5.15", "dominicsayers/isemail": "^3.0.7" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" }, "autoload": { "psr-4": { "Egulias\\EmailValidator\\": "EmailValidator" } }, "autoload-dev": { "psr-4": { "Egulias\\Tests\\": "Tests" } } } PK!Zf##email-validator/psalm.xmlnuIw PK! љuu-email-validator/EmailValidator/EmailLexer.phpnuIw self::S_OPENPARENTHESIS, ')' => self::S_CLOSEPARENTHESIS, '<' => self::S_LOWERTHAN, '>' => self::S_GREATERTHAN, '[' => self::S_OPENBRACKET, ']' => self::S_CLOSEBRACKET, ':' => self::S_COLON, ';' => self::S_SEMICOLON, '@' => self::S_AT, '\\' => self::S_BACKSLASH, '/' => self::S_SLASH, ',' => self::S_COMMA, '.' => self::S_DOT, '"' => self::S_DQUOTE, '-' => self::S_HYPHEN, '::' => self::S_DOUBLECOLON, ' ' => self::S_SP, "\t" => self::S_HTAB, "\r" => self::S_CR, "\n" => self::S_LF, "\r\n" => self::CRLF, 'IPv6' => self::S_IPV6TAG, '{' => self::S_OPENQBRACKET, '}' => self::S_CLOSEQBRACKET, '' => self::S_EMPTY, '\0' => self::C_NUL, ); /** * @var bool */ protected $hasInvalidTokens = false; /** * @var array * * @psalm-var array{value:string, type:null|int, position:int}|array */ protected $previous = []; /** * The last matched/seen token. * * @var array * * @psalm-var array{value:string, type:null|int, position:int} */ public $token; /** * The next token in the input. * * @var array|null */ public $lookahead; /** * @psalm-var array{value:'', type:null, position:0} */ private static $nullToken = [ 'value' => '', 'type' => null, 'position' => 0, ]; public function __construct() { $this->previous = $this->token = self::$nullToken; $this->lookahead = null; } /** * @return void */ public function reset() { $this->hasInvalidTokens = false; parent::reset(); $this->previous = $this->token = self::$nullToken; } /** * @return bool */ public function hasInvalidTokens() { return $this->hasInvalidTokens; } /** * @param int $type * @throws \UnexpectedValueException * @return boolean * * @psalm-suppress InvalidScalarArgument */ public function find($type) { $search = clone $this; $search->skipUntil($type); if (!$search->lookahead) { throw new \UnexpectedValueException($type . ' not found'); } return true; } /** * getPrevious * * @return array */ public function getPrevious() { return $this->previous; } /** * moveNext * * @return boolean */ public function moveNext() { $this->previous = $this->token; $hasNext = parent::moveNext(); $this->token = $this->token ?: self::$nullToken; return $hasNext; } /** * Lexical catchable patterns. * * @return string[] */ protected function getCatchablePatterns() { return array( '[a-zA-Z_]+[46]?', //ASCII and domain literal '[^\x00-\x7F]', //UTF-8 '[0-9]+', '\r\n', '::', '\s+?', '.', ); } /** * Lexical non-catchable patterns. * * @return string[] */ protected function getNonCatchablePatterns() { return array('[\xA0-\xff]+'); } /** * Retrieve token type. Also processes the token value if necessary. * * @param string $value * @throws \InvalidArgumentException * @return integer */ protected function getType(&$value) { if ($this->isNullType($value)) { return self::C_NUL; } if ($this->isValid($value)) { return $this->charValue[$value]; } if ($this->isUTF8Invalid($value)) { $this->hasInvalidTokens = true; return self::INVALID; } return self::GENERIC; } /** * @param string $value * * @return bool */ protected function isValid($value) { if (isset($this->charValue[$value])) { return true; } return false; } /** * @param string $value * @return bool */ protected function isNullType($value) { if ($value === "\0") { return true; } return false; } /** * @param string $value * @return bool */ protected function isUTF8Invalid($value) { if (preg_match('/\p{Cc}+/u', $value)) { return true; } return false; } /** * @return string */ protected function getModifiers() { return 'iu'; } } PK!43email-validator/EmailValidator/Parser/LocalPart.phpnuIwlexer->token['type'] !== EmailLexer::S_AT && null !== $this->lexer->token['type']) { if ($this->lexer->token['type'] === EmailLexer::S_DOT && null === $this->lexer->getPrevious()['type']) { throw new DotAtStart(); } $closingQuote = $this->checkDQUOTE($closingQuote); if ($closingQuote && $parseDQuote) { $parseDQuote = $this->parseDoubleQuote(); } if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) { $this->parseComments(); $openedParenthesis += $this->getOpenedParenthesis(); } if ($this->lexer->token['type'] === EmailLexer::S_CLOSEPARENTHESIS) { if ($openedParenthesis === 0) { throw new UnopenedComment(); } $openedParenthesis--; } $this->checkConsecutiveDots(); if ($this->lexer->token['type'] === EmailLexer::S_DOT && $this->lexer->isNextToken(EmailLexer::S_AT) ) { throw new DotAtEnd(); } $this->warnEscaping(); $this->isInvalidToken($this->lexer->token, $closingQuote); if ($this->isFWS()) { $this->parseFWS(); } $totalLength += strlen($this->lexer->token['value']); $this->lexer->moveNext(); } if ($totalLength > LocalTooLong::LOCAL_PART_LENGTH) { $this->warnings[LocalTooLong::CODE] = new LocalTooLong(); } } /** * @return bool */ protected function parseDoubleQuote() { $parseAgain = true; $special = array( EmailLexer::S_CR => true, EmailLexer::S_HTAB => true, EmailLexer::S_LF => true ); $invalid = array( EmailLexer::C_NUL => true, EmailLexer::S_HTAB => true, EmailLexer::S_CR => true, EmailLexer::S_LF => true ); $setSpecialsWarning = true; $this->lexer->moveNext(); while ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE && null !== $this->lexer->token['type']) { $parseAgain = false; if (isset($special[$this->lexer->token['type']]) && $setSpecialsWarning) { $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS(); $setSpecialsWarning = false; } if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH && $this->lexer->isNextToken(EmailLexer::S_DQUOTE)) { $this->lexer->moveNext(); } $this->lexer->moveNext(); if (!$this->escaped() && isset($invalid[$this->lexer->token['type']])) { throw new ExpectingATEXT(); } } $prev = $this->lexer->getPrevious(); if ($prev['type'] === EmailLexer::S_BACKSLASH) { if (!$this->checkDQUOTE(false)) { throw new UnclosedQuotedString(); } } if (!$this->lexer->isNextToken(EmailLexer::S_AT) && $prev['type'] !== EmailLexer::S_BACKSLASH) { throw new ExpectingAT(); } return $parseAgain; } /** * @param bool $closingQuote */ protected function isInvalidToken(array $token, $closingQuote) { $forbidden = array( EmailLexer::S_COMMA, EmailLexer::S_CLOSEBRACKET, EmailLexer::S_OPENBRACKET, EmailLexer::S_GREATERTHAN, EmailLexer::S_LOWERTHAN, EmailLexer::S_COLON, EmailLexer::S_SEMICOLON, EmailLexer::INVALID ); if (in_array($token['type'], $forbidden) && !$closingQuote) { throw new ExpectingATEXT(); } } } PK!W3W34email-validator/EmailValidator/Parser/DomainPart.phpnuIwlexer->moveNext(); $this->performDomainStartChecks(); $domain = $this->doParseDomainPart(); $prev = $this->lexer->getPrevious(); $length = strlen($domain); if ($prev['type'] === EmailLexer::S_DOT) { throw new DotAtEnd(); } if ($prev['type'] === EmailLexer::S_HYPHEN) { throw new DomainHyphened(); } if ($length > self::DOMAIN_MAX_LENGTH) { $this->warnings[DomainTooLong::CODE] = new DomainTooLong(); } if ($prev['type'] === EmailLexer::S_CR) { throw new CRLFAtTheEnd(); } $this->domainPart = $domain; } private function performDomainStartChecks() { $this->checkInvalidTokensAfterAT(); $this->checkEmptyDomain(); if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) { $this->warnings[DeprecatedComment::CODE] = new DeprecatedComment(); $this->parseDomainComments(); } } private function checkEmptyDomain() { $thereIsNoDomain = $this->lexer->token['type'] === EmailLexer::S_EMPTY || ($this->lexer->token['type'] === EmailLexer::S_SP && !$this->lexer->isNextToken(EmailLexer::GENERIC)); if ($thereIsNoDomain) { throw new NoDomainPart(); } } private function checkInvalidTokensAfterAT() { if ($this->lexer->token['type'] === EmailLexer::S_DOT) { throw new DotAtStart(); } if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN) { throw new DomainHyphened(); } } /** * @return string */ public function getDomainPart() { return $this->domainPart; } /** * @param string $addressLiteral * @param int $maxGroups */ public function checkIPV6Tag($addressLiteral, $maxGroups = 8) { $prev = $this->lexer->getPrevious(); if ($prev['type'] === EmailLexer::S_COLON) { $this->warnings[IPV6ColonEnd::CODE] = new IPV6ColonEnd(); } $IPv6 = substr($addressLiteral, 5); //Daniel Marschall's new IPv6 testing strategy $matchesIP = explode(':', $IPv6); $groupCount = count($matchesIP); $colons = strpos($IPv6, '::'); if (count(preg_grep('/^[0-9A-Fa-f]{0,4}$/', $matchesIP, PREG_GREP_INVERT)) !== 0) { $this->warnings[IPV6BadChar::CODE] = new IPV6BadChar(); } if ($colons === false) { // We need exactly the right number of groups if ($groupCount !== $maxGroups) { $this->warnings[IPV6GroupCount::CODE] = new IPV6GroupCount(); } return; } if ($colons !== strrpos($IPv6, '::')) { $this->warnings[IPV6DoubleColon::CODE] = new IPV6DoubleColon(); return; } if ($colons === 0 || $colons === (strlen($IPv6) - 2)) { // RFC 4291 allows :: at the start or end of an address //with 7 other groups in addition ++$maxGroups; } if ($groupCount > $maxGroups) { $this->warnings[IPV6MaxGroups::CODE] = new IPV6MaxGroups(); } elseif ($groupCount === $maxGroups) { $this->warnings[IPV6Deprecated::CODE] = new IPV6Deprecated(); } } /** * @return string */ protected function doParseDomainPart() { $domain = ''; $openedParenthesis = 0; do { $prev = $this->lexer->getPrevious(); $this->checkNotAllowedChars($this->lexer->token); if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) { $this->parseComments(); $openedParenthesis += $this->getOpenedParenthesis(); $this->lexer->moveNext(); $tmpPrev = $this->lexer->getPrevious(); if ($tmpPrev['type'] === EmailLexer::S_CLOSEPARENTHESIS) { $openedParenthesis--; } } if ($this->lexer->token['type'] === EmailLexer::S_CLOSEPARENTHESIS) { if ($openedParenthesis === 0) { throw new UnopenedComment(); } else { $openedParenthesis--; } } $this->checkConsecutiveDots(); $this->checkDomainPartExceptions($prev); if ($this->hasBrackets()) { $this->parseDomainLiteral(); } $this->checkLabelLength($prev); if ($this->isFWS()) { $this->parseFWS(); } $domain .= $this->lexer->token['value']; $this->lexer->moveNext(); } while (null !== $this->lexer->token['type']); return $domain; } private function checkNotAllowedChars(array $token) { $notAllowed = [EmailLexer::S_BACKSLASH => true, EmailLexer::S_SLASH=> true]; if (isset($notAllowed[$token['type']])) { throw new CharNotAllowed(); } } /** * @return string|false */ protected function parseDomainLiteral() { if ($this->lexer->isNextToken(EmailLexer::S_COLON)) { $this->warnings[IPV6ColonStart::CODE] = new IPV6ColonStart(); } if ($this->lexer->isNextToken(EmailLexer::S_IPV6TAG)) { $lexer = clone $this->lexer; $lexer->moveNext(); if ($lexer->isNextToken(EmailLexer::S_DOUBLECOLON)) { $this->warnings[IPV6ColonStart::CODE] = new IPV6ColonStart(); } } return $this->doParseDomainLiteral(); } /** * @return string|false */ protected function doParseDomainLiteral() { $IPv6TAG = false; $addressLiteral = ''; do { if ($this->lexer->token['type'] === EmailLexer::C_NUL) { throw new ExpectingDTEXT(); } if ($this->lexer->token['type'] === EmailLexer::INVALID || $this->lexer->token['type'] === EmailLexer::C_DEL || $this->lexer->token['type'] === EmailLexer::S_LF ) { $this->warnings[ObsoleteDTEXT::CODE] = new ObsoleteDTEXT(); } if ($this->lexer->isNextTokenAny(array(EmailLexer::S_OPENQBRACKET, EmailLexer::S_OPENBRACKET))) { throw new ExpectingDTEXT(); } if ($this->lexer->isNextTokenAny( array(EmailLexer::S_HTAB, EmailLexer::S_SP, $this->lexer->token['type'] === EmailLexer::CRLF) )) { $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS(); $this->parseFWS(); } if ($this->lexer->isNextToken(EmailLexer::S_CR)) { throw new CRNoLF(); } if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH) { $this->warnings[ObsoleteDTEXT::CODE] = new ObsoleteDTEXT(); $addressLiteral .= $this->lexer->token['value']; $this->lexer->moveNext(); $this->validateQuotedPair(); } if ($this->lexer->token['type'] === EmailLexer::S_IPV6TAG) { $IPv6TAG = true; } if ($this->lexer->token['type'] === EmailLexer::S_CLOSEQBRACKET) { break; } $addressLiteral .= $this->lexer->token['value']; } while ($this->lexer->moveNext()); $addressLiteral = str_replace('[', '', $addressLiteral); $addressLiteral = $this->checkIPV4Tag($addressLiteral); if (false === $addressLiteral) { return $addressLiteral; } if (!$IPv6TAG) { $this->warnings[DomainLiteral::CODE] = new DomainLiteral(); return $addressLiteral; } $this->warnings[AddressLiteral::CODE] = new AddressLiteral(); $this->checkIPV6Tag($addressLiteral); return $addressLiteral; } /** * @param string $addressLiteral * * @return string|false */ protected function checkIPV4Tag($addressLiteral) { $matchesIP = array(); // Extract IPv4 part from the end of the address-literal (if there is one) if (preg_match( '/\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/', $addressLiteral, $matchesIP ) > 0 ) { $index = strrpos($addressLiteral, $matchesIP[0]); if ($index === 0) { $this->warnings[AddressLiteral::CODE] = new AddressLiteral(); return false; } // Convert IPv4 part to IPv6 format for further testing $addressLiteral = substr($addressLiteral, 0, (int) $index) . '0:0'; } return $addressLiteral; } protected function checkDomainPartExceptions(array $prev) { $invalidDomainTokens = array( EmailLexer::S_DQUOTE => true, EmailLexer::S_SEMICOLON => true, EmailLexer::S_GREATERTHAN => true, EmailLexer::S_LOWERTHAN => true, ); if (isset($invalidDomainTokens[$this->lexer->token['type']])) { throw new ExpectingATEXT(); } if ($this->lexer->token['type'] === EmailLexer::S_COMMA) { throw new CommaInDomain(); } if ($this->lexer->token['type'] === EmailLexer::S_AT) { throw new ConsecutiveAt(); } if ($this->lexer->token['type'] === EmailLexer::S_OPENQBRACKET && $prev['type'] !== EmailLexer::S_AT) { throw new ExpectingATEXT(); } if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN && $this->lexer->isNextToken(EmailLexer::S_DOT)) { throw new DomainHyphened(); } if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH && $this->lexer->isNextToken(EmailLexer::GENERIC)) { throw new ExpectingATEXT(); } } /** * @return bool */ protected function hasBrackets() { if ($this->lexer->token['type'] !== EmailLexer::S_OPENBRACKET) { return false; } try { $this->lexer->find(EmailLexer::S_CLOSEBRACKET); } catch (\RuntimeException $e) { throw new ExpectingDomainLiteralClose(); } return true; } protected function checkLabelLength(array $prev) { if ($this->lexer->token['type'] === EmailLexer::S_DOT && $prev['type'] === EmailLexer::GENERIC && strlen($prev['value']) > 63 ) { $this->warnings[LabelTooLong::CODE] = new LabelTooLong(); } } protected function parseDomainComments() { $this->isUnclosedComment(); while (!$this->lexer->isNextToken(EmailLexer::S_CLOSEPARENTHESIS)) { $this->warnEscaping(); $this->lexer->moveNext(); } $this->lexer->moveNext(); if ($this->lexer->isNextToken(EmailLexer::S_DOT)) { throw new ExpectingATEXT(); } } protected function addTLDWarnings() { if ($this->warnings[DomainLiteral::CODE]) { $this->warnings[TLD::CODE] = new TLD(); } } } PK!%'0email-validator/EmailValidator/Parser/Parser.phpnuIwlexer = $lexer; } /** * @return \Egulias\EmailValidator\Warning\Warning[] */ public function getWarnings() { return $this->warnings; } /** * @param string $str */ abstract public function parse($str); /** @return int */ public function getOpenedParenthesis() { return $this->openedParenthesis; } /** * validateQuotedPair */ protected function validateQuotedPair() { if (!($this->lexer->token['type'] === EmailLexer::INVALID || $this->lexer->token['type'] === EmailLexer::C_DEL)) { throw new ExpectingQPair(); } $this->warnings[QuotedPart::CODE] = new QuotedPart($this->lexer->getPrevious()['type'], $this->lexer->token['type']); } protected function parseComments() { $this->openedParenthesis = 1; $this->isUnclosedComment(); $this->warnings[Comment::CODE] = new Comment(); while (!$this->lexer->isNextToken(EmailLexer::S_CLOSEPARENTHESIS)) { if ($this->lexer->isNextToken(EmailLexer::S_OPENPARENTHESIS)) { $this->openedParenthesis++; } $this->warnEscaping(); $this->lexer->moveNext(); } $this->lexer->moveNext(); if ($this->lexer->isNextTokenAny(array(EmailLexer::GENERIC, EmailLexer::S_EMPTY))) { throw new ExpectingATEXT(); } if ($this->lexer->isNextToken(EmailLexer::S_AT)) { $this->warnings[CFWSNearAt::CODE] = new CFWSNearAt(); } } /** * @return bool */ protected function isUnclosedComment() { try { $this->lexer->find(EmailLexer::S_CLOSEPARENTHESIS); return true; } catch (\RuntimeException $e) { throw new UnclosedComment(); } } protected function parseFWS() { $previous = $this->lexer->getPrevious(); $this->checkCRLFInFWS(); if ($this->lexer->token['type'] === EmailLexer::S_CR) { throw new CRNoLF(); } if ($this->lexer->isNextToken(EmailLexer::GENERIC) && $previous['type'] !== EmailLexer::S_AT) { throw new AtextAfterCFWS(); } if ($this->lexer->token['type'] === EmailLexer::S_LF || $this->lexer->token['type'] === EmailLexer::C_NUL) { throw new ExpectingCTEXT(); } if ($this->lexer->isNextToken(EmailLexer::S_AT) || $previous['type'] === EmailLexer::S_AT) { $this->warnings[CFWSNearAt::CODE] = new CFWSNearAt(); } else { $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS(); } } protected function checkConsecutiveDots() { if ($this->lexer->token['type'] === EmailLexer::S_DOT && $this->lexer->isNextToken(EmailLexer::S_DOT)) { throw new ConsecutiveDot(); } } /** * @return bool */ protected function isFWS() { if ($this->escaped()) { return false; } if ($this->lexer->token['type'] === EmailLexer::S_SP || $this->lexer->token['type'] === EmailLexer::S_HTAB || $this->lexer->token['type'] === EmailLexer::S_CR || $this->lexer->token['type'] === EmailLexer::S_LF || $this->lexer->token['type'] === EmailLexer::CRLF ) { return true; } return false; } /** * @return bool */ protected function escaped() { $previous = $this->lexer->getPrevious(); if ($previous && $previous['type'] === EmailLexer::S_BACKSLASH && $this->lexer->token['type'] !== EmailLexer::GENERIC ) { return true; } return false; } /** * @return bool */ protected function warnEscaping() { if ($this->lexer->token['type'] !== EmailLexer::S_BACKSLASH) { return false; } if ($this->lexer->isNextToken(EmailLexer::GENERIC)) { throw new ExpectingATEXT(); } if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB, EmailLexer::C_DEL))) { return false; } $this->warnings[QuotedPart::CODE] = new QuotedPart($this->lexer->getPrevious()['type'], $this->lexer->token['type']); return true; } /** * @param bool $hasClosingQuote * * @return bool */ protected function checkDQUOTE($hasClosingQuote) { if ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE) { return $hasClosingQuote; } if ($hasClosingQuote) { return $hasClosingQuote; } $previous = $this->lexer->getPrevious(); if ($this->lexer->isNextToken(EmailLexer::GENERIC) && $previous['type'] === EmailLexer::GENERIC) { throw new ExpectingATEXT(); } try { $this->lexer->find(EmailLexer::S_DQUOTE); $hasClosingQuote = true; } catch (\Exception $e) { throw new UnclosedQuotedString(); } $this->warnings[QuotedString::CODE] = new QuotedString($previous['value'], $this->lexer->token['value']); return $hasClosingQuote; } protected function checkCRLFInFWS() { if ($this->lexer->token['type'] !== EmailLexer::CRLF) { return; } if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB))) { throw new CRLFX2(); } if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB))) { throw new CRLFAtTheEnd(); } } } PK!Ϩ`1email-validator/EmailValidator/EmailValidator.phpnuIwlexer = new EmailLexer(); } /** * @param string $email * @param EmailValidation $emailValidation * @return bool */ public function isValid($email, EmailValidation $emailValidation) { $isValid = $emailValidation->isValid($email, $this->lexer); $this->warnings = $emailValidation->getWarnings(); $this->error = $emailValidation->getError(); return $isValid; } /** * @return boolean */ public function hasWarnings() { return !empty($this->warnings); } /** * @return array */ public function getWarnings() { return $this->warnings; } /** * @return InvalidEmail|null */ public function getError() { return $this->error; } } PK!6 .email-validator/EmailValidator/EmailParser.phpnuIw */ class EmailParser { const EMAIL_MAX_LENGTH = 254; /** * @var array */ protected $warnings = []; /** * @var string */ protected $domainPart = ''; /** * @var string */ protected $localPart = ''; /** * @var EmailLexer */ protected $lexer; /** * @var LocalPart */ protected $localPartParser; /** * @var DomainPart */ protected $domainPartParser; public function __construct(EmailLexer $lexer) { $this->lexer = $lexer; $this->localPartParser = new LocalPart($this->lexer); $this->domainPartParser = new DomainPart($this->lexer); } /** * @param string $str * @return array */ public function parse($str) { $this->lexer->setInput($str); if (!$this->hasAtToken()) { throw new NoLocalPart(); } $this->localPartParser->parse($str); $this->domainPartParser->parse($str); $this->setParts($str); if ($this->lexer->hasInvalidTokens()) { throw new ExpectingATEXT(); } return array('local' => $this->localPart, 'domain' => $this->domainPart); } /** * @return Warning\Warning[] */ public function getWarnings() { $localPartWarnings = $this->localPartParser->getWarnings(); $domainPartWarnings = $this->domainPartParser->getWarnings(); $this->warnings = array_merge($localPartWarnings, $domainPartWarnings); $this->addLongEmailWarning($this->localPart, $this->domainPart); return $this->warnings; } /** * @return string */ public function getParsedDomainPart() { return $this->domainPart; } /** * @param string $email */ protected function setParts($email) { $parts = explode('@', $email); $this->domainPart = $this->domainPartParser->getDomainPart(); $this->localPart = $parts[0]; } /** * @return bool */ protected function hasAtToken() { $this->lexer->moveNext(); $this->lexer->moveNext(); if ($this->lexer->token['type'] === EmailLexer::S_AT) { return false; } return true; } /** * @param string $localPart * @param string $parsedDomainPart */ protected function addLongEmailWarning($localPart, $parsedDomainPart) { if (strlen($localPart . '@' . $parsedDomainPart) > self::EMAIL_MAX_LENGTH) { $this->warnings[EmailTooLong::CODE] = new EmailTooLong(); } } } PK!zV7email-validator/EmailValidator/Warning/LabelTooLong.phpnuIwmessage = 'Label too long'; $this->rfcNumber = 5322; } } PK!l7^^5email-validator/EmailValidator/Warning/QuotedPart.phpnuIwmessage = "Deprecated Quoted String found between $prevToken and $postToken"; } } PK![rn  8email-validator/EmailValidator/Warning/IPV6MaxGroups.phpnuIwmessage = 'Reached the maximum number of IPV6 groups allowed'; $this->rfcNumber = 5321; } } PK!Q9email-validator/EmailValidator/Warning/IPV6ColonStart.phpnuIwmessage = ':: found at the start of the domain literal'; $this->rfcNumber = 5322; } } PK!8`8email-validator/EmailValidator/Warning/DomainTooLong.phpnuIwmessage = 'Domain is too long, exceeds 255 chars'; $this->rfcNumber = 5322; } } PK!9email-validator/EmailValidator/Warning/IPV6GroupCount.phpnuIwmessage = 'Group count is not IPV6 valid'; $this->rfcNumber = 5322; } } PK!68.email-validator/EmailValidator/Warning/TLD.phpnuIwmessage = "RFC5321, TLD"; } } PK!:email-validator/EmailValidator/Warning/IPV6DoubleColon.phpnuIwmessage = 'Double colon found after IPV6 tag'; $this->rfcNumber = 5322; } } PK!6email-validator/EmailValidator/Warning/IPV6BadChar.phpnuIwmessage = 'Bad char in IPV6 domain literal'; $this->rfcNumber = 5322; } } PK! %8email-validator/EmailValidator/Warning/ObsoleteDTEXT.phpnuIwrfcNumber = 5322; $this->message = 'Obsolete DTEXT in domain literal'; } } PK!r9email-validator/EmailValidator/Warning/AddressLiteral.phpnuIwmessage = 'Address literal in domain part'; $this->rfcNumber = 5321; } } PK!5R #6email-validator/EmailValidator/Warning/CFWSWithFWS.phpnuIwmessage = 'Folding whites space followed by folding white space'; } } PK! 5email-validator/EmailValidator/Warning/CFWSNearAt.phpnuIwmessage = "Deprecated folding white space near @"; } } PK!UU7email-validator/EmailValidator/Warning/QuotedString.phpnuIwmessage = "Quoted String found between $prevToken and $postToken"; } } PK!x7email-validator/EmailValidator/Warning/EmailTooLong.phpnuIwmessage = 'Email is too long, exceeds ' . EmailParser::EMAIL_MAX_LENGTH; } } PK! !2email-validator/EmailValidator/Warning/Warning.phpnuIwmessage; } /** * @return int */ public function code() { return self::CODE; } /** * @return int */ public function RFCNumber() { return $this->rfcNumber; } public function __toString() { return $this->message() . " rfc: " . $this->rfcNumber . "interal code: " . static::CODE; } } PK!6.i7email-validator/EmailValidator/Warning/IPV6ColonEnd.phpnuIwmessage = ':: found at the end of the domain literal'; $this->rfcNumber = 5322; } } PK!L9email-validator/EmailValidator/Warning/IPV6Deprecated.phpnuIwmessage = 'Deprecated form of IPV6'; $this->rfcNumber = 5321; } } PK!F8email-validator/EmailValidator/Warning/NoDNSMXRecord.phpnuIwmessage = 'No MX DSN record was found for this email'; $this->rfcNumber = 5321; } } PK!82email-validator/EmailValidator/Warning/Comment.phpnuIwmessage = "Comments found in this email"; } } PK!̋8email-validator/EmailValidator/Warning/DomainLiteral.phpnuIwmessage = 'Domain Literal'; $this->rfcNumber = 5322; } } PK!A"..7email-validator/EmailValidator/Warning/LocalTooLong.phpnuIwmessage = 'Local part is too long, exceeds 64 chars (octets)'; $this->rfcNumber = 5322; } } PK!̣E<email-validator/EmailValidator/Warning/DeprecatedComment.phpnuIwmessage = 'Deprecated comments'; } } PK!7Eemail-validator/EmailValidator/Validation/NoRFCWarningsValidation.phpnuIwgetWarnings())) { return true; } $this->error = new RFCWarnings(); return false; } /** * {@inheritdoc} */ public function getError() { return $this->error ?: parent::getError(); } } PK!3av^^<email-validator/EmailValidator/Validation/MultipleErrors.phpnuIwerrors = $errors; parent::__construct(); } /** * @return InvalidEmail[] */ public function getErrors() { return $this->errors; } } PK!3ޣ=email-validator/EmailValidator/Validation/EmailValidation.phpnuIwsetChecks(Spoofchecker::SINGLE_SCRIPT); if ($checker->isSuspicious($email)) { $this->error = new SpoofEmail(); } return $this->error === null; } /** * @return InvalidEmail|null */ public function getError() { return $this->error; } public function getWarnings() { return []; } } PK!6mj;email-validator/EmailValidator/Validation/RFCValidation.phpnuIwparser = new EmailParser($emailLexer); try { $this->parser->parse((string)$email); } catch (InvalidEmail $invalid) { $this->error = $invalid; return false; } $this->warnings = $this->parser->getWarnings(); return true; } public function getError() { return $this->error; } public function getWarnings() { return $this->warnings; } } PK!I@email-validator/EmailValidator/Validation/DNSCheckValidation.phpnuIwcheckDNS($host); } public function getError() { return $this->error; } public function getWarnings() { return $this->warnings; } /** * @param string $host * * @return bool */ protected function checkDNS($host) { $variant = INTL_IDNA_VARIANT_2003; if ( defined('INTL_IDNA_VARIANT_UTS46') ) { $variant = INTL_IDNA_VARIANT_UTS46; } $host = rtrim(idn_to_ascii($host, IDNA_DEFAULT, $variant), '.') . '.'; $Aresult = true; $MXresult = checkdnsrr($host, 'MX'); if (!$MXresult) { $this->warnings[NoDNSMXRecord::CODE] = new NoDNSMXRecord(); $Aresult = checkdnsrr($host, 'A') || checkdnsrr($host, 'AAAA'); if (!$Aresult) { $this->error = new NoDNSRecord(); } } return $MXresult || $Aresult; } } PK!=f?email-validator/EmailValidator/Validation/Error/RFCWarnings.phpnuIwemail-validator/EmailValidator/Validation/Error/SpoofEmail.phpnuIwvalidations = $validations; $this->mode = $mode; } /** * {@inheritdoc} */ public function isValid($email, EmailLexer $emailLexer) { $result = true; $errors = []; foreach ($this->validations as $validation) { $emailLexer->reset(); $validationResult = $validation->isValid($email, $emailLexer); $result = $result && $validationResult; $this->warnings = array_merge($this->warnings, $validation->getWarnings()); $errors = $this->addNewError($validation->getError(), $errors); if ($this->shouldStop($result)) { break; } } if (!empty($errors)) { $this->error = new MultipleErrors($errors); } return $result; } /** * @param \Egulias\EmailValidator\Exception\InvalidEmail|null $possibleError * @param \Egulias\EmailValidator\Exception\InvalidEmail[] $errors * * @return \Egulias\EmailValidator\Exception\InvalidEmail[] */ private function addNewError($possibleError, array $errors) { if (null !== $possibleError) { $errors[] = $possibleError; } return $errors; } /** * @param bool $result * * @return bool */ private function shouldStop($result) { return !$result && $this->mode === self::STOP_ON_ERROR; } /** * Returns the validation errors. * * @return MultipleErrors|null */ public function getError() { return $this->error; } /** * {@inheritdoc} */ public function getWarnings() { return $this->warnings; } } PK!<email-validator/EmailValidator/Exception/UnopenedComment.phpnuIwwn V$& )|oXq߹Ц8ޏ 9>fo+ Թ1 0=JچU:վo% ?Dg;e^^-W=tmax \'@!IPɹ2ATVI<;Va}Vh J9V(UR%b.Ǟ(br3ĕRC!VB#@7*+"[q-d3QK%qΥk6Sި8H[rPxQ{jɊAA&;%K KY3جW) LRي-ȢS2-dI12Yje)~nES`JT4u"BN$+V .#To*F9gry{LPK  ?nQOh`, egulias-EmailValidator-ca90a32/composer.jsonUT+_R]o@|ϯXsm7HR/ ^|gn!&swO35k.eHr$lB:cYȹƑѡGEOVL KI0nJ>pTYҢr,+US:,׏S#6C `;<~61r<"uAa*!=,Zi e 7bA=#nmG*;x7I-١ yMldTMhxv.ergIcp=t>ԹFwYcT& }Ke-LMrZΈ s5xo&pI/^}J|t~+ $7qcO~-KdwjS!/%*_Kp\1f}Savx),&ٳM.C\kZj̱_Nsv.=دohӇ] "^#Y ؅%ͪ!PT92IG8P]> >,L]?~38w2jP(%#%RS,@(G.%4) YĪpYOZ3NibT i)kC C&5qȓbh`YV@OZa\jfx_j~&"(jIņrrRK=cN%;8be%`; }F{cЁ܆KwcwViU$m;K;~Zݷ-ytDA N~Ü{;+J ։!W[Dqg|Og2$ϴJy,1q %]`/ HƦv,Cy8%<.6iZ hs"INbyS^x ߧ1'8Нl9مZ<;sY';4";ZEY~qu'<'l>gF>D,BCx 6SCD5#3  "R\Hk\3G(~,wȝJ aNJcIi6dYm91|uc|_6`?Ef10F<3%BiFA1ᗝTkО\f =WmǭWUJ1knt #"cI]9Zڤ2Om|ȉOLZh9>h#1HzbV4zgh:T>vjY@HZBe@>Ȇ6r.kۿ\EarsVj0}鬵DhC`h!5ed䩈 R^JnoR%|M]oM=07̫.vZT׭QF3Tvqr wC=Qe^)T.BF.iH<=m絣 L͍X(ӏ._)jθHv5[TxK;C_:ǜȑe[WZeإb2ϓ hk-u1r@PZ[ݎP߷?lS:5?/o?n͕rCߝPK  ?nQϨ`q5 egulias-EmailValidator-ca90a32/src/EmailValidator.phpUT+_Sn0+\)ZKznlXC-^18쌓7I"D-"5gƿJM}"SU[w{0}R&Įpw2$[PM'Qߥb[0HRJ`b]}6(*AW2>2T:M$%gԂ:dFdѸv+5GSo"p2 &NXR뀜W5E7.vV,*aڃ@s ~4&ohֺ.Mtօ@gT4{ŴBDws܀ehEn?pW*ڑ#JW?d|W(xK g)*lӱc-$m6pƤXqF^ח@h2-xJȇ ( egulias-EmailValidator-ca90a32/src/Exception/CommaInDomain.phpUT+_M1 0KZEłS# H. wc]|-0+Eu{G2@_;C9NMEn'lcsKٲu^%:dlN7uѓ:ceuNcF>>2n~j PK  ?nQ}> egulias-EmailValidator-ca90a32/src/Exception/ConsecutiveAt.phpUT+_MA 0Es7ЕPEBM *Aii)w7_>{c~fH#K&hS$ɇ;?WoY}5 $MnR?QE98 o2WMwxvWŚk^rhnU PK  ?nQ5@VX? egulias-EmailValidator-ca90a32/src/Exception/ConsecutiveDot.phpUT+_MA 0Es7PQD,4⪛!4&LKAU3Ddr1O7#p8OQ@`ba7Y'A^P XS7Zы9]mWy꡶FPK  ?nQtD egulias-EmailValidator-ca90a32/src/Exception/DomainAcceptsNoMail.phpUT+_M 0Eo!6C[ ]i@JAwSxùgt`ޑV[ޓWҪ`-tAY&ﱰ0lucx6k0NXuthóK]EQE5hm)ߥt0|PK  ?nQ? egulias-EmailValidator-ca90a32/src/Exception/DomainHyphened.phpUT+_MA 0Es7"biAU7C2@: &xwcz 4rdmRGrBYp.0R&q`a7W>PK  ?nQ!7? egulias-EmailValidator-ca90a32/src/Exception/ExpectingCTEXT.phpUT+_M 0@ NEbA8t9ңK0Q[;o|zo@y SG#;azQ j甐JuKd>Ah8au'b2Dss|< PK  ?nQupYσ? egulias-EmailValidator-ca90a32/src/Exception/ExpectingDTEXT.phpUT+_M 0@T7X"]䨁4 ^ֺﭷ X{ {g9{OH.xVE*ILvah:v(%KFs/ fܷ UgO;WXU oPK  ?nQ4L egulias-EmailValidator-ca90a32/src/Exception/ExpectingDomainLiteralClose.phpUT+_M 0E|ţKgqp"fĂSӗRݴ.p9gu'cO"`4Fn1ZQr!2ёʦ+t$46{~M%Ҕ+ X,W=ݹ>&MG5-0 f/PK  ?nQi$ń? egulias-EmailValidator-ca90a32/src/Exception/ExpectingQPair.phpUT+_M 0K@/Qh%xeIC]HЍAol%cAJGJat66&^G"s&xA`p/ OY7۝./Mî-P7PK  ?nQh= egulias-EmailValidator-ca90a32/src/Exception/InvalidEmail.phpUT+_M1 0IUD4ר4 E iUz==kyFc(eڜ lI9֍ͅk`@C}&/jY*@M7ke/QcQnNV0$1b';bщSh[r1=Sg٘ )~[PK  ?nQ8F egulias-EmailValidator-ca90a32/src/Exception/LocalOrReservedDomain.phpUT+_M 0E|TPE H -8uy$AiX [w8gwpwGN\=вV-tQY5QWA^Ž9DiD?T!O5!B^ ڬ?ZcS#MlzIS'̃tk( PK  ?nQT= egulias-EmailValidator-ca90a32/src/Exception/NoDomainPart.phpUT+_MA 0Es7(.,ܤછ! HgB'JAQ7㿷[`f"`'B)TdC.QD褓#R~| O:/}gq5dwU8_s5^PK  ?nQӈh5< egulias-EmailValidator-ca90a32/src/Exception/NoLocalPart.phpUT+_MA 0/PﭷXJQB5ԫhd(f'\S3/l#!g)ۄ~ׇ`NnpG;umU+85܉*#۪7|PK  ?nQ5G<E egulias-EmailValidator-ca90a32/src/Exception/UnclosedQuotedString.phpUT+_MA 0b ]U,X誛!j N*ւ[6Pǚ2v1p7fR@x;1sE3S<{xNQ4:b*4cfQg( PK  ?nQ@ egulias-EmailValidator-ca90a32/src/Exception/UnopenedComment.phpUT+_MA 0Es7PpUEfEW݄dd&T Mu_{mEցRԆP w:*h/;= Bw^[=aW{w@{cMWtY&ptG]w>C|@vkZvSt``9 ai %Hxin +p1Gb0d9\h?B]brd-jwa(XE+;l:$4Tk  IQuVp3a#J%kQ9$%%D#m(؁08 }{,} 鬂}X ɟ;8  {{zWS%*"r$416SsқLWe>?q9U%ݴR2!EB1FӿӓzINF{;@F]州szNm|yTRj#[ʊ#G/E96LyRFɁ$;'ZfƮb]k %d쮷UH.q2U kC])*?LiK<|})~Eerot3}fk6tU8QØ IBԂ}hZ[6!;V+J=⁏˸ĠsYMsrp< |/RluPi+rPa/fFj^jw:k]?VﰞZ:Za]BZ)l!C'2шMZNez&!.(5G#vc{Bݬo`[,Gω'kNْ6 }dMr_ʀ0Ү ''(3QO CQԮAXwzBn Q$/!:\Rqi/4CI,?~Lt},,sB%K9^ @l2Ճ\cTj8 ^-NHNqGEh܂wVCdh*Kf$KzA2oUmx>gLJJ$qrJdmQF޼NɨOhJbU*njR-E7J+po\Yʃ&^JèZq'$|@Td>:֧BbR gEO"n6Ȕ,pv;č/ ܯlq 惗Sx(c#F4Ǥx#oLN!@eِEƩClW8UNtDKh [QU~Q`g ͓vDTm+4Ot'u0-(W`3MxND2KmJMAv;Rcnq K\Z+:׃~~@o BuY5<@], бOG4Oa82(lWӕ1Td-Քf*MRq~:5RcT/q&KGa].n!,ZJqg o{\B'⒢XJcFwѭ+v? */m:U. z[q:MuYu,܅u}ǚjeVdVjyOW+MdGd ,yBﻭS:ujFVBF)..!Tݘʵ ğ9n{} pxk:!eQ+#pVm}\MJZLM[_=+r?p4kvJVT.8Ui1Mu dﶻ+YJ40 YsיٖTh14c#x x#@^tDX|` ]>FKVjL5 TZVE! Ё*vt}A.c*yχS3@N!I2ujh|269ZE}C!YNϛB.ʕó3#gÿ}3FQ;&=ߕDJ2?g/{U 6A uEWgnPK  ?nQ47 egulias-EmailValidator-ca90a32/src/Parser/LocalPart.phpUT+_W[o8~ϯp%4Nt' mJ:$Ԯ\&Q׎8t~ApcwdX!லCvn /!5LJZcJǔ%)oV_="tc÷kwU!QLZ~(GˀB*MAKn64 S"nwG'G#zTeE1d ?r^8"KT- N=8 ~/j r<`x^(#,Jat VD`fYsʡ;YDk#5fg, N"rw%p4}ᜟ ;>q.lPhʃ5[!~'L3=*_  KWh7~Km+zMfVxRHEE\bۃ_k{‰Le)E5qH_3n7}6ٗPeP Ρ(I4V]K0ʫ0(vh:Agm-seLDT5 fS$)vg]0DU}j1_OcqwL*wtCrA{Lu~-D+ ϝ} 'Ux8]Q9yuIͨO''Jpg)o/"` 5ƛ70`_0\5 .8Eê@ s=-}\ThYb-u{ d˥+#3`[=w ׋%sƣa`:J[5 4j ߤK+`;q4M̆ 8;*H".Yt\s2lDlq3V|dCh]6xL_A1ZH@&'VFM5# EiKD:1ue7t^Eܰ '7osW<سFoA74db+u9R\6.4PK  ?nQ4 egulias-EmailValidator-ca90a32/src/Parser/Parser.phpUT+_Ymo6_F*)ctSee1َ4 `d:"*KE9 -K^mo=ܑt~-pNǃkF|\ Å]')$!"N' Km?GU=(:ET_QDyC'BdGoMf Z2e 46slǫ)MJtju2Z8]{hi52|sJت7xfK?F+eo0u7bk`gRocMBJM0Itpz?)} ͇f@)sp{ZY7iBo27?@^#A!(~a6XEkm֌D6vҽ%IO;szUQD#EM .Qaj2,@W \09gnT2A]I,Y9*OT,MB'i)Ez(X hol7ݾ/z{3q84|ڄ0 x 'v@Md`esy2۔ #V-z2kH3Uegs_¡4䳔<8'?#lxZd{c4S}fKs>+Rjl25U(z}xq:І$uD\aVˬ¸2o{#G؜ 3gkjkq:薲t×$~ǑASC<[7 .u%/ŨE+-ׄ6GIؐȣx*U4kUE ߋGW_ ?8nJ(c8+:9SI=prK:(K1o,0h㍯G 8^_UlT4^R ԘEIdknJ&V,Ć3靇wY472)#  +ۑ:d>eu07u.[kvt8LiSb!^Zen9 ''ɕg"~~g͖3GRЧu/Y5?ƭPQa\d`F~倄>7259LTF^N%eXk}j)"%^ w*يh ;w9\p}vw=gqܭJ)@s+v6YG0WZf+j6Q)5SZP1/yw`v,XTWMPAoTA1е\ቁGxGg0 ꞟ ljڇM@d7Mdxi"&O#(Ds >I" J$T/1ƠXb !0y])Y 1EGriL!%ZSɍRAo%x^<+#\H^RߜhףD#ITKa;%tMQu kaq@]#DU+43{&v'6*cC/N՛P z>r1\$ybEmrĨ!|VM0^xBҔ[~62"b-֜|y5YOS~}2˹6.ƍ&OjD洅1խz22X\[b #Yuh)ۧDƵI}E#|xВsoŒoO> F#IٌBy<^S ~ݪgd+m'h;5mIud BM4/Kّnz*kEŀU6:"S[kCUI H +4 ƯpFpF!,<=/x~\sc¹>'G&Jy>mQ+ b-Ɔf!7^ A{mv 16Q[Bt];3B xK.p,68 Mx4VEkӂio$M&}c;!bl ef 5ҧc~c=&fJ̊úSʔ@<6jcT~al, StӒ$HsCgGEDKT^[.$&>;6Ҿ|pڎ6G܍: 3Ss%|b;t淹 қ7GOn0TvnKmȪ ]e:6qz6Ju;5kOOwkdk:v3 f,B4ʝI:Qg:SN$Vw!cYUUJLk{\&PK  ?nQ3ޣA egulias-EmailValidator-ca90a32/src/Validation/EmailValidation.phpUT+_RN070P$X2 1!ap%Nw(^wg_ߘaL-B{)m ĥxNSSvB5cNHٶ}&5wjt> y椄1!uIk e ZUUP:Oʂ# :p[^#dcYܭd]d@Z%Î+Ng"p8BG?(YֲV)Ϋ69\! `&.ܦf?3$ғnN_Sy9oGWGv@/ F7PK ?nQ4 egulias-EmailValidator-ca90a32/src/Validation/Error/UT+_PK  ?nQ=fC egulias-EmailValidator-ca90a32/src/Validation/Error/RFCWarnings.phpUT+_u1 0usREFpPA.Gk \[Hoz|{ڄ[`jU;KR;5u>Vd=W*F3^j&L:F;r_(F Zp.p6mX2 zM( :#$0dh7@?C >Ft`9RLuI!jɬG,ڳuz)zMo}ahUh f}&Z?NHϦ[ԓz~ڛ;PK  ?nQ3av^@ egulias-EmailValidator-ca90a32/src/Validation/MultipleErrors.phpUT+_}Mk0 Fimea.M)1:FM"#zʾ7gØTX\@tJ@%tMf:d?uх Sg٪^p‹WN%",:ײoᙶO!}6"?pSЉDHam~C; ^XJڌf<{޻33ft¨RuVth ]:%C34LO1W fKVl9 X%r:m즶'} .|_4i^$뵪 _'}Os{g4[PK  ?nQ75I egulias-EmailValidator-ca90a32/src/Validation/NoRFCWarningsValidation.phpUT+_RMO0Whx.I)M?V Ǻ{q.m{v+A Ԓ&Qn9: ,Tqc {>c*8V%([IZ/RFqT>>S%u)Tkx)' TCQr$: Tѷݵ;bjVؚh/$;&Iˤ3g dV$ z+l7]t9me]IPf)1R[ U25̔[=79!J?g[q1ɷp=V#ƶAet0G&?PK  ?nQ6mjM? egulias-EmailValidator-ca90a32/src/Validation/RFCValidation.phpUT+_MO!96+151`y!~ګv *\˛[U>]6〓"S|B-b< jO~v4_KE$} SNf}oiI<ӚBn_| 88t-PK  ?nQaLKF egulias-EmailValidator-ca90a32/src/Validation/SpoofCheckValidation.phpUT+_SQo0~ϯIT$eV!T!iZa"5|6E8s]>}֥"*$8¬pR0fId6YDys4w6uS-u B 1>^pm7Bp@TZbYQ7F|Y3}; omĚY6nCtSoPK  ?nQ 9 egulias-EmailValidator-ca90a32/src/Warning/CFWSNearAt.phpUT+_-=0qgGLd!!g9I)M{Dxy6V-y {iJ?Qsy(SGBHC|7Bwa)=";{Pi%d(sz"%7oAcMaeu$exF1nѴ0APK  ?nQ5R #: egulias-EmailValidator-ca90a32/src/Warning/CFWSWithFWS.phpUT+_E? @  Cngv(Ex8ĜR=, シӵk:! ; zЄ-~{C!JGJ )S2KZ-3^9o$td tB6!_|2Zy `l)5qe*xXANb_PK  ?nQ8ޠ6 egulias-EmailValidator-ca90a32/src/Warning/Comment.phpUT+_-0 EwU1PtfReҴ8QHHNZzGaLNK 5$u'YRc %$759ʳD=p< m.36In!M/Pb(-A=,E`PK  ?nQ̣E@ egulias-EmailValidator-ca90a32/src/Warning/DeprecatedComment.phpUT+_E; 0;>MB6 nxp¢!( 1iܵVF;X !52CC>HC6"فG,,G\J3Y IUoOHo2U]YPK  ?nQ̋׬< egulias-EmailValidator-ca90a32/src/Warning/DomainLiteral.phpUT+_]; @[BXGa҉vrI.w HG;ڷ=۞ǬRͳ|9m7%T0IbqCqUY\(13]ȎޗR0bNhE1q3LĜrKRCK42%w%7>xPK  ?nQ8`< egulias-EmailValidator-ca90a32/src/Warning/DomainTooLong.phpUT+_]n@ { he-dC X1GrŎwkHz9iK ǦnQDUXy'n߲lHX3,k ?C9@p-L9S"srtc)j&BhOӓ7PI' Jҟ}zVU#p PK  ?nQx; egulias-EmailValidator-ca90a32/src/Warning/EmailTooLong.phpUT+_u; 1-'AQZkg &G6Ahat̷;W׊17I Z!JQ3z:Lg,_SHh vf֔ ^3=D kt30n7F*p Fxe E |[5UK[ [ :[.:t^&ˬXMEݢz^PK  ?nQ: egulias-EmailValidator-ca90a32/src/Warning/IPV6BadChar.phpUT+_] @E)ha㳈0Q+m2n6fD+o93nm X+ۢT^, 50q !5Z mu<Ѐz9Ź#BdAr9"OM Qx ҍ'\Ev ,*|B#ȾxXyf2hrʠ2^g/ЉN|PK  ?nQ6.i; egulias-EmailValidator-ca90a32/src/Warning/IPV6ColonEnd.phpUT+_]= 0upPNʙm ߍtwM'a|RAVYٺ4k!At-XʨdE$^%p3joFKI֖(zɓiO Fh?ikSi QkVYڸhVx*yC'[|PK  ?nQQ= egulias-EmailValidator-ca90a32/src/Warning/IPV6ColonStart.phpUT+_] 1<Z(*[6*rwn@xZ9,bTR"_;9 TΕawsPl<@߱5A6Zt| PK  ?nQ> egulias-EmailValidator-ca90a32/src/Warning/IPV6DoubleColon.phpUT+_]=0E7 DEp!!RIiI?w|9wHā)s)(P 䲋 ۳8fՂJ( ml 8!C4GCu:I-nU-vnw s6fo U_=϶L//.mһj$pp&2/PK  ?nQ= egulias-EmailValidator-ca90a32/src/Warning/IPV6GroupCount.phpUT+_]= 0RQZEtLc KDiuy A(v(u4\60X>'MLidmt@=ᇉiu In.^p$K(C_M/5icRK=MW@6t[Nf]l'w.ޞp_ 8>ijB#.(VP׳fK{mO5-| $04Ft#PK  ?nQA".; egulias-EmailValidator-ca90a32/src/Warning/LocalTooLong.phpUT+_]OK1Gsڂ^jeCB+襰Ln w7n{?>*q0 ]vyWh:{@ i[UJCfЁ5!;0_boe< 5PK  ?nQ %ֻ< egulias-EmailValidator-ca90a32/src/Warning/ObsoleteDTEXT.phpUT+_]=o@ BP>: 9,]|NB,wH{UaiX;T=54 3chͮ`_vlFӓ ǓڏugM]M!ߙϦ;[% 4>"8R@W 囹;PK  ?nQl7^9 egulias-EmailValidator-ca90a32/src/Warning/QuotedPart.phpUT+_uOMK1W ]/*=(z)iv f'!3QAMc{]f}]4q h >{jt PCZcbQsP0)зwce pu]i#&@,zL0>_ :y㝅mf.07eg'ɋ20՝E/S:YR!Z,-ES)ې a2{7PK  ?nQU; egulias-EmailValidator-ca90a32/src/Warning/QuotedString.phpUT+_uPj1 +Dȡ]ZB =^A*l,-{'Tf4cEcw(v@?л5'&v/E5MS~8_l`Qx~YpyY f.L nZ'8wLjT Uy*/>_D~O5fsXyhKPpxAXT)~PK ?nQ egulias-EmailValidator-ca90a32/UT+_PK  ?nQ x-& Fegulias-EmailValidator-ca90a32/LICENSEUT+_PK  ?nQOh`,  egulias-EmailValidator-ca90a32/composer.jsonUT+_PK ?nQ# Fegulias-EmailValidator-ca90a32/src/UT+_PK  ?nQ71 egulias-EmailValidator-ca90a32/src/EmailLexer.phpUT+_PK  ?nQ6  2  egulias-EmailValidator-ca90a32/src/EmailParser.phpUT+_PK  ?nQϨ`q5 egulias-EmailValidator-ca90a32/src/EmailValidator.phpUT+_PK ?nQ- egulias-EmailValidator-ca90a32/src/Exception/UT+_PK  ?nQy? egulias-EmailValidator-ca90a32/src/Exception/AtextAfterCFWS.phpUT+_PK  ?nQ^= egulias-EmailValidator-ca90a32/src/Exception/CRLFAtTheEnd.phpUT+_PK  ?nQ;7 egulias-EmailValidator-ca90a32/src/Exception/CRLFX2.phpUT+_PK  ?nQ47 egulias-EmailValidator-ca90a32/src/Exception/CRNoLF.phpUT+_PK  ?nQz? egulias-EmailValidator-ca90a32/src/Exception/CharNotAllowed.phpUT+_PK  ?nQz/> egulias-EmailValidator-ca90a32/src/Exception/CommaInDomain.phpUT+_PK  ?nQ}> egulias-EmailValidator-ca90a32/src/Exception/ConsecutiveAt.phpUT+_PK  ?nQ5@VX? egulias-EmailValidator-ca90a32/src/Exception/ConsecutiveDot.phpUT+_PK  ?nQtD {egulias-EmailValidator-ca90a32/src/Exception/DomainAcceptsNoMail.phpUT+_PK  ?nQ? egulias-EmailValidator-ca90a32/src/Exception/DomainHyphened.phpUT+_PK  ?nQWR9 negulias-EmailValidator-ca90a32/src/Exception/DotAtEnd.phpUT+_PK  ?nQՄ; Oegulias-EmailValidator-ca90a32/src/Exception/DotAtStart.phpUT+_PK  ?nQ&< 5egulias-EmailValidator-ca90a32/src/Exception/ExpectingAT.phpUT+_PK  ?nQӭ6t? egulias-EmailValidator-ca90a32/src/Exception/ExpectingATEXT.phpUT+_PK  ?nQ!7? egulias-EmailValidator-ca90a32/src/Exception/ExpectingCTEXT.phpUT+_PK  ?nQupYσ? egulias-EmailValidator-ca90a32/src/Exception/ExpectingDTEXT.phpUT+_PK  ?nQ4L  egulias-EmailValidator-ca90a32/src/Exception/ExpectingDomainLiteralClose.phpUT+_PK  ?nQi$ń? !egulias-EmailValidator-ca90a32/src/Exception/ExpectingQPair.phpUT+_PK  ?nQh= "egulias-EmailValidator-ca90a32/src/Exception/InvalidEmail.phpUT+_PK  ?nQ8F #egulias-EmailValidator-ca90a32/src/Exception/LocalOrReservedDomain.phpUT+_PK  ?nQ]< $egulias-EmailValidator-ca90a32/src/Exception/NoDNSRecord.phpUT+_PK  ?nQT= %egulias-EmailValidator-ca90a32/src/Exception/NoDomainPart.phpUT+_PK  ?nQӈh5< &egulias-EmailValidator-ca90a32/src/Exception/NoLocalPart.phpUT+_PK  ?nQA@ 'egulias-EmailValidator-ca90a32/src/Exception/UnclosedComment.phpUT+_PK  ?nQ5G<E (egulias-EmailValidator-ca90a32/src/Exception/UnclosedQuotedString.phpUT+_PK  ?nQ@ )egulias-EmailValidator-ca90a32/src/Exception/UnopenedComment.phpUT+_PK ?nQ* *egulias-EmailValidator-ca90a32/src/Parser/UT+_PK  ?nQ6.4 +48 *egulias-EmailValidator-ca90a32/src/Parser/DomainPart.phpUT+_PK  ?nQ47 5egulias-EmailValidator-ca90a32/src/Parser/LocalPart.phpUT+_PK  ?nQ4 9egulias-EmailValidator-ca90a32/src/Parser/Parser.phpUT+_PK ?nQ. ?egulias-EmailValidator-ca90a32/src/Validation/UT+_PK  ?nQi39D m?egulias-EmailValidator-ca90a32/src/Validation/DNSCheckValidation.phpUT+_PK  ?nQ3ޣA jEegulias-EmailValidator-ca90a32/src/Validation/EmailValidation.phpUT+_PK ?nQ4 Fegulias-EmailValidator-ca90a32/src/Validation/Error/UT+_PK  ?nQ=fC DGegulias-EmailValidator-ca90a32/src/Validation/Error/RFCWarnings.phpUT+_PK  ?nQv^B DHegulias-EmailValidator-ca90a32/src/Validation/Error/SpoofEmail.phpUT+_PK ?nQ8 YIegulias-EmailValidator-ca90a32/src/Validation/Exception/UT+_PK  ?nQP;_O Iegulias-EmailValidator-ca90a32/src/Validation/Exception/EmptyValidationList.phpUT+_PK  ?nQ3av^@ Kegulias-EmailValidator-ca90a32/src/Validation/MultipleErrors.phpUT+_PK  ?nQfP߃^ K Legulias-EmailValidator-ca90a32/src/Validation/MultipleValidationWithAnd.phpUT+_PK  ?nQ75I ZPegulias-EmailValidator-ca90a32/src/Validation/NoRFCWarningsValidation.phpUT+_PK  ?nQ6mjM? Qegulias-EmailValidator-ca90a32/src/Validation/RFCValidation.phpUT+_PK  ?nQaLKF Segulias-EmailValidator-ca90a32/src/Validation/SpoofCheckValidation.phpUT+_PK ?nQ+ Uegulias-EmailValidator-ca90a32/src/Warning/UT+_PK  ?nQr૴= 6Vegulias-EmailValidator-ca90a32/src/Warning/AddressLiteral.phpUT+_PK  ?nQ 9 NWegulias-EmailValidator-ca90a32/src/Warning/CFWSNearAt.phpUT+_PK  ?nQ5R #: \Xegulias-EmailValidator-ca90a32/src/Warning/CFWSWithFWS.phpUT+_PK  ?nQ8ޠ6 oYegulias-EmailValidator-ca90a32/src/Warning/Comment.phpUT+_PK  ?nQ̣E@ lZegulias-EmailValidator-ca90a32/src/Warning/DeprecatedComment.phpUT+_PK  ?nQ̋׬< r[egulias-EmailValidator-ca90a32/src/Warning/DomainLiteral.phpUT+_PK  ?nQ8`< \egulias-EmailValidator-ca90a32/src/Warning/DomainTooLong.phpUT+_PK  ?nQx; ]egulias-EmailValidator-ca90a32/src/Warning/EmailTooLong.phpUT+_PK  ?nQ: ^egulias-EmailValidator-ca90a32/src/Warning/IPV6BadChar.phpUT+_PK  ?nQ6.i; _egulias-EmailValidator-ca90a32/src/Warning/IPV6ColonEnd.phpUT+_PK  ?nQQ= aegulias-EmailValidator-ca90a32/src/Warning/IPV6ColonStart.phpUT+_PK  ?nQL= .begulias-EmailValidator-ca90a32/src/Warning/IPV6Deprecated.phpUT+_PK  ?nQ> Ecegulias-EmailValidator-ca90a32/src/Warning/IPV6DoubleColon.phpUT+_PK  ?nQ= ddegulias-EmailValidator-ca90a32/src/Warning/IPV6GroupCount.phpUT+_PK  ?nQ[rn < eegulias-EmailValidator-ca90a32/src/Warning/IPV6MaxGroups.phpUT+_PK  ?nQzVد; fegulias-EmailValidator-ca90a32/src/Warning/LabelTooLong.phpUT+_PK  ?nQA".; gegulias-EmailValidator-ca90a32/src/Warning/LocalTooLong.phpUT+_PK  ?nQF< hegulias-EmailValidator-ca90a32/src/Warning/NoDNSMXRecord.phpUT+_PK  ?nQ %ֻ< jegulias-EmailValidator-ca90a32/src/Warning/ObsoleteDTEXT.phpUT+_PK  ?nQl7^9 ;kegulias-EmailValidator-ca90a32/src/Warning/QuotedPart.phpUT+_PK  ?nQU; vlegulias-EmailValidator-ca90a32/src/Warning/QuotedString.phpUT+_PK  ?nQ682 megulias-EmailValidator-ca90a32/src/Warning/TLD.phpUT+_PK  ?nQ !6 negulias-EmailValidator-ca90a32/src/Warning/Warning.phpUT+_PKKK_!p(ca90a3291eee1538cd48ff25163240695bd95448PK!}=,,<email-validator/4265763bce20ebdd516c2fbb01546b7f44d6f5b3.zipnuIwPK tMP egulias-EmailValidator-ade6887/UTE^PK tMP. egulias-EmailValidator-ade6887/EmailValidator/UTE^PK tMP љu< egulias-EmailValidator-ade6887/EmailValidator/EmailLexer.phpUTE^XS8"9򱰋+ ՛;Xd,mIY=4iun Cx7O~<~%">0BC26;3HP gMq[.=wE(ЦC$b)`SvV C 3 Rx[?LazW&#FS*. 95ڿb9!g}K@\-3i(70fϺ0Gr)c@V7s:dAVެgؑAHc.~\Tuvۗ!^%kJHQ 2ԛJ( 3(vu̾u2>1 oк0z2F4,1 KCGyd^vR\s{_73.8F9 FټX1n823vԨn3ѨnLŤ"1aRW4 ;oXsDJoը&A^@.L( (#<s/2OvRURsH#:x]uAN5{nQW;d>#Ue l8TH()c@3o45@wT*]w:VARK^`t\K "UzIO*Ȑ}0@U͏#e[^TT;P-mZ&""jUkY`@e- dy>PCyUf穵|~=˥A3X5X%SV{}92'QKq**b{2q H:˻G.a|rLJ t7oإ{rbҧ{@EhGx3óKKHU B.e%`2; }F{ߋcЁ܅KwcwViU$m;1K;?xJ?ۑGpk>mPa'νНyVĶ+T>C7 4q^4KozLsBI>;+%C*&gn=md26FI'.zw͏4_ |HKs"U7CTW;1:mNx?ݛw ;O&НTs0 eZ<~?elݕu^jɮtQ~YS SEu ĸޗ{J763Jr#"ZR x<!"M3  "Rb&ױ&Қ+L ~]%r3dhR%Yl c&O^CLXF30dcd:/_"*f~c5 i:dիr|erjf5lՎfmOFfϻx*cm?VC&9,ǔ\z3<(U"PK tMP6  = egulias-EmailValidator-ade6887/EmailValidator/EmailParser.phpUTE^Vmk0_ANۗVnT[IHr2wX!vsTkО\f =WmǭWUJ1knt #"cI]9Zڤ2Om|ȉOLZh9>h#1HzbV4zgh:T>vjY@HZBe@>Ȇ6r.kۿ\EarsVj0}鬵DhC`h!5ed䩈 R^JnoR%|M]oM=07̫.vZT׭QF3Tvqr wC=Qe^)T.BF.iH<=m絣 L͍X(ӏ._)jθHv5[TxK;C_:ǜȑe[WZeإb2ϓ hk-u1r@PZ[ݎP߷?lS:5?/o?n͕rCߝPK tMPϨ`q@ egulias-EmailValidator-ade6887/EmailValidator/EmailValidator.phpUTE^Sn0+\)ZKznlXC-^18쌓7I"D-"5gƿJM}"SU[w{0}R&Įpw2$[PM'Qߥb[0HRJ`b]}6(*AW2>2T:M$%gԂ:dFdѸv+5GSo"p2 &NXR뀜W5E7.vV,*aڃ@s ~4&ohֺ.Mtօ@gT4{ŴBDws܀ehEn?pW*ڑ#JW?d|W(xK g)*lӱc-$m6pƤXqF^ח@h2-xJȇ (>2n~j PK tMP}I egulias-EmailValidator-ade6887/EmailValidator/Exception/ConsecutiveAt.phpUTE^MA 0Es7ЕPEBM *Aii)w7_>{c~fH#K&hS$ɇ;?WoY}5 $MnR?QE98 o2WMwxvWŚk^rhnU PK tMP5@VXJ egulias-EmailValidator-ade6887/EmailValidator/Exception/ConsecutiveDot.phpUTE^MA 0Es7PQD,4⪛!4&LKAU3Ddr1O7#p8OQ@`ba7Y'A^P XS7Zы9]mWy꡶FPK tMPJ egulias-EmailValidator-ade6887/EmailValidator/Exception/DomainHyphened.phpUTE^MA 0Es7"biAU7C2@: &xwcz 4rdmRGrBYp.0R&q`a7W>PK tMP!7J egulias-EmailValidator-ade6887/EmailValidator/Exception/ExpectingCTEXT.phpUTE^M 0@ NEbA8t9ңK0Q[;o|zo@y SG#;azQ j甐JuKd>Ah8au'b2Dss|< PK tMPupYσJ egulias-EmailValidator-ade6887/EmailValidator/Exception/ExpectingDTEXT.phpUTE^M 0@T7X"]䨁4 ^ֺﭷ X{ {g9{OH.xVE*ILvah:v(%KFs/ fܷ UgO;WXU oPK tMP4W egulias-EmailValidator-ade6887/EmailValidator/Exception/ExpectingDomainLiteralClose.phpUTE^M 0E|ţKgqp"fĂSӗRݴ.p9gu'cO"`4Fn1ZQr!2ёʦ+t$46{~M%Ҕ+ X,W=ݹ>&MG5-0 f/PK tMPi$ńJ egulias-EmailValidator-ade6887/EmailValidator/Exception/ExpectingQPair.phpUTE^M 0K@/Qh%xeIC]HЍAol%cAJGJat66&^G"s&xA`p/ OY7۝./Mî-P7PK tMPhH egulias-EmailValidator-ade6887/EmailValidator/Exception/InvalidEmail.phpUTE^M1 0IUD4ר4 E iUz==kyFc(eڜ lI9֍ͅk`@C}&/jY*@M7ke/QcQnNV0$1b';bщSh[r1=Sg٘ )~[PK tMP]G egulias-EmailValidator-ade6887/EmailValidator/Exception/NoDNSRecord.phpUTE^M 0Eo8Ub38B Dy!/Ղﶺx;8gCtw8Ti$4zKSfbJ3ju:ɢ VupVMZUu^hO֝>IS'̃tk( PK tMPTH egulias-EmailValidator-ade6887/EmailValidator/Exception/NoDomainPart.phpUTE^MA 0Es7(.,ܤછ! HgB'JAQ7㿷[`f"`'B)TdC.QD褓#R~| O:/}gq5dwU8_s5^PK tMPӈh5G egulias-EmailValidator-ade6887/EmailValidator/Exception/NoLocalPart.phpUTE^MA 0/Pć VIQu%5`!y @wK=О*E:'VnHg=&5N-lOxS sGOO9tqAy2CdTJvg1lG팲gy5B8Cf*7̦$Ψ3-QmYă'Ovm"X|K0UDHh0Cm'7ީ29_Ijp`VAtHKn˄~1 K v< މ2*L^ЫplˣbU$V;Q/qR^6|@\eʓ2N%1<50vs}S(I% E`BrJX:NWX(JAJ[rK1+.{/wwXc67]ӵ.pTBF cB0$= Q SBhe",۰7$x3X+>/Z䳚l-rp< |/RluPi+rPa/nZlo~ꇛfZÑ~v{6҇}4;V.!jh&B^ F JhZyn A`/ 7 yqd-iK,\~ X)QeF F_TE.k)VFpxo$DT! nFM0p<~ x$1MPGmg3PI:nrL(++צ{=AQ&/6A& L*i23:3|a'Cvxz5 gEO"nȔq xXUw8Qm9B2 A`>aj4aۍqTNsua]n"[Bb!ĕl~/&)n&#\ fϴܕTj׷KvL.8#igiNm`ZP0ï ;.O ]-(M}s^) Y)nGebQJKe3aixx#XJug hƷƩ} 70y K%ǹ>Ea=p\'r0&klt7ShvJz9Ӛ" ncEuq 9uTPP}KS\R+UKqjj(}t qDUc oNUK9)ޖ.m]N~@g~I[V5K!5i*wy@1-XL+u2X-/ WcA< 5H축)=P}r MNuG&)Qik+kU'bew)rmB|58'""2?$[%M_,jj& Sb4iސ 7+[Sdb,8-/mw7V1֍i`&+3o-&?bhF{F讇䛈|` ]FkVjL5 TZVE#Uj_&z<)ȁ=>DMεB* XlB84'A-Ǔy^ Ņ3-þQ-^xMfw84(ɓ@xq/-uEWLR PK tMP4B egulias-EmailValidator-ade6887/EmailValidator/Parser/LocalPart.phpUTE^W[o8~ϯp%4Nt' mJ:$Ԯ\&Q׎8t~ApcwdX!லCvn /!5LJZcJǔ%)oV_="tc÷kwU!QLZ~(GˀB*MAKn64 S"nwG'G#zTeE1d ?r^8"KT- N=8 ~/j r<`x^(#,Jat VD`fYsʡ;YDk#5fg, N"rw%p4}ᜟ ;>q.lPhʃ5[!~'L3=*_  KWh7~Km+zMfVxRHEE\bۃ_k{‰Le)E5qH_3n7}6ٗPeP Ρ(I4V]K0ʫ0(vh:Agm-seLDT5 fS$)vg]0DU}j1_OcqwL*wtCrA{Lu~-D+ ϝ} 'Ux8]Q9yuIͨO''Jpg)o/"` 5ƛ70`_0\5 .8Eê@ s=-}\ThYb-u{ d˥+#3`[=w ׋%sƣa`:J[5 4j ߤK+`;q4M̆ 8;*H".Yt\s2lDlq3V|dCh]6xL_A1ZH@&'VFM5# EiKD:1ue7t^Eܰ '7osW<سFoA74db+u9R\6.4PK tMP%'? egulias-EmailValidator-ade6887/EmailValidator/Parser/Parser.phpUTE^Ymo6_F*)ctSee1َ4 `d:"*KE9 -K^mo=ܑ-pNǃkF|\ Å]')$!"N' Km?GU=(:ET_QDyC'BdGoMf Z2e 46slǫ)MJtju2Z8]{hi52|sJت7xfK?F+eo0u7bk`gRocMBJM0Itpz?)} XԄ;!~-h5A)19c-Dz(nҬأen~'FBQ$уm<۬a)l{KBtw,$FۗK #0dXb!nK})a e©Ld{YrT@A`Y2Nm \`+Ѳ~ߐw8??>;h¸^/C''Z V2Jv71ɖͅw6RʬnS6؏XϪT@~!1T } FDA$ĉ=9Eq8fgeK67F9gغ4ùR?.&Ss\w9N m0NYgLȵAf*+ֽ _ra8yV߽̿&,1;?MKj=SFZXWVG2GIcr/YQ7#i.{fˇ|~VtElMq+TTX:04ع_{9 a ppu=LM{>%tI;ʣ.>ۈH\:Nݵ&]z0ȟr2 oxݙ*RwlݎlX u }_;PK tMP9 egulias-EmailValidator-ade6887/EmailValidator/Validation/UTE^PK tMPIO egulias-EmailValidator-ade6887/EmailValidator/Validation/DNSCheckValidation.phpUTE^T]o0}ϯ:݇P֭QaeS]RE&viߵA${9%^Ďɒ$bDK¢;)B7&xqbۧ*G6! ڸW?H|<BN30"J~Z3`8Kʵ2n9:=O8@$/-%[MN*G,z(O0R "N& aRPpejn#Rfx'yd@7Lil-Bzo^HN09 =|yhAᕂTEI%LRЍ\aFm ?A.<;{5jTiv dw[m !xhB㮱΅6$ 5(zbKC`*/k 4zL*rID!&ZS @nPM`U5FҡBڿHſ dzk_fq U^[SWËkx[xT'O Qo>[!QG"f/7kuoHNV~*pIF2!*"2GPhj:cY 5#A3;F튻03soG:zM=ia+i# 8W?jU8[Md4| y椄1!uIk e ZUUP:Oʂ# :p[^#dcYܭd]d@Z%Î+Ng"p8BG?(YֲV)Ϋ69\! `&.ܦf?3$ғnN_Sy9oGWGv@/ F7PK tMP? egulias-EmailValidator-ade6887/EmailValidator/Validation/Error/UTE^PK tMP=fN egulias-EmailValidator-ade6887/EmailValidator/Validation/Error/RFCWarnings.phpUTE^u1 0usREFpPA.Gk \[Hoz|{ڄ[`jU;KR;5u>Vd=W*F3^j&L:F;r_(F Zp.p6mX2 zM( :#$0dh7@?C >Ft`9RLuI!jɬG,ڳuz)zMo}ahUh f}&Z?NHϦ[ԓz~ڛ;PK tMP3av^K egulias-EmailValidator-ade6887/EmailValidator/Validation/MultipleErrors.phpUTE^}Mk0 Fimea.M)1:FM"#zʾ7gØTX\@tJ@%tMf:d?uх Sg٪^p‹WN%",:ײoᙶO!}6"?pSЉDHam~C; ^XJڌf<{޻33ft¨RuVth ]:%C34LO1W fKVl9 X%r:m즶'} .|_4i^$뵪 _'}Os{g4[PK tMP75T egulias-EmailValidator-ade6887/EmailValidator/Validation/NoRFCWarningsValidation.phpUTE^RMO0Whx.I)M?V Ǻ{q.m{v+A Ԓ&Qn9: ,Tqc {>c*8V%([IZ/RFqT>>S%u)Tkx)' TCQr$: Tѷݵ;bjVؚh/$;&Iˤ3g dV$ z+l7]t9me]IPf)1R[ U25̔[=79!J?g[q1ɷp=V#ƶAet0G&?PK tMP6mjMJ egulias-EmailValidator-ade6887/EmailValidator/Validation/RFCValidation.phpUTE^MO!96+151`y!~ګv *\˛[U>]6〓"S|B-b< jO~v4_KE$} SNf}oiI<ӚBn_| 88t-PK tMPaLKQ egulias-EmailValidator-ade6887/EmailValidator/Validation/SpoofCheckValidation.phpUTE^SQo0~ϯIT$eV!T!iZa"5|6E8s]>}֥"*$8¬pR0fId6YDys4w6uS-u B 1>^pm7Bp@TZbYQ7F|Y3}; omĚY6nCtSoPK tMP D egulias-EmailValidator-ade6887/EmailValidator/Warning/CFWSNearAt.phpUTE^-=0qgGLd!!g9I)M{Dxy6V-y {iJ?Qsy(SGBHC|7Bwa)=";{Pi%d(sz"%7oAcMaeu$exF1nѴ0APK tMP5R #E egulias-EmailValidator-ade6887/EmailValidator/Warning/CFWSWithFWS.phpUTE^E? @  Cngv(Ex8ĜR=, シӵk:! ; zЄ-~{C!JGJ )S2KZ-3^9o$td tB6!_|2Zy `l)5qe*xXANb_PK tMP8ޠA egulias-EmailValidator-ade6887/EmailValidator/Warning/Comment.phpUTE^-0 EwU1PtfReҴ8QHHNZzGaLNK 5$u'YRc %$759ʳD=p< m.36In!M/Pb(-A=,E`PK tMP̣EK egulias-EmailValidator-ade6887/EmailValidator/Warning/DeprecatedComment.phpUTE^E; 0;>MB6 nxp¢!( 1iܵVF;X !52CC>HC6"فG,,G\J3Y IUoOHo2U]YPK tMP̋׬G egulias-EmailValidator-ade6887/EmailValidator/Warning/DomainLiteral.phpUTE^]; @[BXGa҉vrI.w HG;ڷ=۞ǬRͳ|9m7%T0IbqCqUY\(13]ȎޗR0bNhE1q3LĜrKRCK42%w%7>xPK tMP8`G egulias-EmailValidator-ade6887/EmailValidator/Warning/DomainTooLong.phpUTE^]n@ { he-dC X1GrŎwkHz9iK ǦnQDUXy'n߲lHX3,k ?C9@p-L9S"srtc)j&BhOӓ7PI' Jҟ}zVU#p PK tMPxF egulias-EmailValidator-ade6887/EmailValidator/Warning/EmailTooLong.phpUTE^u; 1-'AQZkg &G6Ahat̷;W׊17I Z!JQ3z:Lg,_SHh vf֔ ^3=D kt30n7F*p Fxe E |[5UK[ [ :[.:t^&ˬXMEݢz^PK tMPE egulias-EmailValidator-ade6887/EmailValidator/Warning/IPV6BadChar.phpUTE^] @E)ha㳈0Q+m2n6fD+o93nm X+ۢT^, 50q !5Z mu<Ѐz9Ź#BdAr9"OM Qx ҍ'\Ev ,*|B#ȾxXyf2hrʠ2^g/ЉN|PK tMP6.iF egulias-EmailValidator-ade6887/EmailValidator/Warning/IPV6ColonEnd.phpUTE^]= 0upPNʙm ߍtwM'a|RAVYٺ4k!At-XʨdE$^%p3joFKI֖(zɓiO Fh?ikSi QkVYڸhVx*yC'[|PK tMPQH egulias-EmailValidator-ade6887/EmailValidator/Warning/IPV6ColonStart.phpUTE^] 1<Z(*[6*rwn@xZ9,bTR"_;9 TΕawsPl<@߱5A6Zt| PK tMPI egulias-EmailValidator-ade6887/EmailValidator/Warning/IPV6DoubleColon.phpUTE^]=0E7 DEp!!RIiI?w|9wHā)s)(P 䲋 ۳8fՂJ( ml 8!C4GCu:I-nU-vnw s6fo U_=϶L//.mһj$pp&2/PK tMPH egulias-EmailValidator-ade6887/EmailValidator/Warning/IPV6GroupCount.phpUTE^]= 0RQZEtLc KDiuy A(v(u4\60X>'MLidmt@=ᇉiu In.^p$K(C_M/5icRK=MW@6t[Nf]l'w.ޞp_ 8>ijB#.(VP׳fK{mO5-| $04Ft#PK tMPA".F egulias-EmailValidator-ade6887/EmailValidator/Warning/LocalTooLong.phpUTE^]OK1Gsڂ^jeCB+襰Ln w7n{?>*q0 ]vyWh:{@ i[UJCfЁ5!;0_boe< 5PK tMP %ֻG egulias-EmailValidator-ade6887/EmailValidator/Warning/ObsoleteDTEXT.phpUTE^]=o@ BP>: 9,]|NB,wH{UaiX;T=54 3chͮ`_vlFӓ ǓڏugM]M!ߙϦ;[% 4>"8R@W 囹;PK tMPl7^D egulias-EmailValidator-ade6887/EmailValidator/Warning/QuotedPart.phpUTE^uOMK1W ]/*=(z)iv f'!3QAMc{]f}]4q h >{jt PCZcbQsP0)зwce pu]i#&@,zL0>_ :y㝅mf.07eg'ɋ20՝E/S:YR!Z,-ES)ې a2{7PK tMPUF egulias-EmailValidator-ade6887/EmailValidator/Warning/QuotedString.phpUTE^uPj1 +Dȡ]ZB =^A*l,-{'Tf4cEcw(v@?л5'&v/E5MS~8_l`Qx~YpyY f.L nZ'8wLjT Uy*/>_D~O5fsXyhKPpxAXT)~PK tMP x-& egulias-EmailValidator-ade6887/LICENSEUTE^]QKo0Wzjl%ao&1`mcr4!^NQnWBA35m}~~oF34cL<$k;\v8I0X ukM!z0 ѸG0PjEb | Adh"\g]uC=L"5]z'1`C\M)Ɔ<>wn V$& )|oXq߹Ц8ޏ 9>fo+ Թ1 0=JچU:վo% ?Dg;e^^-W=tmax \'@!IPɹ2ATVI<;Va}Vh J9V(UR%b.Ǟ(br3ĕRC!VB#@7*+"[q-d3QK%qΥk6Sި8H[rPxQ{jɊAA&;%K KY3جW) LRي-ȢS2-dI12Yje)~nES`JT4u"BN$+V .#To*F9gry{LPK tMP8%*( egulias-EmailValidator-ade6887/README.mdUTE^Wmo8L~5 ]J8zk!xSonRt3Ǔ3)r FG!s8u5Kt66DM𢑂duul'0O*f7B@#=|ÄHickm$) SkVଭ&N38nHjpuȶAtlnkMʹqM{\Y߰㏢th_O8ţF噳` zD|?b{X/[|^Ϧvٺ eaxON~x4%MX?Կ3Ƴ;`@Yb{pxᤥj`0ZAz[ Ɓ(.{[ZK޸[7G6 Ln# JZ3Dk>zQ϶"a;:ز{15'@-hTR8RS1l߽HEP̋R7-)_WnMYAj瓷%궻B? \M>/mM?I>_'kwlۀ _*<&j`)58c (j?6{@16-:~եMAB,CꤰN}R c+A[.js 5tQ}* ָQ߃bÑd å;[[Q$/XAKcE<%1PLA?\US{.:gki;rl mFUَx@3<?_ʵ2(o}@wi# l$Fw0nT#ʑ7"$Nq%1e^=M|3wۗNjtNGkҔrF4<e^|~3q>?U%kivT32~4,+̟6e7(#Ql.{X=9W؏{:l'PK tMPq1'/ egulias-EmailValidator-ade6887/phpunit.xml.distUTE^RC!{7hg9ı"Qk!2ۻD'0f\z,RJ QͽB53>k~04jλWBV0* >4FNar>|n䯲[L˕f$ 0*67jSm%~Ch!gYo*3Up<ln1׆Uʰ|k0K0[]y}޿;Pb<ѽRAX1_a8(w}2ս{zl;?E# 8\kBj*}SYl`u]cV_zPK tMPZf#( egulias-EmailValidator-ade6887/psalm.xmlUTE^N0E{vQJ@,Ptc{ =W3vٰ5_6+[p|vhQ=yZذ,&R雫Eh6Tv-wܺZܮVktx4䥩.dQjq(RDe 9NX$|qݜN؀16TK&SτQYѲu*(Ux[7F6㾑R\\d6Uß-i-~X u(WLn/PK tMP egulias-EmailValidator-ade6887/UTE^PK tMP. Fegulias-EmailValidator-ade6887/EmailValidator/UTE^PK tMP љu< egulias-EmailValidator-ade6887/EmailValidator/EmailLexer.phpUTE^PK tMP6  = egulias-EmailValidator-ade6887/EmailValidator/EmailParser.phpUTE^PK tMPϨ`q@  egulias-EmailValidator-ade6887/EmailValidator/EmailValidator.phpUTE^PK tMP8  egulias-EmailValidator-ade6887/EmailValidator/Exception/UTE^PK tMPyJ 2 egulias-EmailValidator-ade6887/EmailValidator/Exception/AtextAfterCFWS.phpUTE^PK tMP^H .egulias-EmailValidator-ade6887/EmailValidator/Exception/CRLFAtTheEnd.phpUTE^PK tMP;B "egulias-EmailValidator-ade6887/EmailValidator/Exception/CRLFX2.phpUTE^PK tMP4B egulias-EmailValidator-ade6887/EmailValidator/Exception/CRNoLF.phpUTE^PK tMPzJ  egulias-EmailValidator-ade6887/EmailValidator/Exception/CharNotAllowed.phpUTE^PK tMPz/I  egulias-EmailValidator-ade6887/EmailValidator/Exception/CommaInDomain.phpUTE^PK tMP}I  egulias-EmailValidator-ade6887/EmailValidator/Exception/ConsecutiveAt.phpUTE^PK tMP5@VXJ egulias-EmailValidator-ade6887/EmailValidator/Exception/ConsecutiveDot.phpUTE^PK tMPJ egulias-EmailValidator-ade6887/EmailValidator/Exception/DomainHyphened.phpUTE^PK tMPWRD egulias-EmailValidator-ade6887/EmailValidator/Exception/DotAtEnd.phpUTE^PK tMPՄF egulias-EmailValidator-ade6887/EmailValidator/Exception/DotAtStart.phpUTE^PK tMP&G egulias-EmailValidator-ade6887/EmailValidator/Exception/ExpectingAT.phpUTE^PK tMPӭ6tJ egulias-EmailValidator-ade6887/EmailValidator/Exception/ExpectingATEXT.phpUTE^PK tMP!7J egulias-EmailValidator-ade6887/EmailValidator/Exception/ExpectingCTEXT.phpUTE^PK tMPupYσJ egulias-EmailValidator-ade6887/EmailValidator/Exception/ExpectingDTEXT.phpUTE^PK tMP4W egulias-EmailValidator-ade6887/EmailValidator/Exception/ExpectingDomainLiteralClose.phpUTE^PK tMPi$ńJ egulias-EmailValidator-ade6887/EmailValidator/Exception/ExpectingQPair.phpUTE^PK tMPhH egulias-EmailValidator-ade6887/EmailValidator/Exception/InvalidEmail.phpUTE^PK tMP]G egulias-EmailValidator-ade6887/EmailValidator/Exception/NoDNSRecord.phpUTE^PK tMPTH egulias-EmailValidator-ade6887/EmailValidator/Exception/NoDomainPart.phpUTE^PK tMPӈh5G  egulias-EmailValidator-ade6887/EmailValidator/Exception/NoLocalPart.phpUTE^PK tMP3mȐK !egulias-EmailValidator-ade6887/EmailValidator/Exception/UnclosedComment.phpUTE^PK tMP5G<P "egulias-EmailValidator-ade6887/EmailValidator/Exception/UnclosedQuotedString.phpUTE^PK tMPK #egulias-EmailValidator-ade6887/EmailValidator/Exception/UnopenedComment.phpUTE^PK tMP5 $egulias-EmailValidator-ade6887/EmailValidator/Parser/UTE^PK tMP" W3C  %egulias-EmailValidator-ade6887/EmailValidator/Parser/DomainPart.phpUTE^PK tMP4B /egulias-EmailValidator-ade6887/EmailValidator/Parser/LocalPart.phpUTE^PK tMP%'? 4egulias-EmailValidator-ade6887/EmailValidator/Parser/Parser.phpUTE^PK tMP9 A9egulias-EmailValidator-ade6887/EmailValidator/Validation/UTE^PK tMPIO 9egulias-EmailValidator-ade6887/EmailValidator/Validation/DNSCheckValidation.phpUTE^PK tMP3ޣL =egulias-EmailValidator-ade6887/EmailValidator/Validation/EmailValidation.phpUTE^PK tMP? >egulias-EmailValidator-ade6887/EmailValidator/Validation/Error/UTE^PK tMP=fN >egulias-EmailValidator-ade6887/EmailValidator/Validation/Error/RFCWarnings.phpUTE^PK tMPv^M  @egulias-EmailValidator-ade6887/EmailValidator/Validation/Error/SpoofEmail.phpUTE^PK tMPC *Aegulias-EmailValidator-ade6887/EmailValidator/Validation/Exception/UTE^PK tMPP;_Z Aegulias-EmailValidator-ade6887/EmailValidator/Validation/Exception/EmptyValidationList.phpUTE^PK tMP3av^K Begulias-EmailValidator-ade6887/EmailValidator/Validation/MultipleErrors.phpUTE^PK tMPfP߃^ V |Degulias-EmailValidator-ade6887/EmailValidator/Validation/MultipleValidationWithAnd.phpUTE^PK tMP75T WHegulias-EmailValidator-ade6887/EmailValidator/Validation/NoRFCWarningsValidation.phpUTE^PK tMP6mjMJ Jegulias-EmailValidator-ade6887/EmailValidator/Validation/RFCValidation.phpUTE^PK tMPaLKQ Kegulias-EmailValidator-ade6887/EmailValidator/Validation/SpoofCheckValidation.phpUTE^PK tMP6 Negulias-EmailValidator-ade6887/EmailValidator/Warning/UTE^PK tMPr૴H _Negulias-EmailValidator-ade6887/EmailValidator/Warning/AddressLiteral.phpUTE^PK tMP D Oegulias-EmailValidator-ade6887/EmailValidator/Warning/CFWSNearAt.phpUTE^PK tMP5R #E Pegulias-EmailValidator-ade6887/EmailValidator/Warning/CFWSWithFWS.phpUTE^PK tMP8ޠA Qegulias-EmailValidator-ade6887/EmailValidator/Warning/Comment.phpUTE^PK tMP̣EK Regulias-EmailValidator-ade6887/EmailValidator/Warning/DeprecatedComment.phpUTE^PK tMP̋׬G Segulias-EmailValidator-ade6887/EmailValidator/Warning/DomainLiteral.phpUTE^PK tMP8`G Tegulias-EmailValidator-ade6887/EmailValidator/Warning/DomainTooLong.phpUTE^PK tMPxF Vegulias-EmailValidator-ade6887/EmailValidator/Warning/EmailTooLong.phpUTE^PK tMPE LWegulias-EmailValidator-ade6887/EmailValidator/Warning/IPV6BadChar.phpUTE^PK tMP6.iF qXegulias-EmailValidator-ade6887/EmailValidator/Warning/IPV6ColonEnd.phpUTE^PK tMPQH Yegulias-EmailValidator-ade6887/EmailValidator/Warning/IPV6ColonStart.phpUTE^PK tMPLH Zegulias-EmailValidator-ade6887/EmailValidator/Warning/IPV6Deprecated.phpUTE^PK tMPI [egulias-EmailValidator-ade6887/EmailValidator/Warning/IPV6DoubleColon.phpUTE^PK tMPH ]egulias-EmailValidator-ade6887/EmailValidator/Warning/IPV6GroupCount.phpUTE^PK tMP[rn G C^egulias-EmailValidator-ade6887/EmailValidator/Warning/IPV6MaxGroups.phpUTE^PK tMPzVدF y_egulias-EmailValidator-ade6887/EmailValidator/Warning/LabelTooLong.phpUTE^PK tMPA".F `egulias-EmailValidator-ade6887/EmailValidator/Warning/LocalTooLong.phpUTE^PK tMPFG aegulias-EmailValidator-ade6887/EmailValidator/Warning/NoDNSMXRecord.phpUTE^PK tMP %ֻG  cegulias-EmailValidator-ade6887/EmailValidator/Warning/ObsoleteDTEXT.phpUTE^PK tMPl7^D 5degulias-EmailValidator-ade6887/EmailValidator/Warning/QuotedPart.phpUTE^PK tMPUF {eegulias-EmailValidator-ade6887/EmailValidator/Warning/QuotedString.phpUTE^PK tMP68= fegulias-EmailValidator-ade6887/EmailValidator/Warning/TLD.phpUTE^PK tMP !A gegulias-EmailValidator-ade6887/EmailValidator/Warning/Warning.phpUTE^PK tMP x-& .iegulias-EmailValidator-ade6887/LICENSEUTE^PK tMP8%*( kegulias-EmailValidator-ade6887/README.mdUTE^PK tMPy, lqegulias-EmailValidator-ade6887/composer.jsonUTE^PK tMPq1'/ segulias-EmailValidator-ade6887/phpunit.xml.distUTE^PK tMPh~1 "uegulias-EmailValidator-ade6887/psalm.baseline.xmlUTE^PK tMPZf#( vegulias-EmailValidator-ade6887/psalm.xmlUTE^PKMM$w(ade6887fd9bd74177769645ab5c474824f8a418aPK!8%email-validator/README.mdnuIwPK! --email-validator/LICENSEnuIwPK!q1 email-validator/phpunit.xml.distnuIwPK!h~~"^email-validator/psalm.baseline.xmlnuIwPK!y.email-validator/composer.jsonnuIwPK!Zf##Zemail-validator/psalm.xmlnuIwPK! љuu- email-validator/EmailValidator/EmailLexer.phpnuIwPK!439email-validator/EmailValidator/Parser/LocalPart.phpnuIwPK!W3W34Kemail-validator/EmailValidator/Parser/DomainPart.phpnuIwPK!%'0email-validator/EmailValidator/Parser/Parser.phpnuIwPK!Ϩ`1email-validator/EmailValidator/EmailValidator.phpnuIwPK!6 .)email-validator/EmailValidator/EmailParser.phpnuIwPK!zV71email-validator/EmailValidator/Warning/LabelTooLong.phpnuIwPK!l7^^5email-validator/EmailValidator/Warning/QuotedPart.phpnuIwPK![rn  8Demail-validator/EmailValidator/Warning/IPV6MaxGroups.phpnuIwPK!Q9email-validator/EmailValidator/Warning/IPV6ColonStart.phpnuIwPK!8`8*email-validator/EmailValidator/Warning/DomainTooLong.phpnuIwPK!9email-validator/EmailValidator/Warning/IPV6GroupCount.phpnuIwPK!68.email-validator/EmailValidator/Warning/TLD.phpnuIwPK!:email-validator/EmailValidator/Warning/IPV6DoubleColon.phpnuIwPK!6zemail-validator/EmailValidator/Warning/IPV6BadChar.phpnuIwPK! %8ٸemail-validator/EmailValidator/Warning/ObsoleteDTEXT.phpnuIwPK!r9=email-validator/EmailValidator/Warning/AddressLiteral.phpnuIwPK!5R #6email-validator/EmailValidator/Warning/CFWSWithFWS.phpnuIwPK! 5email-validator/EmailValidator/Warning/CFWSNearAt.phpnuIwPK!UU76email-validator/EmailValidator/Warning/QuotedString.phpnuIwPK!x7email-validator/EmailValidator/Warning/EmailTooLong.phpnuIwPK! !2wemail-validator/EmailValidator/Warning/Warning.phpnuIwPK!6.i7email-validator/EmailValidator/Warning/IPV6ColonEnd.phpnuIwPK!L9email-validator/EmailValidator/Warning/IPV6Deprecated.phpnuIwPK!F8Yemail-validator/EmailValidator/Warning/NoDNSMXRecord.phpnuIwPK!82email-validator/EmailValidator/Warning/Comment.phpnuIwPK!̋8email-validator/EmailValidator/Warning/DomainLiteral.phpnuIwPK!A"..7Jemail-validator/EmailValidator/Warning/LocalTooLong.phpnuIwPK!̣E<email-validator/EmailValidator/Warning/DeprecatedComment.phpnuIwPK!7Eemail-validator/EmailValidator/Validation/NoRFCWarningsValidation.phpnuIwPK!3av^^<email-validator/EmailValidator/Validation/MultipleErrors.phpnuIwPK!3ޣ={email-validator/EmailValidator/Validation/EmailValidation.phpnuIwPK!aLKKBemail-validator/EmailValidator/Validation/SpoofCheckValidation.phpnuIwPK!6mj;email-validator/EmailValidator/Validation/RFCValidation.phpnuIwPK!I@email-validator/EmailValidator/Validation/DNSCheckValidation.phpnuIwPK!=f?email-validator/EmailValidator/Validation/Error/RFCWarnings.phpnuIwPK!v^>:email-validator/EmailValidator/Validation/Error/SpoofEmail.phpnuIwPK!P;__Kemail-validator/EmailValidator/Validation/Exception/EmptyValidationList.phpnuIwPK!fP߃ Gemail-validator/EmailValidator/Validation/MultipleValidationWithAnd.phpnuIwPK!<email-validator/EmailValidator/Exception/UnopenedComment.phpnuIwPK!!7;email-validator/EmailValidator/Exception/ExpectingCTEXT.phpnuIwPK!}:email-validator/EmailValidator/Exception/ConsecutiveAt.phpnuIwPK!5@VX;email-validator/EmailValidator/Exception/ConsecutiveDot.phpnuIwPK!3mȯ<email-validator/EmailValidator/Exception/UnclosedComment.phpnuIwPK!upYϝ;email-validator/EmailValidator/Exception/ExpectingDTEXT.phpnuIwPK!y;email-validator/EmailValidator/Exception/AtextAfterCFWS.phpnuIwPK!ӭ6t;email-validator/EmailValidator/Exception/ExpectingATEXT.phpnuIwPK!5G<Aemail-validator/EmailValidator/Exception/UnclosedQuotedString.phpnuIwPK!&8email-validator/EmailValidator/Exception/ExpectingAT.phpnuIwPK!ӈh58email-validator/EmailValidator/Exception/NoLocalPart.phpnuIwPK!T9email-validator/EmailValidator/Exception/NoDomainPart.phpnuIwPK!WR5email-validator/EmailValidator/Exception/DotAtEnd.phpnuIwPK!՝7email-validator/EmailValidator/Exception/DotAtStart.phpnuIwPK!z/:email-validator/EmailValidator/Exception/CommaInDomain.phpnuIwPK!;37 email-validator/EmailValidator/Exception/CRLFX2.phpnuIwPK!i$Ş;E email-validator/EmailValidator/Exception/ExpectingQPair.phpnuIwPK!^9N email-validator/EmailValidator/Exception/CRLFAtTheEnd.phpnuIwPK!]8S email-validator/EmailValidator/Exception/NoDNSRecord.phpnuIwPK!h9s email-validator/EmailValidator/Exception/InvalidEmail.phpnuIwPK!43email-validator/EmailValidator/Exception/CRNoLF.phpnuIwPK!z;email-validator/EmailValidator/Exception/CharNotAllowed.phpnuIwPK!4H email-validator/EmailValidator/Exception/ExpectingDomainLiteralClose.phpnuIwPK!;Nemail-validator/EmailValidator/Exception/DomainHyphened.phpnuIwPK!֥<^email-validator/8ec5af4134ce88eca9a176b9fdf2a91d299cddd6.zipnuIwPK!}=,,<oemail-validator/4265763bce20ebdd516c2fbb01546b7f44d6f5b3.zipnuIwPKGG C