�PNG  IHDR��;���IDATx��ܻn�0���K�� �)(�pA��� ���7�LeG{�� �§㻢|��ذaÆ 6lذaÆ 6lذaÆ 6lom��$^�y���ذag�5bÆ 6lذaÆ 6lذa{���� 6lذaÆ �`����}H�Fkm�,�m����Ӫ���ô�ô!� �x�|'ܢ˟;�E:���9�&ᶒ�}�{�v]�n&�6� �h��_��t�ڠ͵-ҫ���Z;��Z$�.�P���k�ž)�!��o���>}l�eQfJ�T��u і���چ��\��X=8��Rن4`Vw�l�>����n�G�^��i�s��"ms�$�u��i��?w�bs[m�6�K4���O���.�4��%����/����b�C%��t ��M�ז� �-l�G6�mrz2���s�%�9��s@���-�k�9�=���)������k�B5����\��+͂�Zsٲ ��Rn��~G���R���C����� �wIcI��n7jJ���hۛNCS|���j0��8y�iHKֶۛ�k�Ɉ+;Sz������L/��F�*\��Ԕ�#"5��m�2��[S��������=�g��n�a�P�e�ғ�L�� lذaÆ 6l�^k��̱aÆ 6lذaÆ 6lذa;���� �_��ذaÆ 6lذaÆ 6lذaÆ ���R���IEND�B` container = $container ?: Extension\ContainerBuilder::getDefault(); } /** * @template T of Extension\Extension * * @param class-string $id * * @throws ContainerExceptionInterface * @throws Extension\ExtensionNotFound * * @return T */ public function ext(string $id): Extension\Extension { if (!$this->container->has($id)) { throw new Extension\ExtensionNotFound(sprintf( 'No Faker extension with id "%s" was loaded.', $id )); } $extension = $this->container->get($id); if ($extension instanceof Extension\GeneratorAwareExtension) { $extension = $extension->withGenerator($this); } return $extension; } public function addProvider($provider) { array_unshift($this->providers, $provider); } public function getProviders() { return $this->providers; } public function seed($seed = null) { if ($seed === null) { mt_srand(); } else { mt_srand((int) $seed, MT_RAND_PHP); } } public function format($formatter, $arguments = []) { return call_user_func_array($this->getFormatter($formatter), $arguments); } /** * @param string $formatter * * @return callable */ public function getFormatter($formatter) { if (isset($this->formatters[$formatter])) { return $this->formatters[$formatter]; } foreach ($this->providers as $provider) { if (method_exists($provider, $formatter)) { $this->formatters[$formatter] = [$provider, $formatter]; return $this->formatters[$formatter]; } } throw new \InvalidArgumentException(sprintf('Unknown formatter "%s"', $formatter)); } /** * Replaces tokens ('{{ tokenName }}') with the result from the token method call * * @param string $string String that needs to bet parsed * * @return string */ public function parse($string) { return preg_replace_callback('/\{\{\s?(\w+)\s?\}\}/u', [$this, 'callFormatWithMatches'], $string); } /** * Get a random MIME type * * @example 'video/avi' */ public function mimeType() { return $this->ext(Extension\FileExtension::class)->mimeType(); } /** * Get a random file extension (without a dot) * * @example avi */ public function fileExtension() { return $this->ext(Extension\FileExtension::class)->extension(); } /** * Get a full path to a new real file on the system. */ public function filePath() { return $this->ext(Extension\FileExtension::class)->filePath(); } /** * Get an actual blood type * * @example 'AB' */ public function bloodType(): string { return $this->ext(Extension\BloodExtension::class)->bloodType(); } /** * Get a random resis value * * @example '+' */ public function bloodRh(): string { return $this->ext(Extension\BloodExtension::class)->bloodRh(); } /** * Get a full blood group * * @example 'AB+' */ public function bloodGroup(): string { return $this->ext(Extension\BloodExtension::class)->bloodGroup(); } /** * Get a random EAN13 barcode. * * @example '4006381333931' */ public function ean13(): string { return $this->ext(Extension\BarcodeExtension::class)->ean13(); } /** * Get a random EAN8 barcode. * * @example '73513537' */ public function ean8(): string { return $this->ext(Extension\BarcodeExtension::class)->ean8(); } /** * Get a random ISBN-10 code * * @see http://en.wikipedia.org/wiki/International_Standard_Book_Number * * @example '4881416324' */ public function isbn10(): string { return $this->ext(Extension\BarcodeExtension::class)->isbn10(); } /** * Get a random ISBN-13 code * * @see http://en.wikipedia.org/wiki/International_Standard_Book_Number * * @example '9790404436093' */ public function isbn13(): string { return $this->ext(Extension\BarcodeExtension::class)->isbn13(); } /** * Returns a random number between $int1 and $int2 (any order) * * @example 79907610 */ public function numberBetween($int1 = 0, $int2 = 2147483647): int { return $this->ext(Extension\NumberExtension::class)->numberBetween((int) $int1, (int) $int2); } /** * Returns a random number between 0 and 9 */ public function randomDigit(): int { return $this->ext(Extension\NumberExtension::class)->randomDigit(); } /** * Generates a random digit, which cannot be $except */ public function randomDigitNot($except): int { return $this->ext(Extension\NumberExtension::class)->randomDigitNot((int) $except); } /** * Returns a random number between 1 and 9 */ public function randomDigitNotZero(): int { return $this->ext(Extension\NumberExtension::class)->randomDigitNotZero(); } /** * Return a random float number * * @example 48.8932 */ public function randomFloat($nbMaxDecimals = null, $min = 0, $max = null): float { return $this->ext(Extension\NumberExtension::class)->randomFloat( $nbMaxDecimals !== null ? (int) $nbMaxDecimals : null, (float) $min, $max !== null ? (float) $max : null ); } /** * Returns a random integer with 0 to $nbDigits digits. * * The maximum value returned is mt_getrandmax() * * @param int|null $nbDigits Defaults to a random number between 1 and 9 * @param bool $strict Whether the returned number should have exactly $nbDigits * * @example 79907610 */ public function randomNumber($nbDigits = null, $strict = false): int { return $this->ext(Extension\NumberExtension::class)->randomNumber( $nbDigits !== null ? (int) $nbDigits : null, (bool) $strict ); } protected function callFormatWithMatches($matches) { return $this->format($matches[1]); } /** * @param string $attribute * * @deprecated Use a method instead. */ public function __get($attribute) { trigger_deprecation('fakerphp/faker', '1.14', 'Accessing property "%s" is deprecated, use "%s()" instead.', $attribute, $attribute); return $this->format($attribute); } /** * @param string $method * @param array $attributes */ public function __call($method, $attributes) { return $this->format($method, $attributes); } public function __destruct() { $this->seed(); } public function __wakeup() { $this->formatters = []; } }