late)
			);
		}

		unset($data);
		$template = strtr($template, $replace);

		if ($return === FALSE)
		{
			$this->CI->output->append_output($template);
		}

		return $template;
	}

	// --------------------------------------------------------------------

	/**
	 * Set the left/right variable delimiters
	 *
	 * @param	string
	 * @param	string
	 * @return	void
	 */
	public function set_delimiters($l = '{', $r = '}')
	{
		$this->l_delim = $l;
		$this->r_delim = $r;
	}

	// --------------------------------------------------------------------

	/**
	 * Parse a single key/value
	 *
	 * @param	string
	 * @param	string
	 * @param	string
	 * @return	string
	 */
	protected function _parse_single($key, $val, $string)
	{
		return array($this->l_delim.$key.$this->r_delim => (string) $val);
	}

	// --------------------------------------------------------------------

	/**
	 * Parse a tag pair
	 *
	 * Parses tag pairs: {some_tag} string... {/some_tag}
	 *
	 * @param	string
	 * @param	array
	 * @param	string
	 * @return	string
	 */
	protected function _parse_pair($variable, $data, $string)
	{
		$replace = array();
		preg_match_all(
			'#'.preg_quote($this->l_delim.$variable.$this->r_delim).'(.+?)'.preg_quote($this->l_delim.'/'.$variable.$this->r_delim).'#s',
			$string,
			$matches,
			PREG_SET_ORDER
		);

		foreach ($matches as $match)
		{
			$str = '';
			foreach ($data as $row)
			{
				$temp = array();
				foreach ($row as $key => $val)
				{
					if (is_array($val))
					{
						$pair = $this->_parse_pair($key, $val, $match[1]);
						if ( ! empty($pair))
						{
							$temp = array_merge($temp, $pair);
						}

						continue;
					}

					$temp[$this->l_delim.$key.$this->r_delim] = $val;
				}

				$str .= strtr($match[1], $temp);
			}

			$replace[$match[0]] = $str;
		}

		return $replace;
	}

}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <?php
/**
 * CodeIgniter
 *
 * An open source application development framework for PHP
 *
 * This content is released under the MIT License (MIT)
 *
 * Copyright (c) 2019 - 2022, CodeIgniter Foundation
 *
 * 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.
 *
 * @package	CodeIgniter
 * @author	EllisLab Dev Team
 * @copyright	Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
 * @copyright	Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/)
 * @copyright	Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/)
 * @license	https://opensource.org/licenses/MIT	MIT License
 * @link	https://codeigniter.com
 * @since	Version 1.0.0
 * @filesource
 */
defined('BASEPATH') OR exit('No direct script access allowed');

/**
 * CodeIgniter Encryption Class
 *
 * Provides two-way keyed encoding using Mcrypt
 *
 * @package		CodeIgniter
 * @subpackage	Libraries
 * @category	Libraries
 * @author		EllisLab Dev Team
 * @link		https://codeigniter.com/userguide3/libraries/encryption.html
 */
class CI_Encrypt {

	/**
	 * Reference to the user's encryption key
	 *
	 * @var string
	 */
	public $encryption_key		= '';

	/**
	 * Type of hash operation
	 *
	 * @var string
	 */
	protected $_hash_type		= 'sha1';

	/**
	 * Flag for the existence of mcrypt
	 *
	 * @var bool
	 */
	protected $_mcrypt_exists	= FALSE;

	/**
	 * Current cipher to be used with mcrypt
	 *
	 * @var string
	 */
	protected $_mcrypt_cipher;

	/**
	 * Method for encrypting/decrypting data
	 *
	 * @var int
	 */
	protected $_mcrypt_mode;

	/**
	 * Initialize Encryption class
	 *
	 * @return	void
	 */
	public function __construct()
	{
		if (($this->_mcrypt_exists = function_exists('mcrypt_encrypt')) === FALSE)
		{
			show_error('The Encrypt library requires the Mcrypt extension.');
		}

		log_message('info', 'Encrypt Class Initialized');
	}

	// --------------------------------------------------------------------

	/**
	 * Fetch the encryption key
	 *
	 * Returns it as MD5 in order to have an exact-length 128 bit key.
	 * Mcrypt is sensitive to keys that are not the correct length
	 *
	 * @param	string
	 * @return	string
	 */
	public function get_key($key = '')
	{
		if ($key === '')
		{
			if ($this->encryption_key !== '')
			{
				return $this->encryption_key;
			}

			$key = config_item('encryption_key');

			if ( ! self::strlen($key))
			{
				show_error('In order to use the encryption class requires that you set an encryption key in your config file.');
			}
		}

		return md5($key);
	}

	// --------------------------------------------------------------------

	/**
	 * Set the encryption key
	 *
	 * @param	string
	 * @return	CI_Encrypt
	 */
	public function set_key($key = '')
	{
		$this->encryption_key = $key;
		return $this;
	}

	// --------------------------------------------------------------------

	/**
	 * Encode
	 *
	 * Encodes the message string using bitwise XOR encoding.
	 * The key is combined with a random hash, and then it
	 * too gets converted using XOR. The whole thing is then run
	 * through mcrypt using the randomized key. The end result
	 * is a double-encrypted message string that is randomized
	 * with each call to this function, even if the supplied
	 * message and key are the same.
	 *
	 * @param	string	the string to encode
	 * @param	string	the key
	 * @return	string
	 */
	public function encode($string, $key = '')
	{
		return base64_encode($this->mcrypt_encode($string, $this->get_key($key)));
	}

	// --------------------------------------------------------------------

	/**
	 * Decode
	 *
	 * Reverses the above process
	 *
	 * @param	string
	 * @param	string
	 * @return	string
	 */
	public function decode($string, $key = '')
	{
		if (preg_match('/[^a-zA-Z0-9\/\+=]/', $string) OR base64_encode(base64_decode($string)) !== $string)
		{
			return FALSE;
		}

		return $this->mcrypt_decode(base64_decode($string), $this->get_key($key));
	}

	// --------------------------------------------------------------------

	/**
	 * Encode from Legacy
	 *
	 * Takes an encoded string from the original Encryption class algorithms and
	 * returns a newly encoded string using the improved method added in 2.0.0
	 * This allows for backwards compatibility and a method to transition to the
	 * new encryption algorithms.
	 *
	 * For more details, see https://codeigniter.com/userguide3/installation/upgrade_200.html#encryption
	 *
	 * @param	string
	 * @param	int		(mcrypt mode constant)
	 * @param	string
	 * @return	string
	 */
	public function encode_from_legacy($string, $legacy_mode = MCRYPT_MODE_ECB, $key = '')
	{
		if (preg_match('/[^a-zA-Z0-9\/\+=]/', $string))
		{
			return FALSE;
		}

		// decode it first
		// set mode temporarily to what it was when string was encoded with the legacy
		// algorithm - typically MCRYPT_MODE_ECB
		$current_mode = $this->_get_mode();
		$this->set_mode($legacy_mode);

		$key = $this->get_key($key);
		$dec = base64_decode($string);
		if (($dec = $this->mcrypt_decode($dec, $key)) === FALSE)
		{
			$this->set_mode($current_mode);
			return FALSE;
		}

		$dec = $this->_xor_decode($dec, $key);

		// set the mcrypt mode back to what it should be, typically MCRYPT_MODE_CBC
		$this->set_mode($current_mode);

		// and re-encode
		return base64_encode($this->mcrypt_encode($dec, $key));
	}

	// --------------------------------------------------------------------

	/**
	 * XOR Decode
	 *
	 * Takes an encoded string and key as input and generates the
	 * plain-text original message
	 *
	 * @param	string
	 * @param	string
	 * @return	string
	 */
	protected function _xor_decode($string, $key)
	{
		$string = $this->_xor_merge($string, $key);

		$dec = '';
		for ($i = 0, $l = self::strlen($string); $i < $l; $i++)
		{
			$dec .= ($string[$i++] ^ $string[$i]);
		}

		return $dec;
	}

	// --------------------------------------------------------------------

	/**
	 * XOR key + string Combiner
	 *
	 * Takes a string and key as input and computes the difference using XOR
	 *
	 * @param	string
	 * @param	string
	 * @return	string
	 */
	protected function _xor_merge($string, $key)
	{
		$hash = $this->hash($key);
		$str = '';

		for ($i = 0, $ls = self::strlen($string), $lh = self::strlen($hash); $i < $ls; $i++)
		{
			$str .= $string[$i] ^ $hash[($i % $lh)];
		}

		return $str;
	}

	// --------------------------------------------------------------------

	/**
	 * Encrypt using Mcrypt
	 *
	 * @param	string
	 * @param	string
	 * @return	string
	 */
	public function mcrypt_encode($data, $key)
	{
		$init_size = mcrypt_get_iv_size($this->_get_cipher(), $this->_get_mode());
		$init_vect = mcrypt_create_iv($init_size, MCRYPT_DEV_URANDOM);
		return $this->_add_cipher_noise($init_vect.mcrypt_encrypt($this->_get_cipher(), $key, $data, $this->_get_mode(), $init_vect), $key);
	}

	// --------------------------------------------------------------------

	/**
	 * Decrypt using Mcrypt
	 *
	 * @param	string
	 * @param	string
	 * @return	string
	 */
	public function mcrypt_decode($data, $key)
	{
		$data = $this->_remove_cipher_noise($data, $key);
		$init_size = mcrypt_get_iv_size($this->_get_cipher(), $this->_get_mode());

		if ($init_size > self::strlen($data))
		{
			return FALSE;
		}

		$init_vect = self::substr($data, 0, $init_size);
		$data      = self::substr($data, $init_size);

		return rtrim(mcrypt_decrypt($this->_get_cipher(), $key, $data, $this->_get_mode(), $init_vect), "\0");
	}

	// --------------------------------------------------------------------

	/**
	 * Adds permuted noise to the IV + encrypted data to protect
	 * against Man-in-the-middle attacks on CBC mode ciphers
	 * http://www.ciphersbyritter.com/GLOSSARY.HTM#IV
	 *
	 * @param	string
	 * @param	string
	 * @return	string
	 */
	protected function _add_cipher_noise($data, $key)
	{
		$key = $this->hash($key);
		$str = '';

		for ($i = 0, $j = 0, $ld = self::strlen($data), $lk = self::strlen($key); $i < $ld; ++$i, ++$j)
		{
			if ($j >= $lk)
			{
				$j = 0;
			}

			$str .= chr((ord($data[$i]) + ord($key[$j])) % 256);
		}

		return $str;
	}

	// --------------------------------------------------------------------

	/**
	 * Removes permuted noise from the IV + encrypted data, reversing
	 * _add_cipher_noise()
	 *
	 * Function description
	 *
	 * @param	string	$data
	 * @param	string	$key
	 * @return	string
	 */
	protected function _remove_cipher_noise($data, $key)
	{
		$key = $this->hash($key);
		$str = '';

		for ($i = 0, $j = 0, $ld = self::strlen($data), $lk = self::strlen($key); $i < $ld; ++$i, ++$j)
		{
			if ($j >= $lk)
			{
				$j = 0;
			}

			$temp = ord($data[$i]) - ord($key[$j]);

			if ($temp < 0)
			{
				$temp += 256;
			}

			$str .= chr($temp);
		}

		return $str;
	}

	// --------------------------------------------------------------------

	/**
	 * Set the Mcrypt Cipher
	 *
	 * @param	int
	 * @return	CI_Encrypt
	 */
	public function set_cipher($cipher)
	{
		$this->_mcrypt_cipher = $cipher;
		return $this;
	}

	// --------------------------------------------------------------------

	/**
	 * Set the Mcrypt Mode
	 *
	 * @param	int
	 * @return	CI_Encrypt
	 */
	public function set_mode($mode)
	{
		$this->_mcrypt_mode = $mode;
		return $this;
	}

	// --------------------------------------------------------------------

	/**
	 * Get Mcrypt cipher Value
	 *
	 * @return	int
	 */
	protected function _get_cipher()
	{
		if ($this->_mcrypt_cipher === NULL)
		{
			return $this->_mcrypt_cipher = MCRYPT_RIJNDAEL_256;
		}

		return $this->_mcrypt_cipher;
	}

	// --------------------------------------------------------------------

	/**
	 * Get Mcrypt Mode Value
	 *
	 * @return	int
	 */
	protected function _get_mode()
	{
		if ($this->_mcrypt_mode === NULL)
		{
			return $this->_mcrypt_mode = MCRYPT_MODE_CBC;
		}

		return $this->_mcrypt_mode;
	}

	// --------------------------------------------------------------------

	/**
	 * Set the Hash type
	 *
	 * @param	string
	 * @return	void
	 */
	public function set_hash($type = 'sha1')
	{
		$this->_hash_type = in_array($type, hash_algos()) ? $type : 'sha1';
	}

	// --------------------------------------------------------------------

	/**
	 * Hash encode a string
	 *
	 * @param	string
	 * @return	string
	 */
	public function hash($str)
	{
		return hash($this->_hash_type, $str);
	}

	// --------------------------------------------------------------------

	/**
	 * Byte-safe strlen()
	 *
	 * @param	string	$str
	 * @return	int
	 */
	protected static function strlen($str)
	{
		return defined('MB_OVERLOAD_STRING')
			? mb_strlen($str, '8bit')
			: strlen($str);
	}

	// --------------------------------------------------------------------

	/**
	 * Byte-safe substr()
	 *
	 * @param	string	$str
	 * @param	int	$start
	 * @param	int	$length
	 * @return	string
	 */
	protected static function substr($str, $start, $length = NULL)
	{
		if (defined('MB_OVERLOAD_STRING'))
		{
			// mb_substr($str, $start, null, '8bit') returns an empty
			// string on PHP 5.3
			isset($length) OR $length = ($start >= 0 ? self::strlen($str) - $start : -$start);
			return mb_substr($str, $start, $length, '8bit');
		}

		return isset($length)
			? substr($str, $start, $length)
			: substr($str, $start);
	}
}
                                                                  <?php
/**
 * CodeIgniter
 *
 * An open source application development framework for PHP
 *
 * This content is released under the MIT License (MIT)
 *
 * Copyright (c) 2019 - 2022, CodeIgniter Foundation
 *
 * 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.
 *
 * @package	CodeIgniter
 * @author	EllisLab Dev Team
 * @copyright	Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/)
 * @copyright	Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/)
 * @copyright	Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/)
 * @license	https://opensource.org/licenses/MIT	MIT License
 * @link	https://codeigniter.com
 * @since	Version 1.0.0
 * @filesource
 */
defined('BASEPATH') OR exit('No direct script access allowed');

/**
 * CodeIgniter Driver Library Class
 *
 * This class enables you to create "Driver" libraries that add runtime ability
 * to extend the capabilities of a class via additional driver objects
 *
 * @package		CodeIgniter
 * @subpackage	Libraries
 * @category	Libraries
 * @author		EllisLab Dev Team
 * @link
 */
class CI_Driver_Library {

	/**
	 * Array of drivers that are available to use with the driver class
	 *
	 * @var array
	 */
	protected $valid_drivers = array();

	/**
	 * Name of the current class - usually the driver class
	 *
	 * @var string
	 */
	protected $lib_name;

	/**
	 * Get magic method
	 *
	 * The first time a child is used it won't exist, so we instantiate it
	 * subsequents calls will go straight to the proper child.
	 *
	 * @param	string	Child class name
	 * @return	object	Child class
	 */
	public function __get($child)
	{
		// Try to load the driver
		return $this->load_driver($child);
	}

	/**
	 * Load driver
	 *
	 * Separate load_driver call to support explicit driver load by library or user
	 *
	 * @param	string	Driver name (w/o parent prefix)
	 * @return	object	Child class
	 */
	public function load_driver($child)
	{
		// Get CodeIgniter instance and subclass prefix
		$prefix = config_item('subclass_prefix');

		if ( ! isset($this->lib_name))
		{
			// Get library name without any prefix
			$this->lib_name = str_replace(array('CI_', $prefix), '', get_class($this));
		}

		// The child will be prefixed with the parent lib
		$child_name = $this->lib_name.'_'.$child;

		// See if requested child is a valid driver
		if ( ! in_array($child, $this->valid_drivers))
		{
			// The requested driver isn't valid!
			$msg = 'Invalid driver requested: '.$child_name;
			log_message('error', $msg);
			show_error($msg);
		}

		// Get package paths and filename case variations to search
		$CI = get_instance();
		$paths = $CI->load->get_package_paths(TRUE);

		// Is there an extension?
		$class_name = $prefix.$child_name;
		$found = class_exists($class_name, FALSE);
		if ( ! $found)
		{
			// Check for subclass file
			foreach ($paths as $path)
			{
				// Does the file exist?
				$file = $path.'libraries/'.$this->lib_name.'/drivers/'.$prefix.$child_name.'.php';
				if (file_exists($file))
				{
					// Yes - require base class from BASEPATH
					$basepath = BASEPATH.'libraries/'.$this->lib_name.'/drivers/'.$child_name.'.php';
					if ( ! file_exists($basepath))
					{
						$msg = 'Unable to load the requested class: CI_'.$child_name;
						log_message('error', $msg);
						show_error($msg);
					}

					// Include both sources and mark found
					include_once($basepath);
					include_once($file);
					$found = TRUE;
					break;
				}
			}
		}

		// Do we need to search for the class?
		if ( ! $found)
		{
			// Use standard class name
			$class_name = 'CI_'.$child_name;
			if ( ! class_exists($class_name, FALSE))
			{
				// Check package paths
				foreach ($paths as $path)
				{
					// Does the file exist?
					$file = $path.'libraries/'.$this->lib_name.'/drivers/'.$child_name.'.php';
					if (file_exists($file))
					{
						// Include source
						include_once($file);
						break;
					}
				}
			}
		}

		// Did we finally find the class?
		if ( ! class_exists($class_name, FALSE))
		{
			if (class_exists($child_name, FALSE))
			{
				$class_name = $child_name;
			}
			else
			{
				$msg = 'Unable to load the requested driver: '.$class_name;
				log_message('error', $msg);
				show_error($msg);
			}
		}

		// Instantiate, decorate and add child
		$obj = new $class_name();
		$obj->decorate($this);
		$this->$child = $obj;
		return $this->$child;
	}

}

// --------------------------------------------------------------------------

/**
 * CodeIgniter Driver Class
 *
 * This class enables you to create drivers for a Library based on the Driver Library.
 * It handles the drivers' access to the parent library
 *
 * @package		CodeIgniter
 * @subpackage	Libraries
 * @category	Libraries
 * @author		EllisLab Dev Team
 * @link
 */
class CI_Driver {

	/**
	 * Instance of the parent class
	 *
	 * @var object
	 */
	protected $_parent;

	/**
	 * List of methods in the parent class
	 *
	 * @var array
	 */
	protected $_methods = array();

	/**
	 * List of properties in the parent class
	 *
	 * @var array
	 */
	protected $_properties = array();

	/**
	 * Array of methods and properties for the parent class(es)
	 *
	 * @static
	 * @var	array
	 */
	protected static $_reflections = array();

	/**
	 * Decorate
	 *
	 * Decorates the child with the parent driver lib's methods and properties
	 *
	 * @param	object
	 * @return	void
	 */
	public function decorate($parent)
	{
		$this->_parent = $parent;

		// Lock down attributes to what is defined in the class
		// and speed up references in magic methods

		$class_name = get_class($parent);

		if ( ! isset(self::$_reflections[$class_name]))
		{
			$r = new ReflectionObject($parent);

			foreach ($r->getMethods() as $method)
			{
				if ($method->isPublic())
				{
					$this->_methods[] = $method->getName();
				}
			}

			foreach ($r->getProperties() as $prop)
			{
				if ($prop->isPublic())
				{
					$this->_properties[] = $prop->getName();
				}
			}

			self::$_reflections[$class_name] = array($this->_methods, $this->_properties);
		}
		else
		{
			list($this->_methods, $this->_properties) = self::$_reflections[$class_name];
		}
	}

	// --------------------------------------------------------------------

	/**
	 * __call magic method
	 *
	 * Handles access to the parent driver library's methods
	 *
	 * @param	string
	 * @param	array
	 * @return	mixed
	 */
	public function __call($method, $args = array())
	{
		if (in_array($method, $this->_methods))
		{
			return call_user_func_array(array($this->_parent, $method), $args);
		}

		throw new BadMethodCallException('No such method: '.$method.'()');
	}

	// --------------------------------------------------------------------

	/**
	 * __get magic method
	 *
	 * Handles reading of the parent driver library's properties
	 *
	 * @param	string
	 * @return	mixed
	 */
	public function __get($var)
	{
		if (in_array($var, $this->_properties))
		{
			return $this->_parent->$var;
		}
	}

	// --------------------------------------------------------------------

	/**
	 * __set magic method
	 *
	 * Handles writing to the parent driver library's properties
	 *
	 * @param	string
	 * @param	array
	 * @return	mixed
	 */
	public function __set($var, $val)
	{
		if (in_array($var, $this->_properties))
		{
			$this->_parent->$var = $val;
		}
	}

}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           <?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<metadata>
Created by FontForge 20201107 at Tue Mar 16 10:15:04 2021
 By Robert Madole
Copyright (c) Font Awesome
</metadata>
<!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><defs>
<font id="FontAwesome5Brands-Regular" horiz-adv-x="448" >
  <font-face 
    font-family="Font Awesome 5 Brands Regular"
    font-weight="400"
    font-stretch="normal"
    units-per-em="512"
    panose-1="2 0 5 3 0 0 0 0 0 0"
    ascent="448"
    descent="-64"
    bbox="-0.200195 -66.9505 641.5 448.3"
    underline-thickness="25"
    underline-position="-50"
    unicode-range="U+0020-F8E8"
  />
    <missing-glyph />
    <glyph glyph-name="firefox-browser" unicode="&#xe007;" horiz-adv-x="512" 
d="M130.63 324.51c0.160156 -0.00976562 0.0800781 -0.00976562 0 0zM482.05 279.16c15.2803 -36.7598 20.6709 -80.748 15.8213 -122.578c-0.370117 -3.15039 -0.700195 -6.29004 -1.11035 -9.41016c-19.6094 -115.04 -119.79 -202.62 -240.43 -202.62
c-134.71 0 -243.92 109.19 -243.92 243.891v1.23926c0.149414 2.70996 0.30957 5.41016 0.490234 8.12012c0.0498047 0.240234 0.0498047 0.480469 0.0498047 0.719727c0.439453 6.29004 0.870117 10.3105 1.43945 14c0.240234 1.91309 0.5 3.82617 0.780273 5.73926
c1.66992 12.2705 3.94043 22.21 4 22.4805c5.99219 26.8799 17.3516 52.1084 32.7305 73.8994v0c6.86816 9.79785 14.3965 18.8301 22.7695 27.3301c7.36719 7.53418 15.2451 14.2881 23.8398 20.4307c0.930664 0.629883 8.03027 4.83984 8.15039 4.30957
c-0.570312 -8.42969 -1.24023 -48.8301 8.42969 -61.0801h0.120117c14.1602 15.9199 33.6504 33.96 58.71 45.3701c-2.38477 -9.13379 -3.64844 -18.6562 -3.64844 -28.5332c0 -10.7832 1.51367 -21.2158 4.33887 -31.0967
c2.20508 -1.47852 4.29199 -3.05566 6.30957 -4.77051c3.71973 -3.14941 7.91992 -7.34961 16.7705 -16.0596c16.5498 -16.3096 59 -33.1797 59.0898 -35.1797c-0.400391 -6.08008 -21.8301 -27 -29.3301 -27c-69.3701 0 -80.6201 -41.9502 -80.6201 -41.9502
c3.07031 -35.3301 27.6699 -64.4102 57.5098 -79.75c1.36035 -0.730469 2.74023 -1.37012 4.12012 -2c2.36035 -1.04004 4.74023 -2.02051 7.16016 -2.92969c9.95996 -3.52539 20.6885 -5.66895 31.7402 -6.12012c121.569 -5.7002 145.13 145.34 57.3896 189.199
c22.4697 3.91016 45.8203 -5.12988 58.8203 -14.2793c-10.374 18.1104 -24.9414 33.167 -42.6602 44.1299c-0.993164 0.620117 -1.99316 1.21973 -3 1.7998c-1.55957 0.913086 -3.13965 1.79004 -4.74023 2.62988c-0.75 0.390625 -1.5 0.759766 -2.25 1.12988
c-1.65332 0.813477 -3.32031 1.59668 -5.00098 2.34961c-1.07031 0.469727 -2.16016 0.910156 -3.25 1.34961c-1.33984 0.580078 -2.68945 1.08008 -4.0498 1.58008c-1.86035 0.669922 -3.73047 1.2998 -5.62012 1.87012c-0.679688 0.209961 -1.33008 0.429688 -2 0.629883
c-10.8193 3.12793 -22.2139 4.82422 -34.0352 4.82422c-0.338867 0 -0.676758 -0.00195312 -1.01465 -0.00390625c-2 -0.0205078 -4 -0.100586 -6 -0.220703l-1.41992 -0.0996094c-14.8984 -1.04102 -29.2461 -4.92383 -42.1104 -11l-0.519531 -0.209961
c-0.625977 -0.21582 -1.29688 -0.335938 -1.99609 -0.335938c-2.68164 0 -4.96289 1.72559 -5.79395 4.12598c-0.246094 0.669922 -0.388672 1.39258 -0.388672 2.14746c0 2.4541 1.41797 4.58008 3.47852 5.60254c14.7295 6.98535 31.1982 11.3564 48.3301 12.3301
c5.7793 35.3994 28.2695 91.0098 82.5 122.78l-0.100586 -0.140625l0.180664 0.100586l0.120117 0.0693359c0.0732422 0.0195312 0.149414 0.0302734 0.229492 0.0302734c0.0791016 0 0.15625 -0.0107422 0.230469 -0.0302734
c0.30957 -0.0390625 0.550781 -0.303711 0.550781 -0.624023c0 -0.0117188 -0.000976562 -0.0244141 -0.000976562 -0.0361328c0.84375 -3.34961 2.08887 -6.61523 3.63965 -9.61914c0.830078 -1.70996 1.69043 -3.40039 2.69043 -5.05078
c1.87988 -3.21973 3.80957 -6.2793 5.73926 -9.33008c38.2002 -60.3594 84.9707 -88.0791 112.551 -156.829c-0.0507812 0.269531 -0.0507812 0.40918 -0.0507812 0.40918c-3.0293 20.1201 -10.9795 47.1104 -24.6992 74
c16.8594 -8.72949 38.3301 -36.2295 48.9395 -61.7295z" />
    <glyph glyph-name="ideal" unicode="&#xe013;" horiz-adv-x="576" 
d="M125.61 282.52c27.0713 -0.0107422 49.0488 -21.9873 49.0596 -49.0596v-0.00976562c0 -27.083 -21.9873 -49.0703 -49.0703 -49.0703c-27.082 0 -49.0693 21.9873 -49.0693 49.0703c0 27.082 21.9873 49.0693 49.0693 49.0693h0.0107422zM86.1504 22.1602v140.52
h78.9395v-140.52h-78.9395zM237.61 233.76c0 -20.4502 -8.99023 -23.2598 -18.7402 -23.2598h-14.0498v45.79h14.0498c8.74023 0 18.7402 -2.53027 18.7402 -22.5303zM439.3 187.76h57.0898c-1.7793 -98.4795 -52.1094 -165.64 -196.72 -165.64h-94.8301v165.62h14
c25.9805 0 41.5 17.1895 41.5 46c0 27.9102 -15.8994 45.2598 -41.5 45.2598h-14v82.8096h94.8301c88.9404 0 186.83 -26.8896 196.07 -151.31h-33.6904v68.5703h-22.75v-91.3105zM329.55 187.76l-0.0400391 22.7402h-33.5098v12.5h30v22.6904h-30v10.5791h31.7305v22.7305
h-54.4307v-91.2402h56.25zM404.21 187.76l23.6699 -0.0195312l-27.5303 91.3398h-32.3496l-27.5303 -91.3203h23.6602l5.17969 17.6699h29.7402zM299.65 416c218.35 0 250.97 -140 251 -223.48c0 -144.789 -89.1504 -224.52 -251 -224.52h-267.65v448h267.65z
M299.65 -10.9199c148.899 0 229.899 69.3496 229.899 203.439c0 137.801 -87.7998 202.41 -229.899 202.41h-246.58v-405.85h246.58zM383.51 253.93h1.37012l7.52051 -25.8096h-16.4004z" />
    <glyph glyph-name="microblog" unicode="&#xe01a;" 
d="M399.36 85.7695l0.149414 0.0605469c-13.5439 -15.3408 -21.7432 -35.5967 -21.7432 -57.6494c0 -19.957 6.73438 -38.3545 18.0537 -53.041c0.589844 -0.745117 0.944336 -1.68652 0.944336 -2.71094c0 -0.311523 -0.0322266 -0.615234 -0.0947266 -0.90918
c-0.416992 -2.00684 -2.19434 -3.52051 -4.32422 -3.52051c-0.306641 0 -0.606445 0.03125 -0.895508 0.0908203c-32.2803 7.17969 -61.3105 24.8301 -79.8906 49.9199c-1.30566 1.78906 -3.41699 2.94434 -5.7998 2.94434
c-0.811523 0 -1.5918 -0.135742 -2.31934 -0.383789c-24.7363 -8.66016 -51.3818 -13.4404 -79.0586 -13.4404h-0.381836c-122.86 0 -222.46 91.4805 -222.46 204.43c0 112.95 99.5996 204.44 222.46 204.44s222.46 -91.4902 222.46 -204.44
c0 -47.4492 -17.6104 -91.0996 -47.0996 -125.79zM329.52 235.6c1.56738 1.18652 2.57324 3.03516 2.57324 5.15039c0 3.57227 -2.88672 6.47461 -6.45312 6.5l-71.8799 1.50977l-23.6602 67.9199c-0.882812 2.54199 -3.29688 4.36914 -6.1377 4.36914
s-5.25879 -1.82715 -6.1416 -4.36914l-23.6602 -67.9199l-71.8799 -1.50977c-3.5293 -0.0673828 -6.38086 -2.95117 -6.38086 -6.49609c0 -2.11523 1.01367 -3.99707 2.58105 -5.18359l57.2998 -43.4902l-20.79 -68.8604
c-0.178711 -0.59375 -0.269531 -1.21875 -0.269531 -1.87109c0 -3.59277 2.91699 -6.50977 6.50977 -6.50977c1.37793 0 2.65723 0.429688 3.70996 1.16113l59.0596 41.0801l59.0596 -41.0498c1.05371 -0.735352 2.33984 -1.1709 3.71973 -1.1709
c3.58789 0 6.5 2.91211 6.5 6.5c0 0.657227 -0.0976562 1.29199 -0.279297 1.89062l-20.7803 68.8604z" />
    <glyph glyph-name="pied-piper-square" unicode="&#xe01e;" 
d="M32 29l-32 -60.2002l0.799805 328c0 65.9004 53.2002 119.2 119.2 119.2h327.2c-93 -28.9004 -189.9 -94.2002 -253.9 -168.6c-70.5996 -81.4004 -110.7 -137.4 -161.3 -218.4zM448 416c0 0 0 -328.8 0.0996094 -328.8c0 -65.9004 -53.2998 -119.2 -119.3 -119.2
h-328.399c18.5 25.5 61.6992 54 84.8994 66c35.5 18.0996 76.4004 28.5 105.3 56.2998c42.1006 40.5 47.8008 105 71 158.601c43.6006 100.3 186.4 167.1 186.4 167.1z" />
    <glyph glyph-name="unity" unicode="&#xe049;" horiz-adv-x="576" 
d="M498.11 241.6l-30 -49.5996l30 -49.6299l-52.8008 -191.62l-197.079 51.3604l-29.2402 50l-59.1699 -0.430664l-144.28 140.32l144.26 140.29l59.2002 -0.429688l29.2002 50.0596l197.109 51.3604zM223.77 323.8l-108.899 -108.13h173.13l86.5498 145.82zM223.77 60.1699
l150.78 -37.6895l-86.5498 145.81h-173.13zM416.77 46.1699l41.79 145.83l-41.8096 145.84l-86.5801 -145.84z" />
    <glyph glyph-name="dailymotion" unicode="&#xe052;" 
d="M298.93 181c7.14062 -4 12.9844 -9.85254 16.9727 -17c3.86426 -6.83691 6.10059 -14.7783 6.10059 -23.1865c0 -0.0947266 0 -0.188477 -0.000976562 -0.283203c-0.0332031 -13.6602 -4.58691 -25.084 -13.6602 -34.2705s-20.4434 -13.7793 -34.1104 -13.7793
c-13.4336 0 -24.5771 4.47949 -33.4307 13.4395s-13.2803 20.4932 -13.2803 34.5996c0 13.4336 4.53711 24.5742 13.6104 33.4209s20.2197 13.2695 33.4395 13.2695c0.214844 0.00292969 0.469727 -0.0263672 0.685547 -0.0263672
c8.59668 0 16.6738 -2.24609 23.6738 -6.18359zM0.00195312 416h448v-448h-448v448zM374.712 42.7402l-0.0302734 264.349l-55.79 -12.0898v-77.9199c-7.81348 7.86035 -16.1465 13.5273 -25 17.001c-8.87695 3.35352 -18.5127 5.21875 -28.5576 5.21875
c-0.394531 0 -0.789062 -0.00292969 -1.18164 -0.00878906c-17.6934 -0.00683594 -33.6006 -4.37305 -47.7207 -13.0996c-14.0625 -8.68066 -25.4102 -20.9805 -32.9297 -35.7803c-7.83984 -15.1064 -11.7598 -31.8467 -11.7598 -50.2197
c-0.00683594 -18.8066 3.85645 -35.7705 11.5898 -50.8906c7.45215 -14.8447 18.8232 -27.1611 32.9395 -35.7695c14.2197 -8.7334 30.5166 -13.1006 48.8906 -13.1006c26.6602 0 45.2539 8.7334 55.7803 26.2002h0.669922v-23.8896h53.0996z" />
    <glyph glyph-name="instagram-square" unicode="&#xe055;" 
d="M224 245.34c29.4385 -0.0107422 53.3379 -23.9043 53.3604 -53.3398c0 -29.4395 -23.9004 -53.3398 -53.3398 -53.3398s-53.3398 23.9004 -53.3398 53.3398c0 29.4326 23.8896 53.3291 53.3193 53.3398zM348.71 286.34
c8.34961 -21.0703 6.46973 -71.0596 6.46973 -94.3398s1.91992 -73.3301 -6.42969 -94.3301c-5.4834 -13.8955 -16.5146 -24.9268 -30.4102 -30.4102c-21.0596 -8.35938 -70.9902 -6.42969 -94.2998 -6.42969s-73.3096 -1.86035 -94.3096 6.42969
c-13.8955 5.4834 -24.9277 16.5146 -30.4102 30.4102c-8.32031 21.0703 -6.4707 71.0605 -6.4707 94.3398c0 23.2803 -1.84961 73.3301 6.43066 94.3301c5.48242 13.8955 16.5146 24.9268 30.4102 30.4102c21.0596 8.36035 71.0098 6.42969 94.3096 6.42969
s73.2998 1.86035 94.2998 -6.42969c13.8955 -5.4834 24.9268 -16.5146 30.4102 -30.4102zM224 110c0.0341797 0 0.0664062 -0.00195312 0.0996094 -0.00195312c45.2021 0 81.9004 36.6982 81.9004 81.9004v0.101562c0 45.2568 -36.7432 82 -82 82s-82 -36.7432 -82 -82
s36.7432 -82 82 -82zM309.38 258.3c10.5371 0.00585938 19.1299 8.52051 19.1299 19.0586v0.0820312c0 10.5635 -8.57617 19.1396 -19.1396 19.1396c-10.5645 0 -19.1406 -8.57617 -19.1406 -19.1396c0 -10.5645 8.57617 -19.1406 19.1406 -19.1406h0.00976562zM400 416
c26.4922 0 48 -21.5078 48 -48v-352c0 -26.4922 -21.5078 -48 -48 -48h-352c-26.4922 0 -48 21.5078 -48 48v352c0 26.4922 21.5078 48 48 48h352zM382.88 126c1.49023 26.4404 1.49023 105.56 0 131.88c-1.21973 25.6299 -7.17969 48.3506 -25.8496 67.0498
c-18.6699 18.7002 -41.3701 24.5605 -67 25.8506c-26.4102 1.48926 -105.59 1.48926 -132 0c-25.5303 -1.2207 -48.2207 -7.12012 -67 -25.7803c-18.7803 -18.6602 -24.5605 -41.3701 -25.8506 -67c-1.48926 -26.3896 -1.48926 -105.58 0 -132
c1.2207 -25.5801 7.11035 -48.2998 25.8506 -67c18.7393 -18.7002 41.3701 -24.5596 67 -25.8496c26.4102 -1.49023 105.59 -1.49023 132 0c25.5996 1.21973 48.29 7.18945 67 25.8496s24.5596 41.3701 25.8496 67z" />
    <glyph glyph-name="mixer" unicode="&#xe056;" horiz-adv-x="512" 
d="M114.57 371.93l128.319 -172.399c1.44531 -1.99805 2.29785 -4.47461 2.29785 -7.12598c0 -2.65234 -0.852539 -5.10645 -2.29785 -7.10449l-128.89 -173.24c-8.33594 -11.1826 -21.6582 -18.3877 -36.666 -18.3877c-11.877 0 -22.7031 4.54004 -30.834 11.9785
c-17.8496 16.1797 -18.9697 43.5195 -4.74023 62.7695l92.3301 124.15l-91.7803 123c-14.25 19.25 -12.8291 46.5898 4.75 62.7695c8.13281 7.44141 18.9551 12.0264 30.8359 12.0264c15.0088 0 28.3389 -7.25 36.6748 -18.4365zM470.24 68.4199
c14.2295 -19.25 13.1094 -46.5898 -4.73047 -62.7695c-8.13184 -7.44141 -18.9551 -12.0264 -30.835 -12.0264c-15.0098 0 -28.3389 7.25 -36.6748 18.4355l-128.57 173.5c-1.44434 1.99805 -2.29688 4.47461 -2.29688 7.12598c0 2.65234 0.852539 5.10645 2.29688 7.10449
l128 172.12c8.33594 11.1855 21.6602 18.3926 36.6699 18.3926c11.8809 0 22.708 -4.54199 30.8408 -11.9824c17.5791 -16.1807 18.9697 -43.5205 4.75 -62.7705l-91.7803 -123z" />
    <glyph glyph-name="shopify" unicode="&#xe057;" 
d="M388.32 343.9c0.399414 -2.40039 54.4395 -367.9 54.4395 -367.9l-125.689 -31.2002v432.73c8.00977 -8.01074 29.6201 -28.8301 29.6201 -28.8301s35.2295 -0.799805 37.2295 -0.799805c2.25 -0.103516 4.08887 -1.81055 4.40039 -4zM288.65 377.53
c9.20996 2.7998 13.3604 4.18945 14.8096 4.39941c1.4502 0.209961 2.90625 0.34375 4.40039 0.400391v-438.33l-302.58 52.4805s36.7998 281.819 38 291.819c1.58984 13.2002 2 13.6006 16 18c0.399414 0.400391 19.6094 6.41016 47.2295 14.8105
c2.82031 21.2197 13.21 48.4395 26.8203 70.0596c19.25 30.8301 43.25 48.0303 67.25 48.8301c12.4199 0.370117 22.8203 -3.62988 30.8203 -12.4004c0.399414 -0.799805 1.19922 -1.19922 1.59961 -2c1.11914 0.267578 2.27051 0.40918 3.4707 0.40918
c0.176758 0 0.353516 -0.00292969 0.529297 -0.00878906c18.4199 0 34 -10.8496 44.4404 -30.8604c2.84082 -5.58887 5.28809 -11.5479 7.20996 -17.6094zM233.41 360.31c0.399414 13.21 -1.2002 32.8301 -8.00977 47.2002
c-6.80078 -3.2002 -12.8105 -8.41016 -17.21 -12.8096c-11.21 -12.3701 -20.8203 -31.1807 -25.6201 -50c17.21 5.20996 34.8398 10.8096 50.8398 15.6094zM200.58 423.56c-36.8301 -0.799805 -69.25 -58.8398 -78.0098 -97.2295c13.1699 4 27.5801 8.40039 42 12.8096
c4.7998 24.4502 16.4102 50.0303 31.6201 66.4502c6 6 12.4092 11.21 18.8096 14.4102c-3.99414 2.26367 -8.625 3.57422 -13.54 3.57422c-0.293945 0 -0.587891 -0.00488281 -0.879883 -0.0146484zM154.15 203.39c-0.400391 4.81055 0 23.6104 29.6191 25.6201
c20.4209 1.60059 37.6309 -6.39941 37.6309 -6.39941l15.21 57.5996s-13.2305 6.41016 -39.2305 4.80957c-67.25 -4.40918 -97.6699 -51.2393 -94.4697 -97.6797c3.59961 -55.2402 58.8398 -53.2402 60.8398 -86.8594
c0.410156 -8.01074 -4.80957 -19.6201 -18.8096 -20.4209c-21.6201 -1.59961 -48.4404 18.8203 -48.4404 18.8203l-10.4004 -44s26.8203 -28.8203 75.6504 -25.6201c40.4297 2.41016 68.4502 34.8301 65.6504 82.4707c-4 60.4395 -71.6504 66.0498 -73.25 91.6592z
M249.42 365.12c8.80664 2.7998 16.8135 5.2002 24.0205 7.2002c-4.01074 12.4297 -12.8105 32.8301 -31.2305 36.4297c5.61035 -14.4102 7.20996 -31.6299 7.20996 -43.6299z" />
    <glyph glyph-name="deezer" unicode="&#xe077;" horiz-adv-x="576" 
d="M451.46 203.29v72.71h124.54v-72.71h-124.54zM451.46 377.18h124.54v-72.6699h-124.54v72.6699zM451.46 102.12v72.6797h124.54v-72.6797h-124.54zM0 0.910156v72.6699h124.54v-72.6699h-124.54zM150.47 0.910156v72.6699h124.53v-72.6699h-124.53zM300.99 0.910156
l0.00976562 72.6699h124.53v-72.6699h-124.54zM451.46 0.910156v72.6699h124.54v-72.6699h-124.54zM301 102.12v72.6797h124.53v-72.6797h-124.53zM150.48 102.12l-0.0107422 72.6797h124.53v-72.6797h-124.52zM150.48 203.29l-0.0107422 72.71h124.53v-72.71h-124.52z" />
    <glyph glyph-name="edge-legacy" unicode="&#xe078;" horiz-adv-x="512" 
d="M25.71 219.84l0.349609 0.480469c0 -0.160156 0 -0.320312 -0.0693359 -0.480469h-0.280273zM486.29 204.33v-52.0703h-314.08c1.38965 -128.49 191.39 -124.06 272.26 -67.5693v-104.431c-47.3594 -28.5293 -156.779 -53.1699 -240.13 -21.3301
c-70.6201 27.1602 -119.92 100.551 -120.75 172c-1.09961 92.2207 45.7002 153.42 120.75 188.32c-15.79 -19.9297 -27.9697 -41.54 -34.3398 -78.9297h175.85c10.25 105 -99.4199 105 -99.4199 105c-103.3 -3.62012 -177.949 -63.6904 -220.37 -125
c14.5605 114.47 92.9404 219.96 232.83 219.68c85.0205 0 157.61 -39.8799 198.591 -113.27c21.0498 -37.9404 28.8096 -78.4004 28.8096 -122.4z" />
    <glyph glyph-name="google-pay" unicode="&#xe079;" horiz-adv-x="640" 
d="M105.72 233h99.6602c1.1543 -7.06152 1.75 -14.1768 1.75 -21.5635v-0.216797c0 -32.7598 -11.4102 -60.2998 -31.4102 -78.9102c-17.4502 -16.3799 -41.5293 -25.9092 -70 -25.9092c-41.4531 0.103516 -77.2598 24.0869 -94.3799 59v0.149414
c-7.21582 14.4512 -11.2773 30.957 -11.2773 48.1943c0 17.2383 4.06152 33.5352 11.2773 47.9863c17.1172 34.9355 52.9199 58.9502 94.3799 59.1094c0.344727 0.00390625 0.699219 0.00585938 1.04492 0.00585938c27 0 51.5469 -10.5928 69.7051 -27.8457
l-30.2793 -30.6201c-10.1777 9.95508 -24.0938 16.0898 -39.4404 16.0898c-0.357422 0 -0.713867 -0.00292969 -1.07031 -0.00976562c-27.5996 0 -50.9297 -18.9102 -59.2998 -44.3701v0c-2.12109 -6.44824 -3.26855 -13.3545 -3.26855 -20.5088
s1.14746 -14.043 3.26855 -20.4912c8.37012 -25.3096 31.7002 -44.2197 59.2998 -44.2197c14.2803 0 26.46 3.72949 36 10.2803c10.9629 7.39648 18.7705 19.0664 21.1406 32.5996h-57.1006v41.25zM495.13 237c10.1299 -9.33984 15.1201 -22.4502 15.0498 -39v-78.7002
h-22.6094v17.7197h-1c-9.79004 -14.5898 -22.71 -21.8896 -39 -21.8896c-13.79 0 -25.54 4.16992 -34.79 12.5098c-8.55078 7.29199 -13.9541 18.1143 -13.9541 30.2207c0 0.350586 0.00488281 0.701172 0.0136719 1.0498c0 13.25 4.98047 23.6699 14.8203 31.5596
c9.83984 7.89062 23.0498 11.7705 39.4902 11.7705c14.0898 0 25.54 -2.68066 34.6396 -7.75v5.50977c-0.00488281 8.47461 -3.75098 16.0723 -9.69043 21.2305c-6.02051 5.44141 -14.0078 8.76855 -22.75 8.78906c-13.2061 0 -23.626 -5.66699 -31.2598 -17
l-20.8496 13.2607c11.1602 16.5195 28.04 24.8594 50.5 24.8594c17.46 0 31.2598 -4.75977 41.3896 -14.1396zM475.9 147.7c7.7793 7.4502 11.7393 16.2295 11.7393 26.3594c-7.33984 5.94043 -17.6396 8.94043 -30.7998 8.78027c-9.54004 0 -17.75 -2.38965 -24.0703 -7
c-6.31934 -4.60938 -9.53906 -10.4199 -9.53906 -17.4199c-0.000976562 -0.0332031 -0.0166016 -0.0546875 -0.0166016 -0.0878906c0 -6.35449 3.05957 -12 7.78613 -15.542c4.8916 -3.90625 11.1035 -6.25391 17.8447 -6.25391
c0.162109 0 0.324219 0.000976562 0.485352 0.00390625c10.3965 0.0126953 19.8076 4.2793 26.5703 11.1602zM382.25 289.7c10.4268 -9.92188 16.9102 -23.9102 16.9102 -39.4248c0 -14.166 -5.4209 -27.0752 -14.2998 -36.7656
c-0.890625 -0.889648 -1.77051 -1.79004 -2.65039 -2.67969c-11.0098 -10.5703 -24.5098 -15.9297 -40.5098 -15.9297h-39v-75.6406h-23.6299v186.74h62.6699c0.379883 0.0078125 0.749023 0.0185547 1.13086 0.0185547c15.3701 0 29.2949 -6.23828 39.3789 -16.3184z
M365.67 227.47c5.5957 5.94141 9.03223 13.9971 9.03223 22.7939c0 9.18164 -3.7373 17.4961 -9.77246 23.5059c-5.78027 5.70801 -13.7236 9.23047 -22.4814 9.23047h-0.118164h-39.6299v-65.21h39.6299c0.328125 -0.0107422 0.640625 -0.0253906 0.970703 -0.0253906
c8.82031 0 16.7754 3.7334 22.3691 9.70508zM614.31 247h25.6904l-79 -183.87h-24.3496l29.3496 64.3203l-51.79 119.55h25.6904l37.4199 -91.7002h0.449219z" />
    <glyph glyph-name="rust" unicode="&#xe07a;" horiz-adv-x="512" 
d="M508.52 198.25c2.09375 -1.2959 3.44043 -3.60449 3.44043 -6.24512c0 -2.6416 -1.39648 -4.95898 -3.49023 -6.25488l-21.8193 -13.5098c-0.169922 -1.95996 -0.34082 -3.91992 -0.550781 -5.87012l18.7207 -17.5c1.43457 -1.3418 2.33203 -3.24805 2.33203 -5.36523
c0 -3.15039 -1.98535 -5.83984 -4.77246 -6.88477l-24 -9c-0.540039 -1.88965 -1.08008 -3.78027 -1.66992 -5.65039l15 -20.8301c0.865234 -1.20508 1.37207 -2.68945 1.37207 -4.28516c0 -3.65234 -2.66992 -6.68555 -6.16211 -7.25488l-25.4199 -4.14941
c-0.900391 -1.71973 -1.79004 -3.4502 -2.73047 -5.15039l10.6807 -23.4199c0.420898 -0.925781 0.655273 -1.96875 0.655273 -3.05176c0 -1.50781 -0.455078 -2.91113 -1.23535 -4.07812c-1.29199 -1.97168 -3.51172 -3.26758 -6.04297 -3.26758
c-0.109375 0 -0.21875 0.00292969 -0.327148 0.0078125l-25.8203 0.910156c-1.18652 -1.4873 -2.38965 -2.9541 -3.60938 -4.40039l5.92969 -25.1602c0.125977 -0.538086 0.196289 -1.0957 0.196289 -1.67188c0 -4.0625 -3.29785 -7.36035 -7.35938 -7.36035
c-0.577148 0 -1.13867 0.0664062 -1.67676 0.192383l-25.1504 5.92969c-1.45312 -1.21289 -2.91992 -2.41602 -4.39941 -3.60938l0.90918 -25.8203c0.00390625 -0.0878906 -0.000976562 -0.167969 -0.000976562 -0.256836c0 -4.05664 -3.29395 -7.34961 -7.34961 -7.34961
c-1.08398 0 -2.1123 0.235352 -3.03906 0.65625l-23.4199 10.6807c-1.7002 -0.94043 -3.42969 -1.83008 -5.15039 -2.73047l-4.14941 -25.4199c-0.56543 -3.49121 -3.60254 -6.16309 -7.25293 -6.16309c-1.59961 0 -3.08105 0.512695 -4.28711 1.38281l-20.8203 15
c-1.87012 -0.599609 -3.75977 -1.12988 -5.64941 -1.67969l-9 -24c-1.05078 -2.7832 -3.7373 -4.7627 -6.88574 -4.7627c-2.11426 0 -4.02148 0.892578 -5.36426 2.32227l-17.5 18.7305c-1.9502 -0.219727 -3.88086 -0.390625 -5.88086 -0.560547l-13.5098 -21.8193
c-1.2959 -2.09375 -3.60352 -3.49023 -6.24512 -3.49023s-4.95898 1.39648 -6.25488 3.49023l-13.5098 21.8193c-1.95996 0.169922 -3.92969 0.34082 -5.87988 0.550781l-17.5 -18.7207c-1.34277 -1.42969 -3.24707 -2.32422 -5.36133 -2.32422
c-3.14844 0 -5.83789 1.98145 -6.88867 4.76465l-9 24c-1.88965 0.549805 -3.79004 1.08008 -5.65039 1.67969l-20.8301 -15c-1.20605 -0.870117 -2.69434 -1.37988 -4.29395 -1.37988c-3.64941 0 -6.68066 2.66895 -7.24609 6.16016l-4.14941 25.4199
c-1.71973 0.900391 -3.4502 1.79004 -5.14062 2.73047l-23.4297 -10.6807c-0.925781 -0.420898 -1.96094 -0.664062 -3.04492 -0.664062c-4.05664 0 -7.34961 3.29297 -7.34961 7.34961c0 0.0888672 0.00195312 0.176758 0.00488281 0.264648l0.919922 25.8203
c-1.4873 1.18652 -2.95703 2.38965 -4.41016 3.60938l-25.1602 -5.92969c-0.538086 -0.125977 -1.0957 -0.196289 -1.67188 -0.196289c-4.0625 0 -7.36035 3.29785 -7.36035 7.35938c0 0.577148 0.0664062 1.13867 0.192383 1.67676l5.92969 25.1602
c-1.21973 1.45312 -2.41992 2.91992 -3.59961 4.40039l-25.8301 -0.910156c-0.125977 -0.00683594 -0.243164 -0.0175781 -0.371094 -0.0175781c-2.5166 0 -4.72949 1.30664 -5.99902 3.27734c-0.776367 1.16504 -1.23047 2.57812 -1.23047 4.08301
c0 1.08691 0.236328 2.11816 0.660156 3.04688l10.6309 23.4297c-0.94043 1.69043 -1.83008 3.4209 -2.73047 5.14062l-25.4199 4.14941c-3.49219 0.569336 -6.16504 3.60938 -6.16504 7.26172c0 1.5957 0.509766 3.07324 1.375 4.27832l15 20.8301
c-0.599609 1.87012 -1.12988 3.76074 -1.67969 5.65039l-24 9c-2.78711 1.04492 -4.77148 3.73145 -4.77148 6.88184c0 2.11719 0.896484 4.02637 2.33105 5.36816l18.7197 17.5c-0.209961 1.9502 -0.379883 3.87012 -0.549805 5.87012l-21.8193 13.5098
c-2.09473 1.2959 -3.49023 3.60449 -3.49023 6.24512c0 2.6416 1.39551 4.95898 3.49023 6.25488l21.8594 13.5c0.169922 1.96973 0.339844 3.92969 0.549805 5.87988l-18.7197 17.5c-1.43457 1.3418 -2.33203 3.24805 -2.33203 5.36523
c0 3.15039 1.98535 5.83984 4.77246 6.88477l24 9c0.549805 1.88965 1.08984 3.79004 1.67969 5.66016l-15 20.8203c-0.865234 1.20508 -1.37207 2.68945 -1.37207 4.28516c0 3.65234 2.66992 6.68555 6.16211 7.25488l25.4102 4.13965
c0.899414 1.72949 1.79004 3.45996 2.72949 5.16016l-10.6602 23.4102c-0.423828 0.927734 -0.65918 1.97363 -0.65918 3.06055c0 1.50391 0.453125 2.90332 1.22949 4.06934c1.33398 1.97266 3.58398 3.26367 6.14258 3.26367
c0.0761719 0 0.152344 -0.00195312 0.227539 -0.00390625l25.8096 -0.910156c1.19043 1.48047 2.39062 2.95996 3.62012 4.41016l-5.92969 25.1602c-0.125977 0.538086 -0.196289 1.0957 -0.196289 1.67188c0 4.0625 3.29785 7.36035 7.35938 7.36035
c0.577148 0 1.13867 -0.0664062 1.67676 -0.192383l25.1504 -5.96973c1.41992 1.21973 2.92969 2.41992 4.41992 3.60938l-0.919922 25.8105c-0.00488281 0.104492 -0.000976562 0.201172 -0.000976562 0.307617c0 4.05566 3.29395 7.34961 7.35059 7.34961
c1.08398 0 2.11328 -0.235352 3.04004 -0.657227l23.4004 -10.6299c1.70996 0.939453 3.42969 1.83008 