<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pe7er</id>
	<title>Joomla! Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pe7er"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Pe7er"/>
	<updated>2026-05-15T08:26:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Category:Version_5.2.3_FAQ&amp;diff=1033535</id>
		<title>Category:Version 5.2.3 FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Category:Version_5.2.3_FAQ&amp;diff=1033535"/>
		<updated>2025-01-02T14:56:48Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: Created blank page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J5.x:Cannot_change_password_for_SMTP_account_in_Global_Configuration&amp;diff=1033528</id>
		<title>J5.x:Cannot change password for SMTP account in Global Configuration</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J5.x:Cannot_change_password_for_SMTP_account_in_Global_Configuration&amp;diff=1033528"/>
		<updated>2024-12-11T15:34:26Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: Pe7er moved page J5.x:J5.2.2: Cannot change password for SMTP account in Global Configuration to J5.x:Cannot change password for SMTP account in Global Configuration without leaving a redirect: improve URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Start with an intro below this line --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Errors reported== &amp;lt;!-- Fill errors below --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;In Global Configuration&#039;&#039;&#039; the button to &#039;&#039;&#039;change the password&#039;&#039;&#039; for an &#039;&#039;&#039;SMTP account&#039;&#039;&#039; does not work anymore.&lt;br /&gt;
&lt;br /&gt;
Issue: https://github.com/joomla/joomla-cms/issues/44553&lt;br /&gt;
&lt;br /&gt;
==Versions affected== &amp;lt;!--refers to and other information below --&amp;gt;&lt;br /&gt;
{{tip|This pertains only to Joomla! version: &#039;&#039;&#039;5.2.2&#039;&#039;&#039;|title=General Information}} &amp;lt;!-- add the version(s) you need --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What is the cause== &amp;lt;!-- Cause if known --&amp;gt;&lt;br /&gt;
The issue is caused by a JavaScript error.&lt;br /&gt;
The browser console displays the error:&lt;br /&gt;
&lt;br /&gt;
Uncaught TypeError: can&#039;t access property &amp;quot;getAttribute&amp;quot;, toggleButton is null&lt;br /&gt;
&lt;br /&gt;
==How to fix== &amp;lt;!-- How to fix it if known --&amp;gt;&lt;br /&gt;
This issue will be corrected in Joomla 5.2.3 with this PR: https://github.com/joomla/joomla-cms/pull/44555&lt;br /&gt;
&lt;br /&gt;
In the meantime you can &#039;&#039;&#039;manually change&#039;&#039;&#039; the email &#039;&#039;&#039;settings&#039;&#039;&#039; directly &#039;&#039;&#039;in the configuration.php file&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;!-- Change if needed --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Version 5.2.2 FAQ{{#translation:}}]]&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J5.x:Cannot_change_password_for_SMTP_account_in_Global_Configuration&amp;diff=1033527</id>
		<title>J5.x:Cannot change password for SMTP account in Global Configuration</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J5.x:Cannot_change_password_for_SMTP_account_in_Global_Configuration&amp;diff=1033527"/>
		<updated>2024-12-11T15:33:33Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: J5.2.2: Cannot change password for SMTP account&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Start with an intro below this line --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Errors reported== &amp;lt;!-- Fill errors below --&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;In Global Configuration&#039;&#039;&#039; the button to &#039;&#039;&#039;change the password&#039;&#039;&#039; for an &#039;&#039;&#039;SMTP account&#039;&#039;&#039; does not work anymore.&lt;br /&gt;
&lt;br /&gt;
Issue: https://github.com/joomla/joomla-cms/issues/44553&lt;br /&gt;
&lt;br /&gt;
==Versions affected== &amp;lt;!--refers to and other information below --&amp;gt;&lt;br /&gt;
{{tip|This pertains only to Joomla! version: &#039;&#039;&#039;5.2.2&#039;&#039;&#039;|title=General Information}} &amp;lt;!-- add the version(s) you need --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What is the cause== &amp;lt;!-- Cause if known --&amp;gt;&lt;br /&gt;
The issue is caused by a JavaScript error.&lt;br /&gt;
The browser console displays the error:&lt;br /&gt;
&lt;br /&gt;
Uncaught TypeError: can&#039;t access property &amp;quot;getAttribute&amp;quot;, toggleButton is null&lt;br /&gt;
&lt;br /&gt;
==How to fix== &amp;lt;!-- How to fix it if known --&amp;gt;&lt;br /&gt;
This issue will be corrected in Joomla 5.2.3 with this PR: https://github.com/joomla/joomla-cms/pull/44555&lt;br /&gt;
&lt;br /&gt;
In the meantime you can &#039;&#039;&#039;manually change&#039;&#039;&#039; the email &#039;&#039;&#039;settings&#039;&#039;&#039; directly &#039;&#039;&#039;in the configuration.php file&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;!-- Change if needed --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Version 5.2.2 FAQ{{#translation:}}]]&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Setting_Up_Your_Local_Environment&amp;diff=1027344</id>
		<title>J4.x:Setting Up Your Local Environment</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Setting_Up_Your_Local_Environment&amp;diff=1027344"/>
		<updated>2024-05-27T08:01:19Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Top portal heading|color=white-bkgd|icon=magic|icon-color=#5091cd|size=3x|text-color=#333|title=&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Tutorial&amp;lt;br /&amp;gt;&lt;br /&gt;
How to Setup a Local Environment for Joomla 4&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt; With Joomla! 4 we have changed the development process. It is no longer possible to clone the repository and have a usable Joomla installation. We follow best practices and implement a build process for the CMS.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Quick Start Guide == &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; The steps to setup your development environment depend on your operating system. We cannot write documentation for every operating system (OS), please use your favorite search engine to find a HowTo.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Tools You Need === &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt; PHP - basically the same as you need for running a Joomla site, but you need the PHP CLI (command line interface) version. (See the [[S:MyLanguage/Configuring_a_LAMPP_server_for_PHP_development|Configuring a LAMPP server for PHP development]] page.)&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt; Composer - for managing Joomla&#039;s PHP dependencies. For help installing Composer, read the documentation at https://getcomposer.org/doc/00-intro.md.&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt; Node.js - for compiling Joomla&#039;s JavaScript and SASS files. For help installing Node.js, please follow the instructions available on https://nodejs.org/en/. Note, you will need NodeJS 12 or higher to install Joomla.&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt; Git - for version management.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Steps to Set up the Local Environment === &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt; Clone the repository&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt; Checkout the branch of the latest release (currently &#039;&#039;4.4-dev&#039;&#039;).&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt; Run &amp;lt;tt&amp;gt;composer install&amp;lt;/tt&amp;gt; from the root of the git repo. (You can add &#039;&#039;--ignore-platform-reqs&#039;&#039; if you don&#039;t have the PHP-LDAP locally installed, and you don&#039;t need it.)&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; Run &amp;lt;tt&amp;gt;npm ci&amp;lt;/tt&amp;gt; (npm = package manager for the JavaScript, &amp;quot;ci&amp;quot; parameter means &amp;quot;clean install&amp;quot;) from the root of the git repo. (Note, you need npm 6.13.4 or higher for this. Run &amp;lt;tt&amp;gt;npm install -g npm@lts&amp;lt;/tt&amp;gt; to upgrade your version of npm to the LTS version. For Joomla 5, you need npm 10.1.0 or higher. &#039;&#039;&#039;Tip:&#039;&#039;&#039; With nvm (Node Version Manager) you can easily switch to other npm versions)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
Linux and OSX users can set up the following bash alias by placing the following inside the &#039;&#039;~/.bashrc file&#039;&#039;:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
alias jclean=&amp;quot;rm -rf administrator/templates/atum/css; \&lt;br /&gt;
rm -rf templates/cassiopeia/css; \&lt;br /&gt;
rm -rf administrator/templates/system/css; \&lt;br /&gt;
rm -rf templates/system/css; \&lt;br /&gt;
rm -rf media/; \&lt;br /&gt;
rm -rf node_modules/; \&lt;br /&gt;
rm -rf libraries/vendor/; \&lt;br /&gt;
rm -f administrator/cache/autoload_psr4.php; \&lt;br /&gt;
rm -rf installation/template/css&amp;quot;&lt;br /&gt;
alias jinstall=&amp;quot;jclean; composer install; npm ci&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt; This will delete all the compiled files in your system and run a fresh install as one command by calling &amp;lt;tt&amp;gt;jinstall&amp;lt;/tt&amp;gt; inside your Joomla install. You can also use the &amp;lt;tt&amp;gt;jclean&amp;lt;/tt&amp;gt; command to swap back to a Joomla 3.x branch&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== A Bit Longer Start Guide == &amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt; Joomla is similar to many other web tools these days. It has a large PHP part and it has more and more JavaScript code. While PHP coding doesn&#039;t need so much preparation, JavaScript needs a lot of tooling around. The main reason is that nobody writes code in a way that every browser understands, so the code needs transpiling from e.g. ES6 to a compatible version of JavaScript. The same is true for CSS. For Joomla we are using SASS and this will be converted to native CSS so that any browser understands it. On the downside, setting up a development environment is a bit more complicated but the tooling makes coding more convenient. Thanks to watchers and browser auto reload, you can see your changes in real time.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt; It should be enough to run &amp;lt;tt&amp;gt;composer install&amp;lt;/tt&amp;gt; as this will install PHP dependencies saved in the &#039;&#039;composer.lock&#039;&#039; file. You can do this as many times as you like. It will only install new packages when the &#039;&#039;composer.lock&#039;&#039; file is changed. Don&#039;t run &amp;lt;tt&amp;gt;composer update&amp;lt;/tt&amp;gt; as this will update all packages to newer versions and update the &#039;&#039;composer.lock&#039;&#039; file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt; &#039;&#039;&#039;Note:&#039;&#039;&#039; You may need to run &amp;lt;tt&amp;gt;composer install&amp;lt;/tt&amp;gt; with the &amp;lt;tt&amp;gt;--ignore-platform-reqs&amp;lt;/tt&amp;gt; option to ignore platform requirements specified in Composer. That is, if you do not have PHP&#039;s LDAP extension installed.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Node/npm Scripts === &amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt; Node.js comes with a package manager called NPM (in some ways the same as Composer). NPM has a &amp;lt;tt&amp;gt;run&amp;lt;/tt&amp;gt; command and we have prepared some scripts to make your life easier. You have to run the commands for the root of the repository when you have changed JS or SASS files. Previously you needed to run &amp;lt;tt&amp;gt;npm ci&amp;lt;/tt&amp;gt; once, to install dependencies.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== npm run build:css ==== &amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
It will compile SASS files to CSS and also create the minified files.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== npm run build:js ==== &amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
It will compile and transpile the JavaScript files to the correct format and create minified files.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== npm run watch ==== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
This is the same as the &amp;lt;tt&amp;gt;build:js&amp;lt;/tt&amp;gt; command but will watch for changes and automatically build updated files in the media directory. SASS files are not included yet.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== npm run lint:js ==== &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
This will perform a syntax check on all ES6 JavaScript files against the JavaScript code standard (for more information on the Joomla 4 codestyle standard please read the the coding standards manual at [https://developer.joomla.org/coding-standards/introduction.html| the coding standards manual].&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== npm run test ==== &amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt; This will run a JavaScript testing suite.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Possible Issues== &amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt; When running composer install you can run into these errors&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Problem 1&lt;br /&gt;
    - Installation request for joomla/ldap 2.0.0-beta -&amp;gt; satisfiable by joomla/ldap[2.0.0-beta].&lt;br /&gt;
    - joomla/ldap 2.0.0-beta requires ext-ldap * -&amp;gt; the requested PHP extension ldap is missing from your system.&lt;br /&gt;
Problem 2&lt;br /&gt;
    - Installation request for symfony/ldap v5.1.5 -&amp;gt; satisfiable by symfony/ldap[v5.1.5].&lt;br /&gt;
    - symfony/ldap v5.1.5 requires ext-ldap * -&amp;gt; the requested PHP extension ldap is missing from your system.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt; The solution is to run the composer install with the &amp;lt;tt&amp;gt;--ignore-platform-reqs&amp;lt;/tt&amp;gt; option to ignore platform requirements specified in Composer. That is, if you do not have PHP&#039;s LDAP extension installed. &amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;composer install --ignore-platform-reqs&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt; If you receive a login error such as shown below, delete the &amp;lt;tt&amp;gt;administrator/cache/autoload_psr4.php&amp;lt;/tt&amp;gt; file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Install-error.png|border|center|400px|Login After Install Error]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J5.x:Setting_Up_Your_Local_Environment&amp;diff=1025269</id>
		<title>J5.x:Setting Up Your Local Environment</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J5.x:Setting_Up_Your_Local_Environment&amp;diff=1025269"/>
		<updated>2024-05-14T13:49:07Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: explained composer + npm&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Top portal heading|color=white-bkgd|icon=magic|icon-color=#5091cd|size=3x|text-color=#333|title=&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Tutorial&amp;lt;br /&amp;gt;&lt;br /&gt;
How to Setup a Local Environment for Joomla 5&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=5.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt; Since Joomla! 4 we have changed the development process. It is no longer possible to clone the repository and have a usable Joomla installation. We follow best practices and implement a build process for the CMS.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Quick Start Guide == &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; The steps to setup your development environment depend on your operating system. We cannot write documentation for every operating system (OS), please use your favourite search engine to find a HowTo.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Tools You Need === &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt; PHP - basically the same as you need for running a Joomla site, but you need the PHP CLI (command line interface) version. (See the [[S:MyLanguage/Configuring_a_LAMPP_server_for_PHP_development|Configuring a LAMPP server for PHP development]] page.)&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt; Composer - for managing Joomla&#039;s PHP dependencies. For help installing Composer, read the documentation at https://getcomposer.org/doc/00-intro.md.&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt; Node.js - for compiling Joomla&#039;s JavaScript and SASS files. For help installing Node.js, please follow the instructions available on https://nodejs.org/en/. Note, you will need NodeJS 12 or higher to install Joomla.&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt; Git - for version management.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Steps to Set up the Local Environment === &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt; Clone the repository&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt; Checkout the branch of the latest release.&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt; Run &amp;lt;tt&amp;gt;composer install&amp;lt;/tt&amp;gt; (composer = package manager for PHP) from the root of the git repo. (You can add &#039;&#039;--ignore-platform-reqs&#039;&#039; if you don&#039;t have the PHP-LDAP locally installed, and you don&#039;t need it.)&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; Run &amp;lt;tt&amp;gt;npm ci&amp;lt;/tt&amp;gt; (npm = package manager for the JavaScript, &amp;quot;ci&amp;quot; parameter means &amp;quot;clean install&amp;quot;) from the root of the git repo. (Note, you need npm 10.1.0 or higher for this. Run &amp;lt;tt&amp;gt;npm install -g npm@lts&amp;lt;/tt&amp;gt; to upgrade your version of npm to the LTS version.)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
Linux and OSX users can set up the following bash alias by placing the following inside the &#039;&#039;~/.bashrc file&#039;&#039;:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
alias jclean=&amp;quot;rm -rf administrator/templates/atum/css; \&lt;br /&gt;
rm -rf templates/cassiopeia/css; \&lt;br /&gt;
rm -rf administrator/templates/system/css; \&lt;br /&gt;
rm -rf templates/system/css; \&lt;br /&gt;
rm -rf media/; \&lt;br /&gt;
rm -rf node_modules/; \&lt;br /&gt;
rm -rf libraries/vendor/; \&lt;br /&gt;
rm -f administrator/cache/autoload_psr4.php; \&lt;br /&gt;
rm -rf installation/template/css&amp;quot;&lt;br /&gt;
alias jinstall=&amp;quot;jclean; composer install; npm ci&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt; This will delete all the compiled files in your system and run a fresh install as one command by calling &amp;lt;tt&amp;gt;jinstall&amp;lt;/tt&amp;gt; inside your Joomla install.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== A Bit Longer Start Guide == &amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt; Joomla is similar to many other web tools these days. It has a large PHP part and it has more and more JavaScript code. While PHP coding doesn&#039;t need so much preparation, JavaScript needs a lot of tooling around. The main reason is that nobody writes code in a way that every browser understands, so the code needs transpiling from e.g. ES6 to a compatible version of JavaScript. The same is true for CSS. For Joomla we are using SASS and this will be converted to native CSS so that any browser understands it. On the downside, setting up a development environment is a bit more complicated but the tooling makes coding more convenient. Thanks to watchers and browser auto reload, you can see your changes in real time.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt; It should be enough to run &amp;lt;tt&amp;gt;composer install&amp;lt;/tt&amp;gt; as this will install PHP dependencies saved in the &#039;&#039;composer.lock&#039;&#039; file. You can do this as many times as you like. It will only install new packages when the &#039;&#039;composer.lock&#039;&#039; file is changed. Don&#039;t run &amp;lt;tt&amp;gt;composer update&amp;lt;/tt&amp;gt; as this will update all packages to newer versions and update the &#039;&#039;composer.lock&#039;&#039; file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt; &#039;&#039;&#039;Note:&#039;&#039;&#039; You may need to run &amp;lt;tt&amp;gt;composer install&amp;lt;/tt&amp;gt; with the &amp;lt;tt&amp;gt;--ignore-platform-reqs&amp;lt;/tt&amp;gt; option to ignore platform requirements specified in Composer. That is, if you do not have PHP&#039;s LDAP extension installed.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Node/npm Scripts === &amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt; Node.js comes with a package manager called NPM (in some ways the same as Composer). NPM has a &amp;lt;tt&amp;gt;run&amp;lt;/tt&amp;gt; command and we have prepared some scripts to make your life easier. You have to run the commands for the root of the repository when you have changed JS or SASS files. Previously you needed to run &amp;lt;tt&amp;gt;npm ci&amp;lt;/tt&amp;gt; once, to install dependencies.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== npm run build:css ==== &amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
It will compile SASS files to CSS and also create the minified files.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== npm run build:js ==== &amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
It will compile and transpile the JavaScript files to the correct format and create minified files.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== npm run watch ==== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
This is the same as the &amp;lt;tt&amp;gt;build:js&amp;lt;/tt&amp;gt; command but will watch for changes and automatically build updated files in the media directory. SASS files are not included yet.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== npm run lint:js ==== &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
This will perform a syntax check on all ES6 JavaScript files against the JavaScript code standard (for more information on the Joomla codestyle standard please read the the coding standards manual at [https://developer.joomla.org/coding-standards/introduction.html| the coding standards manual].&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== npm run test ==== &amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt; This will run a JavaScript testing suite.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Possible Issues== &amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt; When running composer install you can run into these errors&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Problem 1&lt;br /&gt;
    - Installation request for joomla/ldap 2.0.0-beta -&amp;gt; satisfiable by joomla/ldap[2.0.0-beta].&lt;br /&gt;
    - joomla/ldap 2.0.0-beta requires ext-ldap * -&amp;gt; the requested PHP extension ldap is missing from your system.&lt;br /&gt;
Problem 2&lt;br /&gt;
    - Installation request for symfony/ldap v5.1.5 -&amp;gt; satisfiable by symfony/ldap[v5.1.5].&lt;br /&gt;
    - symfony/ldap v5.1.5 requires ext-ldap * -&amp;gt; the requested PHP extension ldap is missing from your system.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt; The solution is to run the composer install with the &amp;lt;tt&amp;gt;--ignore-platform-reqs&amp;lt;/tt&amp;gt; option to ignore platform requirements specified in Composer. That is, if you do not have PHP&#039;s LDAP extension installed. &amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;composer install --ignore-platform-reqs&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt; If you receive a login error such as shown below, delete the &amp;lt;tt&amp;gt;administrator/cache/autoload_psr4.php&amp;lt;/tt&amp;gt; file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Install-error.png|border|center|400px|Login After Install Error]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 5.x{{#translation:}}]]&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Setting_Up_Your_Local_Environment&amp;diff=1022305</id>
		<title>J4.x:Setting Up Your Local Environment</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Setting_Up_Your_Local_Environment&amp;diff=1022305"/>
		<updated>2024-03-14T17:08:31Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Top portal heading|color=white-bkgd|icon=magic|icon-color=#5091cd|size=3x|text-color=#333|title=&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Tutorial&amp;lt;br /&amp;gt;&lt;br /&gt;
How to Setup a Local Environment for Joomla 4&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt; With Joomla! 4 we have changed the development process. It is no longer possible to clone the repository and have a usable Joomla installation. We follow best practices and implement a build process for the CMS.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Quick Start Guide == &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; The steps to setup your development environment depend on your operating system. We cannot write documentation for every operating system (OS), please use your favorite search engine to find a HowTo.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Tools You Need === &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt; PHP - basically the same as you need for running a Joomla site, but you need the PHP CLI (command line interface) version. (See the [[S:MyLanguage/Configuring_a_LAMPP_server_for_PHP_development|Configuring a LAMPP server for PHP development]] page.)&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt; Composer - for managing Joomla&#039;s PHP dependencies. For help installing Composer, read the documentation at https://getcomposer.org/doc/00-intro.md.&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt; Node.js - for compiling Joomla&#039;s JavaScript and SASS files. For help installing Node.js, please follow the instructions available on https://nodejs.org/en/. Note, you will need NodeJS 12 or higher to install Joomla.&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt; Git - for version management.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Steps to Set up the Local Environment === &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt; Clone the repository&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt; Checkout the branch of the latest release (currently &#039;&#039;4.3-dev&#039;&#039;).&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt; Run &amp;lt;tt&amp;gt;composer install&amp;lt;/tt&amp;gt; from the root of the git repo. (You can add &#039;&#039;--ignore-platform-reqs&#039;&#039; if you don&#039;t have the PHP-LDAP locally installed, and you don&#039;t need it.)&amp;lt;/translate&amp;gt;&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; Run &amp;lt;tt&amp;gt;npm ci&amp;lt;/tt&amp;gt; from the root of the git repo. (Note, you need npm 6.13.4 or higher for this. Run &amp;lt;tt&amp;gt;npm install -g npm@lts&amp;lt;/tt&amp;gt; to upgrade your version of npm to the LTS version. For Joomla 5, you need npm 10.1.0 or higher. Tip: With nvm (Node Version Manager) you can easily switch to other npm versions)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
Linux and OSX users can set up the following bash alias by placing the following inside the &#039;&#039;~/.bashrc file&#039;&#039;:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
alias jclean=&amp;quot;rm -rf administrator/templates/atum/css; \&lt;br /&gt;
rm -rf templates/cassiopeia/css; \&lt;br /&gt;
rm -rf administrator/templates/system/css; \&lt;br /&gt;
rm -rf templates/system/css; \&lt;br /&gt;
rm -rf media/; \&lt;br /&gt;
rm -rf node_modules/; \&lt;br /&gt;
rm -rf libraries/vendor/; \&lt;br /&gt;
rm -f administrator/cache/autoload_psr4.php; \&lt;br /&gt;
rm -rf installation/template/css&amp;quot;&lt;br /&gt;
alias jinstall=&amp;quot;jclean; composer install; npm ci&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt; This will delete all the compiled files in your system and run a fresh install as one command by calling &amp;lt;tt&amp;gt;jinstall&amp;lt;/tt&amp;gt; inside your Joomla install. You can also use the &amp;lt;tt&amp;gt;jclean&amp;lt;/tt&amp;gt; command to swap back to a Joomla 3.x branch&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== A Bit Longer Start Guide == &amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt; Joomla is similar to many other web tools these days. It has a large PHP part and it has more and more JavaScript code. While PHP coding doesn&#039;t need so much preparation, JavaScript needs a lot of tooling around. The main reason is that nobody writes code in a way that every browser understands, so the code needs transpiling from e.g. ES6 to a compatible version of JavaScript. The same is true for CSS. For Joomla we are using SASS and this will be converted to native CSS so that any browser understands it. On the downside, setting up a development environment is a bit more complicated but the tooling makes coding more convenient. Thanks to watchers and browser auto reload, you can see your changes in real time.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt; It should be enough to run &amp;lt;tt&amp;gt;composer install&amp;lt;/tt&amp;gt; as this will install PHP dependencies saved in the &#039;&#039;composer.lock&#039;&#039; file. You can do this as many times as you like. It will only install new packages when the &#039;&#039;composer.lock&#039;&#039; file is changed. Don&#039;t run &amp;lt;tt&amp;gt;composer update&amp;lt;/tt&amp;gt; as this will update all packages to newer versions and update the &#039;&#039;composer.lock&#039;&#039; file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt; &#039;&#039;&#039;Note:&#039;&#039;&#039; You may need to run &amp;lt;tt&amp;gt;composer install&amp;lt;/tt&amp;gt; with the &amp;lt;tt&amp;gt;--ignore-platform-reqs&amp;lt;/tt&amp;gt; option to ignore platform requirements specified in Composer. That is, if you do not have PHP&#039;s LDAP extension installed.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Node/npm Scripts === &amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt; Node.js comes with a package manager called NPM (in some ways the same as Composer). NPM has a &amp;lt;tt&amp;gt;run&amp;lt;/tt&amp;gt; command and we have prepared some scripts to make your life easier. You have to run the commands for the root of the repository when you have changed JS or SASS files. Previously you needed to run &amp;lt;tt&amp;gt;npm ci&amp;lt;/tt&amp;gt; once, to install dependencies.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== npm run build:css ==== &amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
It will compile SASS files to CSS and also create the minified files.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== npm run build:js ==== &amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
It will compile and transpile the JavaScript files to the correct format and create minified files.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== npm run watch ==== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
This is the same as the &amp;lt;tt&amp;gt;build:js&amp;lt;/tt&amp;gt; command but will watch for changes and automatically build updated files in the media directory. SASS files are not included yet.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== npm run lint:js ==== &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
This will perform a syntax check on all ES6 JavaScript files against the JavaScript code standard (for more information on the Joomla 4 codestyle standard please read the the coding standards manual at [https://developer.joomla.org/coding-standards/introduction.html| the coding standards manual].&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== npm run test ==== &amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt; This will run a JavaScript testing suite.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Possible Issues== &amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt; When running composer install you can run into these errors&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Problem 1&lt;br /&gt;
    - Installation request for joomla/ldap 2.0.0-beta -&amp;gt; satisfiable by joomla/ldap[2.0.0-beta].&lt;br /&gt;
    - joomla/ldap 2.0.0-beta requires ext-ldap * -&amp;gt; the requested PHP extension ldap is missing from your system.&lt;br /&gt;
Problem 2&lt;br /&gt;
    - Installation request for symfony/ldap v5.1.5 -&amp;gt; satisfiable by symfony/ldap[v5.1.5].&lt;br /&gt;
    - symfony/ldap v5.1.5 requires ext-ldap * -&amp;gt; the requested PHP extension ldap is missing from your system.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt; The solution is to run the composer install with the &amp;lt;tt&amp;gt;--ignore-platform-reqs&amp;lt;/tt&amp;gt; option to ignore platform requirements specified in Composer. That is, if you do not have PHP&#039;s LDAP extension installed. &amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;composer install --ignore-platform-reqs&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt; If you receive a login error such as shown below, delete the &amp;lt;tt&amp;gt;administrator/cache/autoload_psr4.php&amp;lt;/tt&amp;gt; file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Install-error.png|border|center|400px|Login After Install Error]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Inserting_Updating_and_Removing_data_using_JDatabase&amp;diff=1021886</id>
		<title>J4.x:Inserting Updating and Removing data using JDatabase</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Inserting_Updating_and_Removing_data_using_JDatabase&amp;diff=1021886"/>
		<updated>2024-02-24T19:02:08Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Joomla! 4.x]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}{{Joomla version|version=3.x}}{{Joomla version|version=2.5|status=eos}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
{{tip|&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Note many examples online do not use the prepared statements methods that have been introduced with Joomla 4.x, please do not use these old APIs for new projects, because they result in massive security issues if user input is not strictly escaped. Securing your database queries, check the [https://manual.joomla.org/docs/next/security/secure-db-queries/ Joomla! Programmers Documentation: Secure DB Queries]&amp;lt;/translate&amp;gt;|title=&amp;lt;translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Version Note&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
This tutorial is split into two independent parts:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
* Inserting, updating and removing data from the database.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
* Selecting data from one or more tables and retrieving it in a variety of different forms.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
This section of the documentation looks at inserting, updating and removing data from a database table. To see the other part [[S:MyLanguage/J4.x:Selecting_data_using_JDatabase|click here]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Introduction== &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Joomla provides a sophisticated database abstraction layer to simplify the usage for third party developers. New versions of the Joomla Platform API provide additional functionality which extends the database layer further, and includes features such as connectors to a greater variety of database servers and the query chaining to improve readability of connection code and simplify SQL coding.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Joomla can use different kinds of SQL database systems and run in a variety of environments with different table-prefixes. In addition to these functions, the class automatically creates the database connection. Besides instantiating the object you need just two lines of code to get a result from the database in a variety of formats. Using the Joomla database layer ensures a maximum of compatibility and flexibility for your extension.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==The Query== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Joomla&#039;s database querying has changed since the new Joomla Framework was introduced  &amp;quot;query chaining&amp;quot; is now the recommended method for building database queries (although string queries are still supported).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Query chaining refers to a method of connecting a number of methods, one after the other, with each method returning an object that can support the next method, improving readability and simplifying code.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
To obtain a new instance of the DatabaseQuery class we use the DatabaseDriver getQuery method:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
&lt;br /&gt;
// When used in the component&#039;s Model&lt;br /&gt;
$db = $this-&amp;gt;getDatabase();&lt;br /&gt;
&lt;br /&gt;
// When used in other places &lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do NOT use the following Joomla 3 method anymore because it is deprecated:&lt;br /&gt;
&lt;br /&gt;
$db = Factory::getDbo();&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;DatabaseDriver::getQuery&amp;lt;/tt&amp;gt; takes an optional argument, $new, which can be true or false (the default being false).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
To query our data source we can call a number of DatabaseQuery methods; these methods encapsulate the data source&#039;s query language (in most cases SQL), hiding query-specific syntax from the developer and increasing the portability of the developer&#039;s source code.&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
Some of the more frequently used methods include; select, from, join, where and order. There are also methods such as insert, update and delete for modifying records in the data store. By chaining these and other method calls, you can create almost any query against your data store without compromising portability of your code.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Inserting a Record== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Using SQL=== &amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
The DatabaseQuery class provides a number of methods for building insert queries, the most common being&amp;lt;/translate&amp;gt; insert, columns &amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
and&amp;lt;/translate&amp;gt; values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Get a db connection.&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
// Create a new query object.&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
// Insert columns.&lt;br /&gt;
$columns = array(&#039;user_id&#039;, &#039;profile_key&#039;, &#039;profile_value&#039;, &#039;ordering&#039;);&lt;br /&gt;
&lt;br /&gt;
// Prepare the insert query.&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;insert($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;))&lt;br /&gt;
    -&amp;gt;columns($db-&amp;gt;quoteName($columns))&lt;br /&gt;
    -&amp;gt;values(&#039;:user_id, :profile_key, :profile_value, :ordering&#039;);&lt;br /&gt;
&lt;br /&gt;
// Bind values&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;bind(&#039;:user_id&#039;, 1001, Joomla\Database\ParameterType::INTEGER)&lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_key&#039;, &#039;custom.message&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_value&#039;, &#039;Inserting a record using insert()&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:ordering&#039;, 1, Joomla\Database\ParameterType::INTEGER);&lt;br /&gt;
&lt;br /&gt;
// Set the query using our newly populated query object and execute it.&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
$db-&amp;gt;execute();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using an Object=== &amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;DatabaseDriver&amp;lt;/tt&amp;gt; class also provides a convenient method for saving an object directly to the database allowing us to add a record to a table without writing a single line of SQL.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Create and populate an object.&lt;br /&gt;
$profile = new stdClass();&lt;br /&gt;
$profile-&amp;gt;user_id = 1001;&lt;br /&gt;
$profile-&amp;gt;profile_key=&#039;custom.message&#039;;&lt;br /&gt;
$profile-&amp;gt;profile_value=&#039;Inserting a record using insertObject()&#039;;&lt;br /&gt;
$profile-&amp;gt;ordering=1;&lt;br /&gt;
&lt;br /&gt;
// Insert the object into the user profile table.&lt;br /&gt;
$result = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;)-&amp;gt;insertObject(&#039;#__user_profiles&#039;, $profile);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
Notice here that we do not need to escape the table name; the insertObject method does this for us.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
The insertObject method will throw a error if there is a problem inserting the record into the database table.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
If you are providing a unique primary key value (as in the example above), it is highly recommended that you select from the table by that column value before attempting an insert.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
If you are simply inserting the next row in your table (i.e. the database generates a primary key value), you can specify the primary key column-name as the third parameter of the insertObject() method and the method will update the object with the newly generated primary key value.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
For example, given the following statement:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$result = $dbconnect-&amp;gt;insertObject(&#039;#__my_table&#039;, $object, &#039;primary_key&#039;); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
after execution, $object-&amp;gt;primary_key will be updated with the newly inserted row&#039;s primary key value.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HINT:&#039;&#039;&#039; Set $object-&amp;gt;primary_key to null or 0 (zero) before inserting.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Updating a Record== &amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Using SQL=== &amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;DatabaseQuery&amp;lt;/tt&amp;gt; class also provides methods for building update queries, in particular update and set. We also reuse another method which we used when creating select statements, the where method.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
// Fields to update.&lt;br /&gt;
$fields = array(&lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;profile_value&#039;) . &#039; = :profile_value&#039;,&lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;ordering&#039;) . &#039; = :ordering&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
// Conditions for which records should be updated.&lt;br /&gt;
$conditions = array(&lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;user_id&#039;) . &#039; = :user_id&#039;, &lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;profile_key&#039;) . &#039; = :profile_key&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$query-&amp;gt;update($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;))-&amp;gt;set($fields)-&amp;gt;where($conditions);&lt;br /&gt;
&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_value&#039;, &#039;Updating custom message for user 1001.&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:ordering&#039;, 2, Joomla\Database\ParameterType::INTEGER)&lt;br /&gt;
    -&amp;gt;bind(&#039;:user_id&#039;, 42, Joomla\Database\ParameterType::INTEGER)   &lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_key&#039;, &#039;custom.message&#039;);&lt;br /&gt;
&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
$result = $db-&amp;gt;execute();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Using an Object === &amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
Like &amp;lt;tt&amp;gt;insertObject&amp;lt;/tt&amp;gt;, the DatabaseDriver class provides a convenience method for updating an object.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Below we will update our custom table with new values using an existing id primary key:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Create an object for the record we are going to update.&lt;br /&gt;
$object = new stdClass();&lt;br /&gt;
&lt;br /&gt;
// Must be a valid primary key value.&lt;br /&gt;
$object-&amp;gt;id = 1;&lt;br /&gt;
$object-&amp;gt;title = &#039;My Custom Record&#039;;&lt;br /&gt;
$object-&amp;gt;description = &#039;A custom record being updated in the database.&#039;;&lt;br /&gt;
&lt;br /&gt;
// Update their details in the users table using id as the primary key.&lt;br /&gt;
$result = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;)-&amp;gt;updateObject(&#039;#__custom_table&#039;, $object, &#039;id&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
Just like insertObject, updateObject takes care of escaping table names for us.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
The updateObject method will throw a error if there is a problem updating the record into the database table.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
We need to ensure that the record already exists before attempting to update it, so we would probably add some kind of record check before executing the updateObject method.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Deleting a Record== &amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
Finally, there is also a delete method to remove records from the database.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
// delete all custom keys for user 1001.&lt;br /&gt;
$conditions = array(&lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;user_id&#039;) . &#039; = :user_id&#039;, &lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;profile_key&#039;) . &#039; = :profile_key&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$query-&amp;gt;delete($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;));&lt;br /&gt;
$query-&amp;gt;where($conditions);&lt;br /&gt;
&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;bind(&#039;:user_id&#039;, 1001, Joomla\Database\ParameterType::INTEGER)&lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_key&#039;, &#039;custom.%&#039;);&lt;br /&gt;
&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
$result = $db-&amp;gt;execute();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== See also === &amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*[https://manual.joomla.org/docs/next/security/secure-db-queries/ Joomla! Programmers Documentation: Secure DB Queries]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Selecting_data_using_JDatabase|&amp;lt;translate&amp;gt;&amp;lt;!--T:140--&amp;gt; Selecting data using JDatabase&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Moving_Joomla_To_Prepared_Statements|&amp;lt;translate&amp;gt;&amp;lt;!--T:141--&amp;gt; Moving Joomla To Prepared Statements&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
*[[S:MyLanguage/Using the union methods in database queries|&amp;lt;translate&amp;gt;&amp;lt;!--T:137--&amp;gt; Using the union methods in database queries&amp;lt;/translate&amp;gt;]] &amp;lt;translate&amp;gt;&amp;lt;!--T:138--&amp;gt; (Joomla! 3.3+)&amp;lt;/translate&amp;gt;&lt;br /&gt;
*[https://api.joomla.org/framework-1/classes/Joomla.Database.DatabaseQuery.html &amp;lt;translate&amp;gt;&amp;lt;!--T:139--&amp;gt; Joomla Framework API&amp;lt;/translate&amp;gt;] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Database{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla!_4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla!_3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Inserting_Updating_and_Removing_data_using_JDatabase&amp;diff=1021684</id>
		<title>J4.x:Inserting Updating and Removing data using JDatabase</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Inserting_Updating_and_Removing_data_using_JDatabase&amp;diff=1021684"/>
		<updated>2024-02-24T16:12:00Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Joomla! 4.x]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}{{Joomla version|version=3.x}}{{Joomla version|version=2.5|status=eos}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
{{tip|&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Note many examples online do not use the prepared statements methods that have been introduced with Joomla 4.x, please do not use these old APIs for new projects, because they result in massive security issues if user input is not strictly escaped. Securing your database queries, check the [https://manual.joomla.org/docs/next/security/secure-db-queries/ Joomla! Programmers Documentation: Secure DB Queries]&amp;lt;/translate&amp;gt;|title=&amp;lt;translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Version Note&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
This tutorial is split into two independent parts:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
* Inserting, updating and removing data from the database.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
* Selecting data from one or more tables and retrieving it in a variety of different forms.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
This section of the documentation looks at inserting, updating and removing data from a database table. To see the other part [[S:MyLanguage/J4.x:Selecting_data_using_JDatabase|click here]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Introduction== &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Joomla provides a sophisticated database abstraction layer to simplify the usage for third party developers. New versions of the Joomla Platform API provide additional functionality which extends the database layer further, and includes features such as connectors to a greater variety of database servers and the query chaining to improve readability of connection code and simplify SQL coding.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Joomla can use different kinds of SQL database systems and run in a variety of environments with different table-prefixes. In addition to these functions, the class automatically creates the database connection. Besides instantiating the object you need just two lines of code to get a result from the database in a variety of formats. Using the Joomla database layer ensures a maximum of compatibility and flexibility for your extension.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==The Query== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Joomla&#039;s database querying has changed since the new Joomla Framework was introduced  &amp;quot;query chaining&amp;quot; is now the recommended method for building database queries (although string queries are still supported).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Query chaining refers to a method of connecting a number of methods, one after the other, with each method returning an object that can support the next method, improving readability and simplifying code.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
To obtain a new instance of the DatabaseQuery class we use the DatabaseDriver getQuery method:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
&lt;br /&gt;
// When used in the component&#039;s Model&lt;br /&gt;
$db = $this-&amp;gt;getDatabase();&lt;br /&gt;
&lt;br /&gt;
// When used in other places &lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do NOT use the following Joomla 3 method anymore because it is deprecated:&lt;br /&gt;
&lt;br /&gt;
$db = Factory::getDbo();&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;DatabaseDriver::getQuery&amp;lt;/tt&amp;gt; takes an optional argument, $new, which can be true or false (the default being false).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
To query our data source we can call a number of DatabaseQuery methods; these methods encapsulate the data source&#039;s query language (in most cases SQL), hiding query-specific syntax from the developer and increasing the portability of the developer&#039;s source code.&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
Some of the more frequently used methods include; select, from, join, where and order. There are also methods such as insert, update and delete for modifying records in the data store. By chaining these and other method calls, you can create almost any query against your data store without compromising portability of your code.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Inserting a Record== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Using SQL=== &amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
The DatabaseQuery class provides a number of methods for building insert queries, the most common being&amp;lt;/translate&amp;gt; insert, columns &amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
and&amp;lt;/translate&amp;gt; values.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Get a db connection.&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
// Create a new query object.&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
// Insert columns.&lt;br /&gt;
$columns = array(&#039;user_id&#039;, &#039;profile_key&#039;, &#039;profile_value&#039;, &#039;ordering&#039;);&lt;br /&gt;
&lt;br /&gt;
// Prepare the insert query.&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;insert($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;))&lt;br /&gt;
    -&amp;gt;columns($db-&amp;gt;quoteName($columns))&lt;br /&gt;
    -&amp;gt;values(&#039;:user_id, :profile_key, :profile_value, :ordering&#039;);&lt;br /&gt;
&lt;br /&gt;
// Bind values&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;bind(&#039;:user_id&#039;, 1001, Joomla\Database\ParameterType::INTEGER)&lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_key&#039;, &#039;custom.message&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_value&#039;, &#039;Inserting a record using insert()&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:ordering&#039;, 1, Joomla\Database\ParameterType::INTEGER);&lt;br /&gt;
&lt;br /&gt;
// Set the query using our newly populated query object and execute it.&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
$db-&amp;gt;execute();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using an Object=== &amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;DatabaseDriver&amp;lt;/tt&amp;gt; class also provides a convenient method for saving an object directly to the database allowing us to add a record to a table without writing a single line of SQL.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Create and populate an object.&lt;br /&gt;
$profile = new stdClass();&lt;br /&gt;
$profile-&amp;gt;user_id = 1001;&lt;br /&gt;
$profile-&amp;gt;profile_key=&#039;custom.message&#039;;&lt;br /&gt;
$profile-&amp;gt;profile_value=&#039;Inserting a record using insertObject()&#039;;&lt;br /&gt;
$profile-&amp;gt;ordering=1;&lt;br /&gt;
&lt;br /&gt;
// Insert the object into the user profile table.&lt;br /&gt;
$result = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;)-&amp;gt;insertObject(&#039;#__user_profiles&#039;, $profile);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
Notice here that we do not need to escape the table name; the insertObject method does this for us.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
The insertObject method will throw a error if there is a problem inserting the record into the database table.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
If you are providing a unique primary key value (as in the example above), it is highly recommended that you select from the table by that column value before attempting an insert.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
If you are simply inserting the next row in your table (i.e. the database generates a primary key value), you can specify the primary key column-name as the third parameter of the insertObject() method and the method will update the object with the newly generated primary key value.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
For example, given the following statement:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$result = $dbconnect-&amp;gt;insertObject(&#039;#__my_table&#039;, $object, &#039;primary_key&#039;); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
after execution, $object-&amp;gt;primary_key will be updated with the newly inserted row&#039;s primary key value.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HINT:&#039;&#039;&#039; Set $object-&amp;gt;primary_key to null or 0 (zero) before inserting.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Updating a Record== &amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Using SQL=== &amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;DatabaseQuery&amp;lt;/tt&amp;gt; class also provides methods for building update queries, in particular update and set. We also reuse another method which we used when creating select statements, the where method.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
// Fields to update.&lt;br /&gt;
$fields = array(&lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;profile_value&#039;) . &#039; = :profile_value&#039;,&lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;ordering&#039;) . &#039; = :ordering&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
// Conditions for which records should be updated.&lt;br /&gt;
$conditions = array(&lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;user_id&#039;) . &#039; = :user_id&#039;, &lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;profile_key&#039;) . &#039; = :profile_key&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$query-&amp;gt;update($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;))-&amp;gt;set($fields)-&amp;gt;where($conditions);&lt;br /&gt;
&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_value&#039;, &#039;Updating custom message for user 1001.&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:ordering&#039;, 2, Joomla\Database\ParameterType::INTEGER)&lt;br /&gt;
    -&amp;gt;bind(&#039;:user_id&#039;, 42, Joomla\Database\ParameterType::INTEGER)   &lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_key&#039;, &#039;custom.message&#039;);&lt;br /&gt;
&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
$result = $db-&amp;gt;execute();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Using an Object === &amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
Like &amp;lt;tt&amp;gt;insertObject&amp;lt;/tt&amp;gt;, the JDatabaseDriver class provides a convenience method for updating an object.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Below we will update our custom table with new values using an existing id primary key:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Create an object for the record we are going to update.&lt;br /&gt;
$object = new stdClass();&lt;br /&gt;
&lt;br /&gt;
// Must be a valid primary key value.&lt;br /&gt;
$object-&amp;gt;id = 1;&lt;br /&gt;
$object-&amp;gt;title = &#039;My Custom Record&#039;;&lt;br /&gt;
$object-&amp;gt;description = &#039;A custom record being updated in the database.&#039;;&lt;br /&gt;
&lt;br /&gt;
// Update their details in the users table using id as the primary key.&lt;br /&gt;
$result = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;)-&amp;gt;updateObject(&#039;#__custom_table&#039;, $object, &#039;id&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
Just like insertObject, updateObject takes care of escaping table names for us.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
The updateObject method will throw a error if there is a problem updating the record into the database table.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
We need to ensure that the record already exists before attempting to update it, so we would probably add some kind of record check before executing the updateObject method.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Deleting a Record== &amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
Finally, there is also a delete method to remove records from the database.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
// delete all custom keys for user 1001.&lt;br /&gt;
$conditions = array(&lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;user_id&#039;) . &#039; = :user_id&#039;, &lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;profile_key&#039;) . &#039; = :profile_key&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$query-&amp;gt;delete($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;));&lt;br /&gt;
$query-&amp;gt;where($conditions);&lt;br /&gt;
&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;bind(&#039;:user_id&#039;, 1001, Joomla\Database\ParameterType::INTEGER)&lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_key&#039;, &#039;custom.%&#039;);&lt;br /&gt;
&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
$result = $db-&amp;gt;execute();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== See also === &amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*[https://manual.joomla.org/docs/next/security/secure-db-queries/ Joomla! Programmers Documentation: Secure DB Queries]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Selecting_data_using_JDatabase|&amp;lt;translate&amp;gt;&amp;lt;!--T:140--&amp;gt; Selecting data using JDatabase&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Moving_Joomla_To_Prepared_Statements|&amp;lt;translate&amp;gt;&amp;lt;!--T:141--&amp;gt; Moving Joomla To Prepared Statements&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
*[[S:MyLanguage/Using the union methods in database queries|&amp;lt;translate&amp;gt;&amp;lt;!--T:137--&amp;gt; Using the union methods in database queries&amp;lt;/translate&amp;gt;]] &amp;lt;translate&amp;gt;&amp;lt;!--T:138--&amp;gt; (Joomla! 3.3+)&amp;lt;/translate&amp;gt;&lt;br /&gt;
*[https://api.joomla.org/framework-1/classes/Joomla.Database.DatabaseQuery.html &amp;lt;translate&amp;gt;&amp;lt;!--T:139--&amp;gt; Joomla Framework API&amp;lt;/translate&amp;gt;] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Database{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla!_4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla!_3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Selecting_data_using_JDatabase&amp;diff=1021569</id>
		<title>J4.x:Selecting data using JDatabase</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Selecting_data_using_JDatabase&amp;diff=1021569"/>
		<updated>2024-02-24T15:52:22Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
{{tip|&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Note that many examples online do not use the prepared statements methods that have been introduced with Joomla 4.x. Please do not use these old APIs for new projects. They result in massive security issues if user input is not strictly escaped.&amp;lt;/translate&amp;gt;|title=&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Version Note&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
This tutorial is split into two independent parts:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
* Inserting, updating and removing data from the database.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
* Selecting data from one or more tables and retrieving it in a variety of different forms&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
This section of the documentation looks at selecting data from a database table and retrieving it in a variety of formats. To see the other part [[S:MyLanguage/J4.x:Inserting_Updating_and_Removing_data_using_JDatabase|click here]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Introduction== &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Joomla provides a sophisticated database abstraction layer to simplify the usage for third party developers. New versions of the Joomla Platform API provide additional functionality which extends the database layer further, and includes features such as connectors to a greater variety of database servers and the query chaining to improve readability of connection code and simplify SQL coding.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Joomla can use different kinds of SQL database systems and run in a variety of environments with different table-prefixes. In addition to these functions, the class automatically creates the database connection. Besides instantiating the object you need just two lines of code to get a result from the database in a variety of formats. Using the Joomla database layer ensures a maximum of compatibility and flexibility for your extension.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==The Query== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Since Joomla introduced support for a variety of database types in Joomla 1.6 - the recommended way of building database queries is through &amp;quot;query chaining&amp;quot; (although string queries will always be supported).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Query chaining refers to a method of connecting a number of methods, one after the other, with each method returning an object that can support the next method, improving readability and simplifying code.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
To obtain a new instance of the \Joomla\Database\DatabaseQuery class we use the \Joomla\Database\DatabaseDriver getQuery method:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
&lt;br /&gt;
// When used in the component&#039;s Model&lt;br /&gt;
$db = $this-&amp;gt;getDatabase();&lt;br /&gt;
&lt;br /&gt;
// When used in other places &lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do NOT use the following Joomla 3 method anymore because it is deprecated: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;$db = Factory::getDbo();&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
The \Joomla\Database\DatabaseDriver::getQuery takes an optional argument, $new, which can be true or false (the default being false).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
To query our data source we can call a number of \Joomla\Database\DatabaseQuery methods; these methods encapsulate the data source&#039;s query language (in most cases SQL), hiding query-specific syntax from the developer and increasing the portability of the developer&#039;s source code.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
Some of the more frequently used methods include; select, from, join, where and order. There are also methods such as insert, update and delete for modifying records in the data store. By chaining these and other method calls, you can create almost any query against your data store without compromising portability of your code&amp;lt;/translate&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Selecting Records from a Single Table== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Below is an example of creating a database query using the &amp;lt;tt&amp;gt;\Joomla\Database\DatabaseQuery&amp;lt;/tt&amp;gt; class. Using the select, from, where and order methods, we can create queries which are flexible, easily readable and portable:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
&lt;br /&gt;
// Get a db connection.&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
// Create a new query object.&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
// Select all records from the user profile table where key begins with &amp;quot;custom.&amp;quot;.&lt;br /&gt;
// Order it by the ordering field.&lt;br /&gt;
$query-&amp;gt;select($db-&amp;gt;quoteName([&#039;user_id&#039;, &#039;profile_key&#039;, &#039;profile_value&#039;, &#039;ordering&#039;]));&lt;br /&gt;
$query-&amp;gt;from($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;));&lt;br /&gt;
$query-&amp;gt;where($db-&amp;gt;quoteName(&#039;profile_key&#039;) . &#039; LIKE :profile_key&#039;);&lt;br /&gt;
$query-&amp;gt;order($db-&amp;gt;quoteName(&#039;ordering&#039;) . &#039; ASC&#039;);&lt;br /&gt;
&lt;br /&gt;
// bind value for prepared statements&lt;br /&gt;
$query-&amp;gt;bind(&#039;:profile_key&#039;, &#039;custom.%&#039;);&lt;br /&gt;
&lt;br /&gt;
// Reset the query using our newly populated query object.&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
// Load the results as a list of stdClass objects (see later for more options on retrieving data).&lt;br /&gt;
$results = $db-&amp;gt;loadObjectList();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
The query can also be chained to simplify further:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName([&#039;user_id&#039;, &#039;profile_key&#039;, &#039;profile_value&#039;, &#039;ordering&#039;]))&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;))&lt;br /&gt;
    -&amp;gt;where($db-&amp;gt;quoteName(&#039;profile_key&#039;) . &#039; LIKE :profile_key&#039;)&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;ordering&#039;) . &#039; ASC&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_key&#039;, &#039;custom.%&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
Chaining can become useful when queries become longer and more complex.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
Grouping can be achieved simply too. The following query would count the number of articles in each category.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select( [&#039;catid&#039;, &#039;COUNT(*)&#039;] )&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__content&#039;))&lt;br /&gt;
    -&amp;gt;group($db-&amp;gt;quoteName(&#039;catid&#039;));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
A limit can be set to a query using &amp;quot;setLimit&amp;quot;. For example in the following query, it would return up to 10 records.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName([&#039;user_id&#039;, &#039;profile_key&#039;, &#039;profile_value&#039;, &#039;ordering&#039;]))&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;))&lt;br /&gt;
    -&amp;gt;setLimit(&#039;10&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Selecting Records from Multiple Tables== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
Using the \Joomla\Database\DatabaseQuery&#039;s [https://api.joomla.org/framework-1/classes/Joomla-Database-DatabaseQuery.html#join join] methods, we can select records from multiple related tables. The generic &amp;quot;join&amp;quot; method takes two arguments: the join &amp;quot;type&amp;quot; (inner, outer, left, right) and the join condition. In the following example you will notice that we can use all of the keywords we would normally use if we were writing a native SQL query, including the AS keyword for aliasing tables and the ON keyword for creating relationships between tables. Also note that the table alias is used in all methods which reference table columns (I.e. select, where, order).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
&lt;br /&gt;
// Get a db connection.&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
// Create a new query object.&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
// Select all articles for users who have a username which starts with &#039;a&#039;.&lt;br /&gt;
// Order it by the created date.&lt;br /&gt;
// Note by putting &#039;a&#039; as a second parameter will generate `#__content` AS `a`&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select([&#039;a.*&#039;, &#039;b.username&#039;, &#039;b.name&#039;])&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__content&#039;, &#039;a&#039;))&lt;br /&gt;
    -&amp;gt;join(&#039;INNER&#039;, $db-&amp;gt;quoteName(&#039;#__users&#039;, &#039;b&#039;) . &#039; ON (&#039; . $db-&amp;gt;quoteName(&#039;a.created_by&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;b.id&#039;) . &#039;)&#039;)&lt;br /&gt;
    -&amp;gt;where($db-&amp;gt;quoteName(&#039;b.username&#039;) . &#039; LIKE :username&#039;)&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:username&#039;, &#039;a%&#039;);&lt;br /&gt;
&lt;br /&gt;
// Reset the query using our newly populated query object.&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
// Load the results as a list of stdClass objects (see later for more options on retrieving data).&lt;br /&gt;
$results = $db-&amp;gt;loadObjectList();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
The join method above enables us to query both the content and user tables, retrieving articles with their author details. There are also convenience methods for joins:&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [https://api.joomla.org/framework-1/classes/Joomla-Database-DatabaseQuery.html#method_innerJoin innerJoin()]&lt;br /&gt;
* [https://api.joomla.org/framework-1/classes/Joomla-Database-DatabaseQuery.html#method_leftJoin leftJoin()]&lt;br /&gt;
* [https://api.joomla.org/framework-1/classes/Joomla-Database-DatabaseQuery.html#method_rightJoin rightJoin()]&lt;br /&gt;
* [https://api.joomla.org/framework-1/classes/Joomla-Database-DatabaseQuery.html#method_outerJoin outerJoin()]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
We can use multiple joins to query across more than two tables:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select(array(&#039;a.*&#039;, &#039;b.username&#039;, &#039;b.name&#039;, &#039;c.*&#039;, &#039;d.*&#039;))&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__content&#039;, &#039;a&#039;))&lt;br /&gt;
    -&amp;gt;join(&#039;INNER&#039;, $db-&amp;gt;quoteName(&#039;#__users&#039;, &#039;b&#039;) . &#039; ON (&#039; . $db-&amp;gt;quoteName(&#039;a.created_by&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;b.id&#039;) . &#039;)&#039;)&lt;br /&gt;
    -&amp;gt;join(&#039;LEFT&#039;, $db-&amp;gt;quoteName(&#039;#__user_profiles&#039;, &#039;c&#039;) . &#039; ON (&#039; . $db-&amp;gt;quoteName(&#039;b.id&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;c.user_id&#039;) . &#039;)&#039;)&lt;br /&gt;
    -&amp;gt;join(&#039;RIGHT&#039;, $db-&amp;gt;quoteName(&#039;#__categories&#039;, &#039;d&#039;) . &#039; ON (&#039; . $db-&amp;gt;quoteName(&#039;a.catid&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;d.id&#039;) . &#039;)&#039;)&lt;br /&gt;
    -&amp;gt;where($db-&amp;gt;quoteName(&#039;b.username&#039;) . &#039; LIKE :username&#039;)&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:username&#039;, &#039;a%&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
Notice how chaining makes the source code more readable for these longer queries.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
In some cases, you will also need to use the AS clause when selecting items to avoid column name conflicts. In this case, multiple select statements can be chained in conjunction with using the second parameter of $db-&amp;gt;quoteName.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select(&#039;a.*&#039;)&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName(&#039;b.username&#039;, &#039;username&#039;))&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName(&#039;b.name&#039;, &#039;name&#039;))&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__content&#039;, &#039;a&#039;))&lt;br /&gt;
    -&amp;gt;join(&#039;INNER&#039;, $db-&amp;gt;quoteName(&#039;#__users&#039;, &#039;b&#039;), $db-&amp;gt;quoteName(&#039;a.created_by&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;b.id&#039;))&lt;br /&gt;
    -&amp;gt;where($db-&amp;gt;quoteName(&#039;b.username&#039;) . &#039; LIKE :username&#039;)&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:username&#039;, &#039;a%&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
A second array can also be used as the second parameter of the select statement to populate the values of the AS clause. Remember to include nulls in the second array to correspond to columns in the first array that you don&#039;t want to use the AS clause for:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select([&#039;a.*&#039;])&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName(array(&#039;b.username&#039;, &#039;b.name&#039;), [&#039;username&#039;, &#039;name&#039;]))&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__content&#039;, &#039;a&#039;))&lt;br /&gt;
    -&amp;gt;join(&#039;INNER&#039;, $db-&amp;gt;quoteName(&#039;#__users&#039;, &#039;b&#039;) . &#039; ON (&#039; . $db-&amp;gt;quoteName(&#039;a.created_by&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;b.id&#039;) . &#039;)&#039;)&lt;br /&gt;
    -&amp;gt;where($db-&amp;gt;quoteName(&#039;b.username&#039;) . &#039; LIKE :username&#039;)&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:username&#039;, &#039;a%&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Using Prepared Statements== &amp;lt;!--T:140--&amp;gt; &amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
With Joomla! 4.0 we have [[J4.x:Moving_Joomla_To_Prepared_Statements|moved all queries to use prepared statements]]. For easier use of prepared statements we introduced some helper functions and allow to use arrays in several function calls.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
Simple query with prepared statements.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query = $this-&amp;gt;db-&amp;gt;getQuery(true)&lt;br /&gt;
	-&amp;gt;select($this-&amp;gt;db-&amp;gt;quoteName(array(&#039;id&#039;, &#039;password&#039;)))&lt;br /&gt;
	-&amp;gt;from($this-&amp;gt;db-&amp;gt;quoteName(&#039;#__users&#039;))&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;username&#039;) . &#039; = :username&#039;)&lt;br /&gt;
	-&amp;gt;bind(&#039;:username&#039;, $credentials[&#039;username&#039;]);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:143--&amp;gt;&lt;br /&gt;
You see that we don&#039;t add the &#039;&#039;&#039;$credentials[&#039;username&#039;]&#039;&#039;&#039; directly to the query, instead we add the placeholder &#039;&#039;&#039;:username&#039;&#039;&#039; into the query and &#039;&#039;&#039;bind&#039;&#039;&#039; the variable to the query. When we bind a variable to a query we don&#039;t need to escape nor to quote it.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:144--&amp;gt;&lt;br /&gt;
Beware that binding a variable will always be a reference. A nice side effect of this, is that you can manipulate the query in a loop.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$listOfUsernames = [ &#039;admin&#039;, &#039;user1&#039; ];&lt;br /&gt;
&lt;br /&gt;
$query = $this-&amp;gt;db-&amp;gt;getQuery(true)&lt;br /&gt;
	-&amp;gt;select($this-&amp;gt;db-&amp;gt;quoteName(array(&#039;id&#039;, &#039;password&#039;)))&lt;br /&gt;
	-&amp;gt;from($this-&amp;gt;db-&amp;gt;quoteName(&#039;#__users&#039;))&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;username&#039;) . &#039; = :username&#039;)&lt;br /&gt;
	-&amp;gt;bind(&#039;:username&#039;, $username);&lt;br /&gt;
&lt;br /&gt;
foreach($listOfUsernames as $name)&lt;br /&gt;
{&lt;br /&gt;
  $username = $name;&lt;br /&gt;
  $this-&amp;gt;db-&amp;gt;setQuery($query);&lt;br /&gt;
  $user = $this-&amp;gt;db-&amp;gt;loadObject();&lt;br /&gt;
  print_r($user);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:145--&amp;gt;&lt;br /&gt;
In the loop we set the previously bound $username variable with the $name variable from the loop, then we have to set the query again (because Joomla resets the database driver after query execution which is only true for load* functions).&lt;br /&gt;
The result will be multiple queries with different username values.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:146--&amp;gt;&lt;br /&gt;
We can use arrays to add multiple variables at once.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query = $this-&amp;gt;db-&amp;gt;getQuery(true)&lt;br /&gt;
	-&amp;gt;select($this-&amp;gt;db-&amp;gt;quoteName(array(&#039;id&#039;, &#039;password&#039;)))&lt;br /&gt;
	-&amp;gt;from($this-&amp;gt;db-&amp;gt;quoteName(&#039;#__users&#039;))&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;username&#039;) . &#039; = :username&#039;)&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;id&#039;) . &#039; = :id&#039;)&lt;br /&gt;
	-&amp;gt;bind([&#039;:username&#039;, &#039;:id&#039;], [$credentials[&#039;username&#039;], 42], [Joomla\Database\ParameterType::STRING, Joomla\Database\ParameterType::INTEGER]);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:147--&amp;gt;&lt;br /&gt;
We add &#039;&#039;&#039;username&#039;&#039;&#039; and &#039;&#039;&#039;id&#039;&#039;&#039; as bind parameter and set the correct ParameterType for each variable.&lt;br /&gt;
It&#039;s also possible to use one variable for all bind values and ParameterTypes.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query = $this-&amp;gt;db-&amp;gt;getQuery(true)&lt;br /&gt;
	-&amp;gt;select($this-&amp;gt;db-&amp;gt;quoteName(array(&#039;id&#039;, &#039;password&#039;)))&lt;br /&gt;
	-&amp;gt;from($this-&amp;gt;db-&amp;gt;quoteName(&#039;#__users&#039;))&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;username&#039;) . &#039; = :username&#039;)&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;password&#039;) . &#039; = :password&#039;)&lt;br /&gt;
	-&amp;gt;bind([&#039;:username&#039;, &#039;:password&#039;], $credentials[&#039;username&#039;]);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:148--&amp;gt;&lt;br /&gt;
The parameter :username and :password get set to the same value and the default ParameterType.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:149--&amp;gt;&lt;br /&gt;
The function &#039;&#039;&#039;whereIn()&#039;&#039;&#039; and &#039;&#039;&#039;whereNotIn()&#039;&#039;&#039; always use prepared statements, internal these functions uses the &#039;&#039;&#039;bindArray&#039;&#039;&#039; function. It can be used to bind an array of variables without specifying the placeholder.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$userids = [1,2,3,4];&lt;br /&gt;
&lt;br /&gt;
$query = $this-&amp;gt;db-&amp;gt;getQuery(true)&lt;br /&gt;
	-&amp;gt;select($this-&amp;gt;db-&amp;gt;quoteName(array(&#039;id&#039;, &#039;password&#039;)))&lt;br /&gt;
	-&amp;gt;from($this-&amp;gt;db-&amp;gt;quoteName(&#039;#__users&#039;));&lt;br /&gt;
&lt;br /&gt;
$parameterNames = $query-&amp;gt;bindArray($userids);&lt;br /&gt;
&lt;br /&gt;
$query-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;id&#039;) . &#039; IN (&#039; . implode(&#039;,&#039;, $parameterNames) . &#039;)&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;bindArray&#039;&#039;&#039; function returns an array of placeholders. The index is unique for the whole query.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$placeholders = [&lt;br /&gt;
  &#039;:preparedArray1&#039;,&lt;br /&gt;
  &#039;:preparedArray2&#039;,&lt;br /&gt;
  &#039;:preparedArray3&#039;,&lt;br /&gt;
  &#039;:preparedArray4&#039;&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Query Results == &amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
The database class contains many methods for working with a query&#039;s result set.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Single Value Result === &amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadResult() ==== &amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
Use &#039;&#039;&#039;loadResult()&#039;&#039;&#039; when you expect just a single value back from your database query.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
id&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
name&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
email&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
username&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || style=&amp;quot;background:yellow&amp;quot; | John Smith || &amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
johnsmith@domain.example&amp;lt;/translate&amp;gt; || johnsmith&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Magda Hellman || &amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
magda_h@domain.example&amp;lt;/translate&amp;gt; || magdah&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Yvonne de Gaulle || &amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
ydg@domain.example&amp;lt;/translate&amp;gt; || ydegaulle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
This is often the result of a &#039;count&#039; query to get the number of records:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
$query-&amp;gt;select(&#039;COUNT(*)&#039;);&lt;br /&gt;
$query-&amp;gt;from($db-&amp;gt;quoteName(&#039;#__my_table&#039;));&lt;br /&gt;
$query-&amp;gt;where($db-&amp;gt;quoteName(&#039;name&#039;).&amp;quot; = :value&amp;quot;);&lt;br /&gt;
$query-&amp;gt;bind(&#039;value&#039;, $value)&lt;br /&gt;
&lt;br /&gt;
// Reset the query using our newly populated query object.&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$count = $db-&amp;gt;loadResult();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
or where you are just looking for a single field from a single row of the table (or possibly a single field from the first row returned).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
$query-&amp;gt;select(&#039;field_name&#039;);&lt;br /&gt;
$query-&amp;gt;from($db-&amp;gt;quoteName(&#039;#__my_table&#039;));&lt;br /&gt;
$query-&amp;gt;where($db-&amp;gt;quoteName(&#039;some_name&#039;).&amp;quot; = :value&amp;quot;);&lt;br /&gt;
$query-&amp;gt;bind(&#039;:value&#039;, $some_value);&lt;br /&gt;
&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$result = $db-&amp;gt;loadResult();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Single Row Results === &amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
Each of these results functions will return a single record from the database even though there may be several records that meet the criteria that you have set. To get more records, you need to call the function again.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
id&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
name&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
email&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
username&amp;lt;/translate&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background:yellow&amp;quot;&lt;br /&gt;
| 1 || John Smith || &amp;lt;translate&amp;gt;&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
johnsmith@domain.example&amp;lt;/translate&amp;gt; || johnsmith&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Magda Hellman || &amp;lt;translate&amp;gt;&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
magda_h@domain.example&amp;lt;/translate&amp;gt; || magdah&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Yvonne de Gaulle || &amp;lt;translate&amp;gt;&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
ydg@domain.example&amp;lt;/translate&amp;gt; || ydegaulle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadRow() ==== &amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadRow()&amp;lt;/tt&amp;gt; returns an indexed array from a single record in the table:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadRow();&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
will give:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( [0] =&amp;gt; 1, [1] =&amp;gt; John Smith, [2] =&amp;gt; johnsmith@domain.example, [3] =&amp;gt; johnsmith ) &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
You can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;] // e.g. $row[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
Notes:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
# The array indices are numeric starting from zero.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
# Whilst you can repeat the call to get further rows, one of the functions that returns multiple rows might be more useful.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadAssoc() ==== &amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadAssoc()&amp;lt;/tt&amp;gt; returns an associated array from a single record in the table:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadAssoc();&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
will give:&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith, [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith )&amp;lt;/pre&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
You can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;name&#039;] // e.g. $row[&#039;email&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
# Whilst you can repeat the call to get further rows, one of the functions that returns multiple rows might be more useful.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadObject() ==== &amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
loadObject returns a PHP object from a single record in the table:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$result = $db-&amp;gt;loadObject();&lt;br /&gt;
print_r($result);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
will give:&lt;br /&gt;
&amp;lt;pre&amp;gt;stdClass Object ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith, [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith )&amp;lt;/pre&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
You can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$result-&amp;gt;index // e.g. $result-&amp;gt;email&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
# Whilst you can repeat the call to get further rows, one of the functions that returns multiple rows might be more useful.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Single Column Results === &amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
Each of these results functions will return a single column from the database.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
id&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
name&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
email&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
username&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || style=&amp;quot;background:yellow&amp;quot; | John Smith || &amp;lt;translate&amp;gt;&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
johnsmith@domain.example&amp;lt;/translate&amp;gt; || johnsmith&lt;br /&gt;
|-&lt;br /&gt;
| 2 || style=&amp;quot;background:yellow&amp;quot; | Magda Hellman || &amp;lt;translate&amp;gt;&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
magda_h@domain.example&amp;lt;/translate&amp;gt; || magdah&lt;br /&gt;
|-&lt;br /&gt;
| 3 || style=&amp;quot;background:yellow&amp;quot; | Yvonne de Gaulle || &amp;lt;translate&amp;gt;&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
ydg@domain.example&amp;lt;/translate&amp;gt; || ydegaulle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadColumn() ==== &amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadColumn()&amp;lt;/tt&amp;gt; returns an indexed array from a single column in the table:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
$query-&amp;gt;select(&#039;name&#039;));&lt;br /&gt;
      -&amp;gt;from . . .&amp;quot;;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$column= $db-&amp;gt;loadColumn();&lt;br /&gt;
print_r($column);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
will give:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( [0] =&amp;gt; John Smith, [1] =&amp;gt; Magda Hellman, [2] =&amp;gt; Yvonne de Gaulle )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
You can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$column[&#039;index&#039;] // e.g. $column[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
# The array indices are numeric starting from zero.&lt;br /&gt;
# &amp;lt;tt&amp;gt;loadColumn()&amp;lt;/tt&amp;gt; is equivalent to loadColumn(0).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadColumn($index) ==== &amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
loadColumn($index) returns an indexed array from a single column in the table:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
$query-&amp;gt;select(array(&#039;name&#039;, &#039;email&#039;, &#039;username&#039;));&lt;br /&gt;
      -&amp;gt;from . . .&amp;quot;;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$column= $db-&amp;gt;loadColumn(1);&lt;br /&gt;
print_r($column);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
will give:&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( [0] =&amp;gt; johnsmith@domain.example, [1] =&amp;gt; magda_h@domain.example, [2] =&amp;gt; ydg@domain.example )&amp;lt;/pre&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
You can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$column[&#039;index&#039;] // e.g. $column[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
loadColumn($index) allows you to iterate through a series of columns in the results:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
for ( $i = 0; $i &amp;lt;= 2; $i++ ) {&lt;br /&gt;
  $column = $db-&amp;gt;loadColumn($i);&lt;br /&gt;
  print_r($column);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
will give:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( [0] =&amp;gt; John Smith, [1] =&amp;gt; Magda Hellman, [2] =&amp;gt; Yvonne de Gaulle ),&lt;br /&gt;
Array ( [0] =&amp;gt; johnsmith@domain.example, [1] =&amp;gt; magda_h@domain.example, [2] =&amp;gt; ydg@domain.example ),&lt;br /&gt;
Array ( [0] =&amp;gt; johnsmith, [1] =&amp;gt; magdah, [2] =&amp;gt; ydegaulle )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
# The array indices are numeric starting from zero.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Multi-Row Results === &amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
Each of these results functions will return multiple records from the database.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
id&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
name&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
email&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
username&amp;lt;/translate&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background:yellow&amp;quot;&lt;br /&gt;
| 1 || John Smith || johnsmith@domain.example || johnsmith&lt;br /&gt;
|- style=&amp;quot;background:yellow&amp;quot;&lt;br /&gt;
| 2 || Magda Hellman || magda_h@domain.example || magdah&lt;br /&gt;
|- style=&amp;quot;background:yellow&amp;quot;&lt;br /&gt;
| 3 || Yvonne de Gaulle || ydg@domain.example || ydegaulle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadRowList() ==== &amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadRowList()&amp;lt;/tt&amp;gt; returns an indexed array of indexed arrays from the table records returned by the query:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadRowList();&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Array (&lt;br /&gt;
[0] =&amp;gt; Array ( [0] =&amp;gt; 1, [1] =&amp;gt; John Smith, [2] =&amp;gt; johnsmith@domain.example, [3] =&amp;gt; johnsmith ),&lt;br /&gt;
[1] =&amp;gt; Array ( [0] =&amp;gt; 2, [1] =&amp;gt; Magda Hellman, [2] =&amp;gt; magda_h@domain.example, [3] =&amp;gt; magdah ),&lt;br /&gt;
[2] =&amp;gt; Array ( [0] =&amp;gt; 3, [1] =&amp;gt; Yvonne de Gaulle, [2] =&amp;gt; ydg@domain.example, [3] =&amp;gt; ydegaulle )&lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
You can access the individual rows by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;] // e.g. $row[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;][&#039;index&#039;] // e.g. $row[&#039;2&#039;][&#039;3&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
# The array indices are numeric starting from zero.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== loadAssocList() ==== &amp;lt;!--T:101--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadAssocList()&amp;lt;/tt&amp;gt; returns an indexed array of associated arrays from the table records returned by the query:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadAssocList();&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array (&lt;br /&gt;
[0] =&amp;gt; Array ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith, [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith ),&lt;br /&gt;
[1] =&amp;gt; Array ( [id] =&amp;gt; 2, [name] =&amp;gt; Magda Hellman, [email] =&amp;gt; magda_h@domain.example, [username] =&amp;gt; magdah ),&lt;br /&gt;
[2] =&amp;gt; Array ( [id] =&amp;gt; 3, [name] =&amp;gt; Yvonne de Gaulle, [email] =&amp;gt; ydg@domain.example, [username] =&amp;gt; ydegaulle )&lt;br /&gt;
) &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
You can access the individual rows by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;] // e.g. $row[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;][&#039;column_name&#039;] // e.g. $row[&#039;2&#039;][&#039;email&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== loadAssocList($key) ==== &amp;lt;!--T:106--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadAssocList(&#039;key&#039;)&amp;lt;/tt&amp;gt; returns an associated array - indexed on &#039;key&#039; - of associated arrays from the table records returned by the query:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadAssocList(&#039;username&#039;);&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:108--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array (&lt;br /&gt;
[johnsmith] =&amp;gt; Array ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith, [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith ),&lt;br /&gt;
[magdah] =&amp;gt; Array ( [id] =&amp;gt; 2, [name] =&amp;gt; Magda Hellman, [email] =&amp;gt; magda_h@domain.example, [username] =&amp;gt; magdah ),&lt;br /&gt;
[ydegaulle] =&amp;gt; Array ( [id] =&amp;gt; 3, [name] =&amp;gt; Yvonne de Gaulle, [email] =&amp;gt; ydg@domain.example, [username] =&amp;gt; ydegaulle )&lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
You can access the individual rows by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;key_value&#039;] // e.g. $row[&#039;johnsmith&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;key_value&#039;][&#039;column_name&#039;] // e.g. $row[&#039;johnsmith&#039;][&#039;email&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
Note: Key must be a valid column name from the table; it does not have to be an Index or a Primary Key. But if it does not have a unique value you may not be able to retrieve results reliably.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== loadAssocList($key, $column) ==== &amp;lt;!--T:112--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadAssocList(&#039;key&#039;, &#039;column&#039;)&amp;lt;/tt&amp;gt; returns an associative array, indexed on &#039;key&#039;, of values from the column named &#039;column&#039; returned by the query:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadAssocList(&#039;id&#039;, &#039;username&#039;);&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array (&lt;br /&gt;
[1] =&amp;gt; John Smith,&lt;br /&gt;
[2] =&amp;gt; Magda Hellman,&lt;br /&gt;
[3] =&amp;gt; Yvonne de Gaulle,&lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
Note: Key must be a valid column name from the table; it does not have to be an Index or a Primary Key. But if it does not have a unique value you may not be able to retrieve results reliably.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== loadObjectList() ==== &amp;lt;!--T:116--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadObjectList()&amp;lt;/tt&amp;gt; returns an indexed array of PHP objects from the table records returned by the query:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadObjectList();&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array (&lt;br /&gt;
[0] =&amp;gt; stdClass Object ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith,&lt;br /&gt;
    [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith ),&lt;br /&gt;
[1] =&amp;gt; stdClass Object ( [id] =&amp;gt; 2, [name] =&amp;gt; Magda Hellman,&lt;br /&gt;
    [email] =&amp;gt; magda_h@domain.example, [username] =&amp;gt; magdah ),&lt;br /&gt;
[2] =&amp;gt; stdClass Object ( [id] =&amp;gt; 3, [name] =&amp;gt; Yvonne de Gaulle,&lt;br /&gt;
    [email] =&amp;gt; ydg@domain.example, [username] =&amp;gt; ydegaulle )&lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
You can access the individual rows by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;] // e.g. $row[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;]-&amp;gt;name // e.g. $row[&#039;2&#039;]-&amp;gt;email&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== loadObjectList($key) ==== &amp;lt;!--T:121--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadObjectList(&#039;key&#039;)&amp;lt;/tt&amp;gt; returns an associated array - indexed on &#039;key&#039; - of objects from the table records returned by the query:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadObjectList(&#039;username&#039;);&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array (&lt;br /&gt;
[johnsmith] =&amp;gt; stdClass Object ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith,&lt;br /&gt;
    [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith ),&lt;br /&gt;
[magdah] =&amp;gt; stdClass Object ( [id] =&amp;gt; 2, [name] =&amp;gt; Magda Hellman,&lt;br /&gt;
    [email] =&amp;gt; magda_h@domain.example, [username] =&amp;gt; magdah ),&lt;br /&gt;
[ydegaulle] =&amp;gt; stdClass Object ( [id] =&amp;gt; 3, [name] =&amp;gt; Yvonne de Gaulle,&lt;br /&gt;
    [email] =&amp;gt; ydg@domain.example, [username] =&amp;gt; ydegaulle )&lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
You can access the individual rows by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;key_value&#039;] // e.g. $row[&#039;johnsmith&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;key_value&#039;]-&amp;gt;column_name // e.g. $row[&#039;johnsmith&#039;]-&amp;gt;email&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
Note: Key must be a valid column name from the table; it does not have to be an Index or a Primary Key. But if it does not have a unique value you may not be able to retrieve results reliably.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Miscellaneous Result Set Methods === &amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== getNumRows() ==== &amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;getNumRows()&amp;lt;/tt&amp;gt; will return the number of result rows found by the last SELECT or SHOW query and waiting to be read. To get a result from getNumRows() you have to run it &#039;&#039;&#039;after&#039;&#039;&#039; the query and &#039;&#039;&#039;before&#039;&#039;&#039; you have retrieved any results. To retrieve the number of rows affected by a INSERT, UPDATE, REPLACE or DELETE query, use getAffectedRows().&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$db-&amp;gt;execute();&lt;br /&gt;
$num_rows = $db-&amp;gt;getNumRows();&lt;br /&gt;
print_r($num_rows);&lt;br /&gt;
$result = $db-&amp;gt;loadRowList();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
will return&amp;lt;/translate&amp;gt; &amp;lt;pre&amp;gt;3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
Note: getNumRows() is only valid for statements like SELECT or SHOW that return an actual result set. If you run getNumRows() after loadRowList() - or any other retrieval method - you will get a PHP Warning:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Warning: mysql_num_rows(): 80 is not a valid MySQL result resource&lt;br /&gt;
in libraries\joomla\database\database\mysql.php on line 344&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== See Also === &amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*[https://manual.joomla.org/docs/next/security/secure-db-queries/ Joomla! Programmers Documentation: Secure DB Queries]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Inserting, Updating and Removing data using JDatabase|&amp;lt;translate&amp;gt;&amp;lt;!--T:136--&amp;gt; Inserting, Updating and Removing data using JDatabase&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Moving_Joomla_To_Prepared_Statements|&amp;lt;translate&amp;gt;&amp;lt;!--T:151--&amp;gt; Moving Joomla To Prepared Statements&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
*[[S:MyLanguage/Using the union methods in database queries|&amp;lt;translate&amp;gt;&amp;lt;!--T:137--&amp;gt; Using the union methods in database queries&amp;lt;/translate&amp;gt;]] &amp;lt;translate&amp;gt;&amp;lt;!--T:138--&amp;gt; (Joomla! 3.3+)&amp;lt;/translate&amp;gt;&lt;br /&gt;
*[https://php.net/manual/en/pdo.prepared-statements.php &amp;lt;translate&amp;gt;&amp;lt;!--T:152--&amp;gt; The PHP Manual on Prepared statements&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://api.joomla.org/framework-1/classes/Joomla-Database-DatabaseQuery.html &amp;lt;translate&amp;gt;&amp;lt;!--T:139--&amp;gt; Joomla Framework API&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Database{{#translation:}}]]&lt;br /&gt;
[[Category:JFactory{{#translation:}}]]&lt;br /&gt;
[[Category:Extension development{{#translation:}}]]&lt;br /&gt;
[[Category:Development Recommended Reading{{#translation:}}]]&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Inserting_Updating_and_Removing_data_using_JDatabase&amp;diff=1021442</id>
		<title>J4.x:Inserting Updating and Removing data using JDatabase</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Inserting_Updating_and_Removing_data_using_JDatabase&amp;diff=1021442"/>
		<updated>2024-02-24T15:37:46Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Joomla! 4.x]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}{{Joomla version|version=3.x}}{{Joomla version|version=2.5|status=eos}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
{{tip|&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Note many examples online do not use the prepared statements methods that have been introduced with Joomla 4.x, please do not use these old APIs for new projects, because they result in massive security issues if user input is not strictly escaped.&amp;lt;/translate&amp;gt;|title=&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Version Note&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
This tutorial is split into two independent parts:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
* Inserting, updating and removing data from the database.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
* Selecting data from one or more tables and retrieving it in a variety of different forms.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
This section of the documentation looks at inserting, updating and removing data from a database table. To see the other part [[S:MyLanguage/J4.x:Selecting_data_using_JDatabase|click here]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Introduction== &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Joomla provides a sophisticated database abstraction layer to simplify the usage for third party developers. New versions of the Joomla Platform API provide additional functionality which extends the database layer further, and includes features such as connectors to a greater variety of database servers and the query chaining to improve readability of connection code and simplify SQL coding.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Joomla can use different kinds of SQL database systems and run in a variety of environments with different table-prefixes. In addition to these functions, the class automatically creates the database connection. Besides instantiating the object you need just two lines of code to get a result from the database in a variety of formats. Using the Joomla database layer ensures a maximum of compatibility and flexibility for your extension.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==The Query== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Joomla&#039;s database querying has changed since the new Joomla Framework was introduced  &amp;quot;query chaining&amp;quot; is now the recommended method for building database queries (although string queries are still supported).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Query chaining refers to a method of connecting a number of methods, one after the other, with each method returning an object that can support the next method, improving readability and simplifying code.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
To obtain a new instance of the JDatabaseQuery class we use the JDatabaseDriver getQuery method:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
&lt;br /&gt;
// When used in the component&#039;s Model&lt;br /&gt;
$db = $this-&amp;gt;getDatabase();&lt;br /&gt;
&lt;br /&gt;
// When used in other places &lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do NOT use the following Joomla 3 method anymore because it is deprecated:&lt;br /&gt;
&lt;br /&gt;
$db = Factory::getDbo();&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;JDatabaseDriver::getQuery&amp;lt;/tt&amp;gt; takes an optional argument, $new, which can be true or false (the default being false).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
To query our data source we can call a number of DatabaseQuery methods; these methods encapsulate the data source&#039;s query language (in most cases SQL), hiding query-specific syntax from the developer and increasing the portability of the developer&#039;s source code.&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
Some of the more frequently used methods include; select, from, join, where and order. There are also methods such as insert, update and delete for modifying records in the data store. By chaining these and other method calls, you can create almost any query against your data store without compromising portability of your code.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Inserting a Record== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Using SQL=== &amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
The DatabaseQuery class provides a number of methods for building insert queries, the most common being&amp;lt;/translate&amp;gt; [http://api.joomla.org/11.4/Joomla-Platform/Database/JDatabaseQuery.html#insert insert], [http://api.joomla.org/11.4/Joomla-Platform/Database/JDatabaseQuery.html#columns columns] &amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
and&amp;lt;/translate&amp;gt; [http://api.joomla.org/11.4/Joomla-Platform/Database/JDatabaseQuery.html#values values].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Get a db connection.&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
// Create a new query object.&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
// Insert columns.&lt;br /&gt;
$columns = array(&#039;user_id&#039;, &#039;profile_key&#039;, &#039;profile_value&#039;, &#039;ordering&#039;);&lt;br /&gt;
&lt;br /&gt;
// Prepare the insert query.&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;insert($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;))&lt;br /&gt;
    -&amp;gt;columns($db-&amp;gt;quoteName($columns))&lt;br /&gt;
    -&amp;gt;values(&#039;:user_id, :profile_key, :profile_value, :ordering&#039;);&lt;br /&gt;
&lt;br /&gt;
// Bind values&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;bind(&#039;:user_id&#039;, 1001, Joomla\Database\ParameterType::INTEGER)&lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_key&#039;, &#039;custom.message&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_value&#039;, &#039;Inserting a record using insert()&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:ordering&#039;, 1, Joomla\Database\ParameterType::INTEGER);&lt;br /&gt;
&lt;br /&gt;
// Set the query using our newly populated query object and execute it.&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
$db-&amp;gt;execute();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using an Object=== &amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;DatabaseDriver&amp;lt;/tt&amp;gt; class also provides a convenient method for saving an object directly to the database allowing us to add a record to a table without writing a single line of SQL.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Create and populate an object.&lt;br /&gt;
$profile = new stdClass();&lt;br /&gt;
$profile-&amp;gt;user_id = 1001;&lt;br /&gt;
$profile-&amp;gt;profile_key=&#039;custom.message&#039;;&lt;br /&gt;
$profile-&amp;gt;profile_value=&#039;Inserting a record using insertObject()&#039;;&lt;br /&gt;
$profile-&amp;gt;ordering=1;&lt;br /&gt;
&lt;br /&gt;
// Insert the object into the user profile table.&lt;br /&gt;
$result = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;)-&amp;gt;insertObject(&#039;#__user_profiles&#039;, $profile);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
Notice here that we do not need to escape the table name; the insertObject method does this for us.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
The insertObject method will throw a error if there is a problem inserting the record into the database table.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
If you are providing a unique primary key value (as in the example above), it is highly recommended that you select from the table by that column value before attempting an insert.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
If you are simply inserting the next row in your table (i.e. the database generates a primary key value), you can specify the primary key column-name as the third parameter of the insertObject() method and the method will update the object with the newly generated primary key value.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
For example, given the following statement:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$result = $dbconnect-&amp;gt;insertObject(&#039;#__my_table&#039;, $object, &#039;primary_key&#039;); &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
after execution, $object-&amp;gt;primary_key will be updated with the newly inserted row&#039;s primary key value.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;HINT:&#039;&#039;&#039; Set $object-&amp;gt;primary_key to null or 0 (zero) before inserting.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Updating a Record== &amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Using SQL=== &amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;JDatabaseQuery&amp;lt;/tt&amp;gt; class also provides methods for building update queries, in particular [http://api.joomla.org/11.4/Joomla-Platform/Database/JDatabaseQuery.html#update update] and [http://api.joomla.org/11.4/Joomla-Platform/Database/JDatabaseQuery.html#set set]. We also reuse another method which we used when creating select statements, the where method.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
// Fields to update.&lt;br /&gt;
$fields = array(&lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;profile_value&#039;) . &#039; = :profile_value&#039;,&lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;ordering&#039;) . &#039; = :ordering&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
// Conditions for which records should be updated.&lt;br /&gt;
$conditions = array(&lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;user_id&#039;) . &#039; = :user_id&#039;, &lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;profile_key&#039;) . &#039; = :profile_key&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$query-&amp;gt;update($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;))-&amp;gt;set($fields)-&amp;gt;where($conditions);&lt;br /&gt;
&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_value&#039;, &#039;Updating custom message for user 1001.&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:ordering&#039;, 2, Joomla\Database\ParameterType::INTEGER)&lt;br /&gt;
    -&amp;gt;bind(&#039;:user_id&#039;, 42, Joomla\Database\ParameterType::INTEGER)   &lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_key&#039;, &#039;custom.message&#039;);&lt;br /&gt;
&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
$result = $db-&amp;gt;execute();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Using an Object === &amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
Like &amp;lt;tt&amp;gt;insertObject&amp;lt;/tt&amp;gt;, the JDatabaseDriver class provides a convenience method for updating an object.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Below we will update our custom table with new values using an existing id primary key:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Create an object for the record we are going to update.&lt;br /&gt;
$object = new stdClass();&lt;br /&gt;
&lt;br /&gt;
// Must be a valid primary key value.&lt;br /&gt;
$object-&amp;gt;id = 1;&lt;br /&gt;
$object-&amp;gt;title = &#039;My Custom Record&#039;;&lt;br /&gt;
$object-&amp;gt;description = &#039;A custom record being updated in the database.&#039;;&lt;br /&gt;
&lt;br /&gt;
// Update their details in the users table using id as the primary key.&lt;br /&gt;
$result = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;)-&amp;gt;updateObject(&#039;#__custom_table&#039;, $object, &#039;id&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
Just like insertObject, updateObject takes care of escaping table names for us.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
The updateObject method will throw a error if there is a problem updating the record into the database table.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
We need to ensure that the record already exists before attempting to update it, so we would probably add some kind of record check before executing the updateObject method.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Deleting a Record== &amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
Finally, there is also a delete method to remove records from the database.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
// delete all custom keys for user 1001.&lt;br /&gt;
$conditions = array(&lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;user_id&#039;) . &#039; = :user_id&#039;, &lt;br /&gt;
    $db-&amp;gt;quoteName(&#039;profile_key&#039;) . &#039; = :profile_key&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$query-&amp;gt;delete($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;));&lt;br /&gt;
$query-&amp;gt;where($conditions);&lt;br /&gt;
&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;bind(&#039;:user_id&#039;, 1001, Joomla\Database\ParameterType::INTEGER)&lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_key&#039;, &#039;custom.%&#039;);&lt;br /&gt;
&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
$result = $db-&amp;gt;execute();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== See also === &amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Selecting_data_using_JDatabase|&amp;lt;translate&amp;gt;&amp;lt;!--T:140--&amp;gt; Selecting data using JDatabase&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Moving_Joomla_To_Prepared_Statements|&amp;lt;translate&amp;gt;&amp;lt;!--T:141--&amp;gt; Moving Joomla To Prepared Statements&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
*[[S:MyLanguage/Using the union methods in database queries|&amp;lt;translate&amp;gt;&amp;lt;!--T:137--&amp;gt; Using the union methods in database queries&amp;lt;/translate&amp;gt;]] &amp;lt;translate&amp;gt;&amp;lt;!--T:138--&amp;gt; (Joomla! 3.3+)&amp;lt;/translate&amp;gt;&lt;br /&gt;
*[https://api.joomla.org/framework-1/classes/Joomla.Database.DatabaseQuery.html &amp;lt;translate&amp;gt;&amp;lt;!--T:139--&amp;gt; Joomla Framework API&amp;lt;/translate&amp;gt;] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Database{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla!_4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla!_3.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Pizza_Bugs_and_Fun_2024/Contributors_List&amp;diff=1021382</id>
		<title>Pizza Bugs and Fun 2024/Contributors List</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Pizza_Bugs_and_Fun_2024/Contributors_List&amp;diff=1021382"/>
		<updated>2024-02-24T15:27:00Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: /* Germany */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Banner_pbf24_1100px.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Back to [[https://www.pizza-bugs-fun.com/en/ Pizza, Bugs &amp;amp; Fun]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt; &lt;br /&gt;
&#039;&#039;Edit the page and add your name to have your contribution to PBF2024 recorded.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== These awesome Joomlers contributed to Pizza, Bugs &amp;amp; Fun 2024 ==&lt;br /&gt;
&lt;br /&gt;
====Austria==== &lt;br /&gt;
* Harald Leithner&lt;br /&gt;
* Sigrid Gramlinger&lt;br /&gt;
* Christine Walk&lt;br /&gt;
* Florian Bauer&lt;br /&gt;
* Kurt W.&lt;br /&gt;
&lt;br /&gt;
====France====&lt;br /&gt;
* Catherine Mollet&lt;br /&gt;
* Emmanuel Lemor&lt;br /&gt;
* Cyrille Poussin&lt;br /&gt;
* Serge Billon&lt;br /&gt;
* Jean-Charles Antoine&lt;br /&gt;
* Sebastien Lhuillier&lt;br /&gt;
* Yann Gomiero&lt;br /&gt;
&lt;br /&gt;
====Germany==== &lt;br /&gt;
* Martina Scholz&lt;br /&gt;
* Christiane Maier-Stadtherr&lt;br /&gt;
* Nadja Lamisch&lt;br /&gt;
* Benjamin Trenkle (JUG Munich)&lt;br /&gt;
* Dieter Ziller (max123kl)&lt;br /&gt;
&lt;br /&gt;
====Greece==== &lt;br /&gt;
* Dimitris Trikkas&lt;br /&gt;
* Bill Kotsias&lt;br /&gt;
&lt;br /&gt;
====Italy====&lt;br /&gt;
* Pierantonio Borga&lt;br /&gt;
* Gioacchino Cipriano&lt;br /&gt;
* Walter Consoli&lt;br /&gt;
* Nicola Galgano&lt;br /&gt;
* Roberto Longo&lt;br /&gt;
* Alessandro Lumaca&lt;br /&gt;
* Davide Messia&lt;br /&gt;
* Luigi Morgantini&lt;br /&gt;
* Fausto Nenci&lt;br /&gt;
* Luca Racchetti&lt;br /&gt;
* Luca Sacchi Ricciardi&lt;br /&gt;
&lt;br /&gt;
====Kenyia====&lt;br /&gt;
* James Gichuru&lt;br /&gt;
* Dominic Maina&lt;br /&gt;
* Charles Kiruru&lt;br /&gt;
* Esther Nyambura&lt;br /&gt;
&lt;br /&gt;
====Netherlands==== &lt;br /&gt;
* Peter Martin&lt;br /&gt;
* Anja de Crom&lt;br /&gt;
* Tom van der Laan&lt;br /&gt;
* Nico van de Kamp&lt;br /&gt;
* Steven Trooster&lt;br /&gt;
&lt;br /&gt;
====Spain==== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Switzerland====&lt;br /&gt;
* Martin Kopp&lt;br /&gt;
* Christof Rimle&lt;br /&gt;
* Heinz Riedener&lt;br /&gt;
* Rahel Schierbaum&lt;br /&gt;
* Lea Kemper&lt;br /&gt;
* Doris Dreher&lt;br /&gt;
* Manuel Häusler&lt;br /&gt;
* Roger Abt&lt;br /&gt;
* Peter Guntern&lt;br /&gt;
* Vreni Angst&lt;br /&gt;
* Ruedi Knutti&lt;br /&gt;
&lt;br /&gt;
====Uganda==== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====UK====&lt;br /&gt;
* Mark Fleeson&lt;br /&gt;
&lt;br /&gt;
====USA====&lt;br /&gt;
* Laura Gordon&lt;br /&gt;
* Olivier Buisard&lt;br /&gt;
* Eddie Konczel&lt;br /&gt;
* Sarah Berryman&lt;br /&gt;
* SD Williams&lt;br /&gt;
&lt;br /&gt;
====Vietnam==== &lt;br /&gt;
* Tuan Pham Ngoc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Volunteer Engagement{{#translation:}}]]&lt;br /&gt;
[[Category:Pizza_Bugs_and_Fun{{#translation:}}]]&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Selecting_data_using_JDatabase&amp;diff=1021376</id>
		<title>J4.x:Selecting data using JDatabase</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Selecting_data_using_JDatabase&amp;diff=1021376"/>
		<updated>2024-02-24T15:24:33Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
{{tip|&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Note that many examples online do not use the prepared statements methods that have been introduced with Joomla 4.x. Please do not use these old APIs for new projects. They result in massive security issues if user input is not strictly escaped.&amp;lt;/translate&amp;gt;|title=&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Version Note&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
This tutorial is split into two independent parts:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
* Inserting, updating and removing data from the database.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
* Selecting data from one or more tables and retrieving it in a variety of different forms&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
This section of the documentation looks at selecting data from a database table and retrieving it in a variety of formats. To see the other part [[S:MyLanguage/J4.x:Inserting_Updating_and_Removing_data_using_JDatabase|click here]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Introduction== &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Joomla provides a sophisticated database abstraction layer to simplify the usage for third party developers. New versions of the Joomla Platform API provide additional functionality which extends the database layer further, and includes features such as connectors to a greater variety of database servers and the query chaining to improve readability of connection code and simplify SQL coding.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Joomla can use different kinds of SQL database systems and run in a variety of environments with different table-prefixes. In addition to these functions, the class automatically creates the database connection. Besides instantiating the object you need just two lines of code to get a result from the database in a variety of formats. Using the Joomla database layer ensures a maximum of compatibility and flexibility for your extension.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==The Query== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Since Joomla introduced support for a variety of database types in Joomla 1.6 - the recommended way of building database queries is through &amp;quot;query chaining&amp;quot; (although string queries will always be supported).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Query chaining refers to a method of connecting a number of methods, one after the other, with each method returning an object that can support the next method, improving readability and simplifying code.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
To obtain a new instance of the \Joomla\Database\DatabaseQuery class we use the \Joomla\Database\DatabaseDriver getQuery method:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
&lt;br /&gt;
// When used in the component&#039;s Model&lt;br /&gt;
$db = $this-&amp;gt;getDatabase();&lt;br /&gt;
&lt;br /&gt;
// When used in other places &lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do NOT use the following Joomla 3 method anymore because it is deprecated: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;$db = Factory::getDbo();&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
The \Joomla\Database\DatabaseDriver::getQuery takes an optional argument, $new, which can be true or false (the default being false).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
To query our data source we can call a number of \Joomla\Database\DatabaseQuery methods; these methods encapsulate the data source&#039;s query language (in most cases SQL), hiding query-specific syntax from the developer and increasing the portability of the developer&#039;s source code.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
Some of the more frequently used methods include; select, from, join, where and order. There are also methods such as insert, update and delete for modifying records in the data store. By chaining these and other method calls, you can create almost any query against your data store without compromising portability of your code&amp;lt;/translate&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Selecting Records from a Single Table== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Below is an example of creating a database query using the &amp;lt;tt&amp;gt;\Joomla\Database\DatabaseQuery&amp;lt;/tt&amp;gt; class. Using the select, from, where and order methods, we can create queries which are flexible, easily readable and portable:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
&lt;br /&gt;
// Get a db connection.&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
// Create a new query object.&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
// Select all records from the user profile table where key begins with &amp;quot;custom.&amp;quot;.&lt;br /&gt;
// Order it by the ordering field.&lt;br /&gt;
$query-&amp;gt;select($db-&amp;gt;quoteName([&#039;user_id&#039;, &#039;profile_key&#039;, &#039;profile_value&#039;, &#039;ordering&#039;]));&lt;br /&gt;
$query-&amp;gt;from($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;));&lt;br /&gt;
$query-&amp;gt;where($db-&amp;gt;quoteName(&#039;profile_key&#039;) . &#039; LIKE :profile_key&#039;);&lt;br /&gt;
$query-&amp;gt;order($db-&amp;gt;quoteName(&#039;ordering&#039;) . &#039; ASC&#039;);&lt;br /&gt;
&lt;br /&gt;
// bind value for prepared statements&lt;br /&gt;
$query-&amp;gt;bind(&#039;:profile_key&#039;, &#039;custom.%&#039;);&lt;br /&gt;
&lt;br /&gt;
// Reset the query using our newly populated query object.&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
// Load the results as a list of stdClass objects (see later for more options on retrieving data).&lt;br /&gt;
$results = $db-&amp;gt;loadObjectList();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
The query can also be chained to simplify further:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName([&#039;user_id&#039;, &#039;profile_key&#039;, &#039;profile_value&#039;, &#039;ordering&#039;]))&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;))&lt;br /&gt;
    -&amp;gt;where($db-&amp;gt;quoteName(&#039;profile_key&#039;) . &#039; LIKE :profile_key&#039;)&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;ordering&#039;) . &#039; ASC&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_key&#039;, &#039;custom.%&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
Chaining can become useful when queries become longer and more complex.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
Grouping can be achieved simply too. The following query would count the number of articles in each category.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select( [&#039;catid&#039;, &#039;COUNT(*)&#039;] )&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__content&#039;))&lt;br /&gt;
    -&amp;gt;group($db-&amp;gt;quoteName(&#039;catid&#039;));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
A limit can be set to a query using &amp;quot;setLimit&amp;quot;. For example in the following query, it would return up to 10 records.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName([&#039;user_id&#039;, &#039;profile_key&#039;, &#039;profile_value&#039;, &#039;ordering&#039;]))&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;))&lt;br /&gt;
    -&amp;gt;setLimit(&#039;10&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Selecting Records from Multiple Tables== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
Using the \Joomla\Database\DatabaseQuery&#039;s [https://api.joomla.org/framework-1/classes/Joomla-Database-DatabaseQuery.html#join join] methods, we can select records from multiple related tables. The generic &amp;quot;join&amp;quot; method takes two arguments: the join &amp;quot;type&amp;quot; (inner, outer, left, right) and the join condition. In the following example you will notice that we can use all of the keywords we would normally use if we were writing a native SQL query, including the AS keyword for aliasing tables and the ON keyword for creating relationships between tables. Also note that the table alias is used in all methods which reference table columns (I.e. select, where, order).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
&lt;br /&gt;
// Get a db connection.&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
&lt;br /&gt;
// Create a new query object.&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
// Select all articles for users who have a username which starts with &#039;a&#039;.&lt;br /&gt;
// Order it by the created date.&lt;br /&gt;
// Note by putting &#039;a&#039; as a second parameter will generate `#__content` AS `a`&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select([&#039;a.*&#039;, &#039;b.username&#039;, &#039;b.name&#039;])&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__content&#039;, &#039;a&#039;))&lt;br /&gt;
    -&amp;gt;join(&#039;INNER&#039;, $db-&amp;gt;quoteName(&#039;#__users&#039;, &#039;b&#039;) . &#039; ON (&#039; . $db-&amp;gt;quoteName(&#039;a.created_by&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;b.id&#039;) . &#039;)&#039;)&lt;br /&gt;
    -&amp;gt;where($db-&amp;gt;quoteName(&#039;b.username&#039;) . &#039; LIKE :username&#039;)&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:username&#039;, &#039;a%&#039;);&lt;br /&gt;
&lt;br /&gt;
// Reset the query using our newly populated query object.&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
// Load the results as a list of stdClass objects (see later for more options on retrieving data).&lt;br /&gt;
$results = $db-&amp;gt;loadObjectList();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
The join method above enables us to query both the content and user tables, retrieving articles with their author details. There are also convenience methods for joins:&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [https://api.joomla.org/framework-1/classes/Joomla-Database-DatabaseQuery.html#method_innerJoin innerJoin()]&lt;br /&gt;
* [https://api.joomla.org/framework-1/classes/Joomla-Database-DatabaseQuery.html#method_leftJoin leftJoin()]&lt;br /&gt;
* [https://api.joomla.org/framework-1/classes/Joomla-Database-DatabaseQuery.html#method_rightJoin rightJoin()]&lt;br /&gt;
* [https://api.joomla.org/framework-1/classes/Joomla-Database-DatabaseQuery.html#method_outerJoin outerJoin()]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
We can use multiple joins to query across more than two tables:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select(array(&#039;a.*&#039;, &#039;b.username&#039;, &#039;b.name&#039;, &#039;c.*&#039;, &#039;d.*&#039;))&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__content&#039;, &#039;a&#039;))&lt;br /&gt;
    -&amp;gt;join(&#039;INNER&#039;, $db-&amp;gt;quoteName(&#039;#__users&#039;, &#039;b&#039;) . &#039; ON (&#039; . $db-&amp;gt;quoteName(&#039;a.created_by&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;b.id&#039;) . &#039;)&#039;)&lt;br /&gt;
    -&amp;gt;join(&#039;LEFT&#039;, $db-&amp;gt;quoteName(&#039;#__user_profiles&#039;, &#039;c&#039;) . &#039; ON (&#039; . $db-&amp;gt;quoteName(&#039;b.id&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;c.user_id&#039;) . &#039;)&#039;)&lt;br /&gt;
    -&amp;gt;join(&#039;RIGHT&#039;, $db-&amp;gt;quoteName(&#039;#__categories&#039;, &#039;d&#039;) . &#039; ON (&#039; . $db-&amp;gt;quoteName(&#039;a.catid&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;d.id&#039;) . &#039;)&#039;)&lt;br /&gt;
    -&amp;gt;where($db-&amp;gt;quoteName(&#039;b.username&#039;) . &#039; LIKE :username&#039;)&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:username&#039;, &#039;a%&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
Notice how chaining makes the source code more readable for these longer queries.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
In some cases, you will also need to use the AS clause when selecting items to avoid column name conflicts. In this case, multiple select statements can be chained in conjunction with using the second parameter of $db-&amp;gt;quoteName.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select(&#039;a.*&#039;)&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName(&#039;b.username&#039;, &#039;username&#039;))&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName(&#039;b.name&#039;, &#039;name&#039;))&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__content&#039;, &#039;a&#039;))&lt;br /&gt;
    -&amp;gt;join(&#039;INNER&#039;, $db-&amp;gt;quoteName(&#039;#__users&#039;, &#039;b&#039;), $db-&amp;gt;quoteName(&#039;a.created_by&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;b.id&#039;))&lt;br /&gt;
    -&amp;gt;where($db-&amp;gt;quoteName(&#039;b.username&#039;) . &#039; LIKE :username&#039;)&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:username&#039;, &#039;a%&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
A second array can also be used as the second parameter of the select statement to populate the values of the AS clause. Remember to include nulls in the second array to correspond to columns in the first array that you don&#039;t want to use the AS clause for:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select([&#039;a.*&#039;])&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName(array(&#039;b.username&#039;, &#039;b.name&#039;), [&#039;username&#039;, &#039;name&#039;]))&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__content&#039;, &#039;a&#039;))&lt;br /&gt;
    -&amp;gt;join(&#039;INNER&#039;, $db-&amp;gt;quoteName(&#039;#__users&#039;, &#039;b&#039;) . &#039; ON (&#039; . $db-&amp;gt;quoteName(&#039;a.created_by&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;b.id&#039;) . &#039;)&#039;)&lt;br /&gt;
    -&amp;gt;where($db-&amp;gt;quoteName(&#039;b.username&#039;) . &#039; LIKE :username&#039;)&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:username&#039;, &#039;a%&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Using Prepared Statements== &amp;lt;!--T:140--&amp;gt; &amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:141--&amp;gt;&lt;br /&gt;
With Joomla! 4.0 we have [[J4.x:Moving_Joomla_To_Prepared_Statements|moved all queries to use prepared statements]]. For easier use of prepared statements we introduced some helper functions and allow to use arrays in several function calls.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:142--&amp;gt;&lt;br /&gt;
Simple query with prepared statements.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query = $this-&amp;gt;db-&amp;gt;getQuery(true)&lt;br /&gt;
	-&amp;gt;select($this-&amp;gt;db-&amp;gt;quoteName(array(&#039;id&#039;, &#039;password&#039;)))&lt;br /&gt;
	-&amp;gt;from($this-&amp;gt;db-&amp;gt;quoteName(&#039;#__users&#039;))&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;username&#039;) . &#039; = :username&#039;)&lt;br /&gt;
	-&amp;gt;bind(&#039;:username&#039;, $credentials[&#039;username&#039;]);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:143--&amp;gt;&lt;br /&gt;
You see that we don&#039;t add the &#039;&#039;&#039;$credentials[&#039;username&#039;]&#039;&#039;&#039; directly to the query, instead we add the placeholder &#039;&#039;&#039;:username&#039;&#039;&#039; into the query and &#039;&#039;&#039;bind&#039;&#039;&#039; the variable to the query. When we bind a variable to a query we don&#039;t need to escape nor to quote it.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:144--&amp;gt;&lt;br /&gt;
Beware that binding a variable will always be a reference. A nice side effect of this, is that you can manipulate the query in a loop.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$listOfUsernames = [ &#039;admin&#039;, &#039;user1&#039; ];&lt;br /&gt;
&lt;br /&gt;
$query = $this-&amp;gt;db-&amp;gt;getQuery(true)&lt;br /&gt;
	-&amp;gt;select($this-&amp;gt;db-&amp;gt;quoteName(array(&#039;id&#039;, &#039;password&#039;)))&lt;br /&gt;
	-&amp;gt;from($this-&amp;gt;db-&amp;gt;quoteName(&#039;#__users&#039;))&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;username&#039;) . &#039; = :username&#039;)&lt;br /&gt;
	-&amp;gt;bind(&#039;:username&#039;, $username);&lt;br /&gt;
&lt;br /&gt;
foreach($listOfUsernames as $name)&lt;br /&gt;
{&lt;br /&gt;
  $username = $name;&lt;br /&gt;
  $this-&amp;gt;db-&amp;gt;setQuery($query);&lt;br /&gt;
  $user = $this-&amp;gt;db-&amp;gt;loadObject();&lt;br /&gt;
  print_r($user);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:145--&amp;gt;&lt;br /&gt;
In the loop we set the previously bound $username variable with the $name variable from the loop, then we have to set the query again (because Joomla resets the database driver after query execution which is only true for load* functions).&lt;br /&gt;
The result will be multiple queries with different username values.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:146--&amp;gt;&lt;br /&gt;
We can use arrays to add multiple variables at once.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query = $this-&amp;gt;db-&amp;gt;getQuery(true)&lt;br /&gt;
	-&amp;gt;select($this-&amp;gt;db-&amp;gt;quoteName(array(&#039;id&#039;, &#039;password&#039;)))&lt;br /&gt;
	-&amp;gt;from($this-&amp;gt;db-&amp;gt;quoteName(&#039;#__users&#039;))&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;username&#039;) . &#039; = :username&#039;)&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;id&#039;) . &#039; = :id&#039;)&lt;br /&gt;
	-&amp;gt;bind([&#039;:username&#039;, &#039;:id&#039;], [$credentials[&#039;username&#039;], 42], [Joomla\Database\ParameterType::STRING, Joomla\Database\ParameterType::INTEGER]);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:147--&amp;gt;&lt;br /&gt;
We add &#039;&#039;&#039;username&#039;&#039;&#039; and &#039;&#039;&#039;id&#039;&#039;&#039; as bind parameter and set the correct ParameterType for each variable.&lt;br /&gt;
It&#039;s also possible to use one variable for all bind values and ParameterTypes.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query = $this-&amp;gt;db-&amp;gt;getQuery(true)&lt;br /&gt;
	-&amp;gt;select($this-&amp;gt;db-&amp;gt;quoteName(array(&#039;id&#039;, &#039;password&#039;)))&lt;br /&gt;
	-&amp;gt;from($this-&amp;gt;db-&amp;gt;quoteName(&#039;#__users&#039;))&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;username&#039;) . &#039; = :username&#039;)&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;password&#039;) . &#039; = :password&#039;)&lt;br /&gt;
	-&amp;gt;bind([&#039;:username&#039;, &#039;:password&#039;], $credentials[&#039;username&#039;]);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:148--&amp;gt;&lt;br /&gt;
The parameter :username and :password get set to the same value and the default ParameterType.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:149--&amp;gt;&lt;br /&gt;
The function &#039;&#039;&#039;whereIn()&#039;&#039;&#039; and &#039;&#039;&#039;whereNotIn()&#039;&#039;&#039; always use prepared statements, internal these functions uses the &#039;&#039;&#039;bindArray&#039;&#039;&#039; function. It can be used to bind an array of variables without specifying the placeholder.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$userids = [1,2,3,4];&lt;br /&gt;
&lt;br /&gt;
$query = $this-&amp;gt;db-&amp;gt;getQuery(true)&lt;br /&gt;
	-&amp;gt;select($this-&amp;gt;db-&amp;gt;quoteName(array(&#039;id&#039;, &#039;password&#039;)))&lt;br /&gt;
	-&amp;gt;from($this-&amp;gt;db-&amp;gt;quoteName(&#039;#__users&#039;));&lt;br /&gt;
&lt;br /&gt;
$parameterNames = $query-&amp;gt;bindArray($userids);&lt;br /&gt;
&lt;br /&gt;
$query-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;id&#039;) . &#039; IN (&#039; . implode(&#039;,&#039;, $parameterNames) . &#039;)&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;bindArray&#039;&#039;&#039; function returns an array of placeholders. The index is unique for the whole query.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$placeholders = [&lt;br /&gt;
  &#039;:preparedArray1&#039;,&lt;br /&gt;
  &#039;:preparedArray2&#039;,&lt;br /&gt;
  &#039;:preparedArray3&#039;,&lt;br /&gt;
  &#039;:preparedArray4&#039;&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Query Results == &amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
The database class contains many methods for working with a query&#039;s result set.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Single Value Result === &amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadResult() ==== &amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
Use &#039;&#039;&#039;loadResult()&#039;&#039;&#039; when you expect just a single value back from your database query.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
id&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
name&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
email&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
username&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || style=&amp;quot;background:yellow&amp;quot; | John Smith || &amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
johnsmith@domain.example&amp;lt;/translate&amp;gt; || johnsmith&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Magda Hellman || &amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
magda_h@domain.example&amp;lt;/translate&amp;gt; || magdah&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Yvonne de Gaulle || &amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
ydg@domain.example&amp;lt;/translate&amp;gt; || ydegaulle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
This is often the result of a &#039;count&#039; query to get the number of records:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
$query-&amp;gt;select(&#039;COUNT(*)&#039;);&lt;br /&gt;
$query-&amp;gt;from($db-&amp;gt;quoteName(&#039;#__my_table&#039;));&lt;br /&gt;
$query-&amp;gt;where($db-&amp;gt;quoteName(&#039;name&#039;).&amp;quot; = :value&amp;quot;);&lt;br /&gt;
$query-&amp;gt;bind(&#039;value&#039;, $value)&lt;br /&gt;
&lt;br /&gt;
// Reset the query using our newly populated query object.&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$count = $db-&amp;gt;loadResult();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
or where you are just looking for a single field from a single row of the table (or possibly a single field from the first row returned).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
$db = Factory::getContainer()-&amp;gt;get(&#039;DatabaseDriver&#039;);&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
$query-&amp;gt;select(&#039;field_name&#039;);&lt;br /&gt;
$query-&amp;gt;from($db-&amp;gt;quoteName(&#039;#__my_table&#039;));&lt;br /&gt;
$query-&amp;gt;where($db-&amp;gt;quoteName(&#039;some_name&#039;).&amp;quot; = :value&amp;quot;);&lt;br /&gt;
$query-&amp;gt;bind(&#039;:value&#039;, $some_value);&lt;br /&gt;
&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$result = $db-&amp;gt;loadResult();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Single Row Results === &amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
Each of these results functions will return a single record from the database even though there may be several records that meet the criteria that you have set. To get more records, you need to call the function again.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
id&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
name&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
email&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
username&amp;lt;/translate&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background:yellow&amp;quot;&lt;br /&gt;
| 1 || John Smith || &amp;lt;translate&amp;gt;&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
johnsmith@domain.example&amp;lt;/translate&amp;gt; || johnsmith&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Magda Hellman || &amp;lt;translate&amp;gt;&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
magda_h@domain.example&amp;lt;/translate&amp;gt; || magdah&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Yvonne de Gaulle || &amp;lt;translate&amp;gt;&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
ydg@domain.example&amp;lt;/translate&amp;gt; || ydegaulle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadRow() ==== &amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadRow()&amp;lt;/tt&amp;gt; returns an indexed array from a single record in the table:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadRow();&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
will give:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( [0] =&amp;gt; 1, [1] =&amp;gt; John Smith, [2] =&amp;gt; johnsmith@domain.example, [3] =&amp;gt; johnsmith ) &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
You can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;] // e.g. $row[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
Notes:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
# The array indices are numeric starting from zero.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
# Whilst you can repeat the call to get further rows, one of the functions that returns multiple rows might be more useful.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadAssoc() ==== &amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadAssoc()&amp;lt;/tt&amp;gt; returns an associated array from a single record in the table:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadAssoc();&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
will give:&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith, [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith )&amp;lt;/pre&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
You can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;name&#039;] // e.g. $row[&#039;email&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
# Whilst you can repeat the call to get further rows, one of the functions that returns multiple rows might be more useful.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadObject() ==== &amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
loadObject returns a PHP object from a single record in the table:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$result = $db-&amp;gt;loadObject();&lt;br /&gt;
print_r($result);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
will give:&lt;br /&gt;
&amp;lt;pre&amp;gt;stdClass Object ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith, [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith )&amp;lt;/pre&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
You can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$result-&amp;gt;index // e.g. $result-&amp;gt;email&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
# Whilst you can repeat the call to get further rows, one of the functions that returns multiple rows might be more useful.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Single Column Results === &amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
Each of these results functions will return a single column from the database.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
id&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
name&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
email&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
username&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || style=&amp;quot;background:yellow&amp;quot; | John Smith || &amp;lt;translate&amp;gt;&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
johnsmith@domain.example&amp;lt;/translate&amp;gt; || johnsmith&lt;br /&gt;
|-&lt;br /&gt;
| 2 || style=&amp;quot;background:yellow&amp;quot; | Magda Hellman || &amp;lt;translate&amp;gt;&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
magda_h@domain.example&amp;lt;/translate&amp;gt; || magdah&lt;br /&gt;
|-&lt;br /&gt;
| 3 || style=&amp;quot;background:yellow&amp;quot; | Yvonne de Gaulle || &amp;lt;translate&amp;gt;&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
ydg@domain.example&amp;lt;/translate&amp;gt; || ydegaulle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadColumn() ==== &amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadColumn()&amp;lt;/tt&amp;gt; returns an indexed array from a single column in the table:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
$query-&amp;gt;select(&#039;name&#039;));&lt;br /&gt;
      -&amp;gt;from . . .&amp;quot;;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$column= $db-&amp;gt;loadColumn();&lt;br /&gt;
print_r($column);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
will give:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( [0] =&amp;gt; John Smith, [1] =&amp;gt; Magda Hellman, [2] =&amp;gt; Yvonne de Gaulle )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
You can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$column[&#039;index&#039;] // e.g. $column[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
# The array indices are numeric starting from zero.&lt;br /&gt;
# &amp;lt;tt&amp;gt;loadColumn()&amp;lt;/tt&amp;gt; is equivalent to loadColumn(0).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadColumn($index) ==== &amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
loadColumn($index) returns an indexed array from a single column in the table:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
$query-&amp;gt;select(array(&#039;name&#039;, &#039;email&#039;, &#039;username&#039;));&lt;br /&gt;
      -&amp;gt;from . . .&amp;quot;;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$column= $db-&amp;gt;loadColumn(1);&lt;br /&gt;
print_r($column);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
will give:&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( [0] =&amp;gt; johnsmith@domain.example, [1] =&amp;gt; magda_h@domain.example, [2] =&amp;gt; ydg@domain.example )&amp;lt;/pre&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
You can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$column[&#039;index&#039;] // e.g. $column[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
loadColumn($index) allows you to iterate through a series of columns in the results:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
for ( $i = 0; $i &amp;lt;= 2; $i++ ) {&lt;br /&gt;
  $column = $db-&amp;gt;loadColumn($i);&lt;br /&gt;
  print_r($column);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
will give:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( [0] =&amp;gt; John Smith, [1] =&amp;gt; Magda Hellman, [2] =&amp;gt; Yvonne de Gaulle ),&lt;br /&gt;
Array ( [0] =&amp;gt; johnsmith@domain.example, [1] =&amp;gt; magda_h@domain.example, [2] =&amp;gt; ydg@domain.example ),&lt;br /&gt;
Array ( [0] =&amp;gt; johnsmith, [1] =&amp;gt; magdah, [2] =&amp;gt; ydegaulle )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
# The array indices are numeric starting from zero.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Multi-Row Results === &amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
Each of these results functions will return multiple records from the database.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
id&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
name&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
email&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
username&amp;lt;/translate&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background:yellow&amp;quot;&lt;br /&gt;
| 1 || John Smith || johnsmith@domain.example || johnsmith&lt;br /&gt;
|- style=&amp;quot;background:yellow&amp;quot;&lt;br /&gt;
| 2 || Magda Hellman || magda_h@domain.example || magdah&lt;br /&gt;
|- style=&amp;quot;background:yellow&amp;quot;&lt;br /&gt;
| 3 || Yvonne de Gaulle || ydg@domain.example || ydegaulle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadRowList() ==== &amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadRowList()&amp;lt;/tt&amp;gt; returns an indexed array of indexed arrays from the table records returned by the query:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadRowList();&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Array (&lt;br /&gt;
[0] =&amp;gt; Array ( [0] =&amp;gt; 1, [1] =&amp;gt; John Smith, [2] =&amp;gt; johnsmith@domain.example, [3] =&amp;gt; johnsmith ),&lt;br /&gt;
[1] =&amp;gt; Array ( [0] =&amp;gt; 2, [1] =&amp;gt; Magda Hellman, [2] =&amp;gt; magda_h@domain.example, [3] =&amp;gt; magdah ),&lt;br /&gt;
[2] =&amp;gt; Array ( [0] =&amp;gt; 3, [1] =&amp;gt; Yvonne de Gaulle, [2] =&amp;gt; ydg@domain.example, [3] =&amp;gt; ydegaulle )&lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
You can access the individual rows by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;] // e.g. $row[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;][&#039;index&#039;] // e.g. $row[&#039;2&#039;][&#039;3&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
# The array indices are numeric starting from zero.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== loadAssocList() ==== &amp;lt;!--T:101--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadAssocList()&amp;lt;/tt&amp;gt; returns an indexed array of associated arrays from the table records returned by the query:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadAssocList();&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array (&lt;br /&gt;
[0] =&amp;gt; Array ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith, [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith ),&lt;br /&gt;
[1] =&amp;gt; Array ( [id] =&amp;gt; 2, [name] =&amp;gt; Magda Hellman, [email] =&amp;gt; magda_h@domain.example, [username] =&amp;gt; magdah ),&lt;br /&gt;
[2] =&amp;gt; Array ( [id] =&amp;gt; 3, [name] =&amp;gt; Yvonne de Gaulle, [email] =&amp;gt; ydg@domain.example, [username] =&amp;gt; ydegaulle )&lt;br /&gt;
) &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
You can access the individual rows by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;] // e.g. $row[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;][&#039;column_name&#039;] // e.g. $row[&#039;2&#039;][&#039;email&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== loadAssocList($key) ==== &amp;lt;!--T:106--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadAssocList(&#039;key&#039;)&amp;lt;/tt&amp;gt; returns an associated array - indexed on &#039;key&#039; - of associated arrays from the table records returned by the query:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadAssocList(&#039;username&#039;);&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:108--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array (&lt;br /&gt;
[johnsmith] =&amp;gt; Array ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith, [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith ),&lt;br /&gt;
[magdah] =&amp;gt; Array ( [id] =&amp;gt; 2, [name] =&amp;gt; Magda Hellman, [email] =&amp;gt; magda_h@domain.example, [username] =&amp;gt; magdah ),&lt;br /&gt;
[ydegaulle] =&amp;gt; Array ( [id] =&amp;gt; 3, [name] =&amp;gt; Yvonne de Gaulle, [email] =&amp;gt; ydg@domain.example, [username] =&amp;gt; ydegaulle )&lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
You can access the individual rows by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;key_value&#039;] // e.g. $row[&#039;johnsmith&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;key_value&#039;][&#039;column_name&#039;] // e.g. $row[&#039;johnsmith&#039;][&#039;email&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
Note: Key must be a valid column name from the table; it does not have to be an Index or a Primary Key. But if it does not have a unique value you may not be able to retrieve results reliably.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== loadAssocList($key, $column) ==== &amp;lt;!--T:112--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadAssocList(&#039;key&#039;, &#039;column&#039;)&amp;lt;/tt&amp;gt; returns an associative array, indexed on &#039;key&#039;, of values from the column named &#039;column&#039; returned by the query:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadAssocList(&#039;id&#039;, &#039;username&#039;);&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array (&lt;br /&gt;
[1] =&amp;gt; John Smith,&lt;br /&gt;
[2] =&amp;gt; Magda Hellman,&lt;br /&gt;
[3] =&amp;gt; Yvonne de Gaulle,&lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
Note: Key must be a valid column name from the table; it does not have to be an Index or a Primary Key. But if it does not have a unique value you may not be able to retrieve results reliably.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== loadObjectList() ==== &amp;lt;!--T:116--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadObjectList()&amp;lt;/tt&amp;gt; returns an indexed array of PHP objects from the table records returned by the query:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadObjectList();&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array (&lt;br /&gt;
[0] =&amp;gt; stdClass Object ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith,&lt;br /&gt;
    [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith ),&lt;br /&gt;
[1] =&amp;gt; stdClass Object ( [id] =&amp;gt; 2, [name] =&amp;gt; Magda Hellman,&lt;br /&gt;
    [email] =&amp;gt; magda_h@domain.example, [username] =&amp;gt; magdah ),&lt;br /&gt;
[2] =&amp;gt; stdClass Object ( [id] =&amp;gt; 3, [name] =&amp;gt; Yvonne de Gaulle,&lt;br /&gt;
    [email] =&amp;gt; ydg@domain.example, [username] =&amp;gt; ydegaulle )&lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
You can access the individual rows by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;] // e.g. $row[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;]-&amp;gt;name // e.g. $row[&#039;2&#039;]-&amp;gt;email&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== loadObjectList($key) ==== &amp;lt;!--T:121--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;loadObjectList(&#039;key&#039;)&amp;lt;/tt&amp;gt; returns an associated array - indexed on &#039;key&#039; - of objects from the table records returned by the query:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadObjectList(&#039;username&#039;);&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Array (&lt;br /&gt;
[johnsmith] =&amp;gt; stdClass Object ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith,&lt;br /&gt;
    [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith ),&lt;br /&gt;
[magdah] =&amp;gt; stdClass Object ( [id] =&amp;gt; 2, [name] =&amp;gt; Magda Hellman,&lt;br /&gt;
    [email] =&amp;gt; magda_h@domain.example, [username] =&amp;gt; magdah ),&lt;br /&gt;
[ydegaulle] =&amp;gt; stdClass Object ( [id] =&amp;gt; 3, [name] =&amp;gt; Yvonne de Gaulle,&lt;br /&gt;
    [email] =&amp;gt; ydg@domain.example, [username] =&amp;gt; ydegaulle )&lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
You can access the individual rows by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;key_value&#039;] // e.g. $row[&#039;johnsmith&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;key_value&#039;]-&amp;gt;column_name // e.g. $row[&#039;johnsmith&#039;]-&amp;gt;email&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
Note: Key must be a valid column name from the table; it does not have to be an Index or a Primary Key. But if it does not have a unique value you may not be able to retrieve results reliably.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Miscellaneous Result Set Methods === &amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== getNumRows() ==== &amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;getNumRows()&amp;lt;/tt&amp;gt; will return the number of result rows found by the last SELECT or SHOW query and waiting to be read. To get a result from getNumRows() you have to run it &#039;&#039;&#039;after&#039;&#039;&#039; the query and &#039;&#039;&#039;before&#039;&#039;&#039; you have retrieved any results. To retrieve the number of rows affected by a INSERT, UPDATE, REPLACE or DELETE query, use getAffectedRows().&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$db-&amp;gt;execute();&lt;br /&gt;
$num_rows = $db-&amp;gt;getNumRows();&lt;br /&gt;
print_r($num_rows);&lt;br /&gt;
$result = $db-&amp;gt;loadRowList();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
will return&amp;lt;/translate&amp;gt; &amp;lt;pre&amp;gt;3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
Note: getNumRows() is only valid for statements like SELECT or SHOW that return an actual result set. If you run getNumRows() after loadRowList() - or any other retrieval method - you will get a PHP Warning:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Warning: mysql_num_rows(): 80 is not a valid MySQL result resource&lt;br /&gt;
in libraries\joomla\database\database\mysql.php on line 344&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== See Also === &amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Inserting, Updating and Removing data using JDatabase|&amp;lt;translate&amp;gt;&amp;lt;!--T:136--&amp;gt; Inserting, Updating and Removing data using JDatabase&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Moving_Joomla_To_Prepared_Statements|&amp;lt;translate&amp;gt;&amp;lt;!--T:151--&amp;gt; Moving Joomla To Prepared Statements&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
*[[S:MyLanguage/Using the union methods in database queries|&amp;lt;translate&amp;gt;&amp;lt;!--T:137--&amp;gt; Using the union methods in database queries&amp;lt;/translate&amp;gt;]] &amp;lt;translate&amp;gt;&amp;lt;!--T:138--&amp;gt; (Joomla! 3.3+)&amp;lt;/translate&amp;gt;&lt;br /&gt;
*[https://php.net/manual/en/pdo.prepared-statements.php &amp;lt;translate&amp;gt;&amp;lt;!--T:152--&amp;gt; The PHP Manual on Prepared statements&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://api.joomla.org/framework-1/classes/Joomla-Database-DatabaseQuery.html &amp;lt;translate&amp;gt;&amp;lt;!--T:139--&amp;gt; Joomla Framework API&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Database{{#translation:}}]]&lt;br /&gt;
[[Category:JFactory{{#translation:}}]]&lt;br /&gt;
[[Category:Extension development{{#translation:}}]]&lt;br /&gt;
[[Category:Development Recommended Reading{{#translation:}}]]&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Portal:Joomla_5&amp;diff=1016568</id>
		<title>Portal:Joomla 5</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Portal:Joomla_5&amp;diff=1016568"/>
		<updated>2023-11-08T16:07:41Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: There&amp;#039;s no dark mode configuration option in Joomla&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=5.x}}&lt;br /&gt;
{{Top portal heading|color=white-bkgd|icon=joomla|icon-color=#5091cd|size=4x|text-color=#333|title=Joomla! 5.x}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Introduction== &amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
18 years after the first version, Joomla! 5 was released on the 17th of October 2023.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;Why Use Joomla! 5?&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Joomla! 5 is an  Open Source, robust, secure and easy to use Content Management System (CMS) that enables website creators to produce powerful websites.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Maintaining content, the system and users is made easy by the use of software features that benefit from the skills and experience of a strong community of volunteers that have been maintaining and improving Joomla versions since 2005.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
From a simple 5 page website to an enterprise solution serving thousands of pages, with its powerful layout overrides, custom fields and flexible modules built right in, your Joomla! website can be built to look and feel just the way you want it to.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;What&#039;s new in Joomla! 5?&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Dark Mode in Administrator:&#039;&#039;&#039; Joomla 5 boasts a more refined dark mode, not just for users but also for administrators. There&#039;s no Dark Mode configuration option in Joomla. The Dark Mode is activated automatically when your web browser supports it and switched on in your browser configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Web Assets and Caching:&#039;&#039;&#039; Many improvements to the web asset caching&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Schema.org Integration:&#039;&#039;&#039; Automatic activation of Schema.org data for organisation and site names enhances search engine optimisation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Code Optimisation:&#039;&#039;&#039; Speed advancements are noticed due to automatic source code optimisation through the phpcs fixer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PHP &amp;amp; Bootstrap Updates:&#039;&#039;&#039; Improved compatibility with PHP 8+ and an update to Bootstrap 5.3.2 ensures that the platform remains contemporary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;User Interface:&#039;&#039;&#039; Enhancements in dark mode for the Atum administrator template and the new Joomla modal window for select buttons promise a smoother user experience.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Tools &amp;amp; Plugins:&#039;&#039;&#039; The TinyMCE editor gets an update to 6.7 with added image alignment features. Several scheduled tasks have been moved to scheduler plugins, enhancing system performance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Media Management:&#039;&#039;&#039; AVIF support in the media manager and the ability to exclude archived content from smart search indexing improve media handling capabilities.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Menu sorting:&#039;&#039;&#039; Allowing you to sort the menu in the way you want it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Enhanced Security:&#039;&#039;&#039; Events have been migrated to their classes, and the removal of no longer functional Recaptcha plugins boosts security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Modern Technologies:&#039;&#039;&#039; Internal code restructuring focuses on utilising more modern APIs. There&#039;s added JS Import map support for Web Asset Manager and deprecated fixes for php 8.2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Extensions &amp;amp; Compatibility:&#039;&#039;&#039; Joomla 5 introduces Fontawesome 6.4, Codemirror 6, and has updated its Webauthn Library. Notably, Joomla now requires PHP 8.1, MySQL 8.0.13+, MariaDB 10.4+, and PostgreSQL 12+ for optimal performance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Cleaner Code Base:&#039;&#039;&#039; Joomla 5 places a strong emphasis on code cleanliness. The transition from older APIs, removal of es5 support, and other heavily coded cleanups ensure the CMS runs efficiently.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
Joomla 5 encapsulates modern requirements for a CMS, promising its users a combination of speed, security, and an intuitive user experience.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;Joomla! 5 Documentation&amp;lt;/big&amp;gt;&lt;br /&gt;
This portal brings together information related specifically to Joomla! 5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;PLEASE NOTE:&#039;&#039;&#039; Joomla! 5 shares some of the same features as Joomla! 4 and if you have previously used Joomla! 4 you will find using Joomla! 5 is identical or very similar. Some links on this page will take you to Joomla! 4 documentation as revisions and additions are still underway. However, in such cases, much of the content will still be relevant.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
{{section portal heading|icon=none|title= Getting Started}}&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Getting_Started_with_Joomla!|Getting Started with Joomla]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Setting Up Your Local Environment|Setting up your Local Environment]]&lt;br /&gt;
*[[S:MyLanguage/Joomla_4.4.x_to_5.x_Planning_and_Upgrade_Step_by_Step|Joomla 4.4 to 5.x Step by Step Upgrade]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Installing Joomla|Installing Joomla]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Logging in to Joomla|Logging into Joomla]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/Help4.x:Joomla_Version_Information|Joomla Version Information]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Optional_Technical_Requirements|Optional Technical Requirements]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Unsupported_PHP_Version|Unsupported PHP Versions]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Joomla_CLI_Installation|Joomla CLI Installation]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
{{section portal heading|icon=none|title=Joomla! Site Administration}}&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{Joomla version|version={{CurrentSTSVer4|maintenace}}|comment=&#039;&#039;&#039;Stable Version&#039;&#039;&#039;}}&amp;lt;br /&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;Efficiency&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/Keyboard_Shortcuts|Keyboard Shortcuts]]&lt;br /&gt;
;&amp;lt;big&amp;gt;Security&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Http_Header_Management|HTTP Header Management]]&lt;br /&gt;
*[[S:MyLanguage/WebAuthn_Passwordless_Login|WebAuthn Passwordless Login]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;Updates&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:CLI_Update|CLI Update]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Updating_from_an_existing_version|Updating from an existing version]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;User Management&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/How_do_you_recover_or_reset_your_admin_password%3F|Recover / Reset Admin Password]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Users_List_and_Details_Views|Users List and Details Views]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;Privacy&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J3.x:Privacy|Privacy Tool Suite]]&lt;br /&gt;
;&amp;lt;big&amp;gt;Navigation&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Components_Dashboard|The Components Dashboard]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Content_Dashboard|The Content Dashboard]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:System_Dashboard|The System Dashboard]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
{{section portal heading|icon=none|title=Joomla! Content}}&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;Accessibility&amp;lt;/big&amp;gt;&lt;br /&gt;
*[https://joomla-projects.github.io/joomla-a11y-checker/  JOOA11Y - The Joomla Accessibility Checker]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;Articles&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Adding a New Article|Adding a New Article]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Deleting an Article|Deleting an Article]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Restricting_access_to_an_Article|Restricting access to an Article]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Scheduling_the_publication_of_an_article|Scheduling the Publication of an Article]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:How_to_Archive_an_Article|How to Archive an Article]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;Categories&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Create and Manage Article Categories|Create and Manage Article Categories]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;Fields and Fields Groups&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Fields_and_Field_Groups|Working with Fields and Field Groups]]&lt;br /&gt;
;&amp;lt;big&amp;gt;Media&amp;lt;/big&amp;gt;&lt;br /&gt;
* [[S:MyLanguage/J4.x:Managing_Media|Managing Media]]&lt;br /&gt;
* [[S:MyLanguage/J4.x:Media:_Upload_Delete_Rename|Upload Delete Rename]]&lt;br /&gt;
* [[S:MyLanguage/J4.x:Media:_Image_Crop_Resize_Rotate|Image Crop Resize Rotate]]&lt;br /&gt;
* [[S:MyLanguage/J4.x:Media:_Options|Options]]&lt;br /&gt;
* [[S:MyLanguage/J4.x:Adaptive_Images_for_Media_Manager|Adaptive Images for Media Manager]]&lt;br /&gt;
;&amp;lt;big&amp;gt;Workflow&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Workflow|Workflow for Publishing Content]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Workflow/Scenarios|Workflow Scenarios]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
{{section portal heading|icon=none|title=Joomla! Menus}}&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Menu_Dashboard|Menu Dashboard]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Adding_a_New_Menu|Adding a New Menu]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Adding a menu link in an article|Adding a Menu Link within an Article]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Adding_a_Custom_Administrator_Menu|Adding a Custom Administrator Menu]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:How_to_Create_a_Menu_Item_to_View_Archived_Articles|How to Create a Menu Item to View Archived Articles]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
{{section portal heading|icon=none|title=Joomla! Modules}}&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Administrator_Modules|Administrator Modules Explained]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Site_Modules|Site Modules Explained]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:How_to_Show_a_Calendar_Month_List_of_Archived_Articles_Using_a_Module|How to Show a Calendar Month List of Archived Articles Using a Module]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
{{section portal heading|icon=none|title=Joomla! Components}}&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:How_To_Use_Content_Tags_in_Joomla|How To Use Content Tags in Joomla]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Workflow|Workflow for Publishing Content]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
{{section portal heading|icon=none|title=Joomla! Plugins and Extensions}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
The Joomla 4 &#039;&#039;Extensions; Install&#039;&#039; page has an &#039;&#039;&#039;Install from Web&#039;&#039;&#039; option. By default it lists the extensions available in the official Joomla! Extensions Directory for your current version.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
Alternatively you can go to: [https://extensions.joomla.org/ Joomla! Extensions Directory]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
{{section portal heading|icon=none|title=Joomla! Templates}}&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Changed parameters for template providers|Changed Parameters for Template Providers]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:SCSS_and_Sass|SCSS and SASS]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Using_Bootstrap_Components_in_Joomla_4|Using Bootstrap Components]]&lt;br /&gt;
*[[S:MyLanguage/Module_Position|Understanding Module Positions]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;Joomla! Template Cassiopeia&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Cassiopeia_Template_Folders_and_Files|Cassiopeia Template Folders and Files]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Cassiopeia_Template_Customisation|Cassiopeia Template Customisation]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Cassiopeia_Template_Simplified_-_A_Case_Study|Cassiopeia Template Simplified - A Case Study]]&lt;br /&gt;
*[https://magazine.joomla.org/all-issues/february-2022/joomla-4-cassiopeia-template-a-bunch-of-tips-tricks Community Magazine: Cassiopeia Template - Tips and Tricks]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
{{section portal heading|icon=none|title= Joomla! Development}}&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;API&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Adding an API to a Joomla Component|Adding an API to a Joomla Component]]&lt;br /&gt;
*[[S:MyLanguage/Joomla_Api_Specification|Joomla API Specification]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Joomla_Core_APIs|Joomla Core APIs]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;Assets&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Web_Assets|Web Assets]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;CLI&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Writing_A_CLI_Application|Writing A CLI Application]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:CLI_Database_Exporter_Importer|CLI Database Exporter / Importer]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Task_Scheduler|Task Scheduler]]&lt;br /&gt;
;&amp;lt;big&amp;gt;Data&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Inserting_Updating_and_Removing_data_using_JDatabase|Inserting, Updating and Removing Data using JDatabase]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Selecting_data_using_JDatabase|Selecting Data using JDatabase]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;Components&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/Part_1:_The_Site_code|Component Tutorial - Part 1 - Site Code]]&lt;br /&gt;
*[[S:MyLanguage/Part_2:_The_Administrator_code|Component Tutorial - Part 2 - Administrator Code]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Developing_an_MVC_Component|Developing an MVC Component]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Developing_an_MVC_Component/Introduction|Developing an MVC Component - Introduction]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Developing_an_MVC_Component/Developing_a_Basic_Component|Developing an MVC Component - Developing a Basic Component]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Developing_an_MVC_Component/Language_Management|Developing an MVC Component - Language Mamagement]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Developing_an_MVC_Component/Adding_a_Menu_Type_to_the_Site_Part|Developing an MVC Component - Adding a Menu Type to the Site Part]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Developing_an_MVC_Component/Adding_a_Request_Variable_in_the_Menu_Link|Developing an MVC Component - Adding a Request Variable in the Menu Link]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Developing_an_MVC_Component/Adding_a_View_to_the_Site_Part|Developing an MVC Component - Adding a View to the Site Part]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Developing_an_MVC_Component/Setting_up_the_Database|Developing an MVC Component - Setting up the Database]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt; Modules&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Creating a Simple Module| Creating a Simple Module]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt; Plugins&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Creating a Plugin for Joomla| Creating a Plugin]]&lt;br /&gt;
*[[S:MyLanguage/J4_CLI_example_-_Onoffbydate| CLI example - Onoffbydate]]&lt;br /&gt;
;&amp;lt;big&amp;gt; Testing&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Automated_System_Testing| Automated System Testing]]&lt;br /&gt;
*[[S:MyLanguage/JavaScript_Tests_for_Joomla4| JavaScript Tests]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt; Miscellaneous&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/Joomla_4.1_version_history|Joomla 4.1 Version History]]&lt;br /&gt;
*[[S:MyLanguage/Adding changelog to your manifest file|Adding Changelog to your Manifest File]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:ClientSideEvents|Client Side Events]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Cloud_File_Systems_for_Media_Manager|Cloud File Systems for Media Manager]]&lt;br /&gt;
*[[S:MyLanguage/Joomla!_Codenames|Joomla Codenames]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Joomla_Entities|Joomla Entities]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Dependency_Injection_in_Joomla_4|Dependency Injection]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Namespace_Conventions_In_Joomla|Namespace Conventions In Joomla]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Creating_Multilingual_Associations_Automatically|Creating Multilingual Associations Automatically]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Response_Formats|Response Formats]]&lt;br /&gt;
*[[S:MyLanguage/Setting_up_Eclipse_PDT_2020_and_Git_for_Pulls|Setting up Eclipse PDT 2020 and Git for Pulls]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Tips_and_Tricks_for_Joomla_4_Developers|Tips and Tricks for Joomla 4 Developers]]&lt;br /&gt;
*[https://github.com/joomla-extensions/weblinks/tree/4.0-dev Weblinks for Joomla 4]&lt;br /&gt;
*[https://github.com/joomla-extensions/patchtester Patchtester for Joomla 4]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
{{section portal heading|icon=none|title=Joomla! Help}}&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
{{section portal heading|icon=none|title= Joomla! Troubleshooting}}&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
;&amp;lt;big&amp;gt;Database&amp;lt;/big&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/J4.x:Fix_%22Database_Table_Structure_NOT_Up_to_Date%22_before_Update|Fix &amp;quot;Database Table Structure NOT Up to Date&amp;quot; before update error]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 column&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Landing_Pages]]&lt;br /&gt;
[[Category:Joomla!_5.x]]&lt;br /&gt;
[[Category:Documentation_Working_Group]]&lt;br /&gt;
[[Category:Update Working Group]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_Standard_Font_Awesome_Fonts&amp;diff=908063</id>
		<title>J4.x:Joomla Standard Font Awesome Fonts</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_Standard_Font_Awesome_Fonts&amp;diff=908063"/>
		<updated>2022-04-29T11:09:32Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.0.0|time=and later}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Since Joomla 4.0.0, the Joomla! CMS comes with its own custom [https://https://fontawesome.com/ Font Awesome Font Set]. These icon fonts are available by default for use in the &amp;quot;Cassiopeia&amp;quot; (Frontend) and &amp;quot;Atum&amp;quot; (Administrator) Templates.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
== How to Use ==&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Icon fonts that are mapped in &amp;lt;tt&amp;gt;/media/system/scss/_icomoon.scss&amp;lt;/tt&amp;gt; can be called with a &amp;lt;tt&amp;gt;&amp;lt;span class=&amp;quot;icon-&#039;&#039;name-of-icon&#039;&#039;&amp;quot;&amp;amp;gt;&amp;lt;/tt&amp;gt; tag and a {space} &amp;lt;tt&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/tt&amp;gt;. eg&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Will show the Joomla! icon:&amp;lt;/translate&amp;gt;  &amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Icon fonts that are not mapped can be called with a &amp;lt;tt&amp;gt;&amp;lt;span class=&amp;quot;far fa-&#039;&#039;name-of-icon&#039;&#039;&amp;quot;&amp;amp;gt;&amp;lt;/tt&amp;gt; tag and a {space} &amp;lt;tt&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/tt&amp;gt;. eg&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;i class=&amp;quot;fa fa-address-book&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Will show an address book icon:&amp;lt;/translate&amp;gt;  &amp;lt;i class=&amp;quot;fa fa-address-book&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Font Size == &amp;lt;!--T:7--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Because the icons are fonts, you can control the size of them with an added class or style= statement. Of course you will have to define the class in your .css or .less stylesheet file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla large-icon&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla&amp;quot; style=&amp;quot;font-size:24px;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Here is the resized Joomla! icon:&amp;lt;/translate&amp;gt;  &amp;lt;span class=&amp;quot;icon-joomla&amp;quot; style=&amp;quot;font-size:24px;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Available Fontawesome Icons == &amp;lt;!--T:10--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
This is the complete list of the Font Awesome libraries included in Joomla 4&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/media/vendor/fontawesome-free/webfonts/fa-brands-400&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; joomla&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/media/vendor/fontawesome-free/webfonts/fa-regular-400 and /media/vendor/fontawesome-free/webfonts/fa-solid-900&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ad&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ad&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-address-book&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; address-book&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-address-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; address-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-adjust&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; adjust&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-air-freshener&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; air-freshener&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-align-center&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; align-center&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-align-justify&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; align-justify&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-align-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; align-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-align-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; align-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-allergies&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; allergies&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ambulance&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ambulance&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-american-sign-language-interpreting&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; american-sign-language-interpreting&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-anchor&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; anchor&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-double-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-double-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-double-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-double-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-double-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-double-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-double-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-double-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angry&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angry&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ankh&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ankh&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-apple-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; apple-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-archive&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; archive&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-archway&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; archway&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-alt-circle-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-alt-circle-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-alt-circle-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-alt-circle-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-circle-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-circle-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-circle-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-circle-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-circle-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-circle-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-circle-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-circle-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrows-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrows-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrows-alt-h&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrows-alt-h&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrows-alt-v&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrows-alt-v&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-assistive-listening-systems&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; assistive-listening-systems&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-asterisk&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; asterisk&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-at&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; at&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-atlas&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; atlas&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-atom&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; atom&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-audio-description&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; audio-description&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-award&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; award&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-baby&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; baby&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-baby-carriage&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; baby-carriage&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-backspace&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; backspace&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-backward&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; backward&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bacon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bacon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bacteria&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bacteria&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bacterium&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bacterium&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bahai&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bahai&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-balance-scale&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; balance-scale&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-balance-scale-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; balance-scale-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-balance-scale-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; balance-scale-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ban&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ban&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-band-aid&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; band-aid&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-barcode&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; barcode&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bars&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bars&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-baseball-ball&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; baseball-ball&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-basketball-ball&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; basketball-ball&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bath&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bath&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-battery-empty&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; battery-empty&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-battery-full&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; battery-full&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-battery-half&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; battery-half&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-battery-quarter&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; battery-quarter&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-battery-three-quarters&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; battery-three-quarters&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bed&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bed&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-beer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; beer&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bell&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bell&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bell-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bell-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bezier-curve&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bezier-curve&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bible&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bible&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bicycle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bicycle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-biking&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; biking&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-binoculars&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; binoculars&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-biohazard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; biohazard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-birthday-cake&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; birthday-cake&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-blender&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; blender&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-blender-phone&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; blender-phone&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-blind&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; blind&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-blog&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; blog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bold&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bold&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bolt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bolt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bomb&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bomb&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bone&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bone&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bong&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bong&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-book&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; book&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-book-dead&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; book-dead&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-book-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; book-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-book-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; book-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-book-reader&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; book-reader&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bookmark&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bookmark&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-border-all&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; border-all&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-border-none&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; border-none&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-border-style&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; border-style&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bowling-ball&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bowling-ball&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; box&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-box-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; box-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-box-tissue&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; box-tissue&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-boxes&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; boxes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-braille&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; braille&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-brain&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; brain&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bread-slice&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bread-slice&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-briefcase&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; briefcase&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-briefcase-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; briefcase-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-broadcast-tower&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; broadcast-tower&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-broom&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; broom&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-brush&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; brush&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bug&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bug&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-building&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; building&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bullhorn&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bullhorn&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bullseye&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bullseye&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-burn&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; burn&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bus-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bus-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-business-time&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; business-time&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calculator&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calculator&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar-check&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-check&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar-day&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-day&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar-minus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-minus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar-plus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-plus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar-times&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-times&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar-week&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-week&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-camera&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; camera&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-camera-retro&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; camera-retro&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-campground&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; campground&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-candy-cane&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; candy-cane&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cannabis&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cannabis&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-capsules&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; capsules&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-car&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; car&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-car-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; car-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-car-battery&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; car-battery&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-car-crash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; car-crash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-car-side&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; car-side&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caravan&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caravan&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-square-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-square-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-square-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-square-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-carrot&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; carrot&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cart-arrow-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cart-arrow-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cart-plus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cart-plus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cash-register&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cash-register&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cat&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cat&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-certificate&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; certificate&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chair&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chair&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chalkboard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chalkboard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chalkboard-teacher&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chalkboard-teacher&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-charging-station&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; charging-station&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chart-area&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chart-area&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chart-bar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chart-bar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chart-line&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chart-line&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chart-pie&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chart-pie&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-check&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; check&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-check-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; check-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-check-double&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; check-double&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-check-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; check-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cheese&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cheese&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess-bishop&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess-bishop&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess-board&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess-board&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess-king&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess-king&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess-knight&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess-knight&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess-pawn&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess-pawn&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess-queen&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess-queen&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess-rook&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess-rook&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-circle-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-circle-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-circle-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-circle-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-circle-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-circle-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-circle-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-circle-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-child&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; child&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-church&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; church&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-circle-notch&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; circle-notch&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-city&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; city&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-clinic-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clinic-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-clipboard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clipboard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-clipboard-check&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clipboard-check&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-clipboard-list&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clipboard-list&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-clock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-clone&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clone&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-closed-captioning&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; closed-captioning&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-download-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-download-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-meatball&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-meatball&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-moon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-moon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-moon-rain&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-moon-rain&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-rain&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-rain&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-showers-heavy&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-showers-heavy&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-sun&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-sun&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-sun-rain&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-sun-rain&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-upload-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-upload-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cocktail&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cocktail&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-code&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; code&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-code-branch&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; code-branch&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-coffee&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; coffee&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cog&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cogs&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cogs&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-coins&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; coins&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-columns&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; columns&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comment&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comment-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comment-dollar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment-dollar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comment-dots&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment-dots&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comment-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comment-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comments&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comments&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comments-dollar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comments-dollar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-compact-disc&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; compact-disc&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-compass&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; compass&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-compress&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; compress&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-compress-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; compress-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-compress-arrows-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; compress-arrows-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-concierge-bell&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; concierge-bell&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cookie&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cookie&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cookie-bite&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cookie-bite&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-copy&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; copy&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-copyright&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; copyright&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-couch&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; couch&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-credit-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; credit-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-crop&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; crop&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-crop-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; crop-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cross&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cross&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-crosshairs&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; crosshairs&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-crow&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; crow&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-crown&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; crown&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-crutch&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; crutch&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cube&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cube&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cubes&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cubes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cut&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cut&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-database&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; database&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-deaf&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; deaf&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-democrat&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; democrat&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-desktop&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; desktop&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dharmachakra&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dharmachakra&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-diagnoses&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; diagnoses&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-d20&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-d20&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-d6&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-d6&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-five&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-five&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-four&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-four&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-one&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-one&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-six&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-six&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-three&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-three&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-two&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-two&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-digital-tachograph&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; digital-tachograph&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-directions&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; directions&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-disease&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; disease&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-divide&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; divide&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dizzy&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dizzy&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dna&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dna&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dog&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dollar-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dollar-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dolly&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dolly&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dolly-flatbed&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dolly-flatbed&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-donate&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; donate&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-door-closed&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; door-closed&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-door-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; door-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dot-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dot-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dove&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dove&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-download&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; download&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-drafting-compass&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; drafting-compass&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dragon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dragon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-draw-polygon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; draw-polygon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-drum&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; drum&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-drum-steelpan&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; drum-steelpan&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-drumstick-bite&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; drumstick-bite&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dumbbell&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dumbbell&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dumpster&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dumpster&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dumpster-fire&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dumpster-fire&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dungeon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dungeon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-edit&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; edit&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-egg&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; egg&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-eject&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; eject&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ellipsis-h&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ellipsis-h&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ellipsis-v&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ellipsis-v&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-envelope&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; envelope&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-envelope-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; envelope-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-envelope-open-text&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; envelope-open-text&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-envelope-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; envelope-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-equals&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; equals&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-eraser&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; eraser&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ethernet&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ethernet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-euro-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; euro-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-exchange-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; exchange-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-exclamation&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; exclamation&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-exclamation-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; exclamation-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-exclamation-triangle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; exclamation-triangle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-expand&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; expand&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-expand-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; expand-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-expand-arrows-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; expand-arrows-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-external-link-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; external-link-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-external-link-square-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; external-link-square-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-eye&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; eye&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-eye-dropper&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; eye-dropper&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-eye-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; eye-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fan&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fan&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fast-backward&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fast-backward&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fast-forward&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fast-forward&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-faucet&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; faucet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fax&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fax&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-feather&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; feather&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-feather-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; feather-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-female&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; female&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fighter-jet&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fighter-jet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-archive&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-archive&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-audio&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-audio&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-code&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-code&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-contract&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-contract&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-csv&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-csv&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-download&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-download&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-excel&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-excel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-export&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-export&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-image&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-image&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-import&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-import&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-invoice&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-invoice&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-invoice-dollar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-invoice-dollar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-medical-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-medical-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-pdf&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-pdf&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-powerpoint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-powerpoint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-prescription&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-prescription&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-signature&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-signature&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-upload&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-upload&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-video&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-video&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-word&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-word&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fill&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fill&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fill-drip&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fill-drip&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-film&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; film&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-filter&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; filter&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fingerprint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fingerprint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fire&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fire&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fire-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fire-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fire-extinguisher&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fire-extinguisher&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-first-aid&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; first-aid&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fish&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fish&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fist-raised&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fist-raised&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-flag&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; flag&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-flag-checkered&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; flag-checkered&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-flag-usa&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; flag-usa&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-flask&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; flask&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-flushed&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; flushed&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-folder&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; folder&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-folder-minus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; folder-minus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-folder-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; folder-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-folder-plus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; folder-plus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-font&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; font&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-football-ball&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; football-ball&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-forward&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; forward&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-frog&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; frog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-frown&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; frown&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-frown-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; frown-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-funnel-dollar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; funnel-dollar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-futbol&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; futbol&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-gamepad&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gamepad&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-gas-pump&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gas-pump&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-gavel&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gavel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-gem&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gem&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-genderless&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; genderless&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ghost&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ghost&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-gift&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gift&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-gifts&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gifts&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-glass-cheers&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; glass-cheers&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-glass-martini&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; glass-martini&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-glass-martini-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; glass-martini-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-glass-whiskey&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; glass-whiskey&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-glasses&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; glasses&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-globe&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; globe&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-globe-africa&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; globe-africa&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-globe-americas&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; globe-americas&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-globe-asia&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; globe-asia&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-globe-europe&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; globe-europe&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-golf-ball&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; golf-ball&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-gopuram&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gopuram&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-graduation-cap&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; graduation-cap&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-greater-than&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; greater-than&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-greater-than-equal&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; greater-than-equal&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grimace&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grimace&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-beam-sweat&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-beam-sweat&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-hearts&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-hearts&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-squint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-squint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-squint-tears&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-squint-tears&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-stars&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-stars&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-tears&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tears&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-tongue&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tongue&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-tongue-squint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tongue-squint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-tongue-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tongue-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grip-horizontal&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grip-horizontal&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grip-lines&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grip-lines&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grip-lines-vertical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grip-lines-vertical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grip-vertical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grip-vertical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-guitar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; guitar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-h-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; h-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hamburger&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hamburger&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hammer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hammer&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hamsa&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hamsa&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-holding&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-holding&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-holding-heart&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-holding-heart&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-holding-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-holding-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-holding-usd&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-holding-usd&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-holding-water&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-holding-water&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-lizard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-lizard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-middle-finger&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-middle-finger&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-paper&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-paper&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-peace&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-peace&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-point-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-point-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-point-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-point-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-pointer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-pointer&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-rock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-rock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-scissors&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-scissors&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-sparkles&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-sparkles&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-spock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-spock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hands&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hands&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hands-helping&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hands-helping&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hands-wash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hands-wash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-handshake&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; handshake&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-handshake-alt-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; handshake-alt-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-handshake-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; handshake-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hanukiah&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hanukiah&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hard-hat&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hard-hat&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hashtag&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hashtag&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hat-cowboy&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hat-cowboy&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hat-cowboy-side&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hat-cowboy-side&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hat-wizard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hat-wizard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hdd&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hdd&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-head-side-cough&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; head-side-cough&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-head-side-cough-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; head-side-cough-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-head-side-mask&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; head-side-mask&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-head-side-virus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; head-side-virus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-heading&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; heading&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-headphones&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; headphones&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-headphones-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; headphones-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-headset&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; headset&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-heart&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; heart&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-heart-broken&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; heart-broken&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-heartbeat&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; heartbeat&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-helicopter&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; helicopter&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-highlighter&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; highlighter&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hiking&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hiking&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hippo&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hippo&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-history&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; history&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hockey-puck&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hockey-puck&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-holly-berry&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; holly-berry&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-home&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; home&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-horse&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; horse&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-horse-head&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; horse-head&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hospital&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hospital&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hospital-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hospital-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hospital-symbol&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hospital-symbol&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hospital-user&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hospital-user&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hot-tub&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hot-tub&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hotdog&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hotdog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hotel&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hotel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hourglass&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hourglass&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hourglass-end&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hourglass-end&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hourglass-half&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hourglass-half&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hourglass-start&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hourglass-start&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-house-damage&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; house-damage&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-house-user&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; house-user&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hryvnia&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hryvnia&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-i-cursor&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; i-cursor&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ice-cream&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ice-cream&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-icicles&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; icicles&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-icons&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; icons&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-id-badge&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; id-badge&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-id-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; id-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-id-card-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; id-card-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-igloo&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; igloo&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-image&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; image&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-images&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; images&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-inbox&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; inbox&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-indent&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; indent&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-industry&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; industry&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-infinity&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; infinity&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-info&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; info&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-info-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; info-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-italic&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; italic&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-jedi&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; jedi&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-joint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; joint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-journal-whills&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; journal-whills&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-kaaba&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kaaba&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-key&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; key&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-keyboard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; keyboard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-khanda&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; khanda&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-kiss&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kiss&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-kiss-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kiss-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-kiss-wink-heart&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kiss-wink-heart&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-kiwi-bird&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kiwi-bird&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-landmark&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; landmark&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-language&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; language&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laptop&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laptop&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laptop-code&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laptop-code&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laptop-house&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laptop-house&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laptop-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laptop-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laugh&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laugh-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laugh-squint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh-squint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laugh-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-layer-group&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; layer-group&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-leaf&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; leaf&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-lemon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lemon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-less-than&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; less-than&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-less-than-equal&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; less-than-equal&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-level-down-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; level-down-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-level-up-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; level-up-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-life-ring&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; life-ring&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-lightbulb&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lightbulb&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-link&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; link&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-lira-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lira-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-list&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; list&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-list-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; list-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-list-ol&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; list-ol&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-list-ul&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; list-ul&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-location-arrow&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; location-arrow&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-lock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-lock-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lock-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-long-arrow-alt-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; long-arrow-alt-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-long-arrow-alt-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; long-arrow-alt-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-long-arrow-alt-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; long-arrow-alt-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-long-arrow-alt-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; long-arrow-alt-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-low-vision&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; low-vision&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-luggage-cart&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; luggage-cart&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-lungs&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lungs&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-lungs-virus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lungs-virus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-magic&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; magic&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-magnet&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; magnet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mail-bulk&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mail-bulk&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-male&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; male&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-map&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-map-marked&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map-marked&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-map-marked-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map-marked-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-map-marker&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map-marker&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-map-marker-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map-marker-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-map-pin&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map-pin&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-map-signs&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map-signs&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-marker&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; marker&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mars&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mars&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mars-double&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mars-double&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mars-stroke&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mars-stroke&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mars-stroke-h&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mars-stroke-h&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mars-stroke-v&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mars-stroke-v&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mask&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mask&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-medal&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; medal&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-medkit&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; medkit&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-meh&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; meh&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-meh-blank&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; meh-blank&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-meh-rolling-eyes&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; meh-rolling-eyes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-memory&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; memory&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-menorah&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; menorah&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mercury&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mercury&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-meteor&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; meteor&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-microchip&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; microchip&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-microphone&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; microphone&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-microphone-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; microphone-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-microphone-alt-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; microphone-alt-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-microphone-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; microphone-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-microscope&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; microscope&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-minus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; minus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-minus-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; minus-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-minus-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; minus-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mitten&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mitten&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mobile&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mobile&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mobile-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mobile-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-money-bill&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; money-bill&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-money-bill-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; money-bill-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-money-bill-wave&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; money-bill-wave&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-money-bill-wave-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; money-bill-wave-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-money-check&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; money-check&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-money-check-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; money-check-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-monument&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; monument&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-moon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; moon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mortar-pestle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mortar-pestle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mosque&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mosque&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-motorcycle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; motorcycle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mountain&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mountain&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mouse&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mouse&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mouse-pointer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mouse-pointer&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mug-hot&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mug-hot&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-music&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; music&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-network-wired&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; network-wired&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-neuter&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; neuter&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-newspaper&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; newspaper&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-not-equal&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; not-equal&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-notes-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; notes-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-object-group&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; object-group&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-object-ungroup&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; object-ungroup&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-oil-can&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; oil-can&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-om&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; om&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-otter&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; otter&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-outdent&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; outdent&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pager&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pager&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-paint-brush&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paint-brush&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-paint-roller&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paint-roller&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-palette&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; palette&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pallet&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pallet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-paper-plane&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paper-plane&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-paperclip&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paperclip&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-parachute-box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; parachute-box&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-paragraph&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paragraph&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-parking&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; parking&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-passport&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; passport&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pastafarianism&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pastafarianism&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-paste&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paste&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pause&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pause&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pause-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pause-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-paw&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paw&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-peace&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; peace&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pen&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pen&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pen-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pen-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pen-fancy&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pen-fancy&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pen-nib&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pen-nib&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pen-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pen-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pencil-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pencil-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pencil-ruler&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pencil-ruler&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-people-arrows&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; people-arrows&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-people-carry&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; people-carry&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pepper-hot&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pepper-hot&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-percent&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; percent&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-percentage&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; percentage&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-person-booth&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; person-booth&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-phone&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; phone&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-phone-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; phone-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-phone-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; phone-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-phone-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; phone-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-phone-square-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; phone-square-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-phone-volume&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; phone-volume&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-photo-video&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; photo-video&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-piggy-bank&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; piggy-bank&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pills&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pills&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pizza-slice&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pizza-slice&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-place-of-worship&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; place-of-worship&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plane&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plane&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plane-arrival&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plane-arrival&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plane-departure&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plane-departure&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plane-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plane-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-play&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; play&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-play-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; play-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plug&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plug&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plus-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plus-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plus-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plus-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-podcast&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; podcast&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-poll&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; poll&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-poll-h&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; poll-h&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-poo&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; poo&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-poo-storm&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; poo-storm&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-poop&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; poop&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-portrait&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; portrait&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pound-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pound-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-power-off&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; power-off&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pray&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pray&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-praying-hands&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; praying-hands&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-prescription&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; prescription&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-prescription-bottle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; prescription-bottle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-prescription-bottle-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; prescription-bottle-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-print&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; print&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-procedures&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; procedures&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-project-diagram&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; project-diagram&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pump-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pump-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pump-soap&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pump-soap&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-puzzle-piece&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; puzzle-piece&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-qrcode&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; qrcode&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-question&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; question&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-question-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; question-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-quidditch&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; quidditch&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-quote-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; quote-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-quote-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; quote-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-quran&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; quran&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-radiation&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; radiation&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-radiation-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; radiation-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-rainbow&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; rainbow&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-random&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; random&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-receipt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; receipt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-record-vinyl&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; record-vinyl&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-recycle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; recycle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-redo&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; redo&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-redo-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; redo-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-registered&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; registered&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-remove-format&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; remove-format&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-reply&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; reply&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-reply-all&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; reply-all&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-republican&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; republican&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-restroom&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; restroom&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-retweet&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; retweet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ribbon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ribbon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ring&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ring&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-road&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; road&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-robot&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; robot&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-rocket&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; rocket&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-route&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; route&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-rss&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; rss&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-rss-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; rss-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ruble-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ruble-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ruler&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ruler&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ruler-combined&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ruler-combined&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ruler-horizontal&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ruler-horizontal&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ruler-vertical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ruler-vertical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-running&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; running&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-rupee-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; rupee-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sad-cry&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sad-cry&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sad-tear&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sad-tear&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-satellite&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; satellite&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-satellite-dish&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; satellite-dish&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-save&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; save&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-school&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; school&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-screwdriver&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; screwdriver&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-scroll&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; scroll&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sd-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sd-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-search&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; search&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-search-dollar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; search-dollar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-search-location&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; search-location&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-search-minus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; search-minus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-search-plus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; search-plus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-seedling&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; seedling&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-server&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; server&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shapes&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shapes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-share&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; share&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-share-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; share-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-share-alt-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; share-alt-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-share-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; share-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shekel-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shekel-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shield-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shield-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shield-virus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shield-virus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ship&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ship&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shipping-fast&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shipping-fast&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shoe-prints&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shoe-prints&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shopping-bag&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shopping-bag&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shopping-basket&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shopping-basket&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shopping-cart&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shopping-cart&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shower&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shower&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shuttle-van&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shuttle-van&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sign-in-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sign-in-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sign-language&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sign-language&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sign-out-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sign-out-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-signal&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; signal&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-signature&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; signature&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sim-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sim-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sitemap&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sitemap&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-skating&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; skating&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-skiing&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; skiing&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-skiing-nordic&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; skiing-nordic&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-skull&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; skull&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-skull-crossbones&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; skull-crossbones&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sleigh&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sleigh&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sliders-h&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sliders-h&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-smile&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smile&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-smile-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smile-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-smile-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smile-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-smog&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-smoking&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smoking&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-smoking-ban&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smoking-ban&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sms&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sms&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-snowboarding&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; snowboarding&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-snowflake&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; snowflake&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-snowman&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; snowman&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-snowplow&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; snowplow&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-soap&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; soap&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-socks&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; socks&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-solar-panel&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; solar-panel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-alpha-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-alpha-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-alpha-down-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-alpha-down-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-alpha-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-alpha-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-alpha-up-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-alpha-up-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-amount-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-amount-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-amount-down-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-amount-down-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-amount-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-amount-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-amount-up-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-amount-up-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-numeric-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-numeric-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-numeric-down-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-numeric-down-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-numeric-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-numeric-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-numeric-up-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-numeric-up-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-spa&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; spa&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-space-shuttle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; space-shuttle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-spell-check&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; spell-check&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-spider&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; spider&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-spinner&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; spinner&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-splotch&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; splotch&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-spray-can&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; spray-can&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-square-full&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; square-full&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-square-root-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; square-root-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stamp&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stamp&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-star&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-star-and-crescent&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star-and-crescent&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-star-half&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star-half&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-star-half-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star-half-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-star-of-david&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star-of-david&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-star-of-life&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star-of-life&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-step-backward&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; step-backward&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-step-forward&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; step-forward&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stethoscope&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stethoscope&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sticky-note&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sticky-note&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stop&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stop&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stop-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stop-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stopwatch&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stopwatch&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stopwatch-20&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stopwatch-20&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-store&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; store&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-store-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; store-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-store-alt-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; store-alt-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-store-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; store-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stream&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stream&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-street-view&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; street-view&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-strikethrough&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; strikethrough&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stroopwafel&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stroopwafel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-subscript&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; subscript&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-subway&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; subway&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-suitcase&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; suitcase&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-suitcase-rolling&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; suitcase-rolling&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sun&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sun&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-superscript&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; superscript&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-surprise&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; surprise&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-swatchbook&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; swatchbook&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-swimmer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; swimmer&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-swimming-pool&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; swimming-pool&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-synagogue&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; synagogue&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sync&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sync&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sync-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sync-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-syringe&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; syringe&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-table&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; table&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-table-t**ennis&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; table-t**ennis&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tablet&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tablet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tablet-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tablet-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tablets&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tablets&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tachometer-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tachometer-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tag&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tag&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tags&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tags&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tape&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tape&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tasks&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tasks&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-taxi&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; taxi&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-teeth&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; teeth&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-teeth-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; teeth-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-temperature-high&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; temperature-high&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-temperature-low&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; temperature-low&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tenge&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tenge&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-terminal&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; terminal&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-text-height&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; text-height&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-text-width&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; text-width&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-th&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; th&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-th-large&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; th-large&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-th-list&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; th-list&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-theater-masks&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; theater-masks&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-thermometer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; thermometer&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-thermometer-empty&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; thermometer-empty&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-thermometer-full&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; thermometer-full&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-thermometer-half&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; thermometer-half&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-thermometer-quarter&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; thermometer-quarter&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-thermometer-three-quarters&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; thermometer-three-quarters&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-thumbs-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; thumbs-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-thumbs-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; thumbs-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-thumbtack&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; thumbtack&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ticket-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ticket-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-times&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; times&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-times-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; times-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tint-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tint-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tired&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tired&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-toggle-off&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; toggle-off&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-toggle-on&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; toggle-on&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-toilet&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; toilet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-toilet-paper&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; toilet-paper&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-toilet-paper-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; toilet-paper-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-toolbox&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; toolbox&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tools&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tools&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tooth&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tooth&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-torah&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; torah&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-torii-gate&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; torii-gate&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tractor&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tractor&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-trademark&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; trademark&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-traffic-light&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; traffic-light&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-trailer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; trailer&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-train&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; train&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tram&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tram&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-transgender&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; transgender&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-transgender-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; transgender-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-trash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; trash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-trash-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; trash-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-trash-restore&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; trash-restore&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-trash-restore-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; trash-restore-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tree&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tree&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-trophy&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; trophy&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-truck&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; truck&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-truck-loading&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; truck-loading&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-truck-monster&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; truck-monster&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-truck-moving&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; truck-moving&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-truck-pickup&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; truck-pickup&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tshirt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tshirt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tty&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tty&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-tv&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tv&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-umbrella&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; umbrella&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-umbrella-beach&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; umbrella-beach&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-underline&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; underline&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-undo&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; undo&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-undo-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; undo-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-universal-access&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; universal-access&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-university&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; university&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-unlink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; unlink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-unlock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; unlock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-unlock-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; unlock-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-upload&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; upload&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-alt-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-alt-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-astronaut&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-astronaut&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-check&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-check&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-clock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-clock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-cog&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-cog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-edit&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-edit&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-friends&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-friends&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-graduate&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-graduate&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-injured&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-injured&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-lock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-lock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-md&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-md&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-minus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-minus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-ninja&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-ninja&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-nurse&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-nurse&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-plus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-plus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-secret&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-secret&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-shield&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-shield&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-tag&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-tag&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-tie&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-tie&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-user-times&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-times&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-users&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; users&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-users-cog&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; users-cog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-users-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; users-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-utensil-spoon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; utensil-spoon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-utensils&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; utensils&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-vector-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; vector-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-venus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; venus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-venus-double&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; venus-double&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-venus-mars&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; venus-mars&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-vest&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; vest&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-vest-patches&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; vest-patches&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-vial&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; vial&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-vials&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; vials&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-video&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; video&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-video-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; video-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-vihara&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; vihara&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-virus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; virus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-virus-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; virus-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-viruses&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; viruses&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-voicemail&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; voicemail&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-volleyball-ball&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; volleyball-ball&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-volume-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; volume-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-volume-mute&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; volume-mute&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-volume-off&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; volume-off&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-volume-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; volume-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-vote-yea&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; vote-yea&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-vr-cardboard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; vr-cardboard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-walking&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; walking&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-wallet&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; wallet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-warehouse&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; warehouse&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-water&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; water&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-wave-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; wave-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-weight&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; weight&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-weight-hanging&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; weight-hanging&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-wheelchair&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; wheelchair&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-wifi&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; wifi&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-wind&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; wind&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-window-close&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; window-close&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-window-maximize&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; window-maximize&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-window-minimize&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; window-minimize&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-window-restore&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; window-restore&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-wine-bottle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; wine-bottle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-wine-glass&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; wine-glass&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-wine-glass-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; wine-glass-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-won-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; won-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-wrench&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; wrench&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-x-ray&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; x-ray&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-yen-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; yen-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-yin-yang&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; yin-yang&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_Standard_Font_Awesome_Fonts&amp;diff=908062</id>
		<title>J4.x:Joomla Standard Font Awesome Fonts</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_Standard_Font_Awesome_Fonts&amp;diff=908062"/>
		<updated>2022-04-29T11:08:26Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.0.0|time=and later}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Since Joomla 4.0.0, the Joomla! CMS comes with its own custom [https://https://fontawesome.com/ Font Awesome Font Set]. These icon fonts are available by default for use in the &amp;quot;Cassiopeia&amp;quot; (Frontend) and &amp;quot;Atum&amp;quot; (Administrator) Templates.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
== How to Use ==&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Icon fonts that are mapped in &amp;lt;tt&amp;gt;/media/system/scss/_icomoon.scss&amp;lt;/tt&amp;gt; can be called with a &amp;lt;tt&amp;gt;&amp;lt;span class=&amp;quot;icon-&#039;&#039;name-of-icon&#039;&#039;&amp;quot;&amp;amp;gt;&amp;lt;/tt&amp;gt; tag and a {space} &amp;lt;tt&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/tt&amp;gt;. eg&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Will show the Joomla! icon:&amp;lt;/translate&amp;gt;  &amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Icon fonts that are not mapped can be called with a &amp;lt;tt&amp;gt;&amp;lt;span class=&amp;quot;far fa-&#039;&#039;name-of-icon&#039;&#039;&amp;quot;&amp;amp;gt;&amp;lt;/tt&amp;gt; tag and a {space} &amp;lt;tt&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/tt&amp;gt;. eg&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;i class=&amp;quot;fa fa-address-book&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Will show an address book icon:&amp;lt;/translate&amp;gt;  &amp;lt;i class=&amp;quot;fa fa-address-book&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Font Size == &amp;lt;!--T:7--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Because the icons are fonts, you can control the size of them with an added class or style= statement. Of course you will have to define the class in your .css or .less stylesheet file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla large-icon&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla&amp;quot; style=&amp;quot;font-size:24px;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Here is the resized Joomla! icon:&amp;lt;/translate&amp;gt;  &amp;lt;span class=&amp;quot;icon-joomla&amp;quot; style=&amp;quot;font-size:24px;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Available Fontawesome Icons == &amp;lt;!--T:10--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
This is the complete list of the Font Awesome libraries included in Joomla 4&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/media/vendor/fontawesome-free/webfonts/fa-brands-400&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; joomla&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/media/vendor/fontawesome-free/webfonts/fa-regular-400 and /media/vendor/fontawesome-free/webfonts/fa-solid-900&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ad&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ad&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-address-book&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; address-book&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-address-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; address-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-adjust&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; adjust&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-air-freshener&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; air-freshener&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-align-center&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; align-center&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-align-justify&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; align-justify&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-align-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; align-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-align-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; align-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-allergies&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; allergies&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ambulance&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ambulance&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-american-sign-language-interpreting&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; american-sign-language-interpreting&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-anchor&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; anchor&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-double-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-double-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-double-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-double-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-double-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-double-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-double-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-double-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angle-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angle-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-angry&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angry&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ankh&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ankh&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-apple-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; apple-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-archive&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; archive&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-archway&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; archway&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-alt-circle-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-alt-circle-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-alt-circle-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-alt-circle-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-circle-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-circle-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-circle-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-circle-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-circle-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-circle-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-circle-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-circle-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrow-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrows-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrows-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrows-alt-h&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrows-alt-h&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-arrows-alt-v&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrows-alt-v&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-assistive-listening-systems&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; assistive-listening-systems&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-asterisk&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; asterisk&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-at&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; at&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-atlas&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; atlas&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-atom&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; atom&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-audio-description&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; audio-description&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-award&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; award&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-baby&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; baby&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-baby-carriage&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; baby-carriage&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-backspace&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; backspace&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-backward&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; backward&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bacon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bacon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bacteria&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bacteria&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bacterium&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bacterium&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bahai&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bahai&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-balance-scale&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; balance-scale&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-balance-scale-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; balance-scale-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-balance-scale-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; balance-scale-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ban&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ban&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-band-aid&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; band-aid&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-barcode&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; barcode&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bars&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bars&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-baseball-ball&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; baseball-ball&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-basketball-ball&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; basketball-ball&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bath&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bath&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-battery-empty&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; battery-empty&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-battery-full&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; battery-full&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-battery-half&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; battery-half&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-battery-quarter&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; battery-quarter&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-battery-three-quarters&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; battery-three-quarters&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bed&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bed&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-beer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; beer&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bell&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bell&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bell-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bell-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bezier-curve&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bezier-curve&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bible&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bible&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bicycle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bicycle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-biking&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; biking&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-binoculars&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; binoculars&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-biohazard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; biohazard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-birthday-cake&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; birthday-cake&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-blender&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; blender&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-blender-phone&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; blender-phone&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-blind&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; blind&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-blog&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; blog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bold&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bold&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bolt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bolt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bomb&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bomb&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bone&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bone&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bong&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bong&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-book&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; book&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-book-dead&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; book-dead&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-book-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; book-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-book-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; book-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-book-reader&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; book-reader&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bookmark&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bookmark&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-border-all&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; border-all&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-border-none&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; border-none&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-border-style&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; border-style&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bowling-ball&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bowling-ball&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; box&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-box-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; box-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-box-tissue&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; box-tissue&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-boxes&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; boxes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-braille&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; braille&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-brain&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; brain&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bread-slice&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bread-slice&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-briefcase&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; briefcase&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-briefcase-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; briefcase-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-broadcast-tower&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; broadcast-tower&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-broom&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; broom&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-brush&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; brush&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bug&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bug&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-building&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; building&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bullhorn&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bullhorn&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bullseye&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bullseye&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-burn&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; burn&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-bus-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bus-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-business-time&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; business-time&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calculator&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calculator&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar-check&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-check&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar-day&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-day&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar-minus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-minus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar-plus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-plus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar-times&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-times&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-calendar-week&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-week&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-camera&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; camera&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-camera-retro&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; camera-retro&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-campground&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; campground&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-candy-cane&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; candy-cane&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cannabis&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cannabis&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-capsules&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; capsules&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-car&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; car&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-car-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; car-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-car-battery&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; car-battery&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-car-crash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; car-crash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-car-side&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; car-side&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caravan&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caravan&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-square-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-square-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-square-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-square-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-caret-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-carrot&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; carrot&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cart-arrow-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cart-arrow-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cart-plus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cart-plus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cash-register&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cash-register&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cat&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cat&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-certificate&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; certificate&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chair&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chair&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chalkboard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chalkboard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chalkboard-teacher&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chalkboard-teacher&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-charging-station&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; charging-station&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chart-area&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chart-area&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chart-bar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chart-bar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chart-line&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chart-line&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chart-pie&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chart-pie&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-check&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; check&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-check-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; check-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-check-double&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; check-double&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-check-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; check-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cheese&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cheese&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess-bishop&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess-bishop&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess-board&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess-board&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess-king&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess-king&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess-knight&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess-knight&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess-pawn&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess-pawn&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess-queen&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess-queen&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chess-rook&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chess-rook&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-circle-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-circle-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-circle-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-circle-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-circle-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-circle-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-circle-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-circle-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-chevron-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chevron-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-child&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; child&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-church&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; church&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-circle-notch&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; circle-notch&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-city&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; city&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-clinic-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clinic-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-clipboard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clipboard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-clipboard-check&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clipboard-check&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-clipboard-list&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clipboard-list&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-clock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-clone&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clone&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-closed-captioning&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; closed-captioning&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-download-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-download-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-meatball&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-meatball&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-moon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-moon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-moon-rain&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-moon-rain&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-rain&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-rain&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-showers-heavy&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-showers-heavy&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-sun&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-sun&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-sun-rain&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-sun-rain&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cloud-upload-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cloud-upload-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cocktail&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cocktail&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-code&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; code&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-code-branch&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; code-branch&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-coffee&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; coffee&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cog&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cogs&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cogs&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-coins&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; coins&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-columns&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; columns&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comment&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comment-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comment-dollar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment-dollar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comment-dots&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment-dots&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comment-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comment-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comments&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comments&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-comments-dollar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comments-dollar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-compact-disc&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; compact-disc&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-compass&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; compass&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-compress&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; compress&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-compress-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; compress-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-compress-arrows-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; compress-arrows-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-concierge-bell&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; concierge-bell&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cookie&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cookie&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cookie-bite&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cookie-bite&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-copy&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; copy&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-copyright&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; copyright&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-couch&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; couch&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-credit-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; credit-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-crop&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; crop&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-crop-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; crop-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cross&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cross&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-crosshairs&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; crosshairs&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-crow&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; crow&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-crown&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; crown&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-crutch&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; crutch&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cube&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cube&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cubes&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cubes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-cut&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; cut&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-database&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; database&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-deaf&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; deaf&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-democrat&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; democrat&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-desktop&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; desktop&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dharmachakra&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dharmachakra&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-diagnoses&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; diagnoses&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-d20&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-d20&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-d6&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-d6&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-five&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-five&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-four&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-four&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-one&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-one&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-six&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-six&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-three&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-three&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dice-two&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dice-two&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-digital-tachograph&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; digital-tachograph&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-directions&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; directions&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-disease&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; disease&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-divide&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; divide&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dizzy&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dizzy&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dna&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dna&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dog&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dollar-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dollar-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dolly&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dolly&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dolly-flatbed&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dolly-flatbed&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-donate&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; donate&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-door-closed&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; door-closed&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-door-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; door-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dot-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dot-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dove&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dove&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-download&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; download&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-drafting-compass&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; drafting-compass&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dragon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dragon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-draw-polygon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; draw-polygon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-drum&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; drum&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-drum-steelpan&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; drum-steelpan&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-drumstick-bite&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; drumstick-bite&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dumbbell&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dumbbell&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dumpster&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dumpster&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dumpster-fire&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dumpster-fire&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-dungeon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dungeon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-edit&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; edit&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-egg&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; egg&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-eject&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; eject&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ellipsis-h&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ellipsis-h&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ellipsis-v&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ellipsis-v&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-envelope&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; envelope&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-envelope-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; envelope-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-envelope-open-text&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; envelope-open-text&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-envelope-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; envelope-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-equals&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; equals&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-eraser&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; eraser&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ethernet&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ethernet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-euro-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; euro-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-exchange-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; exchange-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-exclamation&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; exclamation&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-exclamation-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; exclamation-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-exclamation-triangle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; exclamation-triangle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-expand&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; expand&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-expand-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; expand-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-expand-arrows-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; expand-arrows-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-external-link-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; external-link-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-external-link-square-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; external-link-square-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-eye&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; eye&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-eye-dropper&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; eye-dropper&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-eye-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; eye-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fan&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fan&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fast-backward&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fast-backward&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fast-forward&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fast-forward&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-faucet&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; faucet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fax&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fax&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-feather&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; feather&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-feather-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; feather-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-female&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; female&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fighter-jet&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fighter-jet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-archive&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-archive&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-audio&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-audio&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-code&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-code&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-contract&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-contract&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-csv&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-csv&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-download&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-download&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-excel&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-excel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-export&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-export&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-image&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-image&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-import&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-import&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-invoice&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-invoice&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-invoice-dollar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-invoice-dollar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-medical-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-medical-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-pdf&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-pdf&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-powerpoint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-powerpoint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-prescription&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-prescription&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-signature&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-signature&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-upload&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-upload&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-video&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-video&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-file-word&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-word&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fill&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fill&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fill-drip&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fill-drip&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-film&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; film&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-filter&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; filter&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fingerprint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fingerprint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fire&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fire&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fire-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fire-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fire-extinguisher&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fire-extinguisher&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-first-aid&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; first-aid&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fish&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fish&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-fist-raised&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; fist-raised&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-flag&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; flag&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-flag-checkered&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; flag-checkered&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-flag-usa&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; flag-usa&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-flask&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; flask&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-flushed&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; flushed&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-folder&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; folder&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-folder-minus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; folder-minus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-folder-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; folder-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-folder-plus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; folder-plus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-font&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; font&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-football-ball&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; football-ball&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-forward&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; forward&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-frog&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; frog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-frown&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; frown&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-frown-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; frown-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-funnel-dollar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; funnel-dollar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-futbol&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; futbol&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-gamepad&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gamepad&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-gas-pump&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gas-pump&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-gavel&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gavel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-gem&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gem&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-genderless&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; genderless&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ghost&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ghost&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-gift&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gift&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-gifts&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gifts&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-glass-cheers&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; glass-cheers&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-glass-martini&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; glass-martini&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-glass-martini-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; glass-martini-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-glass-whiskey&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; glass-whiskey&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-glasses&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; glasses&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-globe&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; globe&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-globe-africa&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; globe-africa&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-globe-americas&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; globe-americas&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-globe-asia&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; globe-asia&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-globe-europe&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; globe-europe&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-golf-ball&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; golf-ball&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-gopuram&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gopuram&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-graduation-cap&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; graduation-cap&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-greater-than&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; greater-than&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-greater-than-equal&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; greater-than-equal&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grimace&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grimace&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-beam-sweat&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-beam-sweat&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-hearts&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-hearts&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-squint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-squint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-squint-tears&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-squint-tears&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-stars&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-stars&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-tears&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tears&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-tongue&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tongue&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-tongue-squint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tongue-squint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-tongue-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tongue-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grin-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grip-horizontal&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grip-horizontal&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grip-lines&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grip-lines&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grip-lines-vertical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grip-lines-vertical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-grip-vertical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grip-vertical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-guitar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; guitar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-h-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; h-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hamburger&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hamburger&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hammer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hammer&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hamsa&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hamsa&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-holding&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-holding&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-holding-heart&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-holding-heart&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-holding-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-holding-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-holding-usd&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-holding-usd&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-holding-water&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-holding-water&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-lizard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-lizard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-middle-finger&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-middle-finger&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-paper&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-paper&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-peace&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-peace&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-point-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-point-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-point-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-point-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-pointer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-pointer&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-rock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-rock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-scissors&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-scissors&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-sparkles&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-sparkles&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hand-spock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-spock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hands&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hands&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hands-helping&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hands-helping&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hands-wash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hands-wash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-handshake&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; handshake&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-handshake-alt-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; handshake-alt-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-handshake-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; handshake-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hanukiah&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hanukiah&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hard-hat&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hard-hat&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hashtag&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hashtag&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hat-cowboy&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hat-cowboy&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hat-cowboy-side&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hat-cowboy-side&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hat-wizard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hat-wizard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hdd&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hdd&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-head-side-cough&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; head-side-cough&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-head-side-cough-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; head-side-cough-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-head-side-mask&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; head-side-mask&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-head-side-virus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; head-side-virus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-heading&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; heading&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-headphones&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; headphones&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-headphones-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; headphones-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-headset&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; headset&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-heart&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; heart&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-heart-broken&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; heart-broken&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-heartbeat&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; heartbeat&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-helicopter&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; helicopter&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-highlighter&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; highlighter&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hiking&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hiking&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hippo&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hippo&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-history&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; history&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hockey-puck&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hockey-puck&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-holly-berry&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; holly-berry&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-home&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; home&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-horse&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; horse&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-horse-head&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; horse-head&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hospital&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hospital&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hospital-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hospital-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hospital-symbol&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hospital-symbol&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hospital-user&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hospital-user&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hot-tub&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hot-tub&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hotdog&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hotdog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hotel&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hotel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hourglass&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hourglass&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hourglass-end&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hourglass-end&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hourglass-half&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hourglass-half&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hourglass-start&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hourglass-start&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-house-damage&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; house-damage&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-house-user&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; house-user&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-hryvnia&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hryvnia&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-i-cursor&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; i-cursor&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ice-cream&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ice-cream&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-icicles&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; icicles&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-icons&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; icons&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-id-badge&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; id-badge&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-id-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; id-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-id-card-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; id-card-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-igloo&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; igloo&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-image&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; image&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-images&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; images&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-inbox&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; inbox&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-indent&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; indent&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-industry&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; industry&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-infinity&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; infinity&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-info&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; info&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-info-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; info-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-italic&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; italic&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-jedi&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; jedi&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-joint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; joint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-journal-whills&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; journal-whills&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-kaaba&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kaaba&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-key&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; key&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-keyboard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; keyboard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-khanda&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; khanda&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-kiss&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kiss&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-kiss-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kiss-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-kiss-wink-heart&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kiss-wink-heart&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-kiwi-bird&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kiwi-bird&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-landmark&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; landmark&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-language&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; language&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laptop&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laptop&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laptop-code&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laptop-code&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laptop-house&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laptop-house&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laptop-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laptop-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laugh&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laugh-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laugh-squint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh-squint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-laugh-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-layer-group&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; layer-group&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-leaf&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; leaf&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-lemon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lemon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-less-than&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; less-than&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-less-than-equal&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; less-than-equal&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-level-down-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; level-down-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-level-up-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; level-up-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-life-ring&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; life-ring&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-lightbulb&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lightbulb&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-link&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; link&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-lira-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lira-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-list&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; list&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-list-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; list-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-list-ol&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; list-ol&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-list-ul&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; list-ul&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-location-arrow&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; location-arrow&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-lock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-lock-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lock-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-long-arrow-alt-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; long-arrow-alt-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-long-arrow-alt-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; long-arrow-alt-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-long-arrow-alt-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; long-arrow-alt-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-long-arrow-alt-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; long-arrow-alt-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-low-vision&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; low-vision&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-luggage-cart&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; luggage-cart&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-lungs&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lungs&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-lungs-virus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lungs-virus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-magic&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; magic&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-magnet&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; magnet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mail-bulk&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mail-bulk&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-male&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; male&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-map&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-map-marked&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map-marked&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-map-marked-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map-marked-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-map-marker&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map-marker&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-map-marker-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map-marker-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-map-pin&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map-pin&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-map-signs&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map-signs&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-marker&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; marker&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mars&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mars&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mars-double&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mars-double&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mars-stroke&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mars-stroke&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mars-stroke-h&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mars-stroke-h&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mars-stroke-v&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mars-stroke-v&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mask&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mask&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-medal&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; medal&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-medkit&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; medkit&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-meh&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; meh&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-meh-blank&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; meh-blank&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-meh-rolling-eyes&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; meh-rolling-eyes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-memory&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; memory&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-menorah&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; menorah&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mercury&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mercury&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-meteor&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; meteor&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-microchip&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; microchip&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-microphone&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; microphone&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-microphone-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; microphone-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-microphone-alt-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; microphone-alt-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-microphone-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; microphone-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-microscope&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; microscope&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-minus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; minus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-minus-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; minus-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-minus-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; minus-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mitten&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mitten&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mobile&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mobile&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mobile-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mobile-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-money-bill&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; money-bill&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-money-bill-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; money-bill-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-money-bill-wave&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; money-bill-wave&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-money-bill-wave-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; money-bill-wave-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-money-check&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; money-check&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-money-check-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; money-check-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-monument&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; monument&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-moon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; moon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mortar-pestle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mortar-pestle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mosque&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mosque&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-motorcycle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; motorcycle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mountain&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mountain&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mouse&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mouse&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mouse-pointer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mouse-pointer&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-mug-hot&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; mug-hot&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-music&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; music&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-network-wired&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; network-wired&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-neuter&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; neuter&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-newspaper&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; newspaper&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-not-equal&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; not-equal&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-notes-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; notes-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-object-group&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; object-group&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-object-ungroup&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; object-ungroup&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-oil-can&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; oil-can&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-om&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; om&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-otter&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; otter&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-outdent&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; outdent&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pager&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pager&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-paint-brush&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paint-brush&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-paint-roller&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paint-roller&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-palette&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; palette&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pallet&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pallet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-paper-plane&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paper-plane&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-paperclip&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paperclip&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-parachute-box&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; parachute-box&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-paragraph&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paragraph&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-parking&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; parking&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-passport&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; passport&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pastafarianism&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pastafarianism&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-paste&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paste&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pause&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pause&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pause-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pause-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-paw&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paw&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-peace&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; peace&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pen&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pen&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pen-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pen-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pen-fancy&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pen-fancy&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pen-nib&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pen-nib&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pen-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pen-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pencil-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pencil-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pencil-ruler&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pencil-ruler&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-people-arrows&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; people-arrows&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-people-carry&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; people-carry&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pepper-hot&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pepper-hot&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-percent&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; percent&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-percentage&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; percentage&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-person-booth&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; person-booth&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-phone&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; phone&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-phone-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; phone-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-phone-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; phone-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-phone-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; phone-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-phone-square-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; phone-square-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-phone-volume&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; phone-volume&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-photo-video&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; photo-video&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-piggy-bank&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; piggy-bank&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pills&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pills&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pizza-slice&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pizza-slice&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-place-of-worship&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; place-of-worship&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plane&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plane&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plane-arrival&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plane-arrival&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plane-departure&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plane-departure&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plane-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plane-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-play&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; play&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-play-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; play-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plug&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plug&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plus-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plus-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-plus-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plus-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-podcast&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; podcast&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-poll&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; poll&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-poll-h&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; poll-h&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-poo&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; poo&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-poo-storm&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; poo-storm&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-poop&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; poop&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-portrait&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; portrait&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pound-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pound-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-power-off&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; power-off&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pray&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pray&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-praying-hands&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; praying-hands&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-prescription&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; prescription&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-prescription-bottle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; prescription-bottle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-prescription-bottle-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; prescription-bottle-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-print&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; print&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-procedures&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; procedures&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-project-diagram&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; project-diagram&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pump-medical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pump-medical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-pump-soap&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pump-soap&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-puzzle-piece&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; puzzle-piece&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-qrcode&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; qrcode&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-question&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; question&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-question-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; question-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-quidditch&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; quidditch&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-quote-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; quote-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-quote-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; quote-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-quran&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; quran&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-radiation&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; radiation&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-radiation-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; radiation-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-rainbow&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; rainbow&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-random&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; random&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-receipt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; receipt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-record-vinyl&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; record-vinyl&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-recycle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; recycle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-redo&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; redo&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-redo-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; redo-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-registered&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; registered&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-remove-format&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; remove-format&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-reply&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; reply&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-reply-all&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; reply-all&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-republican&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; republican&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-restroom&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; restroom&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-retweet&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; retweet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ribbon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ribbon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ring&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ring&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-road&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; road&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-robot&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; robot&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-rocket&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; rocket&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-route&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; route&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-rss&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; rss&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-rss-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; rss-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ruble-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ruble-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ruler&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ruler&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ruler-combined&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ruler-combined&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ruler-horizontal&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ruler-horizontal&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ruler-vertical&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ruler-vertical&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-running&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; running&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-rupee-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; rupee-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sad-cry&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sad-cry&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sad-tear&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sad-tear&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-satellite&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; satellite&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-satellite-dish&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; satellite-dish&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-save&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; save&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-school&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; school&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-screwdriver&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; screwdriver&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-scroll&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; scroll&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sd-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sd-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-search&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; search&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-search-dollar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; search-dollar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-search-location&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; search-location&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-search-minus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; search-minus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-search-plus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; search-plus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-seedling&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; seedling&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-server&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; server&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shapes&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shapes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-share&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; share&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-share-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; share-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-share-alt-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; share-alt-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-share-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; share-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shekel-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shekel-sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shield-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shield-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shield-virus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shield-virus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-ship&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; ship&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shipping-fast&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shipping-fast&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shoe-prints&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shoe-prints&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shopping-bag&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shopping-bag&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shopping-basket&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shopping-basket&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shopping-cart&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shopping-cart&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shower&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shower&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-shuttle-van&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; shuttle-van&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sign&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sign&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sign-in-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sign-in-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sign-language&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sign-language&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sign-out-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sign-out-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-signal&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; signal&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-signature&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; signature&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sim-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sim-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sitemap&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sitemap&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-skating&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; skating&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-skiing&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; skiing&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-skiing-nordic&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; skiing-nordic&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-skull&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; skull&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-skull-crossbones&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; skull-crossbones&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sleigh&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sleigh&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sliders-h&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sliders-h&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-smile&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smile&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-smile-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smile-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-smile-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smile-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-smog&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smog&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-smoking&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smoking&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-smoking-ban&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smoking-ban&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sms&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sms&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-snowboarding&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; snowboarding&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-snowflake&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; snowflake&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-snowman&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; snowman&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-snowplow&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; snowplow&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-soap&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; soap&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-socks&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; socks&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-solar-panel&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; solar-panel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-alpha-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-alpha-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-alpha-down-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-alpha-down-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-alpha-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-alpha-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-alpha-up-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-alpha-up-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-amount-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-amount-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-amount-down-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-amount-down-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-amount-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-amount-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-amount-up-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-amount-up-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-numeric-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-numeric-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-numeric-down-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-numeric-down-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-numeric-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-numeric-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-numeric-up-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-numeric-up-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sort-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sort-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-spa&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; spa&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-space-shuttle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; space-shuttle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-spell-check&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; spell-check&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-spider&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; spider&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-spinner&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; spinner&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-splotch&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; splotch&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-spray-can&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; spray-can&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-square-full&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; square-full&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-square-root-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; square-root-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stamp&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stamp&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-star&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-star-and-crescent&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star-and-crescent&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-star-half&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star-half&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-star-half-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star-half-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-star-of-david&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star-of-david&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-star-of-life&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star-of-life&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-step-backward&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; step-backward&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-step-forward&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; step-forward&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stethoscope&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stethoscope&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sticky-note&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sticky-note&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stop&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stop&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stop-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stop-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stopwatch&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stopwatch&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stopwatch-20&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stopwatch-20&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-store&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; store&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-store-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; store-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-store-alt-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; store-alt-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-store-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; store-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stream&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stream&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-street-view&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; street-view&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-strikethrough&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; strikethrough&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-stroopwafel&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stroopwafel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-subscript&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; subscript&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-subway&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; subway&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-suitcase&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; suitcase&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-suitcase-rolling&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; suitcase-rolling&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sun&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sun&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-superscript&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; superscript&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-surprise&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; surprise&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-swatchbook&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; swatchbook&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-swimmer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; swimmer&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-swimming-pool&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; swimming-pool&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-synagogue&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; synagogue&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sync&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sync&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-sync-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sync-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-syringe&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; syringe&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;fa fa-table&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; table&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_Standard_Font_Awesome_Fonts&amp;diff=908061</id>
		<title>J4.x:Joomla Standard Font Awesome Fonts</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_Standard_Font_Awesome_Fonts&amp;diff=908061"/>
		<updated>2022-04-29T11:05:36Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.0.0|time=and later}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Since Joomla 4.0.0, the Joomla! CMS comes with its own custom [https://https://fontawesome.com/ Font Awesome Font Set]. These icon fonts are available by default for use in the &amp;quot;Cassiopeia&amp;quot; (Frontend) and &amp;quot;Atum&amp;quot; (Administrator) Templates.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
== How to Use ==&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Icon fonts that are mapped in &amp;lt;tt&amp;gt;/media/system/scss/_icomoon.scss&amp;lt;/tt&amp;gt; can be called with a &amp;lt;tt&amp;gt;&amp;lt;span class=&amp;quot;icon-&#039;&#039;name-of-icon&#039;&#039;&amp;quot;&amp;amp;gt;&amp;lt;/tt&amp;gt; tag and a {space} &amp;lt;tt&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/tt&amp;gt;. eg&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Will show the Joomla! icon:&amp;lt;/translate&amp;gt;  &amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Icon fonts that are not mapped can be called with a &amp;lt;tt&amp;gt;&amp;lt;span class=&amp;quot;far fa-&#039;&#039;name-of-icon&#039;&#039;&amp;quot;&amp;amp;gt;&amp;lt;/tt&amp;gt; tag and a {space} &amp;lt;tt&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/tt&amp;gt;. eg&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;i class=&amp;quot;fa fa-address-book&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Will show an address book icon:&amp;lt;/translate&amp;gt;  &amp;lt;i class=&amp;quot;fa fa-address-book&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Font Size == &amp;lt;!--T:7--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Because the icons are fonts, you can control the size of them with an added class or style= statement. Of course you will have to define the class in your .css or .less stylesheet file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla large-icon&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla&amp;quot; style=&amp;quot;font-size:24px;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Here is the resized Joomla! icon:&amp;lt;/translate&amp;gt;  &amp;lt;span class=&amp;quot;icon-joomla&amp;quot; style=&amp;quot;font-size:24px;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Available Fontawesome Icons == &amp;lt;!--T:10--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
This is the complete list of the Font Awesome libraries included in Joomla 4&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/media/vendor/fontawesome-free/webfonts/fa-brands-400&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; joomla&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/media/vendor/fontawesome-free/webfonts/fa-regular-400 and /media/vendor/fontawesome-free/webfonts/fa-solid-900&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-address-book&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; address-book&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-address-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; address-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-angry&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angry&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-arrow-alt-circle-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-arrow-alt-circle-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-arrow-alt-circle-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-arrow-alt-circle-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-bell&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bell&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-bell-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bell-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-bookmark&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bookmark&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-building&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; building&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-calendar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-calendar-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-calendar-check&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-check&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-calendar-minus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-minus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-calendar-plus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-plus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-calendar-times&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-times&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-caret-square-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-caret-square-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-caret-square-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-caret-square-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-chart-bar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chart-bar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-check-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; check-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-check-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; check-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-clipboard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clipboard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-clock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-clone&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clone&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-closed-captioning&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; closed-captioning&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-comment&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-comment-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-comment-dots&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment-dots&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-comments&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comments&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-compass&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; compass&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-copy&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; copy&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-copyright&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; copyright&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-credit-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; credit-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-dizzy&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dizzy&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-dot-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dot-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-edit&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; edit&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-envelope&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; envelope&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-envelope-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; envelope-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-eye&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; eye&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-eye-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; eye-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-archive&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-archive&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-audio&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-audio&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-code&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-code&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-excel&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-excel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-image&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-image&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-pdf&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-pdf&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-powerpoint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-powerpoint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-video&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-video&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-word&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-word&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-flag&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; flag&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-flushed&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; flushed&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-folder&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; folder&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-folder-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; folder-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-frown&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; frown&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-frown-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; frown-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-futbol&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; futbol&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-gem&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gem&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grimace&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grimace&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-beam-sweat&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-beam-sweat&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-hearts&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-hearts&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-squint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-squint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-squint-tears&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-squint-tears&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-stars&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-stars&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-tears&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tears&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-tongue&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tongue&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-tongue-squint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tongue-squint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-tongue-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tongue-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-lizard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-lizard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-paper&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-paper&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-peace&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-peace&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-point-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-point-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-point-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-point-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-pointer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-pointer&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-rock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-rock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-scissors&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-scissors&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-spock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-spock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-handshake&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; handshake&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hdd&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hdd&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-heart&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; heart&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hospital&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hospital&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hourglass&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hourglass&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-id-badge&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; id-badge&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-id-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; id-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-image&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; image&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-images&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; images&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-keyboard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; keyboard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-kiss&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kiss&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-kiss-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kiss-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-kiss-wink-heart&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kiss-wink-heart&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-laugh&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-laugh-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-laugh-squint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh-squint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-laugh-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-lemon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lemon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-life-ring&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; life-ring&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-lightbulb&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lightbulb&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-list-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; list-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-map&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-meh&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; meh&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-meh-blank&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; meh-blank&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-meh-rolling-eyes&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; meh-rolling-eyes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-minus-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; minus-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-money-bill-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; money-bill-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-moon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; moon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-newspaper&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; newspaper&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-object-group&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; object-group&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-object-ungroup&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; object-ungroup&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-paper-plane&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paper-plane&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-pause-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pause-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-play-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; play-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-plus-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plus-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-question-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; question-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-registered&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; registered&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-sad-cry&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sad-cry&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-sad-tear&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sad-tear&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-save&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; save&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-share-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; share-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-smile&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smile&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-smile-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smile-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-smile-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smile-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-snowflake&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; snowflake&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-star&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-star-half&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star-half&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-sticky-note&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sticky-note&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-stop-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stop-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-sun&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sun&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-surprise&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; surprise&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-thumbs-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; thumbs-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-thumbs-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; thumbs-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-times-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; times-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-tired&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tired&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-trash-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; trash-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-user&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-user-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-window-close&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; window-close&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-window-maximize&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; window-maximize&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-window-minimize&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; window-minimize&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-window-restore&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; window-restore&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_Standard_Font_Awesome_Fonts&amp;diff=908060</id>
		<title>J4.x:Joomla Standard Font Awesome Fonts</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_Standard_Font_Awesome_Fonts&amp;diff=908060"/>
		<updated>2022-04-29T10:46:32Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.0.0|time=and later}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Since Joomla 4.0.0, the Joomla! CMS comes with its own custom [https://https://fontawesome.com/ Font Awesome Font Set]. These icon fonts are available by default for use in the &amp;quot;Cassiopeia&amp;quot; (Frontend) and &amp;quot;Atum&amp;quot; (Administrator) Templates.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
== How to Use ==&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Icon fonts that are mapped in &amp;lt;tt&amp;gt;/media/system/scss/_icomoon.scss&amp;lt;/tt&amp;gt; can be called with a &amp;lt;tt&amp;gt;&amp;lt;span class=&amp;quot;icon-&#039;&#039;name-of-icon&#039;&#039;&amp;quot;&amp;amp;gt;&amp;lt;/tt&amp;gt; tag and a {space} &amp;lt;tt&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/tt&amp;gt;. eg&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Will show the Joomla! icon:&amp;lt;/translate&amp;gt;  &amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Icon fonts that are not mapped can be called with a &amp;lt;tt&amp;gt;&amp;lt;span class=&amp;quot;far fa-&#039;&#039;name-of-icon&#039;&#039;&amp;quot;&amp;amp;gt;&amp;lt;/tt&amp;gt; tag and a {space} &amp;lt;tt&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/tt&amp;gt;. eg&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;i class=&amp;quot;far fa-address-book&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Will show an address book icon:&amp;lt;/translate&amp;gt;  &amp;lt;i class=&amp;quot;far fa-address-book&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Font Size == &amp;lt;!--T:7--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Because the icons are fonts, you can control the size of them with an added class or style= statement. Of course you will have to define the class in your .css or .less stylesheet file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla large-icon&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla&amp;quot; style=&amp;quot;font-size:24px;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Here is the resized Joomla! icon:&amp;lt;/translate&amp;gt;  &amp;lt;span class=&amp;quot;icon-joomla&amp;quot; style=&amp;quot;font-size:24px;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Available Fontawesome Icons == &amp;lt;!--T:10--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
This is the complete list of the Font Awesome libraries included in Joomla 4&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/media/vendor/fontawesome-free/webfonts/fa-brands-400&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; joomla&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/media/vendor/fontawesome-free/webfonts/fa-regular-400 and /media/vendor/fontawesome-free/webfonts/fa-solid-900&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-address-book&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; address-book&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-address-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; address-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-angry&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; angry&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-arrow-alt-circle-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-arrow-alt-circle-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-arrow-alt-circle-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-arrow-alt-circle-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; arrow-alt-circle-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-bell&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bell&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-bell-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bell-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-bookmark&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; bookmark&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-building&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; building&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-calendar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-calendar-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-calendar-check&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-check&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-calendar-minus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-minus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-calendar-plus&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-plus&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-calendar-times&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; calendar-times&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-caret-square-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-caret-square-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-caret-square-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-caret-square-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; caret-square-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-chart-bar&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; chart-bar&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-check-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; check-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-check-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; check-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-clipboard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clipboard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-clock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-clone&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; clone&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-closed-captioning&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; closed-captioning&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-comment&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-comment-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-comment-dots&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comment-dots&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-comments&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; comments&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-compass&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; compass&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-copy&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; copy&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-copyright&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; copyright&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-credit-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; credit-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-dizzy&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dizzy&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-dot-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; dot-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-edit&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; edit&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-envelope&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; envelope&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-envelope-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; envelope-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-eye&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; eye&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-eye-slash&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; eye-slash&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-archive&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-archive&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-audio&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-audio&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-code&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-code&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-excel&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-excel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-image&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-image&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-pdf&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-pdf&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-powerpoint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-powerpoint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-video&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-video&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-file-word&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; file-word&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-flag&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; flag&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-flushed&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; flushed&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-folder&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; folder&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-folder-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; folder-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-frown&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; frown&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-frown-open&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; frown-open&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-futbol&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; futbol&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-gem&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; gem&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grimace&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grimace&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-beam-sweat&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-beam-sweat&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-hearts&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-hearts&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-squint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-squint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-squint-tears&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-squint-tears&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-stars&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-stars&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-tears&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tears&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-tongue&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tongue&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-tongue-squint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tongue-squint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-tongue-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-tongue-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-grin-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; grin-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-lizard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-lizard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-paper&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-paper&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-peace&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-peace&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-point-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-point-left&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-left&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-point-right&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-right&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-point-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-point-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-pointer&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-pointer&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-rock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-rock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-scissors&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-scissors&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hand-spock&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hand-spock&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-handshake&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; handshake&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hdd&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hdd&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-heart&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; heart&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hospital&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hospital&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-hourglass&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; hourglass&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-id-badge&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; id-badge&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-id-card&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; id-card&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-image&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; image&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-images&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; images&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-keyboard&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; keyboard&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-kiss&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kiss&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-kiss-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kiss-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-kiss-wink-heart&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; kiss-wink-heart&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-laugh&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-laugh-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-laugh-squint&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh-squint&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-laugh-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; laugh-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-lemon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lemon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-life-ring&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; life-ring&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-lightbulb&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; lightbulb&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-list-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; list-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-map&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; map&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-meh&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; meh&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-meh-blank&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; meh-blank&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-meh-rolling-eyes&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; meh-rolling-eyes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-minus-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; minus-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-money-bill-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; money-bill-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-moon&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; moon&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-newspaper&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; newspaper&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-object-group&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; object-group&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-object-ungroup&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; object-ungroup&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-paper-plane&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; paper-plane&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-pause-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; pause-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-play-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; play-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-plus-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; plus-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-question-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; question-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-registered&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; registered&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-sad-cry&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sad-cry&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-sad-tear&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sad-tear&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-save&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; save&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-share-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; share-square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-smile&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smile&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-smile-beam&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smile-beam&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-smile-wink&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; smile-wink&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-snowflake&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; snowflake&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-square&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; square&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-star&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-star-half&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; star-half&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-sticky-note&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sticky-note&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-stop-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; stop-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-sun&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; sun&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-surprise&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; surprise&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-thumbs-down&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; thumbs-down&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-thumbs-up&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; thumbs-up&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-times-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; times-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-tired&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; tired&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-trash-alt&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; trash-alt&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-user&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-user-circle&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; user-circle&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-window-close&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; window-close&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-window-maximize&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; window-maximize&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-window-minimize&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; window-minimize&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-12 large-4 columns&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;far fa-window-restore&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;amp;nbsp; window-restore&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_Standard_Font_Awesome_Fonts&amp;diff=908059</id>
		<title>J4.x:Joomla Standard Font Awesome Fonts</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_Standard_Font_Awesome_Fonts&amp;diff=908059"/>
		<updated>2022-04-29T10:45:56Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.0.0|time=and later}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Since Joomla 4.0.0, the Joomla! CMS comes with its own custom [https://https://fontawesome.com/ Font Awesome Font Set]. These icon fonts are available by default for use in the &amp;quot;Cassiopeia&amp;quot; (Frontend) and &amp;quot;Atum&amp;quot; (Administrator) Templates.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
== How to Use ==&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Icon fonts that are mapped in &amp;lt;tt&amp;gt;/media/system/scss/_icomoon.scss&amp;lt;/tt&amp;gt; can be called with a &amp;lt;tt&amp;gt;&amp;lt;span class=&amp;quot;icon-&#039;&#039;name-of-icon&#039;&#039;&amp;quot;&amp;amp;gt;&amp;lt;/tt&amp;gt; tag and a {space} &amp;lt;tt&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/tt&amp;gt;. eg&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Will show the Joomla! icon:&amp;lt;/translate&amp;gt;  &amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Icon fonts that are not mapped can be called with a &amp;lt;tt&amp;gt;&amp;lt;span class=&amp;quot;far fa-&#039;&#039;name-of-icon&#039;&#039;&amp;quot;&amp;amp;gt;&amp;lt;/tt&amp;gt; tag and a {space} &amp;lt;tt&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/tt&amp;gt;. eg&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;i class=&amp;quot;far fa-address-book&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Will show an address book icon:&amp;lt;/translate&amp;gt;  &amp;lt;i class=&amp;quot;far fa-address-book&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Font Size == &amp;lt;!--T:7--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Because the icons are fonts, you can control the size of them with an added class or style= statement. Of course you will have to define the class in your .css or .less stylesheet file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla large-icon&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla&amp;quot; style=&amp;quot;font-size:24px;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Here is the resized Joomla! icon:&amp;lt;/translate&amp;gt;  &amp;lt;span class=&amp;quot;icon-joomla&amp;quot; style=&amp;quot;font-size:24px;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Available Fontawesome Icons == &amp;lt;!--T:10--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
This is the complete list of the Font Awesome libraries included in Joomla 4&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_Standard_Font_Awesome_Fonts&amp;diff=908058</id>
		<title>J4.x:Joomla Standard Font Awesome Fonts</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_Standard_Font_Awesome_Fonts&amp;diff=908058"/>
		<updated>2022-04-29T10:45:18Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.0.0|time=and later}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Since Joomla 4.0.0, the Joomla! CMS comes with its own custom [https://https://fontawesome.com/ Font Awesome Font Set]. These icon fonts are available by default for use in the &amp;quot;Cassiopeia&amp;quot; (Frontend) and &amp;quot;Atum&amp;quot; (Administrator) Templates.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
== How to Use ==&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Icon fonts that are mapped in &amp;lt;tt&amp;gt;/media/system/scss/_icomoon.scss&amp;lt;/tt&amp;gt; can be called with a &amp;lt;tt&amp;gt;&amp;lt;span class=&amp;quot;icon-&#039;&#039;name-of-icon&#039;&#039;&amp;quot;&amp;amp;gt;&amp;lt;/tt&amp;gt; tag and a {space} &amp;lt;tt&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/tt&amp;gt;. eg&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Will show the Joomla! icon:&amp;lt;/translate&amp;gt;  &amp;lt;span class=&amp;quot;icon-joomla&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Icon fonts that are not mapped can be called with a &amp;lt;tt&amp;gt;&amp;lt;span class=&amp;quot;far fa-&#039;&#039;name-of-icon&#039;&#039;&amp;quot;&amp;amp;gt;&amp;lt;/tt&amp;gt; tag and a {space} &amp;lt;tt&amp;gt;&amp;amp;lt;/span&amp;amp;gt;&amp;lt;/tt&amp;gt;. eg&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;i class=&amp;quot;far fa-address-book&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Will show an address book icon:&amp;lt;/translate&amp;gt;  &amp;lt;i class=&amp;quot;far fa-address-book&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_Standard_Font_Awesome_Fonts&amp;diff=908057</id>
		<title>J4.x:Joomla Standard Font Awesome Fonts</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_Standard_Font_Awesome_Fonts&amp;diff=908057"/>
		<updated>2022-04-29T10:42:37Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: Created page with &amp;quot;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt; {{Joomla version|version=4.0.0|time=and later}} &amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt; Since Joomla 4.0.0, the Joomla! CMS comes with its own custom [https...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.0.0|time=and later}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Since Joomla 4.0.0, the Joomla! CMS comes with its own custom [https://https://fontawesome.com/ Font Awesome Font Set]. These icon fonts are available by default for use in the &amp;quot;Cassiopeia&amp;quot; (Frontend) and &amp;quot;Atum&amp;quot; (Administrator) Templates.&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_Debian_Linux&amp;diff=785741</id>
		<title>Installing Joomla on Debian Linux</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_Debian_Linux&amp;diff=785741"/>
		<updated>2021-03-25T15:31:27Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{needs|technical review|Needs updating to latest PHP/MySQL Versions}}&lt;br /&gt;
&lt;br /&gt;
== Preface ==&lt;br /&gt;
&lt;br /&gt;
This document guides you through the manual installation of Joomla! on &#039;&#039;&#039;Debian GNU Linux&#039;&#039;&#039; or one of its derivatives such as &#039;&#039;&#039;Ubuntu&#039;&#039;&#039;, &#039;&#039;&#039;Knoppix&#039;&#039;&#039; or &#039;&#039;&#039;GRML&#039;&#039;&#039;. Note that this guide applies to Joomla! {{JVer|2.5}} {{JVer|3.5}} {{JVer|3.6}}. It has been successfully tested on Debian 4.0 [Etch], Debian 5.0 [Lenny], Ubuntu 8.04 LTS [Hardy Heron], Ubuntu 10.10 [maverick] and Ubuntu 11.10 (Oneiric Ocelot). It will work for all &#039;&#039;&#039;Debian&#039;&#039;&#039; based Linux distribution as well.&lt;br /&gt;
&lt;br /&gt;
Also note that this guide assumes, you&#039;re installing Joomla! in a &#039;&#039;&#039;single hosting&#039;&#039;&#039; environment, running PHP as module. If you want to run multiple web sites as a web hosting service provider, for security reasons you should consider setting up an suPHP (php5-cgi, libapache2-mod-suphp) environment, where every virtual Apache host runs under its own UID.&lt;br /&gt;
&lt;br /&gt;
== Installing Joomla! ==&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
You will need to install apache2, mysql-server-5.0, mysql-client-5.0 and php5 in order to have a web-server for Joomla!.&lt;br /&gt;
&lt;br /&gt;
=== Which stack should I choose? ===&lt;br /&gt;
&lt;br /&gt;
- [[Installing_Joomla_on_Debian_Linux#XAMPP|XAMPP]] automatically configures ownership.&lt;br /&gt;
&lt;br /&gt;
- [[Installing_Joomla_on_Debian_Linux#LaMp|LaMp]] requires use of the CHOWN command. &lt;br /&gt;
&lt;br /&gt;
- [[Installing_Joomla_on_Debian_Linux#BitNami_Joomla.21_stack|BitNami Joomla! Stack]] is free, self-contained and automatically configures the LAMP stack and Joomla!&lt;br /&gt;
&lt;br /&gt;
== XAMPP ==&lt;br /&gt;
Download [http://sourceforge.net/projects/xampp/files/XAMPP%20Linux/ XAMPP] for Linux to your your Home folder. &lt;br /&gt;
&lt;br /&gt;
=== Install XAMPP ===&lt;br /&gt;
Open Terminal and enter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo tar xvfz xampp-linux-1.8.3.tar.gz -C /opt&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(replace &#039;&#039;xampp-linux-1.8.3.tar.gz&#039;&#039; with the version of XAMPP you downloaded).&lt;br /&gt;
&lt;br /&gt;
This installs ... Apache2, mysql and php5 as well as an ftp server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo /opt/lampp/lampp start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo /opt/lampp/lampp stop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
starts/stops all the services&lt;br /&gt;
&lt;br /&gt;
=== Test your XAMPP localhost server ===&lt;br /&gt;
Open your Browser and point it to&lt;br /&gt;
 http://localhost&lt;br /&gt;
The index.php will redirect to&lt;br /&gt;
 http://localhost/xampp&lt;br /&gt;
&lt;br /&gt;
There you will find instructions on how to change default usernames/passwords.  On a PC that does not serve files to the Internet or LAN then changing the defaults is personal choice.&lt;br /&gt;
&lt;br /&gt;
=== Multiple Versions of XAMPP ===&lt;br /&gt;
It can be useful to have access to several versions of XAMPP on your PC (e.g to have available different versions of PHP for testing). XAMPP doesn&#039;t make this easy but it is possble - see [http://www.jamesbrice.com/multiple-xampp-versions &amp;quot;how to&amp;quot; article here] (for Linux only).&lt;br /&gt;
&lt;br /&gt;
=== Get Joomla ===&lt;br /&gt;
Download the latest Joomla installation zip [http://www.joomla.org/download.html]&lt;br /&gt;
&lt;br /&gt;
Unzip to your hard drive&lt;br /&gt;
&lt;br /&gt;
Connect to localhost with an FTP client &lt;br /&gt;
Default&lt;br /&gt;
 nobody&lt;br /&gt;
 lampp&lt;br /&gt;
&lt;br /&gt;
Create a folder for your Joomla on the localhost server&lt;br /&gt;
&lt;br /&gt;
FTP the unpacked Joomla installation files to the newly created Joomla folder.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; &lt;br /&gt;
* The XAMPP installation sets the correct Ownership of the files and permissions.&lt;br /&gt;
* Using the &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;CHOWN command&#039;&#039;&#039;&amp;lt;/span&amp;gt; will &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;cause Ownership problems with xampp&#039;&#039;&#039;&amp;lt;/span&amp;gt;.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;Using nautilus&#039;&#039;&#039;&amp;lt;/span&amp;gt; to manipulate folders/files on localhost will &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;cause Ownership problems with xampp&#039;&#039;&#039;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Configure Joomla ===&lt;br /&gt;
In your Browser type&lt;br /&gt;
 http://localhost/yournewjoomlafolder&lt;br /&gt;
&lt;br /&gt;
In the first Joomla installation screen if error reporting is shown as on then:&lt;br /&gt;
&lt;br /&gt;
In your Terminal type&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo gedit /opt/lampp/etc/php.ini&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the &amp;lt;tt&amp;gt;php.ini&amp;lt;/tt&amp;gt; file, locate&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
error_reporting =&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And change the value to&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
error_reporting = E_ALL &amp;amp; ~E_NOTICE &amp;amp; ~E_DEPRECATED&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also locate&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
display_errors = On&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And change the value to&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
display_errors = Off&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stop then restart xampp for the new settings to take effect&lt;br /&gt;
&lt;br /&gt;
FTP layer is NOT needed&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Database info&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Host&#039;&#039;&#039;: &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Database name&#039;&#039;&#039;: &amp;lt;code&amp;gt;test&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(Xampp will automatically create a database of the name you specify).&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default Database user&#039;&#039;&#039;: &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;&lt;br /&gt;
:There is no Password for &#039;&#039;&#039;Database user&#039;&#039;&#039;: &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Administrator password is your choice.&lt;br /&gt;
&lt;br /&gt;
Installing Sample Data is recommended for the novice user.&lt;br /&gt;
&lt;br /&gt;
After installation delete the installation directory and point your Browser to:&lt;br /&gt;
 http://localhost/yournewjoomlafolder&lt;br /&gt;
or&lt;br /&gt;
 http://localhost/yournewjoomlafolder/administrator&lt;br /&gt;
&lt;br /&gt;
=== Create a link in the Ubuntu menu ===&lt;br /&gt;
&#039;&#039;&#039;To create a GUI for XAMPP connected to your Ubuntu menu&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open up the Terminal and type&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo gedit /usr/share/applications/xampp-control-panel.desktop&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then copy the following into the gedit and save.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Desktop Entry]&lt;br /&gt;
Encoding=UTF-8&lt;br /&gt;
Name=XAMPP Control Panel&lt;br /&gt;
Comment=Start and Stop XAMPP&lt;br /&gt;
Exec=gksudo &amp;quot;python /opt/lampp/share/xampp-control-panel/xampp-control-panel.py&amp;quot;&lt;br /&gt;
Icon=/usr/share/icons/Tango/scalable/devices/network-wired.svg&lt;br /&gt;
Terminal=false&lt;br /&gt;
Type=Application&lt;br /&gt;
Categories=GNOME;Application;Network;&lt;br /&gt;
StartupNotify=true&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;N.B.&#039;&#039;&#039; Ubuntu 11.10 needs &#039;&#039;python-glade2&#039;&#039; installed in order to run the GUI.  &#039;&#039;python-glade2&#039;&#039; can be found in the Ubuntu Software Center.&lt;br /&gt;
&lt;br /&gt;
== LaMp ==&lt;br /&gt;
You will find instructions on [http://wiki.debian.org/LaMp wiki.debian.org]. Make sure that you have installed bzip2 for extracting the downloaded Joomla! package.&lt;br /&gt;
&lt;br /&gt;
You can check this by the following command:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ dpkg -l  | grep bzip2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the dollar sign &#039;$&#039; shell prompt is indicating you&#039;re a &#039;&#039;regular user&#039;&#039;. We will later see a hash mark (#) shell prompt, which indicates that you&#039;re the super user &#039;&#039;root&#039;&#039; after issuing an &#039;&#039;&#039;su&#039;&#039;&#039; or &#039;&#039;&#039;sudo&#039;&#039;&#039;. The first policy for a secure linux system administration on the command line (but under X also) is to issue commands with the lowest permission as possible.&lt;br /&gt;
&lt;br /&gt;
If bzip2 is not installed, you won&#039;t get an output. Then you can quickly install it via aptitude:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ su -c &amp;quot;aptitude install bzip2&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we see the first command executed with root permissions, because a regular user is not allowed to install new software. The &#039;-c&#039; option passes the following command to &#039;&#039;&#039;su&#039;&#039;&#039; and hereafter it terminates instead of switching to a root shell.&lt;br /&gt;
&lt;br /&gt;
=== Configure PHP5 ===&lt;br /&gt;
in the pre install check [ you get to that when the install is complete and are setting up Joomla at the web page ], Output Buffering was On and it&#039;s recommended that it should be Off .to do so&lt;br /&gt;
edit /etc/php5/apache2/php.ini , comment out this line: output_buffering = 4096 , by putting a &#039;;&#039; in front. it&#039;ll look like this when done:&lt;br /&gt;
 ;output_buffering = 4096&lt;br /&gt;
&lt;br /&gt;
there were also warnings on the install screen regarding suhosin .  to make the suggested changes, edit this file:&lt;br /&gt;
 /etc/php5/conf.d/suhosin.ini&lt;br /&gt;
I set these :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
suhosin.post.max_array_index_length = 256&lt;br /&gt;
suhosin.post.max_totalname_length = 8192&lt;br /&gt;
suhosin.post.max_vars = 2048&lt;br /&gt;
suhosin.request.max_array_index_length = 256&lt;br /&gt;
suhosin.request.max_totalname_length = 8192&lt;br /&gt;
suhosin.request.max_vars = 2048&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure MySQL ===&lt;br /&gt;
It is time to create a database for Joomla! You can do this by the following commmands:&lt;br /&gt;
 mysqladmin -u root -p create joomla&lt;br /&gt;
&lt;br /&gt;
You may replace &#039;&#039;joomla&#039;&#039; with the name of choice for Joomla!&#039;s database.&lt;br /&gt;
&lt;br /&gt;
Now create a MySQL user different from root for Joomla!&#039;s database. first enter into mysql system with: &lt;br /&gt;
 mysql -u root -p&lt;br /&gt;
Then at the &#039;mysql&amp;gt;&#039; prompt enter the following. Make sure you replace &#039;&#039;joomla&#039;&#039; with the name of Joomla!&#039;s database from above. Replace &#039;&#039;yourusername&#039;&#039; with the user name you choose for the MySQL user accessing Joomla!&#039;s database, and replace &#039;&#039;yourpassword&#039;&#039; with your password of choice for the MySQL user.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, \&lt;br /&gt;
LOCK TABLES ON joomla.* TO &#039;yourusername&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;yourpassword&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Activate the settings and quit : [ there will be a mysql&amp;gt; prompt:&lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 \q&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After disconnecting from the database server, you should remove the login information of your just new created MySQL user by editing MySQL&#039;s history file.&lt;br /&gt;
 vi ~/.mysql_history&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can use any editor of your choice such as &#039;&#039;&#039;nano&#039;&#039;&#039;, &#039;&#039;&#039;vi&#039;&#039;&#039; or &#039;&#039;&#039;emacs&#039;&#039;&#039; that is installed on your system.&lt;br /&gt;
&lt;br /&gt;
=== Get Joomla! source ===&lt;br /&gt;
Now it is time to download the Joomla! sources. Currently you will find download links on the [http://joomlacode.org/download.html joomlacode.org] download page. For version 1.5.11, you may do the following from command line, assuming your current working directory is your home folder &#039;&#039;&#039;/home/user&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ wget http://joomlacode.org/gf/download/frsrelease/10209/40306/Joomla_1.5.11-Stable-Full_Package.tar.bz2&lt;br /&gt;
$ cd /var/www&lt;br /&gt;
$ su&lt;br /&gt;
# mkdir -m 0755 joomla&lt;br /&gt;
# cd joomla&lt;br /&gt;
# tar -xvjf /home/user/Joomla_1.5.11-Stable-Full_Package.tar.bz2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for 1.7 use this wget line:&lt;br /&gt;
 wget http://joomlacode.org/gf/download/frsrelease/15278/66553/Joomla_1.7.0-Stable-Full_Package.tar.bz2&lt;br /&gt;
You may want to check http://joomlacode.org/gf/project/joomla/frs/ for an updated package. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is the first time we see this hash mark (#) shell prompt. We call &#039;&#039;&#039;su&#039;&#039;&#039; without any options, because we want to issue root commands more than only one time. Calling &#039;&#039;&#039;su&#039;&#039;&#039; that way will prompt us for the super user&#039;s password and then change the actual shell environment, repectively $UID and $EUID.&lt;br /&gt;
&lt;br /&gt;
=== Set ownerships and permissions  ===&lt;br /&gt;
If you want to allow writing in the entire joomla folder, simply do&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chown -R www-data:www-data /var/www/joomla&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want a more restrictive approach, do this instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R root:root /var/www/joomla&lt;br /&gt;
cd /var/www/joomla&lt;br /&gt;
PLACES=&#039;&lt;br /&gt;
administrator/backups&lt;br /&gt;
administrator/components&lt;br /&gt;
administrator/modules&lt;br /&gt;
administrator/templates&lt;br /&gt;
cache&lt;br /&gt;
components&lt;br /&gt;
images&lt;br /&gt;
images/banners&lt;br /&gt;
images/stories&lt;br /&gt;
language&lt;br /&gt;
mambots&lt;br /&gt;
mambots/content&lt;br /&gt;
mambots/editors&lt;br /&gt;
mambots/editors-xtd&lt;br /&gt;
mambots/search&lt;br /&gt;
media&lt;br /&gt;
modules&lt;br /&gt;
templates&lt;br /&gt;
&#039;&lt;br /&gt;
for i in $PLACES; do chown -R www-data:www-data $i; done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now set file and directory permissions:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
find /var/www/joomla -type f -exec chmod 0644 {} \;&lt;br /&gt;
find /var/www/joomla -type d -exec chmod 0755 {} \;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure Joomla! ===&lt;br /&gt;
Open your favourite web-browser, and point it to the page http://localhost/joomla. Replace &#039;&#039;localhost&#039;&#039; with your servers IP or domain name if it you are installing on a remote system.&lt;br /&gt;
&lt;br /&gt;
You will be guided through the final steps of setting up Joomla!, have your MySQL user, password and database name available.&lt;br /&gt;
&lt;br /&gt;
When you reach the final screen with congratulations on installing Joomla!, you should remove the installation directory. From root terminal:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# rm -rf /var/www/joomla/installation/&lt;br /&gt;
# exit&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And that&#039;s it! Now you can login into the admin interface of your fresh installed Joomla! 1.5.9.&lt;br /&gt;
&lt;br /&gt;
== BitNami Joomla! stack ==&lt;br /&gt;
&lt;br /&gt;
=== What is BitNami Joomla! Stack? ===&lt;br /&gt;
BitNami Joomla! Stack is an all-in-one installer that makes it easy to install Joomla on your computer. It is free, easy to use and self-contained. That means it bundles and automatically configures every piece of software (dependency) necessary to run Joomla for development or production purposes, including Apache, MySQL and PHP.&lt;br /&gt;
You can download the latest version of BitNami Joomla! stack for Windows, Linux and OS X at http://bitnami.org/stack/joomla.&lt;br /&gt;
&lt;br /&gt;
=== Installing Joomla! Stack ===&lt;br /&gt;
Regardless of which operating system you are running (Windows / Linux / Mac), the install process is the same.&lt;br /&gt;
&lt;br /&gt;
Download the latest version of Joomla! Stack from the [http://bitnami.org/stack/joomla BitNami website].&lt;br /&gt;
&lt;br /&gt;
Find the installer you just downloaded (the filename will be similar to bitnami-joomla-VERSION-linux-installer.run. Double click on the icon to launch the installer.&lt;br /&gt;
&lt;br /&gt;
 Note: If you are using Linux you will have to give executable permissions to the file first, using this command:&lt;br /&gt;
 chmod +x /path/to/bitnami-joomla-VERSION-linux-installer.run&lt;br /&gt;
&lt;br /&gt;
[[File:Joomla_welcome.png]]&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Forward&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Joomla_components.png]]&lt;br /&gt;
&lt;br /&gt;
Select the components you want to install. If you are not sure, leave the default components checked. Click &amp;quot;Forward&amp;quot; when you are done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Joomla_directory.png]]&lt;br /&gt;
&lt;br /&gt;
Now it will ask where do you want to install the program. Provide the location where you want to install the BitNami Joomla! stack and click &amp;quot;Forward&amp;quot; when you are done. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Joomla_userdata.png]]&lt;br /&gt;
&lt;br /&gt;
The user and password you provide here will be used to create the admin account in Joomla! Click &amp;quot;Forward&amp;quot; when you are done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Joomla_sitename.png]]&lt;br /&gt;
&lt;br /&gt;
Type in the name you want to use for your Joomla site, and click &amp;quot;Forward&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:JoomlaReadytoinstall.png]]&lt;br /&gt;
&lt;br /&gt;
The installer is now ready to begin the installation process. Click &amp;quot;Forward&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:JoomlaCopyingfiles.png]]&lt;br /&gt;
&lt;br /&gt;
Wait a minute while the installer copies the files and configures your Joomla! installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Joomlafinalscreen.png]]&lt;br /&gt;
&lt;br /&gt;
Joomla! is now set up and ready to be used. Click &amp;quot;Finish&amp;quot; to launch the application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Joomlaapplicationscreen.png]]&lt;br /&gt;
&lt;br /&gt;
You can now log in using the username and password you provided during the installation.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Installation]][[Category:Server setup local]][[Category:Server configurations]]&amp;lt;noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_simple_module/Developing_a_Basic_Module&amp;diff=697022</id>
		<title>J3.x:Creating a simple module/Developing a Basic Module</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_simple_module/Developing_a_Basic_Module&amp;diff=697022"/>
		<updated>2020-07-17T14:45:36Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: Added a note about using the zip format for modules&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{J3.x:Creating_a_simple_module/&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
en&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Modules are lightweight and flexible extensions. They are used for small bits of the page that are generally less complex and are able to be seen across different components.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
You can see many examples of modules in the standard Joomla! install: - menus - Latest News - Login form - and many more.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
This tutorial will explain how to go about creating a simple Hello World module. Through this tutorial you will learn the basic file structure of a module. This basic structure can then be expanded to produce more elaborate modules.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== File Structure == &amp;lt;!--T:5--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
There are four basic files that are used in the standard pattern of module development:&amp;lt;/translate&amp;gt; &lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mod_helloworld.php&amp;lt;/code&amp;gt; - This file is the main entry point for the module. It will perform any necessary initialization routines, call helper routines to collect any necessary data, and include the template which will display the module output.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;mod_helloworld.xml&amp;lt;/code&amp;gt; - This file contains information about the module. It defines the files that need to be installed by the Joomla! installer and specifies configuration parameters for the module.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;helper.php&amp;lt;/code&amp;gt; - This file contains the helper class which is used to do the actual work in retrieving the information to be displayed in the module (usually from the database or some other source).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;tmpl/default.php&amp;lt;/code&amp;gt; - This is the module template. This file will take the data collected by mod_helloworld.php and generate the HTML to be displayed on the page.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Creating mod_helloworld.php == &amp;lt;!--T:11--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;mod_helloworld.php&amp;lt;/tt&amp;gt; file will perform three tasks:&lt;br /&gt;
* include the helper.php file which contains the class to be used to collect the necessary data&lt;br /&gt;
* invoke the appropriate helper class method to retrieve the data&lt;br /&gt;
* include the template to display the output&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
The helper class is defined in our helper.php file. This file is included with a require_once statement:&amp;lt;/translate&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;require_once dirname(__FILE__) . &#039;/helper.php&#039;;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;require_once&amp;lt;/code&amp;gt; is used because our helper functions are defined within a class, and we only want the class defined once.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
Our helper class has not been defined yet, but when it is, it will contain one method: getHello(). For our basic example, it is not really necessary to do this—the “Hello, World” message that this method returns could simply be included in the template. We use a helper class here to demonstrate this basic technique.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
Our module currently does not use any parameters, but we will pass them to the helper method anyway so that it can be used later if we decide to expand the functionality of our module.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
The helper class method is invoked in the following way:&amp;lt;/translate&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$hello = modHelloWorldHelper::getHello($params);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;=== Completed mod_helloworld.php file === &amp;lt;!--T:18--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
The complete &amp;lt;tt&amp;gt;mod_helloworld.php&amp;lt;/tt&amp;gt; file is as follows:&amp;lt;/translate&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Hello World! Module Entry Point&lt;br /&gt;
 * &lt;br /&gt;
 * @package    Joomla.Tutorials&lt;br /&gt;
 * @subpackage Modules&lt;br /&gt;
 * @license    GNU/GPL, see LICENSE.php&lt;br /&gt;
 * @link       http://docs.joomla.org/J3.x:Creating_a_simple_module/Developing_a_Basic_Module&lt;br /&gt;
 * mod_helloworld is free software. This version may have been modified pursuant&lt;br /&gt;
 * to the GNU General Public License, and as distributed it includes or&lt;br /&gt;
 * is derivative of works licensed under the GNU General Public License or&lt;br /&gt;
 * other free or open source software licenses.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// No direct access&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die;&lt;br /&gt;
// Include the syndicate functions only once&lt;br /&gt;
require_once dirname(__FILE__) . &#039;/helper.php&#039;;&lt;br /&gt;
&lt;br /&gt;
$hello = modHelloWorldHelper::getHello($params);&lt;br /&gt;
require JModuleHelper::getLayoutPath(&#039;mod_helloworld&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
The one line that we haven’t explained so far is the &amp;lt;tt&amp;gt;defined(&#039;_JEXEC&#039;) or die;&amp;lt;/tt&amp;gt; line. This line ensures that this file is being invoked from the Joomla! application. This is necessary to prevent variable injection and other security vulnerabilities.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Creating helper.php == &amp;lt;!--T:21--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;helper.php&amp;lt;/tt&amp;gt; file contains the helper class that is used to retrieve the data to be displayed in the module output. As stated earlier, our helper class will have one method: getHello(). This method will return the ‘Hello, World’ message.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
Here is the code for the helper.php file:&amp;lt;/translate&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Helper class for Hello World! module&lt;br /&gt;
 * &lt;br /&gt;
 * @package    Joomla.Tutorials&lt;br /&gt;
 * @subpackage Modules&lt;br /&gt;
 * @link http://docs.joomla.org/J3.x:Creating_a_simple_module/Developing_a_Basic_Module&lt;br /&gt;
 * @license        GNU/GPL, see LICENSE.php&lt;br /&gt;
 * mod_helloworld is free software. This version may have been modified pursuant&lt;br /&gt;
 * to the GNU General Public License, and as distributed it includes or&lt;br /&gt;
 * is derivative of works licensed under the GNU General Public License or&lt;br /&gt;
 * other free or open source software licenses.&lt;br /&gt;
 */&lt;br /&gt;
class ModHelloWorldHelper&lt;br /&gt;
{&lt;br /&gt;
    /**&lt;br /&gt;
     * Retrieves the hello message&lt;br /&gt;
     *&lt;br /&gt;
     * @param   array  $params An object containing the module parameters&lt;br /&gt;
     *&lt;br /&gt;
     * @access public&lt;br /&gt;
     */    &lt;br /&gt;
    public static function getHello($params)&lt;br /&gt;
    {&lt;br /&gt;
        return &#039;Hello, World!&#039;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
There is no rule stating that we must name our helper class as we have, but it is helpful to do this so that can be easily identified and located. Note that it is required to be in this format if you plan to use the com_ajax component.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
More advanced modules might include database requests or other functionality in the helper class method.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Creating tmpl/default.php == &amp;lt;!--T:26--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;default.php&amp;lt;/tt&amp;gt; file is the template which displays the module output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
The code for the default.php file is as follows:&amp;lt;/translate&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
// No direct access&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die; ?&amp;gt;&lt;br /&gt;
&amp;lt;?php echo $hello; ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
An important point to note is that the template file has the same scope as the mod_helloworld.php file. What this means is that the variable $hello can be defined in the mod_helloworld.php file and then used in the template file without any extra declarations or function calls.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Creating mod_helloworld.xml == &amp;lt;!--T:30--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;mod_helloworld.xml&amp;lt;/tt&amp;gt; is used to specify which files the installer needs to copy and is used by the Module Manager to determine which parameters are used to configure the module. Other information about the module is also specified in this file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
The code for &amp;lt;tt&amp;gt;mod_helloworld.xml&amp;lt;/tt&amp;gt; is as follows:&amp;lt;/translate&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;module&amp;quot; version=&amp;quot;3.1.0&amp;quot; client=&amp;quot;site&amp;quot; method=&amp;quot;upgrade&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Hello, World!&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;author&amp;gt;John Doe&amp;lt;/author&amp;gt;&lt;br /&gt;
    &amp;lt;version&amp;gt;1.0.0&amp;lt;/version&amp;gt;&lt;br /&gt;
    &amp;lt;description&amp;gt;A simple Hello, World! module.&amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;mod_helloworld.xml&amp;lt;/filename&amp;gt;&lt;br /&gt;
        &amp;lt;filename module=&amp;quot;mod_helloworld&amp;quot;&amp;gt;mod_helloworld.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;helper.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;tmpl/default.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;tmpl/index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
    &amp;lt;config&amp;gt;&lt;br /&gt;
    &amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
[[S:MyLanguage/Manifest files|Manifest files]] explains the technical details of the elements used in the XML file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
You will notice that there are two additional files that we have not yet mentioned: index.html and tmpl/index.html. These files are included so that these directories cannot be browsed. If a user attempts to point their browser to these folders, the index.html file will be displayed. These files can be left empty or can contain the simple line:&amp;lt;/translate&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;html&amp;gt;&amp;lt;body bgcolor=&amp;quot;#FFFFFF&amp;quot;&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
which will display an empty page.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
Since our module does not use any [[S:MyLanguage/Form_field|form fields]], the config section is empty.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Installing and Viewing the Module == &amp;lt;!--T:42--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
To install the module, zip up the parent directory of your source files, to create a file called &amp;lt;tt&amp;gt;mod_helloworld.zip&amp;lt;/tt&amp;gt;. Note that it needs to be a .zip file because the server needs to be able to extract it using Apache&#039;s mod_zlib library.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
Go into Joomla admin, to the Extensions / Manage / Install form, click on the Update Package File tab, and upload your zip file. You should find that the module installs ok. If it doesn&#039;t, then compare carefully your code with the code above, and ensure your source code files are named correctly.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
To make the module visible on your site web pages go into the Extensions / Modules listing and click on the Hello World module to edit it. &lt;br /&gt;
# set the Status to Published&lt;br /&gt;
# select the Position where the module should appear (if you&#039;re unsure about which Position to set, then navigate to Extensions / Templates / Styles, check which template is assigned on your web pages, then follow [[S:MyLanguage/Finding module positions on any given page|this guide]] to finding the module positions).&lt;br /&gt;
# on the Menu Assignment tab set the Module Assignment to &amp;quot;On all pages&amp;quot;&lt;br /&gt;
Save and Close your edit form.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
Now if you navigate to your site you should see &amp;quot;Hello, World!&amp;quot; displayed in your chosen module position. &amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Conclusion == &amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
Module development for Joomla! is a fairly simple, straightforward process. Using the techniques described in this tutorial, an endless variety of modules can be developed with little hassle.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 columns&amp;quot;&amp;gt;{{Basic button|&amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
S:MyLanguage/J3.x:Creating_a_simple_module/Introduction|Prev: Introduction&amp;lt;/translate&amp;gt;|class=expand success}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 columns&amp;quot;&amp;gt;{{Basic button|&amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
S:MyLanguage/J3.x:Creating_a_simple_module/Using_the_Database|Next: Using the Database&amp;lt;/translate&amp;gt;|class=expand}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Tutorials in a Series]]&lt;br /&gt;
[[Category:Module Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Joomla! 3.x]]&lt;br /&gt;
[[Category:Joomla! 3.0]]&lt;br /&gt;
[[Category:Joomla! 3.1]]&lt;br /&gt;
[[Category:Joomla! 3.2]]&lt;br /&gt;
[[Category:Joomla! 3.3]]&lt;br /&gt;
[[Category:Joomla! 3.4]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Joomla!_Forum_FAQs&amp;diff=652811</id>
		<title>Joomla! Forum FAQs</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Joomla!_Forum_FAQs&amp;diff=652811"/>
		<updated>2020-03-31T07:41:43Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{review}}&lt;br /&gt;
===What forum is used at joomla.org?===&lt;br /&gt;
&lt;br /&gt;
We are currently using the forum software, phpBB3. phpBB is located here: http://www.phpbb.com/&lt;br /&gt;
&lt;br /&gt;
===How is the forum at joomla.org integrated with Joomla!?===&lt;br /&gt;
The forum is not bridged with Joomla! in any way. The forum uses a customized theme that matches the rest of the joomla.org sites.&lt;br /&gt;
&lt;br /&gt;
===What are the rules of the joomla.org forums?===&lt;br /&gt;
You can read the current forum rules here: http://forum.joomla.org/viewtopic.php?f=8&amp;amp;t=65&lt;br /&gt;
&lt;br /&gt;
===How do you empty your PM-box on the forum?===&lt;br /&gt;
&lt;br /&gt;
Problem&lt;br /&gt;
Your PM-box is full and nobody can send you anymore messages. How to solve this?&lt;br /&gt;
&lt;br /&gt;
Solution&lt;br /&gt;
go to your messages and &amp;quot;check&amp;quot; the box and click delete for those you want to delete.&lt;br /&gt;
&lt;br /&gt;
Note: READ them first before you delete them!&lt;br /&gt;
&lt;br /&gt;
===How do I search the forum to find what I need?===&lt;br /&gt;
&lt;br /&gt;
The forum search is somewhat tricky. Here are some tips for effective searching:&lt;br /&gt;
&lt;br /&gt;
#Searches are case sensitive, so try upper and lower case. For example, xml and XML will give different results.&lt;br /&gt;
#Searches are for whole words, so for example error and errors will give different results.The forums are spidered by external search engines so you may be more successful using one of these.&lt;br /&gt;
#Advanced search will let you search with more parameters.&lt;br /&gt;
&lt;br /&gt;
===How can I ask for help?===&lt;br /&gt;
Describe your problem. Describe the things that you tried. Give all the necessary information about your server environment, your Joomla set-up and all installed non-core extensions. The [https://forumpostassistant.github.io/docs/| Forum Post Assistant] is an excellent tool to give all that information.&lt;br /&gt;
&lt;br /&gt;
When your issue has been solved, please reply to your topic about your solution so that your topic can be useful for other users with the same issue. And a &amp;quot;thank you&amp;quot; will motivate the people who helped you, to continue to help others.&lt;br /&gt;
&lt;br /&gt;
===What are the stars/ranks under the forum username represent?===&lt;br /&gt;
The stars and ranks are based upon the number of posts a user has. See this page for more details:[[Explain 5 Star Rating System For Forum Posters]].&lt;br /&gt;
&lt;br /&gt;
===Why are there different colors of usernames?===&lt;br /&gt;
The different colors of the usernames are used to differentiate between the different working groups of Joomla!. See this page for more details:[[Explain 5 Star Rating System For Forum Posters]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:FAQ]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events&amp;diff=613083</id>
		<title>Plugin/Events</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events&amp;diff=613083"/>
		<updated>2019-05-12T15:51:27Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: Added Sampledata Plugin Events&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Joomla! ships with a variety of core events, organised into groups.  These are described in the following topics.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Actionlog ===&lt;br /&gt;
* [[Plugin/Events/Actionlog#onContentAfterSave|onContentAfterSave]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onContentAfterDelete|onContentAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onContentChangeState|onContentChangeState]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onApplicationAfterSave|onApplicationAfterSave]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onExtensionAfterInstall|onExtensionAfterInstall]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onExtensionAfterUninstall|onExtensionAfterUninstall]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onExtensionAfterUpdate|onExtensionAfterUpdate]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onExtensionAfterSave|onExtensionAfterSave]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onExtensionAfterDelete|onExtensionAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterSave|onUserAfterSave]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterDelete|onUserAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterSaveGroup|onUserAfterSaveGroup]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterDeleteGroup|onUserAfterDeleteGroup]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterLogin|onUserAfterLogin]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserLoginFailure|onUserLoginFailure]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserLogout|onUserLogout]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterRemind|onUserAfterRemind]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onAfterCheckin|onAfterCheckin]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onAfterLogPurge|onAfterLogPurge]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onAfterLogExport|onAfterLogExport]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onAfterPurge|onAfterPurge]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Authentication === &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Authentication#onUserAuthenticate|onUserAuthenticate]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Captcha === &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Captcha#onInit|onInit]]&lt;br /&gt;
* [[Plugin/Events/Captcha#onDisplay|onDisplay]]&lt;br /&gt;
* [[Plugin/Events/Captcha#onCheckAnswer|onCheckAnswer]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Content === &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Content#onContentPrepare|onContentPrepare]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentAfterTitle|onContentAfterTitle]] ({{JVer|3.x}} only)&lt;br /&gt;
* [[Plugin/Events/Content#onContentBeforeDisplay|onContentBeforeDisplay]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentAfterDisplay|onContentAfterDisplay]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentBeforeSave|onContentBeforeSave]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentAfterSave|onContentAfterSave]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentPrepareForm|onContentPrepareForm]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentPrepareData|onContentPrepareData]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentBeforeDelete|onContentBeforeDelete]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentAfterDelete|onContentAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentChangeState|onContentChangeState]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentSearch|onContentSearch]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentSearchAreas|onContentSearchAreas]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Editors === &amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Editor#onInit|onInit]]&lt;br /&gt;
* [[Plugin/Events/Editor#onSave|onSave]]&lt;br /&gt;
* [[Plugin/Events/Editor#onSetContent|onSetContent]]&lt;br /&gt;
* [[Plugin/Events/Editor#onDisplay|onDisplay]]&lt;br /&gt;
* [[Plugin/Events/Editor#onGetContent|onGetContent]]&lt;br /&gt;
* [[Plugin/Events/Editor#onGetInsertMethod|onGetInsertMethod]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Extensions === &amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Extension#onExtensionAfterInstall|onExtensionAfterInstall]]&lt;br /&gt;
* [[Plugin/Events/Extension#onExtensionAfterUninstall|onExtensionAfterUninstall]]&lt;br /&gt;
* [[Plugin/Events/Extension#onExtensionAfterUpdate|onExtensionAfterUpdate]]&lt;br /&gt;
* [[Plugin/Events/Extension#onExtensionAfterUpdate|onExtensionBeforeSave]]&lt;br /&gt;
* [[Plugin/Events/Extension#onExtensionAfterUpdate|onExtensionAfterSave]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Finder === &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderCategoryChangeState|onFinderCategoryChangeState]]&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderChangeState|onFinderChangeState]]&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderBeforeDelete|onFinderAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderAfterDelete|onFinderAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderBeforeSave|onFinderBeforeSave]]&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderAfterSave|onFinderAfterSave]]&lt;br /&gt;
&lt;br /&gt;
=== Privacy ===&lt;br /&gt;
* [[Plugin/Events/Privacy#onPrivacyCanRemoveData|onPrivacyCanRemoveData]]&lt;br /&gt;
* [[Plugin/Events/Privacy#onPrivacyExportRequest|onPrivacyExportRequest]]&lt;br /&gt;
* [[Plugin/Events/Privacy#onPrivacyRemoveData|onPrivacyRemoveData]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Quick Icons === &amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Quickicon#onGetIcons|onGetIcons]]&lt;br /&gt;
&lt;br /&gt;
=== Sampledata === &lt;br /&gt;
* [[Plugin/Events/Privacy#onSampledataGetOverview|onSampledataGetOverview]]&lt;br /&gt;
* [[Plugin/Events/Privacy#onAjaxSampledataApplyStep1|onAjaxSampledataApplyStep1]]&lt;br /&gt;
* [[Plugin/Events/Privacy#onAjaxSampledataApplyStep2|onAjaxSampledataApplyStep2]]&lt;br /&gt;
* [[Plugin/Events/Privacy#onAjaxSampledataApplyStep3|onAjaxSampledataApplyStep3]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== System === &amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/System#onAfterInitialise|onAfterInitialise]]&lt;br /&gt;
* [[Plugin/Events/System#onAfterRoute|onAfterRoute]]&lt;br /&gt;
* [[Plugin/Events/System#onAfterDispatch|onAfterDispatch]]&lt;br /&gt;
* [[Plugin/Events/System#onAfterRender|onAfterRender]]&lt;br /&gt;
* [[Plugin/Events/System#onBeforeRender|onBeforeRender]]&lt;br /&gt;
* [[Plugin/Events/System#onBeforeCompileHead|onBeforeCompileHead]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== User === &amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/User#onUserAuthorisation|onUserAuthorisation]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAuthorisationFailure|onUserAuthorisationFailure]]&lt;br /&gt;
* [[Plugin/Events/User#onUserBeforeSave|onUserBeforeSave]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAfterSave|onUserAfterSave]]&lt;br /&gt;
* [[Plugin/Events/User#onUserBeforeDelete|onUserBeforeDelete]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAfterDelete|onUserAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/User#onUserLogin|onUserLogin]]&lt;br /&gt;
* [[Plugin/Events/User#onUserLoginFailure|onUserLoginFailure]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAfterLogin|onUserAfterLogin]]&lt;br /&gt;
* [[Plugin/Events/User#onUserLogout|onUserLogout]]&lt;br /&gt;
* [[Plugin/Events/User#onUserBeforeSaveGroup|onUserBeforeSaveGroup]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAfterSaveGroup|onUserAfterSaveGroup]]&lt;br /&gt;
* [[Plugin/Events/User#onUserBeforeDeleteGroup|onUserBeforeDeleteGroup]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAfterDeleteGroup|onUserAfterDeleteGroup]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Other Core Component Events === &amp;lt;!--T:2--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Contact Component ==== &amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Contact#onValidateContact|onValidateContact]]&lt;br /&gt;
* [[Plugin/Events/Contact#onSubmitContact|onSubmitContact]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Installer Component ==== &amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Install#onInstallerBeforeInstallation|onInstallerBeforeInstallation]]&lt;br /&gt;
* [[Plugin/Events/Install#onInstallerBeforeInstaller|onInstallerBeforeInstaller]]&lt;br /&gt;
* [[Plugin/Events/Install#onInstallerAfterInstaller|onInstallerAfterInstaller]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Menu Component ==== &amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Menu#onAfterGetMenuTypeOptions|onAfterGetMenuTypeOptions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Module ==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Module#onRenderModule|onRenderModule]]&lt;br /&gt;
* [[Plugin/Events/Module#onAfterRenderModule|onAfterRenderModule]]&lt;br /&gt;
* [[Plugin/Events/Module#onPrepareModuleList|onPrepareModuleList]]&lt;br /&gt;
* [[Plugin/Events/Module#onAfterModuleList|onAfterModuleList]]&lt;br /&gt;
* [[Plugin/Events/Module#onAfterCleanModuleList|onAfterCleanModuleList]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
[[Category:Plugin Development|Events]]&lt;br /&gt;
[[Category:Specifications]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events&amp;diff=613082</id>
		<title>Plugin/Events</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events&amp;diff=613082"/>
		<updated>2019-05-12T15:41:00Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: /* Actionlog */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Joomla! ships with a variety of core events, organised into groups.  These are described in the following topics.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Actionlog ===&lt;br /&gt;
* [[Plugin/Events/Actionlog#onContentAfterSave|onContentAfterSave]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onContentAfterDelete|onContentAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onContentChangeState|onContentChangeState]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onApplicationAfterSave|onApplicationAfterSave]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onExtensionAfterInstall|onExtensionAfterInstall]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onExtensionAfterUninstall|onExtensionAfterUninstall]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onExtensionAfterUpdate|onExtensionAfterUpdate]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onExtensionAfterSave|onExtensionAfterSave]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onExtensionAfterDelete|onExtensionAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterSave|onUserAfterSave]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterDelete|onUserAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterSaveGroup|onUserAfterSaveGroup]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterDeleteGroup|onUserAfterDeleteGroup]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterLogin|onUserAfterLogin]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserLoginFailure|onUserLoginFailure]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserLogout|onUserLogout]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterRemind|onUserAfterRemind]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onAfterCheckin|onAfterCheckin]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onAfterLogPurge|onAfterLogPurge]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onAfterLogExport|onAfterLogExport]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onAfterPurge|onAfterPurge]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Authentication === &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Authentication#onUserAuthenticate|onUserAuthenticate]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Captcha === &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Captcha#onInit|onInit]]&lt;br /&gt;
* [[Plugin/Events/Captcha#onDisplay|onDisplay]]&lt;br /&gt;
* [[Plugin/Events/Captcha#onCheckAnswer|onCheckAnswer]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Content === &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Content#onContentPrepare|onContentPrepare]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentAfterTitle|onContentAfterTitle]] ({{JVer|3.x}} only)&lt;br /&gt;
* [[Plugin/Events/Content#onContentBeforeDisplay|onContentBeforeDisplay]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentAfterDisplay|onContentAfterDisplay]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentBeforeSave|onContentBeforeSave]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentAfterSave|onContentAfterSave]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentPrepareForm|onContentPrepareForm]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentPrepareData|onContentPrepareData]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentBeforeDelete|onContentBeforeDelete]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentAfterDelete|onContentAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentChangeState|onContentChangeState]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentSearch|onContentSearch]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentSearchAreas|onContentSearchAreas]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Editors === &amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Editor#onInit|onInit]]&lt;br /&gt;
* [[Plugin/Events/Editor#onSave|onSave]]&lt;br /&gt;
* [[Plugin/Events/Editor#onSetContent|onSetContent]]&lt;br /&gt;
* [[Plugin/Events/Editor#onDisplay|onDisplay]]&lt;br /&gt;
* [[Plugin/Events/Editor#onGetContent|onGetContent]]&lt;br /&gt;
* [[Plugin/Events/Editor#onGetInsertMethod|onGetInsertMethod]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Extensions === &amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Extension#onExtensionAfterInstall|onExtensionAfterInstall]]&lt;br /&gt;
* [[Plugin/Events/Extension#onExtensionAfterUninstall|onExtensionAfterUninstall]]&lt;br /&gt;
* [[Plugin/Events/Extension#onExtensionAfterUpdate|onExtensionAfterUpdate]]&lt;br /&gt;
* [[Plugin/Events/Extension#onExtensionAfterUpdate|onExtensionBeforeSave]]&lt;br /&gt;
* [[Plugin/Events/Extension#onExtensionAfterUpdate|onExtensionAfterSave]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Finder === &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderCategoryChangeState|onFinderCategoryChangeState]]&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderChangeState|onFinderChangeState]]&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderBeforeDelete|onFinderAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderAfterDelete|onFinderAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderBeforeSave|onFinderBeforeSave]]&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderAfterSave|onFinderAfterSave]]&lt;br /&gt;
&lt;br /&gt;
=== Privacy ===&lt;br /&gt;
* [[Plugin/Events/Privacy#onPrivacyCanRemoveData|onPrivacyCanRemoveData]]&lt;br /&gt;
* [[Plugin/Events/Privacy#onPrivacyExportRequest|onPrivacyExportRequest]]&lt;br /&gt;
* [[Plugin/Events/Privacy#onPrivacyRemoveData|onPrivacyRemoveData]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Quick Icons === &amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Quickicon#onGetIcons|onGetIcons]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== System === &amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/System#onAfterInitialise|onAfterInitialise]]&lt;br /&gt;
* [[Plugin/Events/System#onAfterRoute|onAfterRoute]]&lt;br /&gt;
* [[Plugin/Events/System#onAfterDispatch|onAfterDispatch]]&lt;br /&gt;
* [[Plugin/Events/System#onAfterRender|onAfterRender]]&lt;br /&gt;
* [[Plugin/Events/System#onBeforeRender|onBeforeRender]]&lt;br /&gt;
* [[Plugin/Events/System#onBeforeCompileHead|onBeforeCompileHead]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== User === &amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/User#onUserAuthorisation|onUserAuthorisation]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAuthorisationFailure|onUserAuthorisationFailure]]&lt;br /&gt;
* [[Plugin/Events/User#onUserBeforeSave|onUserBeforeSave]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAfterSave|onUserAfterSave]]&lt;br /&gt;
* [[Plugin/Events/User#onUserBeforeDelete|onUserBeforeDelete]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAfterDelete|onUserAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/User#onUserLogin|onUserLogin]]&lt;br /&gt;
* [[Plugin/Events/User#onUserLoginFailure|onUserLoginFailure]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAfterLogin|onUserAfterLogin]]&lt;br /&gt;
* [[Plugin/Events/User#onUserLogout|onUserLogout]]&lt;br /&gt;
* [[Plugin/Events/User#onUserBeforeSaveGroup|onUserBeforeSaveGroup]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAfterSaveGroup|onUserAfterSaveGroup]]&lt;br /&gt;
* [[Plugin/Events/User#onUserBeforeDeleteGroup|onUserBeforeDeleteGroup]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAfterDeleteGroup|onUserAfterDeleteGroup]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Other Core Component Events === &amp;lt;!--T:2--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Contact Component ==== &amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Contact#onValidateContact|onValidateContact]]&lt;br /&gt;
* [[Plugin/Events/Contact#onSubmitContact|onSubmitContact]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Installer Component ==== &amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Install#onInstallerBeforeInstallation|onInstallerBeforeInstallation]]&lt;br /&gt;
* [[Plugin/Events/Install#onInstallerBeforeInstaller|onInstallerBeforeInstaller]]&lt;br /&gt;
* [[Plugin/Events/Install#onInstallerAfterInstaller|onInstallerAfterInstaller]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Menu Component ==== &amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Menu#onAfterGetMenuTypeOptions|onAfterGetMenuTypeOptions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Module ==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Module#onRenderModule|onRenderModule]]&lt;br /&gt;
* [[Plugin/Events/Module#onAfterRenderModule|onAfterRenderModule]]&lt;br /&gt;
* [[Plugin/Events/Module#onPrepareModuleList|onPrepareModuleList]]&lt;br /&gt;
* [[Plugin/Events/Module#onAfterModuleList|onAfterModuleList]]&lt;br /&gt;
* [[Plugin/Events/Module#onAfterCleanModuleList|onAfterCleanModuleList]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
[[Category:Plugin Development|Events]]&lt;br /&gt;
[[Category:Specifications]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events&amp;diff=613081</id>
		<title>Plugin/Events</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events&amp;diff=613081"/>
		<updated>2019-05-12T15:40:04Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: Added Actionlog + Privacy PluginEvents&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Joomla! ships with a variety of core events, organised into groups.  These are described in the following topics.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Actionlog ===&lt;br /&gt;
* [[Plugin/Events/Actionlog#onContentAfterSave|onContentAfterSave]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onContentAfterDelete|onContentAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onContentChangeState|onContentChangeState]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onApplicationAfterSave|onApplicationAfterSave]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onExtensionAfterInstall|onExtensionAfterInstall]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onExtensionAfterUninstall|onExtensionAfterUninstall]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onExtensionAfterUpdate|onExtensionAfterUpdate]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onExtensionAfterSave|onExtensionAfterSave]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onExtensionAfterDelete|onExtensionAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterSave|onUserAfterSave]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterDelete|onUserAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterSaveGroup|onUserAfterSaveGroup]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterDeleteGroup(|onUserAfterDeleteGroup(]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterLogin|onUserAfterLogin]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserLoginFailure|onUserLoginFailure]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserLogout|onUserLogout]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onUserAfterRemind|onUserAfterRemind]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onAfterCheckin|onAfterCheckin]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onAfterLogPurge|onAfterLogPurge]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onAfterLogExport|onAfterLogExport]]&lt;br /&gt;
* [[Plugin/Events/Actionlog#onAfterPurge|onAfterPurge]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Authentication === &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Authentication#onUserAuthenticate|onUserAuthenticate]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Captcha === &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Captcha#onInit|onInit]]&lt;br /&gt;
* [[Plugin/Events/Captcha#onDisplay|onDisplay]]&lt;br /&gt;
* [[Plugin/Events/Captcha#onCheckAnswer|onCheckAnswer]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Content === &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Content#onContentPrepare|onContentPrepare]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentAfterTitle|onContentAfterTitle]] ({{JVer|3.x}} only)&lt;br /&gt;
* [[Plugin/Events/Content#onContentBeforeDisplay|onContentBeforeDisplay]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentAfterDisplay|onContentAfterDisplay]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentBeforeSave|onContentBeforeSave]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentAfterSave|onContentAfterSave]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentPrepareForm|onContentPrepareForm]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentPrepareData|onContentPrepareData]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentBeforeDelete|onContentBeforeDelete]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentAfterDelete|onContentAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentChangeState|onContentChangeState]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentSearch|onContentSearch]]&lt;br /&gt;
* [[Plugin/Events/Content#onContentSearchAreas|onContentSearchAreas]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Editors === &amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Editor#onInit|onInit]]&lt;br /&gt;
* [[Plugin/Events/Editor#onSave|onSave]]&lt;br /&gt;
* [[Plugin/Events/Editor#onSetContent|onSetContent]]&lt;br /&gt;
* [[Plugin/Events/Editor#onDisplay|onDisplay]]&lt;br /&gt;
* [[Plugin/Events/Editor#onGetContent|onGetContent]]&lt;br /&gt;
* [[Plugin/Events/Editor#onGetInsertMethod|onGetInsertMethod]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Extensions === &amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Extension#onExtensionAfterInstall|onExtensionAfterInstall]]&lt;br /&gt;
* [[Plugin/Events/Extension#onExtensionAfterUninstall|onExtensionAfterUninstall]]&lt;br /&gt;
* [[Plugin/Events/Extension#onExtensionAfterUpdate|onExtensionAfterUpdate]]&lt;br /&gt;
* [[Plugin/Events/Extension#onExtensionAfterUpdate|onExtensionBeforeSave]]&lt;br /&gt;
* [[Plugin/Events/Extension#onExtensionAfterUpdate|onExtensionAfterSave]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Finder === &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderCategoryChangeState|onFinderCategoryChangeState]]&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderChangeState|onFinderChangeState]]&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderBeforeDelete|onFinderAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderAfterDelete|onFinderAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderBeforeSave|onFinderBeforeSave]]&lt;br /&gt;
* [[Plugin/Events/Finder#onFinderAfterSave|onFinderAfterSave]]&lt;br /&gt;
&lt;br /&gt;
=== Privacy ===&lt;br /&gt;
* [[Plugin/Events/Privacy#onPrivacyCanRemoveData|onPrivacyCanRemoveData]]&lt;br /&gt;
* [[Plugin/Events/Privacy#onPrivacyExportRequest|onPrivacyExportRequest]]&lt;br /&gt;
* [[Plugin/Events/Privacy#onPrivacyRemoveData|onPrivacyRemoveData]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Quick Icons === &amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Quickicon#onGetIcons|onGetIcons]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== System === &amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/System#onAfterInitialise|onAfterInitialise]]&lt;br /&gt;
* [[Plugin/Events/System#onAfterRoute|onAfterRoute]]&lt;br /&gt;
* [[Plugin/Events/System#onAfterDispatch|onAfterDispatch]]&lt;br /&gt;
* [[Plugin/Events/System#onAfterRender|onAfterRender]]&lt;br /&gt;
* [[Plugin/Events/System#onBeforeRender|onBeforeRender]]&lt;br /&gt;
* [[Plugin/Events/System#onBeforeCompileHead|onBeforeCompileHead]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== User === &amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/User#onUserAuthorisation|onUserAuthorisation]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAuthorisationFailure|onUserAuthorisationFailure]]&lt;br /&gt;
* [[Plugin/Events/User#onUserBeforeSave|onUserBeforeSave]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAfterSave|onUserAfterSave]]&lt;br /&gt;
* [[Plugin/Events/User#onUserBeforeDelete|onUserBeforeDelete]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAfterDelete|onUserAfterDelete]]&lt;br /&gt;
* [[Plugin/Events/User#onUserLogin|onUserLogin]]&lt;br /&gt;
* [[Plugin/Events/User#onUserLoginFailure|onUserLoginFailure]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAfterLogin|onUserAfterLogin]]&lt;br /&gt;
* [[Plugin/Events/User#onUserLogout|onUserLogout]]&lt;br /&gt;
* [[Plugin/Events/User#onUserBeforeSaveGroup|onUserBeforeSaveGroup]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAfterSaveGroup|onUserAfterSaveGroup]]&lt;br /&gt;
* [[Plugin/Events/User#onUserBeforeDeleteGroup|onUserBeforeDeleteGroup]]&lt;br /&gt;
* [[Plugin/Events/User#onUserAfterDeleteGroup|onUserAfterDeleteGroup]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Other Core Component Events === &amp;lt;!--T:2--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Contact Component ==== &amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Contact#onValidateContact|onValidateContact]]&lt;br /&gt;
* [[Plugin/Events/Contact#onSubmitContact|onSubmitContact]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Installer Component ==== &amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Install#onInstallerBeforeInstallation|onInstallerBeforeInstallation]]&lt;br /&gt;
* [[Plugin/Events/Install#onInstallerBeforeInstaller|onInstallerBeforeInstaller]]&lt;br /&gt;
* [[Plugin/Events/Install#onInstallerAfterInstaller|onInstallerAfterInstaller]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Menu Component ==== &amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Menu#onAfterGetMenuTypeOptions|onAfterGetMenuTypeOptions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Module ==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Plugin/Events/Module#onRenderModule|onRenderModule]]&lt;br /&gt;
* [[Plugin/Events/Module#onAfterRenderModule|onAfterRenderModule]]&lt;br /&gt;
* [[Plugin/Events/Module#onPrepareModuleList|onPrepareModuleList]]&lt;br /&gt;
* [[Plugin/Events/Module#onAfterModuleList|onAfterModuleList]]&lt;br /&gt;
* [[Plugin/Events/Module#onAfterCleanModuleList|onAfterCleanModuleList]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
[[Category:Plugin Development|Events]]&lt;br /&gt;
[[Category:Specifications]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File_form_field_type&amp;diff=595024</id>
		<title>File form field type</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File_form_field_type&amp;diff=595024"/>
		<updated>2019-03-02T16:47:00Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
Provides an input field for files&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; (mandatory) must be &#039;&#039;file&#039;&#039;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (mandatory) is the unique name of the field.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; (mandatory) (translatable) is the descriptive title of the field.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; (optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;default&#039;&#039;&#039; (optional) (not translatable) is the default value, but doesn&#039;t mean much for a file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;size&#039;&#039;&#039; (optional) is the width of the file box in characters.&amp;lt;/translate&amp;gt; &lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
* [http://www.w3schools.com/tags/att_input_accept.asp &#039;&#039;&#039;accept&#039;&#039;&#039;] (optional) Tells the browser what MIME types your form will allow to be uploaded.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;class&#039;&#039;&#039; (optional) is a CSS class name for the HTML form field.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;labelclass&#039;&#039;&#039; (optional) adds a CSS class for form field&#039;s label; for Joomla 2.5.4+&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;disabled&#039;&#039;&#039; (optional)  HTML equivalent attribute&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;onchange&#039;&#039;&#039; (optional)  HTML equivalent attribute (javascript use)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;required&#039;&#039;&#039; Cannot be used with this field type.  If the field is marked as required it will &#039;&#039;&#039;always&#039;&#039;&#039; fail validation regardless of whether a file has been uploaded or not.  The suggested workaround is to add a &#039;&#039;&#039;filerequired&#039;&#039;&#039; attribute which can be tested in your own file handling code.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;validate&#039;&#039;&#039; (optional)  Whether to Joomla validate the field according to rules&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;showon&#039;&#039;&#039; (optional)  Allows you to hide the field based on the value(s) of another field; for Joomla 3.2.4+&amp;lt;/translate&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;multiple&#039;&#039;&#039; (optional) Allows you to upload multiple files at once when set to multiple=&amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039;&lt;br /&gt;
When using the file input type you should always add the attribute enctype=&amp;quot;multipart/form-data&amp;quot; to your form tag. Otherwise, the uploaded files will not be attached correctly.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note 2:&#039;&#039;&#039;&lt;br /&gt;
You can put a soft limit file size by adding a hidden field with name=&amp;quot;MAX_FILE_SIZE&amp;quot; and value the maximum allowed bytes which is handled by php, but you must also handle it in your code with or without it.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
Example XML field definition:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;field name=&amp;quot;myfilevalue&amp;quot; type=&amp;quot;file&amp;quot; label=&amp;quot;Enter some text&amp;quot; description=&amp;quot;Choose an image from your computer with maximum 100KB&amp;quot; size=&amp;quot;10&amp;quot; accept=&amp;quot;image/*&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;=== See also === &amp;lt;!--T:18--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
* [[S:MyLanguage/Standard form field types|List of standard form field types]]&lt;br /&gt;
* [[S:MyLanguage/How_to_use_the_filesystem_package|How to use the filesystem package]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
[[Category:Standard form field types]]&lt;br /&gt;
[[Category:Form fields]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Joomla_3.9.3_Security_Notes&amp;diff=593794</id>
		<title>J3.x:Joomla 3.9.3 Security Notes</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Joomla_3.9.3_Security_Notes&amp;diff=593794"/>
		<updated>2019-02-14T10:53:39Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: Addition for Nginx&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==.htaccess and web.config Security Update== &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt; Since Joomla 3.9.3, Joomla is shipped with additional security hardenings in the default &amp;lt;tt&amp;gt;htaccess.txt&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;web.config.txt&amp;lt;/tt&amp;gt; files. These hardenings disable the so called MIME-type sniffing feature in web browsers. The sniffing leads to specific attack vectors, where scripts in normally harmless file formats (i.e. images) will be executed, leading to Cross-Site-Scripting vulnerabilities.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
The Joomla Security Strike Team recommends to manually apply the necessary changes to existing &amp;lt;tt&amp;gt;.htaccess&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;web.config&amp;lt;/tt&amp;gt; files, as those files can not be updated automatically.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Changes for .htaccess=== &amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt; Add the following lines before &amp;lt;tt&amp;gt;## Mod_rewrite in use&amp;lt;/tt&amp;gt;:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;IfModule mod_headers.c&amp;gt;&lt;br /&gt;
Header always set X-Content-Type-Options &amp;quot;nosniff&amp;quot;&lt;br /&gt;
&amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Changes for web.config=== &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; Add the following lines right after &amp;lt;tt&amp;gt;&amp;lt;/rewrite&amp;gt;&amp;lt;/tt&amp;gt;:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;httpProtocol&amp;gt;&lt;br /&gt;
  &amp;lt;customHeaders&amp;gt;&lt;br /&gt;
    &amp;lt;add name=&amp;quot;X-Content-Type-Options&amp;quot; value=&amp;quot;nosniff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/customHeaders&amp;gt;&lt;br /&gt;
&amp;lt;/httpProtocol&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Changes for Nginx===&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
In case you are using Nginx webserver, add the following parameter under the server block in your Nginx configuration /etc/nginx/nginx.conf &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http {&lt;br /&gt;
  add_header X-Content-Type-Options nosniff;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.3 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Security{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:New_Routing_System&amp;diff=558187</id>
		<title>J3.x:New Routing System</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:New_Routing_System&amp;diff=558187"/>
		<updated>2018-11-07T13:10:03Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: Label for new Router was renamed to &amp;quot;Modern&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Top portal heading|color=white-bkgd|icon=magic|icon-color=#5091cd|size=3x|text-color=#333|title=&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Tutorial&amp;lt;br /&amp;gt;&lt;br /&gt;
The New Routing System&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
{{Joomla version|version=3.8}}&lt;br /&gt;
{{-}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Introduction== &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt; The new routing system defines a new and more flexible interface for developers to handle creating and processing URLs and gives end users more options as it relates to how URLs are displayed (including the often requested ability to remove content item IDs from the URL).&amp;lt;/translate&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; As of Joomla! 3.8, for the components which support the new router (Content, Contacts, Users, and Newsfeeds), it is possible to set up the router to run in one of three different configurations:&amp;lt;/translate&amp;gt; &lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
*The current routing system (which will remain the default behavior for new installations and the option that will be generally recommended for existing sites when upgrading),&lt;br /&gt;
*The new routing system,&lt;br /&gt;
*The new routing system with content item IDs removed.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Note== &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Because the URLs generated with the new routing system are not 100% compatible with the existing router and its URLs, it is suggested that existing sites do not enable the new system without thoroughly testing their sites in a staging environment and addressing any URL changes.&amp;lt;br /&amp;gt;&lt;br /&gt;
New sites are encouraged to make use of the new system immediately.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==What are the changes in the URLs?== &amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt; When SEF options are enabled, here are two pages from the testing sample data set with each of the routing configurations:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt; *Animals Photo Gallery Category Page:&amp;lt;/translate&amp;gt;&lt;br /&gt;
**&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt; Existing router:&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;/article-categories/72-park-site/photo-gallery/animals&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
**&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt; New router enabled with IDs:&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;/article-categories/26-park-site/28-photo-gallery/72-animals&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
**&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; New router enabled without IDs:&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;/article-categories/park-site/photo-gallery/animals&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt; *Koala Article Page:&amp;lt;/translate&amp;gt;&lt;br /&gt;
**&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt; Existing router:&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;/article-categories/72-park-site/photo-gallery/animals/25-koala&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
**&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt; New router enabled with IDs:&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;/article-categories/26-park-site/28-photo-gallery/72-animals/25-koala&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
**&amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt; New router enabled  without IDs:&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;/article-categories/park-site/photo-gallery/animals/koala&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
The numbers indicate the IDs of your categories and articles.&amp;lt;br /&amp;gt;&lt;br /&gt;
With the new router and the Remove IDs option enabled, the IDs are removed, which allow to have cleaner and more friendly URLs. It will also improve your SEO.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==How can I enable the new routing system?== &amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:36--&amp;gt; [[File:Routing.gif|Enable the new router|center]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt; The New Routing System is available for Content, Contacts, Users, and Newsfeeds. The way to enable this new features is the same for each of them.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt; Let&#039;s take &#039;&#039;&#039;Content&#039;&#039;&#039; as example.&amp;lt;/translate&amp;gt;&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt; Log in the backend&amp;lt;/translate&amp;gt;&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt; In the top menu, navigate to Content{{rarr}}Articles&amp;lt;/translate&amp;gt;&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt; Click on the button &#039;&#039;&#039;Options&#039;&#039;&#039; at the top right&amp;lt;/translate&amp;gt; {{-}}[[File:J3.x-New-Router-Options-&amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt; en&amp;lt;/translate&amp;gt;.png|800px]]&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt; Click on the &#039;&#039;&#039;Integration&#039;&#039;&#039; tab&amp;lt;/translate&amp;gt; {{-}}[[File:J3.x-New-Router-Integration-Tab-&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt; en&amp;lt;/translate&amp;gt;.png|800px]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt; *Activate the New Routing System:&amp;lt;/translate&amp;gt;&lt;br /&gt;
**&amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt; Click on &#039;&#039;&#039;Modern&#039;&#039;&#039; (was called &#039;&#039;&#039;Experimental&#039;&#039;&#039; when it was first introduced) to enable the new URL Routing&amp;lt;/translate&amp;gt;&lt;br /&gt;
** &amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt; Click on &#039;&#039;&#039;Yes&#039;&#039;&#039; if you want to remove IDs.&amp;lt;/translate&amp;gt; {{-}}[[File:J3.x-New-Router-Integrations-Options-&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt; en&amp;lt;/translate&amp;gt;.png|800px]]&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt; Click on &#039;&#039;&#039;Save&#039;&#039;&#039; or &#039;&#039;&#039;Save &amp;amp; Close&#039;&#039;&#039; at the top left&amp;lt;/translate&amp;gt;&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt; Visit your frontend and check your URLs.&amp;lt;br /&amp;gt;&#039;&#039;&#039;(Remember to clear the cache first to see the effects.)&#039;&#039;&#039;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:34--&amp;gt; Follow the same process for Contacts, Users and Newsfeeds.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt; &#039;&#039;&#039;NB:&#039;&#039;&#039; There are cases where changing the routing system can change a page’s URL and cause an existing page to give a 404 response. Developers are still discussing ideas for a migration plan to keep old URLs working to some extent.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Beginners{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.8{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! Website Management{{#translation:}}]]&lt;br /&gt;
[[Category:Search Engine Optimisation{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=URL_form_field_type&amp;diff=556614</id>
		<title>URL form field type</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=URL_form_field_type&amp;diff=556614"/>
		<updated>2018-11-02T15:51:09Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: Option to set relative URLs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
This field essentially is a [[S:MyLanguage/Text_form_field_type|text field]] with the type of url. If a fully qualified url (that is one with a scheme and domain such as &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://example.com&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;) is entered and it uses idn (that is uses characters that are non ascii such as ê or Ψ) it will translate the url into punycode prior to saving.  This assures that the url will work as intended regardless of environment. If you want to render field data in idn you should wrap it with the conversion method :&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
JStringPunycode::urlToUTF8($this-&amp;gt;contact-&amp;gt;webpage)&lt;br /&gt;
&amp;lt;/source&amp;gt;.&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; (mandatory) must be &#039;&#039;url&#039;&#039;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (mandatory) is the unique name of the field.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; (mandatory) (translatable) is the descriptive title of the field.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;size&#039;&#039;&#039; (optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;maxlength&#039;&#039;&#039; (optional) limits the number of characters that may be entered.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;default&#039;&#039;&#039; (optional) (not translatable) is the default value.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; (optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;class&#039;&#039;&#039; (optional) is a CSS class name for the HTML form field. If omitted this will default to &#039;text_area&#039;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;readonly&#039;&#039;&#039; (optional) The field cannot be changed and will automatically inherit the default value.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;disabled&#039;&#039;&#039; (optional) The field cannot be changed and will automatically inherit the default value - it will also not submit.&amp;lt;/translate&amp;gt; &lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;required&#039;&#039;&#039; (optional) The field must be filled before submitting the form.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; (optional) allow the system to save certain html tags or raw data.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;validate&#039;&#039;&#039; (optional) makes a validation&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;relative&#039;&#039;&#039; (optional) set to true for relative URLs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Example XML field definition:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;field name=&amp;quot;mytextvalue&amp;quot; type=&amp;quot;url&amp;quot; default=&amp;quot;http://www.example.com&amp;quot; label=&amp;quot;Enter a URL&amp;quot; description=&amp;quot;&amp;quot; size=&amp;quot;10&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
Both a url rule and a url input filter can assist with this insuring that valid url data are entered into this field field.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;=== See also === &amp;lt;!--T:16--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
* [[S:MyLanguage/Text form field type|Text form field type]]&lt;br /&gt;
* [[S:MyLanguage/Standard form field types|List of standard form field types]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
[[Category:Standard form field types]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Form_field&amp;diff=502171</id>
		<title>Form field</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Form_field&amp;diff=502171"/>
		<updated>2018-08-10T11:34:09Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;== Introduction == &amp;lt;!--T:1--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Form fields are fields in a HTML &amp;lt;code&amp;gt;&amp;lt;form&amp;gt;&amp;lt;/code&amp;gt;. Joomla! 2.5 {{JVer|2.5}} and newer supply the JForm class to conveniently and flexibly create forms with a large amount of form fields. Each form field type is a subclass of JFormField.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
In addition to being a flexible page creation tool, JFormFields are used by Joomla! to allow [[S:MyLanguage/Administrator (User)|administrators]] to configure Joomla! or its extensions without changing the underlying code. In Joomla! 1.5, this was handled by the now deprecated [[S:MyLanguage/API15:JParameter|JParameter]] and [[S:MyLanguage/API15:JElement|JElement]] classes.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
To define form fields in the configuration of an extension, you must include them in a named fieldset, such as &amp;lt;code&amp;gt;&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;, that is within the &amp;lt;code&amp;gt;&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; section of the &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt; element in your [[S:MyLanguage/Manifest files|XML manifest file]].&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Form validation == &amp;lt;!--T:5--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{:Form validation/&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
en&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&amp;lt;translate&amp;gt;== Standard form field types == &amp;lt;!--T:6--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{:Standard form field types/&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
en&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&amp;lt;translate&amp;gt;== Custom form field types == &amp;lt;!--T:7--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
An [[S:MyLanguage/extension|extension]] can define its own form field types, which can then be used in its own forms or forms created by another extension. See [[S:MyLanguage/Creating a custom form field type|Creating a custom form field type]] for instructions.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;=== Modal form field types === &amp;lt;!--T:9--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
If you have a field with a lot of values that don&#039;t fit a selection box, you can always make a modal form field that will allow the user to pick an item from a modal page with a table, filtering options, etc. (just like any administrator table, e.g. &amp;quot;Articles&amp;quot;).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
See [[S:MyLanguage/Creating a modal form field|Creating a modal form field]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Common attributes == &amp;lt;!--T:12--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;=== Labelclass === &amp;lt;!--T:13--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Adding the attribute &amp;lt;code&amp;gt;labelclass&amp;lt;/code&amp;gt; adds a CSS class for form field&#039;s label. Source:&amp;lt;/translate&amp;gt; http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&amp;amp;tracker_item_id=28450&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;=== Showon === &amp;lt;!--T:15--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
Adding the attribute &amp;lt;code&amp;gt;showon&amp;lt;/code&amp;gt; allows to hide the field based on the value(s) of another field.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
Syntax to show the field &amp;lt;tt&amp;gt;bar&amp;lt;/tt&amp;gt; only when &amp;lt;tt&amp;gt;foo&amp;lt;/tt&amp;gt; is set to &amp;quot;1&amp;quot; and &amp;lt;tt&amp;gt;baz&amp;lt;/tt&amp;gt; is set to &amp;quot;1&amp;quot;:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;field&lt;br /&gt;
    name=&amp;quot;foo&amp;quot;&lt;br /&gt;
    type=&amp;quot;list&amp;quot;&lt;br /&gt;
    &amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JYES&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JNO&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/field&amp;gt;&lt;br /&gt;
&amp;lt;field&lt;br /&gt;
    name=&amp;quot;bar&amp;quot;&lt;br /&gt;
    type=&amp;quot;text&amp;quot;&lt;br /&gt;
    showon=&amp;quot;foo:1&amp;quot;&lt;br /&gt;
/&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
To match multiple values one can provide a comma-separated list of values. Like &amp;lt;code&amp;gt;showon=&amp;quot;foo:1,2&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
To combine multiple fields you can use &amp;lt;code&amp;gt;[AND]&amp;lt;/code&amp;gt;. Like &amp;lt;code&amp;gt;showon=&amp;quot;foo:1[AND]bar:1&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
Syntax to show the field &amp;quot;bar&amp;quot; only when &amp;quot;foo&amp;quot; is set to &amp;quot;1&amp;quot; and &amp;quot;baz&amp;quot; is set to &amp;quot;1&amp;quot;:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;field&lt;br /&gt;
    name=&amp;quot;foo&amp;quot;&lt;br /&gt;
    type=&amp;quot;list&amp;quot;&lt;br /&gt;
    &amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JYES&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JNO&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/field&amp;gt;&lt;br /&gt;
&amp;lt;field&lt;br /&gt;
    name=&amp;quot;baz&amp;quot;&lt;br /&gt;
    type=&amp;quot;list&amp;quot;&lt;br /&gt;
    &amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JYES&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JNO&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/field&amp;gt;&lt;br /&gt;
&amp;lt;field&lt;br /&gt;
    name=&amp;quot;bar&amp;quot;&lt;br /&gt;
    type=&amp;quot;text&amp;quot;&lt;br /&gt;
    showon=&amp;quot;foo:1[AND]baz:1&amp;quot;&lt;br /&gt;
/&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
To create a choice between multiple fields you can use &amp;lt;tt&amp;gt;[OR]&amp;lt;/tt&amp;gt;. Like &amp;lt;tt&amp;gt;showon=&amp;quot;foo:1[OR]bar:1&amp;quot;&amp;lt;/tt&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
Syntax to show the field &amp;quot;bar&amp;quot; only when &amp;quot;foo&amp;quot; is set to &amp;quot;1&amp;quot; or &amp;quot;baz&amp;quot; is set to &amp;quot;1&amp;quot;:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;field&lt;br /&gt;
    name=&amp;quot;foo&amp;quot;&lt;br /&gt;
    type=&amp;quot;list&amp;quot;&lt;br /&gt;
    &amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JYES&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JNO&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/field&amp;gt;&lt;br /&gt;
&amp;lt;field&lt;br /&gt;
    name=&amp;quot;baz&amp;quot;&lt;br /&gt;
    type=&amp;quot;list&amp;quot;&lt;br /&gt;
    &amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JYES&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JNO&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/field&amp;gt;&lt;br /&gt;
&amp;lt;field&lt;br /&gt;
    name=&amp;quot;bar&amp;quot;&lt;br /&gt;
    type=&amp;quot;text&amp;quot;&lt;br /&gt;
    showon=&amp;quot;foo:1[OR]baz:1&amp;quot;&lt;br /&gt;
/&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
You can also use value does not equal like &amp;lt;tt&amp;gt;showon=&amp;quot;field1!:1&amp;quot;&amp;lt;/tt&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Syntax to show the field &amp;quot;bar&amp;quot; only when &amp;quot;foo&amp;quot; is not equal to &amp;quot;1&amp;quot;:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;field&lt;br /&gt;
    name=&amp;quot;foo&amp;quot;&lt;br /&gt;
    type=&amp;quot;list&amp;quot;&lt;br /&gt;
    &amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JYES&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JNO&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/field&amp;gt;&lt;br /&gt;
&amp;lt;field&lt;br /&gt;
    name=&amp;quot;baz&amp;quot;&lt;br /&gt;
    type=&amp;quot;list&amp;quot;&lt;br /&gt;
    showon=&amp;quot;foo!:1&amp;quot;&lt;br /&gt;
    &amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JYES&amp;lt;/option&amp;gt;&lt;br /&gt;
    &amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JNO&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/field&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To show a field when another field (e.g. foo) has been selected (so when that other field is not empty), you can use &amp;lt;tt&amp;gt;showon=&amp;quot;foo!:&amp;quot;&amp;lt;/tt&amp;gt; (so without a value specified).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
This was introduced with PullRequest: https://github.com/joomla/joomla-cms/pull/3379, available starting with Joomla 3.2.4.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
[[Category:Landing Pages]]&lt;br /&gt;
[[Category:Form fields]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Loading_extra_language_files&amp;diff=482659</id>
		<title>Loading extra language files</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Loading_extra_language_files&amp;diff=482659"/>
		<updated>2018-04-30T08:29:18Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: Added some explanation about using the language file in your components language folder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Overview== &amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Many times, you need to load extra language files in your code. An example is loading your component&#039;s language file into a module for that component. This example loads a single language file, and appends the results to the existing language strings. Following is the code that helps you do this&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==PHP Code== &amp;lt;!--T:2--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$lang = JFactory::getLanguage();&lt;br /&gt;
$extension = &#039;com_helloworld&#039;;&lt;br /&gt;
$base_dir = JPATH_SITE;&lt;br /&gt;
$language_tag = &#039;en-GB&#039;;&lt;br /&gt;
$reload = true;&lt;br /&gt;
$lang-&amp;gt;load($extension, $base_dir, $language_tag, $reload);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Following is an explanation of the variables&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
1. $extension - This is the extension whose language file will be loaded&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
2. $base_dir - Should be JPATH_SITE in case you have language files stored elsewhere. Defaults to JPATH_BASE.  [optional]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Joomla will look in its /languages/ folder for a en-GB.com_helloworld.ini language file. If you put your component&#039;s language file in your own components language folder /components/com_helloworld/language/en-GB/en-GB.com_helloworld.ini, then you need to specify the path: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
$base_dir = JPATH_SITE . &#039;/components/com_helloworld&#039;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
3. $language_tag - This is the locale string. Language files for this locale will be loaded. Defaults to the one set in backend. [optional]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
4. $reload - Flag that will force a language to be reloaded if set to true. [optional]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Languages]]&lt;br /&gt;
[[Category:Needs review]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Supporting_SEF_URLs_in_your_component&amp;diff=481630</id>
		<title>J3.x:Supporting SEF URLs in your component</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Supporting_SEF_URLs_in_your_component&amp;diff=481630"/>
		<updated>2018-04-02T10:49:40Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: You need to use the same param as the RouterInterface (so add an ampersand)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=3.4|time=and after|comment=series}}&lt;br /&gt;
{{-}}&lt;br /&gt;
{{tip|&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt; Note many examples online use namespaced classes. This was introduced in Joomla 3.8. There are non-namespaced versions of all these classes which will work in Joomla 3.4+.&amp;lt;/translate&amp;gt;|title=&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt; Version Note&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{:Search Engine Friendly URLs/&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt; en&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; In Joomla!, each [[S:MyLanguage/Component|component]] is responsible for handling its own SEF URLs. Therefore, as the [[S:MyLanguage/Developers|developer]] of a component, you will have to create your own &#039;&#039;&#039;router&#039;&#039;&#039; to allow your component to use SEF URLs.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== The Concept == &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt; Assuming you are following standard development practices, your component is probably using &amp;quot;system URLs&amp;quot; that look a lot like &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_yourcomponent&amp;amp;view=article&amp;amp;id=1&amp;amp;catid=20&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;, and your goal is to transform this into &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/example-menu-item/example-category/example-article&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;. As the developer, you have two tasks: signalling the system that certain pieces of text are URLs and need to be transformed, and explaining the system how to transform URLs.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Applying &amp;lt;code&amp;gt;Route::_&amp;lt;/code&amp;gt; === &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt; It is difficult and inefficient for Joomla! to figure out which parts of your component&#039;s output are URLs. To support SEF URLs, you will need to change URL-generating code so that it applies &amp;lt;code&amp;gt;\Joomla\CMS\Router\Route::_&amp;lt;/code&amp;gt; before outputting the URL:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
echo \Joomla\CMS\Router\Route::_(&#039;index.php?view=article&amp;amp;id=1&amp;amp;catid=20&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Notice that it is possible to leave out the parameters &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Itemid&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt; defaults to the name of the component currently being executed, and &amp;lt;code&amp;gt;Itemid&amp;lt;/code&amp;gt; defaults to the current menu item&#039;s ID.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt; In general, you should only apply this to URLs that users and/or search engines are able to see. For example, there is no need to transform URLs used in redirects that immediately result in other redirects.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt; If the user turns off SEF URLs in the site&#039;s settings, &amp;lt;code&amp;gt;\Joomla\CMS\Router\Route::_&amp;lt;/code&amp;gt; will produce working non-SEF URLs without any changes to the code.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Writing a router === &amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; You&#039;ll also need to write a router, which is a single file containing a class with three functions that convert system URLs to and from SEF URLs. This file needs to be placed at &amp;lt;tt&amp;gt;/components/com_yourcomponent/router.php&amp;lt;/tt&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt; The class should be called &amp;lt;code&amp;gt;[componentname]Router&amp;lt;/code&amp;gt; (e.g. for com_content &amp;lt;code&amp;gt;ContentRouter&amp;lt;/code&amp;gt;), and must implement &amp;lt;code&amp;gt;Joomla\CMS\Component\Router\RouterInterface&amp;lt;/code&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt; The first function, &amp;lt;code&amp;gt;build(&amp;amp;$query)&amp;lt;/code&amp;gt;, must transform an array of URL parameters into an array of segments that will form the SEF URL. Schematically, the transformation works as follows:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_yourcomponent&amp;amp;view=article&amp;amp;id=1&amp;amp;catid=20&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;font-size: xx-large&amp;quot;&amp;gt;&amp;amp;darr;&amp;lt;/span&amp;gt; &amp;lt;code&amp;gt;\Joomla\CMS\Router\Route::_&amp;lt;/code&amp;gt;, &amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt; called by your component or any other extension&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;$query = array(&#039;view&#039; =&amp;gt; &#039;article&#039;, &#039;id&#039; =&amp;gt; 1, &#039;catid&#039; =&amp;gt; 20)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;font-size: xx-large&amp;quot;&amp;gt;&amp;amp;darr;&amp;lt;/span&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt; Your router&#039;s &amp;lt;code&amp;gt;[componentname]Router::build&amp;lt;/code&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;$segments = array(20, 1);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;font-size: xx-large&amp;quot;&amp;gt;&amp;amp;darr;&amp;lt;/span&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt; Joomla&#039;s internal route building (for display)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/example-menu-item/20/1&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt; The second function, &amp;lt;code&amp;gt;parse($segments)&amp;lt;/code&amp;gt;, must transform an array of segments back into an array of URL parameters. Schematically:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/example-menu-item/20/1&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;font-size: xx-large&amp;quot;&amp;gt;&amp;amp;darr;&amp;lt;/span&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt; Joomla&#039;s internal route parsing&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;$segments = array(20, 1);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;span style=&amp;quot;font-size: xx-large&amp;quot;&amp;gt;&amp;amp;darr;&amp;lt;/span&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt; Your router&#039;s &amp;lt;code&amp;gt;[componentname]Router::parse&amp;lt;/code&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;$query = array(&#039;view&#039; =&amp;gt; &#039;article&#039;, &#039;id&#039; =&amp;gt; 1, &#039;catid&#039; =&amp;gt; 20)&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
The two functions must cooperate in such a way that the original URL can be reconstructed. You can think of &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; as a form of [[wikipedia:Encoding|encoding]] and &amp;lt;code&amp;gt;parse&amp;lt;/code&amp;gt; as the corresponding decoding. When the original URL isn&#039;t properly reproduced, your component will stop working.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt; The final function, &amp;lt;code&amp;gt;preprocess($query)&amp;lt;/code&amp;gt;, is a preparation method for URLs. This method is executed on each URL, regardless of SEF mode switched on or not. We will come back to this method later in the tutorial.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Preparing Your Data for Routing == &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt; Clearly, any URL format needs to contain some kind of information that identifies the data you want to show. If your system URLs look like &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/index.php?option=com_yourcomponent&amp;amp;view=article&amp;amp;id=1&amp;amp;catid=20&amp;amp;Itemid=50&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;, that information is currently the &amp;lt;tt&amp;gt;id&amp;lt;/tt&amp;gt; URL parameter (&amp;lt;tt&amp;gt;id=1&amp;lt;/tt&amp;gt;). You probably want your SEF URLs to contain a textual description of the data they point to. In Joomla!, this is usually done by giving your users a way to enter an &#039;&#039;&#039;alias&#039;&#039;&#039; to be used in the URL.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== The Alias === &amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
Even if your users can enter an alias, they might not do so, leaving the generation of a sensible alias up to your component. If your data has a title field, you can use that as a candidate for the alias (like the core [[S:MyLanguage/Content|Content]] component does).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
Considering that the alias will be used in URLs, it has to be URL safe. Joomla! provides a method making arbitrary strings URI safe, which includes replacing accented UTF­8 characters by their ASCII­7 equivalents, white spaces by hyphens, etc. Whether the user entered the alias or a candidate has been chosen automatically, you should ensure that the above requirements for a URL safe alias are met. A good place for implementing this, if you are using &amp;lt;code&amp;gt;JTable&amp;lt;/code&amp;gt;, is the &amp;lt;code&amp;gt;JTable::check()&amp;lt;/code&amp;gt; method, which is called during the save process. Have a look at this example code:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
function check()&lt;br /&gt;
{&lt;br /&gt;
    jimport(&#039;joomla.filter.output&#039;);&lt;br /&gt;
    if (empty($this-&amp;gt;alias))&lt;br /&gt;
    {&lt;br /&gt;
	    $this-&amp;gt;alias = $this-&amp;gt;title;&lt;br /&gt;
    }&lt;br /&gt;
    $this-&amp;gt;alias = JFilterOutput::stringURLSafe($this-&amp;gt;alias);&lt;br /&gt;
&lt;br /&gt;
    /* All your other checks */&lt;br /&gt;
    return true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
If the alias field is empty the title is used as alias. Then the alias is made URL safe using the &amp;lt;code&amp;gt;JFilterOutput::stringURLSafe()&amp;lt;/code&amp;gt; method.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== The Slug === &amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt; A &#039;&#039;&#039;slug&#039;&#039;&#039; is used to minimise the amount of code you need to support SEF URLs. It consists of the numerical identifier (&amp;lt;tt&amp;gt;id&amp;lt;/tt&amp;gt;) your system URLs used, a colon (&amp;lt;tt&amp;gt;:&amp;lt;/tt&amp;gt;), and the alias you created as described above.&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt; Consider a SEF URL for an [[Article]] with &amp;lt;tt&amp;gt;id&amp;lt;/tt&amp;gt; 1 and title &amp;quot;Welcome to Joomla!&amp;quot;. The automatically generated alias for this article is &amp;lt;tt&amp;gt;welcome-to-joomla&amp;lt;/tt&amp;gt;, and the slug becomes &amp;lt;tt&amp;gt;1­:welcome­-to­-joomla&amp;lt;/tt&amp;gt;. In the [[S:MyLanguage/Content|Content]] component, the two elements are combined during the database query in the model (&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; represents &amp;lt;code&amp;gt;#__content&amp;lt;/code&amp;gt;):&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$query = &#039;SELECT a.*, &#039;.&lt;br /&gt;
         &#039;CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(&amp;quot;:&amp;quot;, a.id, a.alias) ELSE a.id END as slug,&#039;&lt;br /&gt;
         /*...*/;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt; The advantage of this method of creating a slug is that you can simply use the slug as a drop-in replacement for the id in most places. For example, you don&#039;t need to check for and remove the colon and the alias from the request data manually: if you use [[S:MyLanguage/Retrieving request data using JInput|JInput]]&#039;s &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; (integer) filter, it will do that automatically.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Routing URLs == &amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt; The &amp;lt;code&amp;gt;\Joomla\CMS\Router\Route::_&amp;lt;/code&amp;gt; method translates the internal Joomla! URL to a custom URL. &amp;lt;code&amp;gt;\Joomla\CMS\Router\Route::_&amp;lt;/code&amp;gt; has three parameters and its prototype is:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;\Joomla\CMS\Router\Route::_($url, $xhtml = true, $ssl = null);&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
Where:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;$url&amp;lt;/code&amp;gt; is a string containing the absolute or relative internal Joomla! URL.&lt;br /&gt;
* &amp;lt;code&amp;gt;$xhtml&amp;lt;/code&amp;gt; is a boolean value that specifies whether or not the output should be in XHTML. This parameter is optional and if omitted defaults to true.&lt;br /&gt;
* &amp;lt;code&amp;gt;$ssl&amp;lt;/code&amp;gt; is an integer value that specifies whether the URI should be secure. It should be set to 1 to force the URI to be secure using the global secure site URI, 0 to leave it in the same state as when it was passed, and -1 to force the URI to be unsecure using the global unsecure site URI.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt; The most important parameter is &amp;lt;code&amp;gt;$url&amp;lt;/code&amp;gt;. A call to this method might look like:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;\Joomla\CMS\Router\Route::_(&#039;index.php?view=article&amp;amp;id=&#039; . $row-&amp;gt;slug);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$row-­&amp;gt;slug&amp;lt;/code&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt; is the value that was generated in step 2 from a combination of id and title alias.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt; Another advantage of using &amp;lt;code&amp;gt;\Joomla\CMS\Router\Route::_&amp;lt;/code&amp;gt; is that the router now handles &amp;lt;code&amp;gt;$option&amp;lt;/code&amp;gt; (the component name) and the &amp;lt;code&amp;gt;$Itemid&amp;lt;/code&amp;gt; (the menu item ID). The component itself doesn&#039;t have to know its name (&amp;lt;code&amp;gt;$option&amp;lt;/code&amp;gt;) or the active menu item (&amp;lt;code&amp;gt;$Itemid&amp;lt;/code&amp;gt;) like it did in previous version of Joomla.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt; It is important that you think about the sequence of the URL parameter in this stage. This will be more clear when we have a deeper look at the &amp;lt;tt&amp;gt;router.php&amp;lt;/tt&amp;gt; in the next section.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:42--&amp;gt; The building process of \Joomla\CMS\Router\Router is divided into two steps:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
* Create the application route. The application route is fully handled by \Joomla\CMS\Router\Router and the component developer doesn’t have to do anything to make it work.&lt;br /&gt;
* Create the component route. To create the component route, \Joomla\CMS\Router\Router looks for the &amp;lt;tt&amp;gt;router.php&amp;lt;/tt&amp;gt; in the component directory which is responsible for building the route for the component.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== The Component Router == &amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt; We will have three functions in our class in &amp;lt;tt&amp;gt;router.php&amp;lt;/tt&amp;gt;. One is responsible for building the URL and the other is responsible for parsing it. In the next examples, a very basic and a more advanced one, we assume that we have three views that links can point to. The first is a categories overview (&amp;lt;code&amp;gt;view=categories&amp;lt;/code&amp;gt;), the second is a single category (&amp;lt;code&amp;gt;view=category&amp;lt;/code&amp;gt;) and the third is a single article (&amp;lt;code&amp;gt;view=article&amp;lt;/code&amp;gt;).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
The file &amp;lt;tt&amp;gt;router.php&amp;lt;/tt&amp;gt; should be in the site area of your component. It is not used on admin/backend pages. Don&#039;t forget to add it to your XML [[S:MyLanguage/Manifest files|manifest file]] in the site folder.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== A Simple View-based Example === &amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:48--&amp;gt; Often in Joomla&#039;s URL structure you will have routing structures based on view hierarchies. In the this example we will try to reflect the current hierarchy level in the URL from an existing menu item.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
The goal is URL&#039;s that look like:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
* When viewing an article: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/[menualias]/[category]/[article]&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* When viewing a category: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/[menualias]/[category]&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* When viewing the categories overview: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/[menualias]&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:51--&amp;gt; The link to the article would look like this:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
\Joomla\CMS\Router\Route::_(&#039;index.php?view=article&amp;amp;catid=&#039; . $row-­&amp;gt;catslug . &#039;&amp;amp;id=&#039;.$row-­&amp;gt;slug);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:52--&amp;gt; And the Link to the category would look like this:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
\Joomla\CMS\Router\Route::_(&#039;index.php?view=category&amp;amp;id=&#039; . $row-&amp;gt;catslug);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:53--&amp;gt; Since {{JVer|3.4|Joomla 3.4|long}} (and implemented in the core components since {{JVer|3.8|Joomla 3.8|long}} as the &amp;quot;new component routers&amp;quot;), there is a new way of working on routers using the &amp;lt;code&amp;gt;\Joomla\CMS\Component\Router\RouterView&amp;lt;/code&amp;gt; base class. This handles routing by allowing you to register views into your system. So first of all let&#039;s build up our component&#039;s router constructor:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Magic Component router constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   CMSApplication  $app   The application object&lt;br /&gt;
	 * @param   AbstractMenu    $menu  The menu object to work with&lt;br /&gt;
	 */&lt;br /&gt;
	public function __construct($app = null, $menu = null)&lt;br /&gt;
	{&lt;br /&gt;
		$category = new RouterViewConfiguration(&#039;category&#039;);&lt;br /&gt;
		$category-&amp;gt;setKey(&#039;id&#039;)-&amp;gt;setNestable();&lt;br /&gt;
		$this-&amp;gt;registerView($category);&lt;br /&gt;
		$article = new RouterViewConfiguration(&#039;article&#039;);&lt;br /&gt;
		$article-&amp;gt;setKey(&#039;id&#039;)-&amp;gt;setParent($category, &#039;catid&#039;);&lt;br /&gt;
		$this-&amp;gt;registerView($article);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:54--&amp;gt; So what have we done here? Well we&#039;ve registered a &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt; view that has a routing key of it&#039;s &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, which can be nested (i.e. have multiple levels). We&#039;ve also registered an article view which also has a routing key of &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, which has a parent of the category view.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt; Now we have registered our component&#039;s views into our router. The next step is to register the Joomla rules that use these rules. There are 3 rules provided by Joomla out of the box. The first &amp;lt;code&amp;gt;\Joomla\CMS\Component\Router\Rules\MenuRules&amp;lt;/code&amp;gt; looks to see if the URL matches a known menu item, and ensures in multilingual sites that a language tag is present. The second rule &amp;lt;code&amp;gt;\Joomla\CMS\Component\Router\Rules\StandardRules&amp;lt;/code&amp;gt; uses your view configuration to build up a menu path. Finally the third rule &amp;lt;code&amp;gt;\Joomla\CMS\Component\Router\Rules\NomenuRules&amp;lt;/code&amp;gt; provides a fallback when there is no good match found for building or parsing the URL. After applying these rules our finished router constructor looks like:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
	public function __construct(CMSApplication $app = null, AbstractMenu $menu = null)&lt;br /&gt;
	{&lt;br /&gt;
		$category = new RouterViewConfiguration(&#039;category&#039;);&lt;br /&gt;
		$category-&amp;gt;setKey(&#039;id&#039;)-&amp;gt;setNestable();&lt;br /&gt;
		$this-&amp;gt;registerView($category);&lt;br /&gt;
		$article = new RouterViewConfiguration(&#039;article&#039;);&lt;br /&gt;
		$article-&amp;gt;setKey(&#039;id&#039;)-&amp;gt;setParent($category, &#039;catid&#039;);&lt;br /&gt;
		$this-&amp;gt;registerView($article);&lt;br /&gt;
&lt;br /&gt;
		parent::__construct($app, $menu);&lt;br /&gt;
&lt;br /&gt;
		$this-&amp;gt;attachRule(new MenuRules($this));&lt;br /&gt;
		$this-&amp;gt;attachRule(new StandardRules($this));&lt;br /&gt;
		$this-&amp;gt;attachRule(new NomenuRules($this));&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
The final piece of the puzzle Joomla needs is to convert the ids to and from their alias. So for each view registered you need to provide a &amp;lt;code&amp;gt;get&#039;&#039;Viewname&#039;&#039;Segment($id, $query)&amp;lt;/code&amp;gt; and a &amp;lt;code&amp;gt;get&#039;&#039;Viewname&#039;&#039;Id($segment, $query)&amp;lt;/code&amp;gt; method, for building and parsing URLs. So for our example we need four functions: &amp;lt;code&amp;gt;getCategorySegment&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;getCategoryId&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;getArticleSegment&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;getArticleId&amp;lt;/code&amp;gt;. You can see the implementation of these four functions at https://github.com/joomla/joomla-cms/blob/3.8.0/components/com_content/router.php . For articles we are going to directly validate our slugs in the database and for categories we will use Joomla&#039;s &amp;lt;code&amp;gt;JCategories&amp;lt;/code&amp;gt; class to validate the path to our category.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:57--&amp;gt; Building a complicated router in Joomla really is that simple!&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== A more complex Example === &amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:59--&amp;gt; This more complicated example will illustrate the basics of implementing a more custom router for your component.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Component\Router\RouterBase;&lt;br /&gt;
&lt;br /&gt;
class [componentname]Router extends RouterBase&lt;br /&gt;
{&lt;br /&gt;
    public function build(&amp;amp;$query)&lt;br /&gt;
    {&lt;br /&gt;
        $segments = array();&lt;br /&gt;
        if (isset($query[&#039;view&#039;]))&lt;br /&gt;
        {&lt;br /&gt;
            $segments[] = $query[&#039;view&#039;];&lt;br /&gt;
            unset($query[&#039;view&#039;]);&lt;br /&gt;
        }&lt;br /&gt;
        if (isset($query[&#039;id&#039;]))&lt;br /&gt;
        {&lt;br /&gt;
            $segments[] = $query[&#039;id&#039;];&lt;br /&gt;
            unset($query[&#039;id&#039;]);&lt;br /&gt;
        };&lt;br /&gt;
        return $segments;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:60--&amp;gt; &amp;lt;code&amp;gt;\Joomla\CMS\Router\Router&amp;lt;/code&amp;gt; passes a &amp;lt;code&amp;gt;$query&amp;lt;/code&amp;gt; array to the &amp;lt;code&amp;gt;[&#039;&#039;componentname&#039;&#039;]Router::build&amp;lt;/code&amp;gt; function. This function will add the relevant parts of the array to the $segments array in the right order and will return the properly ordered array. The content of the &amp;lt;code&amp;gt;$query&amp;lt;/code&amp;gt; array needs to be unset, otherwise &amp;lt;code&amp;gt;\Joomla\CMS\Router\Router&amp;lt;/code&amp;gt; will add it to the URL in the form of a query string (i.e. any variables that are not handled by the router will be passed in the query string).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
Note in the above we have chosen to extend &amp;lt;code&amp;gt;\Joomla\CMS\Component\Router\RouterBase&amp;lt;/code&amp;gt; as we do not need to do any preprocessing in this simple example.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:62--&amp;gt; The prefix &#039;&#039;componentname&#039;&#039; is the name for your component, as found in the directory holding the component&#039;s files. For instance, a component &amp;quot;Magic&amp;quot; in directory &amp;lt;tt&amp;gt;/components/com_magic/...&amp;lt;/tt&amp;gt; would use a prefix &amp;lt;code&amp;gt;magic&amp;lt;/code&amp;gt; (all lower case).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
The next function in the &amp;lt;tt&amp;gt;router.php&amp;lt;/tt&amp;gt; parses the URL:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function parse(&amp;amp;$segments)&lt;br /&gt;
{&lt;br /&gt;
    $vars = array();&lt;br /&gt;
    switch($segments[0])&lt;br /&gt;
    {&lt;br /&gt;
        case &#039;categories&#039;:&lt;br /&gt;
            $vars[&#039;view&#039;] = &#039;categories&#039;;&lt;br /&gt;
            break;&lt;br /&gt;
        case &#039;category&#039;:&lt;br /&gt;
            $vars[&#039;view&#039;] = &#039;category&#039;;&lt;br /&gt;
            $id = explode(&#039;:&#039;, $segments[1]);&lt;br /&gt;
            $vars[&#039;id&#039;] = (int) $id[0];&lt;br /&gt;
            break;&lt;br /&gt;
        case &#039;article&#039;:&lt;br /&gt;
            $vars[&#039;view&#039;] = &#039;article&#039;;&lt;br /&gt;
            $id = explode(&#039;:&#039;, $segments[1]);&lt;br /&gt;
            $vars[&#039;id&#039;] = (int) $id[0];&lt;br /&gt;
            break;&lt;br /&gt;
    }&lt;br /&gt;
    return $vars;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt; What happens here? In the function &amp;lt;code&amp;gt;[&#039;&#039;componentname&#039;&#039;]Router::build&amp;lt;/code&amp;gt; we arranged the items in the &amp;lt;code&amp;gt;$query&amp;lt;/code&amp;gt; array in a specific sequence. This means that in this example the view is first and the id is second in the array.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:65--&amp;gt; By reading &amp;lt;code&amp;gt;$segments[0]&amp;lt;/code&amp;gt;, we access the name of the view. We set the right view and/or identifier depending on its value and we return the &amp;lt;code&amp;gt;$vars&amp;lt;/code&amp;gt; array to &amp;lt;code&amp;gt;\Joomla\CMS\Router\Router&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;$vars&amp;lt;/code&amp;gt; should be an associative array similar to the array that was passed to the BuildRoute method.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:66--&amp;gt; The above example of the &amp;lt;tt&amp;gt;router.php&amp;lt;/tt&amp;gt; is a very simple way to generate SEF URLs but should show how this works quite clearly.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
The generated URL in this example contains the name of the view and doesn&#039;t reflect the content hierarchy:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;http://www.example.com/[menualias]/[view]/[slug]&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Routers and Menu Items == &amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:69--&amp;gt; A last important part of creating a router is considering what to do with menu items. As explained on [[S:MyLanguage/Search Engine Friendly URLs|Search Engine Friendly URLs]], the output of the component router is used &#039;&#039;after&#039;&#039; the first segment of a route, the first segment being the menu item&#039;s alias. This creates a difficult question: how is your router and/or other code to know which menu item to route through?&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:70--&amp;gt; Suppose, for example, that your component is currently producing output for the page &amp;lt;tt&amp;gt;/dogs&amp;lt;/tt&amp;gt;, which lists all dogs in the system. Of course, the items in the list need to be links to pages that display more details about one dog. What should the URL to the dog with ID 21 and name Fido become? Using a router that works according to the principles we&#039;ve seen so far, the route that is produced is &amp;lt;tt&amp;gt;dogs/21-fido&amp;lt;/tt&amp;gt;, or with some additional work &amp;lt;tt&amp;gt;/dogs/fido&amp;lt;/tt&amp;gt;. But perhaps the user has created a menu item with the alias &amp;lt;tt&amp;gt;mydoggy&amp;lt;/tt&amp;gt; which displays exactly that dog&#039;s details. Then it is probably the user&#039;s intention to route this URL through that menu item, and the item in the list should link to the page &amp;lt;tt&amp;gt;/mydoggy&amp;lt;/tt&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:71--&amp;gt; More generally, whenever you are building a route, you will need to find the menu item that is most suitable as a &#039;&#039;starting point&#039;&#039; for building your route. The term &#039;&#039;starting point&#039;&#039; is emphasized because the rest of the route depends on the configuration of the menu item. In our example above, &amp;lt;tt&amp;gt;/dogs/21-fido&amp;lt;/tt&amp;gt; is an acceptable route, &amp;lt;tt&amp;gt;/mydoggy&amp;lt;/tt&amp;gt; is arguably even better, but &amp;lt;tt&amp;gt;/mydoggy/21-fido&amp;lt;/tt&amp;gt; is simply wrong, since &amp;lt;tt&amp;gt;/mydoggy&amp;lt;/tt&amp;gt; is in itself a menu item that is set up to display &amp;lt;tt&amp;gt;fido&amp;lt;/tt&amp;gt;&#039;s information.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
Several approaches are available to tackle this problem. Joomla!&#039;s core components take a mixed approach, separating responsibilities in two units of code: the router itself and the so-called &amp;lt;code&amp;gt;[componentname]RouteHelper&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;[componentname]RouteHelper&amp;lt;/code&amp;gt; provides methods that find the most suitable menu item for a given piece of data to be displayed, while the router analyzes the menu item and puts any information that is not determined by the menu item&#039;s configuration into the route. This does mean that the &#039;&#039;calling code&#039;&#039; must explicitly call the helper&#039;s method before routing (&amp;lt;code&amp;gt;echo \Joomla\CMS\Router\Route::_(DogsRouteHelper::getDogRoute(21));&amp;lt;/code&amp;gt;).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== See Also == &amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
For details on the internals of routing, see [[S:MyLanguage/Routing implementation details|Routing implementation details]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Component Development{{#translation:}}]]&lt;br /&gt;
[[Category:Search Engine Friendly URLs{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.x{{#translation:}}]]&lt;br /&gt;
[[Category:Search Engine Optimisation{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Joomla_CodeSniffer&amp;diff=455533</id>
		<title>Joomla CodeSniffer</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Joomla_CodeSniffer&amp;diff=455533"/>
		<updated>2017-10-27T11:45:09Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== A Nose For Joomla == &amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt; This is a custom coding standard for the PHP CodeSniffer that attempts to codify and enforce the Joomla coding standards. This article covers how to set the automatic code style checker. It consists of three steps:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
# Install PHP CodeSniffer (phpcs).&lt;br /&gt;
# Clone the Joomla Code Style (for use with for phpcs).&lt;br /&gt;
# Configure your IDE to work with PHP CodeSniffer and Joomla Code Style.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:CodeSnifferInAction.jpg|center|thumb|300px|PHP Code Sniffer in action]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Why?== &amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt; *Coherent and consistent coding practice makes the files look more professional. Conflicting styles in the same project (or worse, the same file) not only look sloppy, they encourage further sloppiness.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt; *When all code complies with the same standard, bad code is easier for everyone to spot.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt; *It makes it easier for someone new to a particular file in the project to find and fix errors or extend functionality.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt; *If there is no consistent standard maintained, sometimes developers will reformat the code to suit themselves. This causes a wide range of changes in the code repository. If there is a later problem, a significant change could be lost in the chaff produced by a diff.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==1. Installation of PHP Code Sniffer (phpcs)== &amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Composer=== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt; PHP Code Sniffer is available via Composer. It can be installed system-wide with the following command:&amp;lt;/translate&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;composer global require squizlabs/php_codesniffer &amp;quot;~2.8&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
On &#039;&#039;&#039;Linux&#039;&#039;&#039; PHP Code Sniffer (phpcs) will be installed under your user folder:&amp;lt;/translate&amp;gt; &lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; Symbolic Link:&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;~/.composer/vendor/bin/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt; The file:&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;~/.composer/vendor/squizlabs/php_codesniffer/scripts/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
To create that symbolic link, use on the command line: &amp;lt;code&amp;gt;&lt;br /&gt;
$ sudo ln -s ~/.config/composer/vendor/squizlabs/php_codesniffer/scripts /usr/bin/phpcs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt; or (for example OpenSuse)&amp;lt;/translate&amp;gt;&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt; Symbolic Link:&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;~/.config/composer/vendor/bin/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt; The file:&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;~/.config/composer/vendor/squizlabs/php_codesniffer/scripts/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt; On &#039;&#039;&#039;Windows&#039;&#039;&#039; PHP Code Sniffer (phpcs) will be installed under your user folder:&amp;lt;/translate&amp;gt;&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt; Symbolic Link:&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;c:\Users\Username\AppData\Roaming\Composer\vendor\bin\phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt; The file:&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;c:\Users\Username\AppData\Roaming\Composer\vendor\squizlabs\php_codesniffer\scripts\phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Add composer bin directory to your $PATH === &amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
In order to execute PHP Code sniffer from anywhere on Linux or Mac command line you have to add &amp;lt;tt&amp;gt;.composer/vendor/bin&amp;lt;/tt&amp;gt; to your $PATH variable.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
To do this persistent edit your shells start file, like your .profile or .bash_profile file depending which shell you are using (echo $SHELL shows you which one you are using).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt; Add the following line to the file:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;export PATH=$PATH:~/.composer/vendor/bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt; Alternatively you can also create a symbolic link in the bin folder:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;ln -s ~/.composer/vendor/bin/phpcs /usr/local/bin/phpcs&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==2. Install Joomla Coding Standards== &amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt; In order to have PHP Code Sniffer (phpcs) sniffing your Joomla projects for the right code style, you have to install the Joomla Coding Standards.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt; Using composer we can execute:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;composer global require joomla/coding-standards &amp;quot;~2.0@alpha&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt; Notice that it says &amp;lt;tt&amp;gt;@alpha&amp;lt;/tt&amp;gt;, that is because the coding standard is still in alpha state and we need to allow the installation of alpha status code. If we do not include the @alpha the coding standards will not install and throw this error.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Your requirements could not be resolved to an installable set of packages.&lt;br /&gt;
&lt;br /&gt;
  Problem 1&lt;br /&gt;
    - The requested package joomla/coding-standards ~2.0 is satisfiable by joomla/coding-standards[2.0.0-alpha, 2.0.0-alpha2, 2.x-dev] but these conflict with your requirements or minimum-stability.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt; Once the installation is done the coding standard will be installed in the global composer folder. The location of this folder depends on your operating system. Some popular locations are:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mac / Linux&#039;&#039;&#039;&lt;br /&gt;
 ~/.composer/vendor/joomla/coding-standards/&lt;br /&gt;
&lt;br /&gt;
 ~/.config/composer/vendor/joomla/coding-standards/&lt;br /&gt;
&#039;&#039;&#039;Windows&#039;&#039;&#039;&lt;br /&gt;
 c:\Users\Username\AppData\Roaming\Composer\vendor\joomla\coding-standards\&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt; This is using Composer on Windows.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt; If you can&#039;t find it in any of the above folders, note that the folder you are looking for ends with &#039;&#039;&#039;\joomla\coding-standards\&#039;&#039;&#039;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
Finally we need to tell Code Sniffer that the Joomla coding standards exist.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
# Check if certain paths are already set by running &amp;lt;tt&amp;gt;phpcs --config-show&amp;lt;/tt&amp;gt;&lt;br /&gt;
# You can get an answer that looks like this: &amp;lt;tt&amp;gt;installed_paths: /path/to/installation&amp;lt;/tt&amp;gt;&lt;br /&gt;
# In step 2, if you see the &#039;&#039;&#039;installed_paths&#039;&#039;&#039; you need to copy that&lt;br /&gt;
# Set the Joomla Coding Standards path in phpcs by executing &amp;lt;tt&amp;gt;phpcs --config-set installed_paths /Users/user/.composer/vendor/joomla/coding-standards&amp;lt;/tt&amp;gt;. If you copied any paths in step 2, include them here as well by separating them with a comma. The command looks like &amp;lt;tt&amp;gt;phpcs --config-set installed_paths [/to/path1],[/to/path2],[/Users/user/.composer/vendor/joomla/coding-standards]&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Verify the path is set correctly by running &amp;lt;tt&amp;gt;phpcs --config-show&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Verify that phpcs can see the Joomla codestyle by running &amp;lt;tt&amp;gt;phpcs -i&amp;lt;/tt&amp;gt;&lt;br /&gt;
# The output should look like this: &amp;lt;tt&amp;gt;The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, Zend and Joomla&amp;lt;/tt&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Usage == &amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:36--&amp;gt; You invoke the custom standard by&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;phpcs --standard=Joomla file/to/sniff&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt; To test a platform file using the provided platform coding standards, use&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;phpcs --standard=build/phpcs/Joomla path/to/file/or/folder&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt; Further documentation on the use of phpcs can be found at: [http://pear.php.net/package/PHP_CodeSniffer/docs]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==3. IDE Integration== &amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt; Everybody loves the console. It is, with no doubt, the most effective way to do whatever you need to do. Sometimes even Linux gurus need a little bit of comfort.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt; Fortunately there is a plug-in available for PhpStorm, Eclipse and Netbeans that integrates the CodeSniffer into your favourite IDE, so any coding standard violations are shown like &amp;quot;normal&amp;quot; errors.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== PhpStorm === &amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:43--&amp;gt; Code Sniffer is supported out of the box in PhpStorm. Go to Settings and under Editor {{rarr}} Inspections you will see the list of sniffers you have installed.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Set Path to Code Sniffer ==== &amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
# Open Settings (CTRL-ALT-S / CMD-,)&lt;br /&gt;
# Go to Languages &amp;amp; Frameworks&lt;br /&gt;
# Click on PHP&lt;br /&gt;
# Click on Code Sniffer&lt;br /&gt;
# The configuration is set to Local by default&lt;br /&gt;
# Click on the 3 dots behind it to open the configuration screen&lt;br /&gt;
# The first option is the PHP Code Sniffer (phpcs) path&lt;br /&gt;
# Click on the 3 dots behind the path to select the location of the phpcs file. See above on where phpcs may be installed on your site&lt;br /&gt;
# Click on Validate to make sure the path is correct and phpcs is working&lt;br /&gt;
# Click OK&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===== Activating the Joomla Code Style ===== &amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
# Open Settings (CTRL-ALT-S / CMD-,)&lt;br /&gt;
# Go to Editor&lt;br /&gt;
# Click on Inspections&lt;br /&gt;
# In the list, go to PHP&lt;br /&gt;
# Click on PHP Code Sniffer Validation&lt;br /&gt;
# Click on the check box behind it to activate it&lt;br /&gt;
# Click the Reload button (2 arrows) to force a reload of rules from disk&lt;br /&gt;
# Joomla should now be available in the list. See following image:{{-}}[[File:PhpStorm8CodeSniffer.png|PHPStorm CodeSniffer|500px]]&lt;br /&gt;
# Click OK&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== PHP PSR-0, PSR-1 and PSR-2 ==== &amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md&lt;br /&gt;
* https://github.com/pmjones/fig-standards/blob/psr-1-style-guide/proposed/PSR-1-basic.md&lt;br /&gt;
* https://github.com/pmjones/fig-standards/blob/psr-1-style-guide/proposed/PSR-2-advanced.md&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===== Using PHP PSR-1 and PSR-2 Sniff ===== &amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:50--&amp;gt; A CodeSniffer sniff to check against the PSR-x Coding Standard can be used as well. In that case you can select a different standard than Joomla.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===== Using Joomla Code style ===== &amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:52--&amp;gt; It&#039;s nice to be able to check that the standards are respected. It&#039;s even nicer if PhpStorm helps you format properly too as you are coding.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
To use the Joomla code style in PhpStorm&lt;br /&gt;
# Open Settings (CTRL-ALT-S / CMD-,)&lt;br /&gt;
# Go to Editor&lt;br /&gt;
# Click on Code Style&lt;br /&gt;
# Select Joomla from the Scheme select box&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== PhpStorm / Alternative Method ==== &amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt; &#039;&#039;&#039;NOTE&#039;&#039;&#039;: This method is &#039;&#039;&#039;outdated&#039;&#039;&#039;, but it might be useful if you are looking for a different integration. It also demonstrates the use of external tools in PhpStorm - so it &#039;&#039;shouldn&#039;t be deleted&#039;&#039;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;The Code Sniffer can also be integrated easily as an external tool. PhpStorm will display the output in the console, including click-able links containing line and column numbers to the files that contain errors.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
* Click on &amp;quot;Settings&amp;quot; and search for &amp;quot;External tools&amp;quot;&lt;br /&gt;
* Click &amp;quot;Add...&amp;quot;&lt;br /&gt;
* Choose a &amp;quot;Name&amp;quot;, &amp;quot;Group&amp;quot; and &amp;quot;Description&amp;quot;.&lt;br /&gt;
* Click &amp;quot;Output Filters&amp;quot;&lt;br /&gt;
** Click &amp;quot;Add...&amp;quot;, Choose a name and enter under &amp;quot;Regular expression to match output&amp;quot; the value: &amp;lt;tt&amp;gt;$FILE_PATH$:$LINE$:$COLUMN$&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;quot;Program&amp;quot;: Search for the phpcs executable on your system. You have to set the path to the &#039;&#039;phpcs.bat&#039;&#039; from the installed PHP_CodeSniffer PEAR package&lt;br /&gt;
** For Unix based systems, the path is something like /usr/bin/phpcs&lt;br /&gt;
** In XAMPP (windows), you can find the file in the PHP root folder (e.g. C:\xampp\php\phpcs.bat)&lt;br /&gt;
* &amp;quot;Parameters&amp;quot;:&lt;br /&gt;
** &amp;lt;tt&amp;gt;--standard=&amp;lt;path/to/joomla-platform&amp;gt;/build/phpcs/Joomla&amp;lt;/tt&amp;gt; The path to the Joomla! coding standards.&lt;br /&gt;
** &amp;lt;tt&amp;gt;--report=emacs&amp;lt;/tt&amp;gt; The will generate a simple list containing links to the error files&lt;br /&gt;
** Optionally you may want to specify &amp;lt;tt&amp;gt;-p&amp;lt;/tt&amp;gt; for &amp;quot;progress&amp;quot; or &amp;lt;tt&amp;gt;-n&amp;lt;/tt&amp;gt; for &amp;quot;errors only&amp;quot;.&lt;br /&gt;
** The last parameter has to be &amp;lt;tt&amp;gt;$FilePath$&amp;lt;/tt&amp;gt; specifying the file or folder you want to sniff.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:57--&amp;gt; A typical &amp;quot;Parameters&amp;quot; line on a Linux system might look like this:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;-np --standard=/home/elkuku/libs/joomla/build/phpcs/Joomla --report=emacs $FilePath$&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:58--&amp;gt; You may now right click any file or folder and choose the sniffer from the context menu or add a new tool bar button with a nice Joomla! logo&amp;lt;/translate&amp;gt; [[File:icon-16-joomla.png]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Netbeans === &amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:60--&amp;gt; Netbeans has the sniffer functionality integrated into the core system.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
# Start your Netbeans IDE&lt;br /&gt;
# Open Tools =&amp;gt; Options =&amp;gt; PHP =&amp;gt; Code Analysis =&amp;gt; Code Sniffer&lt;br /&gt;
# You have to set the path to &#039;&#039;phpcs.bat&#039;&#039; from the installed PHP_CodeSniffer PEAR package&lt;br /&gt;
#* For Unix based systems the path is something like /usr/bin/phpcs&lt;br /&gt;
#* In XAMPP (windows) you can find the file in the PHP root folder (e.g. C:\xampp\php\phpcs.bat)&lt;br /&gt;
# As &amp;quot;Default Standard,&amp;quot; choose &amp;quot;Joomla&amp;quot; to use the Joomla! standard&lt;br /&gt;
# Now you can click &#039;&#039;OK&#039;&#039; to start sniffing&lt;br /&gt;
# Open from the top menu Source =&amp;gt; Inspect...&lt;br /&gt;
# Enjoy&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Eclipse === &amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
[[Image:eclipse_pti.png|left|thumb|200px|1) Eclipse PTI]]&lt;br /&gt;
{{-}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
Installation is a breeze and follows the usual pattern:&lt;br /&gt;
# &amp;lt;tt&amp;gt;Help =&amp;gt; Install New Software...&amp;lt;/tt&amp;gt;&lt;br /&gt;
# &amp;lt;tt&amp;gt;Work with:&amp;lt;/tt&amp;gt; Fill in one of the update site URLs found here: http://www.phpsrc.org/eclipse/pti/&lt;br /&gt;
# Select the desired tools&lt;br /&gt;
# Restart Eclipse.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:eclipse_pti_settings.png|right|thumb|150px|2) &amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt; Eclipse PTI settings&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:65--&amp;gt; You are now able to sniff for code violations against common standards like PEAR or Zend etc.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:66--&amp;gt; To sniff against your own standards, specify their location and activate them (see screen shot 2)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
# &amp;lt;tt&amp;gt;Window =&amp;gt; Preferences&amp;lt;/tt&amp;gt;&lt;br /&gt;
# &amp;lt;tt&amp;gt;PHP Tools =&amp;gt; PHP CodeSniffer&amp;lt;/tt&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:68--&amp;gt; Happy sniffing.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Geany === &amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
* Open a PHP file. (Otherwise the build menu is not accessible.) See this [http://static.xscreenshot.com/2016/07/13/08/screen_6bc0692cf995702a1e379b39643d0c2d Screenshot]&lt;br /&gt;
* On the top menu, select Build-&amp;gt;Set Build Commands.&lt;br /&gt;
* Select the second field and name it as you wish. Enter this code in the Command: &amp;lt;code&amp;gt;phpcs --standard=Joomla &amp;quot;%f&amp;quot; | sed -e &#039;s/^/%f |/&#039; | egrep &#039;WARNING|ERROR&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Enter this code in the Error Regular Expression field: &amp;lt;code&amp;gt;(.+) [|]\s+([0-9]+)&amp;lt;/code&amp;gt; See this  [http://view.xscreenshot.com/ef00820cf7c017ce659c8e9f0b02d3ae Screenshot]&lt;br /&gt;
* Select OK.&lt;br /&gt;
* If the Message Window is not open, display it by selecting it in the top View menu.&lt;br /&gt;
* When viewing any PHP file, press F9 to see the errors found. [http://view.xscreenshot.com/8704b9fd1bda3f841364a0ffa28a54ae Screenshot]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== References === &amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* https://github.com/joomla/coding-standards - &amp;lt;translate&amp;gt;&amp;lt;!--T:72--&amp;gt; Joomla! Coding Standards&amp;lt;/translate&amp;gt;&lt;br /&gt;
* http://www.phpsrc.org/ &amp;lt;translate&amp;gt;&amp;lt;!--T:73--&amp;gt; PTI - PHP tools integration for Eclipse&amp;lt;/translate&amp;gt;&lt;br /&gt;
* http://sourceforge.net/projects/phpmdnb/ &amp;lt;translate&amp;gt;&amp;lt;!--T:74--&amp;gt; Netbeans plugin&amp;lt;/translate&amp;gt;&lt;br /&gt;
* http://hakre.wordpress.com/2010/03/06/php-code-sniffer-eclipse-and-wordpress/ - &amp;lt;translate&amp;gt;&amp;lt;!--T:75--&amp;gt; Excellent article. Just change &amp;quot;Wordpress&amp;quot; for &amp;quot;Joomla!&amp;quot; ;)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Bug Squad{{#translation:}}]]&lt;br /&gt;
[[Category:IDE (Integrated development environment){{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=How_do_you_password_protect_directories_using_htaccess%3F&amp;diff=445028</id>
		<title>How do you password protect directories using htaccess?</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=How_do_you_password_protect_directories_using_htaccess%3F&amp;diff=445028"/>
		<updated>2017-09-09T10:40:54Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: htaccess generator site didn&amp;#039;t work anymore and I added a new one&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This FAQ explains how to protect the Joomla! /administrator/ directory on Apache servers using the htpasswd utility. You can easily adapt these instructions to protect other directories. If you need help finding or creating your .htaccess file, start here.&lt;br /&gt;
&lt;br /&gt;
=== Caveat (From Apache.org) ===&lt;br /&gt;
&lt;br /&gt;
Basic authentication should not be considered secure for any particularly rigorous definition of secure.&lt;br /&gt;
Although the password is stored on the server in encrypted format, it is passed from the client to the server in plain text across the network. Anyone listening with any variety of packet sniffer will be able to read the username and password in the clear as it goes across.&lt;br /&gt;
&lt;br /&gt;
Not only that, but remember that the username and password are passed with every request, not just when the user first types them in. So the packet sniffer need not be listening at a particularly strategic time, but just for long enough to see any single request come across the wire.&lt;br /&gt;
&lt;br /&gt;
And, in addition to that, the content itself is also going across the network in the clear, and so if the web site contains sensitive information, the same packet sniffer would have access to that information as it went past, even if the username and password were not used to gain direct access to the web site.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t use basic authentication for anything that requires real security. It is a detriment for most users, since very few people will take the trouble, or have the necessary software and/or equipment, to find out passwords. However, if someone had a desire to get in, it would take very little for them to do so.&lt;br /&gt;
&lt;br /&gt;
Basic authentication across an SSL connection, however, will be secure, since everything is going to be encrypted, including the username and password.&lt;br /&gt;
&lt;br /&gt;
=== Directions ===&lt;br /&gt;
&lt;br /&gt;
# If you are unfamiliar with the Apache htpasswd utility, you may want to read the following link first. Apache Authentication, Authorization, and Access Control&lt;br /&gt;
# Check to be sure your site is configured to use .htaccess files. If not sure, ask your host.&lt;br /&gt;
# Decide where to put your .htaccess file. Because Apache recursively searches all directories in a path for .htaccess files, the higher in your directory structure you place this file, the more directories it will control. If there is already an .htaccess file in the directory you choose, it&#039;s probably best to add the new code to it.&lt;br /&gt;
# Decide where to store your.htpasswd and .htgroups files. These files should NEVER be publicly accessable through the Web. Below is an example directory structure showing good locations for each file. Note that the /auth/ directory in this example is NOT accessible from the Web.&lt;br /&gt;
#* &amp;lt;code&amp;gt;/home/mysite/public_html/.htaccess&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;/home/mysite/auth/.htpasswd/&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;/home/mysite/auth/.htgroups/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Create the .htpasswd and .htgroups files as explained in the official Apache HowTo, referenced above. (Since you&#039;ve read the always current and official documentation at Apache.org, we&#039;ll spare you the trouble of displaying it again here.)&lt;br /&gt;
# If a .htaccess file already exists in the directory you have chosen, make a backup copy. If the file does not exist, create a new file with that name now. (Don&#039;t forget the dot at the beginning of the name.)&lt;br /&gt;
# Add the following code to the .htaccess file. Adjust the example paths (marked in red) as needed for your server. Adjust the group name that you created in step 5 if it differs from the below example.&lt;br /&gt;
#: &amp;lt;pre&amp;gt;AuthUserFile /home/auth/.htpasswd&amp;amp;#10;AuthGroupFile /home/auth/.htgroups&amp;amp;#10;AuthType Basic&amp;amp;#10;AuthName &amp;quot;LWS&amp;quot;&amp;amp;#10;require group admins&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Test carefully.&lt;br /&gt;
# Remove all backup .htaccess files from public_http directories.&lt;br /&gt;
&lt;br /&gt;
If you can not use the Apache htpasswd utility, here&#039;s a free, online script that creates the necessary files for you. You&#039;ll need to know the user name, password, and path. The script does the rest for you. Note that for more advanced configuration, such as the use of groups, you&#039;ll need to edit the resulting files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;.htaccess Generator:&#039;&#039;&#039; https://www.htaccessredirect.net/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:FAQ]]&lt;br /&gt;
[[Category:Administration FAQ]]&lt;br /&gt;
[[Category:Getting Started FAQ]]&lt;br /&gt;
[[Category:Installation FAQ]]&lt;br /&gt;
[[Category:Version 1.5 FAQ]]&lt;br /&gt;
[[Category:Security]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Post_installation_message:_Wrong_PHP_detection&amp;diff=432452</id>
		<title>J3.x:Post installation message: Wrong PHP detection</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Post_installation_message:_Wrong_PHP_detection&amp;diff=432452"/>
		<updated>2017-07-04T16:21:06Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: Created page with &amp;quot;&amp;lt;!-- Start with an intro below this line --&amp;gt;  After an update to Joomla 3.7.3 the following Error occurs with PHP 7.0.  ==Errors reported== &amp;lt;!-- Fill errors below --&amp;gt;  Your PH...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Start with an intro below this line --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After an update to Joomla 3.7.3 the following Error occurs with PHP 7.0.&lt;br /&gt;
&lt;br /&gt;
==Errors reported== &amp;lt;!-- Fill errors below --&amp;gt;&lt;br /&gt;
 Your PHP Version Will Be Unsupported in Joomla! 3.3&lt;br /&gt;
 Since version 3.2.2&lt;br /&gt;
 Beginning with Joomla! 3.3, the version of PHP this site is using will no longer be supported.&lt;br /&gt;
 Joomla 3.3 will require at least PHP version 5.3.10 in order to provide enhanced security features to its users.&lt;br /&gt;
==Versions affected== &amp;lt;!--refers to and other information below --&amp;gt;&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.7.3&#039;&#039;&#039;|title=General Information}} &amp;lt;!-- add the version(s) you need --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What is the cause== &amp;lt;!-- Cause if known --&amp;gt;&lt;br /&gt;
Issue has been reported: https://github.com/joomla/joomla-cms/issues/16964&lt;br /&gt;
==How to fix== &amp;lt;!-- How to fix it if known --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;!-- Change if needed --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338637</id>
		<title>Installing Joomla on a Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338637"/>
		<updated>2016-10-22T20:09:41Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Note: Work-in-progress. This document is not yet ready &amp;amp; fully tested. Please wait with translation until it is finished. Thanks!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The [https://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer that was originally developed to promote the teaching of basic computer science in schools and developing countries. Because of its versatility it has become very popular and is used as media player, small stand-alone server, etc. You can use it as webserver and install Joomla! on it. This page shows you how to get a your Joomla! website running on the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
* &#039;&#039;&#039;Rasberry Pi version 3 Model B&#039;&#039;&#039; - There are various models of Raspberry Pi. You can use most models that have an Ethernet port (the Model B types). However for performance we will use the latest version with most RAM memory.&lt;br /&gt;
* &#039;&#039;&#039;micro SD card&#039;&#039;&#039; - For the operating system + webserver + Joomla. (RPi version 3 model B uses micro SD other versions might use normal SD cards) &lt;br /&gt;
* &#039;&#039;&#039;5 Volt adapter (1 Amp)&#039;&#039;&#039; - to power the Raspberry Pi you&#039;ll need to convert the mains power (230V or 110V) to 5 Volt. The Rasperry Pi needs about 1 Amp, and maybe more if you connect USB devices to it.&lt;br /&gt;
* standard &#039;&#039;&#039;Ethernet cable&#039;&#039;&#039; - to connect the RPi to your Local Area Network / router / the internet.&lt;br /&gt;
&lt;br /&gt;
==Installing Operating System==&lt;br /&gt;
The operating system Raspbian is a Debian Linux version specially compiled for the Raspberry Pi. There are two versions of [https://www.raspberrypi.org/downloads/raspbian/ Raspbian] available: &#039;&#039;&#039;Raspbian Jessie with Pixel Lite&#039;&#039;&#039; (version with PIXEL desktop based on Debian Jessie) and &#039;&#039;&#039;Raspbian Jessie Lite&#039;&#039;&#039; (minimal version based on Debian Jessie). Because we use the Raspberry Pi as webserver for Joomla, we won&#039;t need the GUI. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039; [https://www.raspberrypi.org/downloads/raspbian/ Raspbian Jessie Lite] and unzip the downloaded file, e.g. 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.zip&#039;&#039;&#039; (306 MB) to 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.img&#039;&#039;&#039; (1.4 GB).&lt;br /&gt;
&lt;br /&gt;
Now we need to copy the .img file to the (micro) SD card. You can use a tool with graphical interface like&lt;br /&gt;
[https://unetbootin.github.io/ UNetbootin] (for Windows, Mac OS X and Linux) or do it on the command line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be very careful&#039;&#039;&#039; when writing the .img disk image to another disk. In case you use the wrong destination disk, you will overwrite that disk with the .img which makes that disk unusable, resulting in data loss.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
In a terminal (CMD) check which device corresponds with the SD Card and do something like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd bs=1M if=c:\temp\2016-09-23-raspbian-jessie-lite.img od=[the device of your SD Card]&amp;lt;/source&amp;gt;&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/windows.md Installing Operating System Images using Windows]&lt;br /&gt;
&lt;br /&gt;
===Apple OSX===&lt;br /&gt;
Check which device is used for your SD Card. In our case it&#039;s disk1s1 and we&#039;ll do in Terminal: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd bs=1M if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/disk1s1&amp;lt;/source&amp;gt;&lt;br /&gt;
See also: [https://www.raspberrypi.org/documentation/installation/installing-images/mac.md Installing Operating System Images on MacOS]&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
We connect a SD Card reader with the (micro) SD Card to a computer. With &#039;&#039;&#039;dmesg&#039;&#039;&#039; we can find the device name of the SD Card. In our case dmesg shows something like &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[xxxxxx.xxxxxxx]  sdd: sdd1 sdd2&amp;lt;/source&amp;gt; meaning that we have a SD Card with 2 partitions. Do not write the Raspbian image to a partition but to the whole disk &#039;&#039;&#039;sdd&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
We will use &#039;&#039;&#039;dd&#039;&#039;&#039; (&amp;quot;Disk Dump&amp;quot;) to write an Input File (&#039;&#039;&#039;if&#039;&#039;&#039;) to an Output File (&#039;&#039;&#039;of&#039;&#039;&#039;) using a specified Block Size (&#039;&#039;&#039;bs&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be VERY careful&#039;&#039;&#039;: dd will write to a device without any warning. Triple double check that that you write to the right device! If you write to the wrong disk, then you&#039;ll always remember the dd command as &amp;quot;Disk Destroyer&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/sdd bs=4M&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/linux.md Installing Operating System Images on Linux]&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to LAN==&lt;br /&gt;
When we have installed the Raspbian Operating System on the SD Card, we will:&lt;br /&gt;
* Insert the micro SD card in the SD Card slot on the Raspberry Pi. &lt;br /&gt;
* Connect an an Ethernet cable to the Raspberry Pi and to the Local Area Network (connect it to our router).&lt;br /&gt;
* Connect the 5V power supply to the the Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Booting up the Raspberry Pi takes roughly 30 seconds. We&#039;ve to find the IP address to connect to it using SSH. We can use different approaches for that: &lt;br /&gt;
* log into the webinterface of your router and look up the connected devices;&lt;br /&gt;
* use a mobile phone connected the Wifi router using a network scanning App called &#039;&#039;&#039;Fing Overlook&#039;&#039;&#039;;&lt;br /&gt;
* use a command like &#039;&#039;&#039;nmap&#039;&#039;&#039;. Assuming that our PC has IP address &#039;&#039;&#039;192.168.0&#039;&#039;&#039;.25 we can find all other devices in the same network range by doing the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nmap -sP 192.168.0/24&amp;lt;/source&amp;gt;&lt;br /&gt;
Which might show the following details:&lt;br /&gt;
&lt;br /&gt;
 Starting Nmap 6.47 ( http://nmap.org ) at 2016-10-22 17:42 CEST&lt;br /&gt;
 Nmap scan report for &#039;&#039;&#039;192.168.0.35&#039;&#039;&#039;&lt;br /&gt;
 Host is up (0.00042s latency).&lt;br /&gt;
 MAC Address: 42:42:42:42:42:42 (Raspberry Pi Foundation)&lt;br /&gt;
&lt;br /&gt;
To log into our Raspberry Pi, we&#039;ll use the command &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first time you&#039;ll connect to it, it will show something like:&lt;br /&gt;
 The authenticity of host &#039;192.168.0.35 (192.168.0.35)&#039; can&#039;t be established.&lt;br /&gt;
 ECDSA key fingerprint is 42:42:42:42:42:42:42:42:42:42:42:42:42:42:42:42. &lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
We&#039;ll choose &amp;quot;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
 Warning: Permanently added &#039;192.168.0.35&#039; (ECDSA) to the list of known hosts.&lt;br /&gt;
 pi@192.168.0.35&#039;s password: &lt;br /&gt;
and use the &#039;&#039;&#039;default password&#039;&#039;&#039;: &#039;&#039;&#039;raspberry&#039;&#039;&#039;&lt;br /&gt;
which on successful login will show:&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
 &lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 pi@raspberrypi:~ $ &lt;br /&gt;
&lt;br /&gt;
We can configure the Raspberry Pi using a text interface via:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo raspi-config&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Raspberry Pi Software Configuration Tool (raspi-config)===&lt;br /&gt;
With this configuration tool we&#039;ll only change the following settings.&lt;br /&gt;
====1 Expand Filesystem====&lt;br /&gt;
By default the disk space on the SD Card is the same size as the 1.4GB .img file that you used to create the SD card for your Raspberry Pi. You can use this option to gain the rest of the disk space.&lt;br /&gt;
&lt;br /&gt;
====2 Change User Password====&lt;br /&gt;
For security reasons it&#039;s best to &#039;&#039;&#039;change the default password&#039;&#039;&#039; &amp;quot;raspberry&amp;quot; as soon as possible.&lt;br /&gt;
&lt;br /&gt;
====3 Boot Options==== &lt;br /&gt;
We would like the Raspberry Pi to boot the Text console&lt;br /&gt;
=====B2 Console Autologin Text console, automatically logged in as &#039;pi&#039; user=====    &lt;br /&gt;
&lt;br /&gt;
====9 Advanced Options====&lt;br /&gt;
=====A3 Memory Split=====&lt;br /&gt;
Because we will use the Raspberry Pi as a headless server without connecting it to a monitor, we can decrease the memory used for the GPU from 64 to &#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====5 Internationalisation Options====&lt;br /&gt;
=====I2 Change Timezone=====&lt;br /&gt;
We&#039;ll change the Timezone to our own time zone (e.g. Europe/Amsterdam)&lt;br /&gt;
&lt;br /&gt;
After all changes we&#039;ll Reboot the Raspberry Pi, and will login again with our new password.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
Now it&#039;s time to install everything else.&lt;br /&gt;
&lt;br /&gt;
==Update software==&lt;br /&gt;
Before installing anything else, we&#039;ll:&lt;br /&gt;
* &#039;&#039;&#039;update&#039;&#039;&#039; the list of software versions from all external repositories&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get update&amp;lt;/source&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;upgrade&#039;&#039;&#039; all installed software&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get upgrade&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating the version list and upgrading all software is something that should be done regularly.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Nginx Webserver==&lt;br /&gt;
A fast and lightweight alternative for Apache web server is the increasingly becoming popular &#039;&#039;&#039;Nginx&#039;&#039;&#039; web server.&lt;br /&gt;
&lt;br /&gt;
===Installation of Nginx===&lt;br /&gt;
We will install nginx and all dependencies (read: software that nginx needs to work) with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install nginx&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll get a message like:&lt;br /&gt;
 Reading package lists... Done&lt;br /&gt;
 Building dependency tree       &lt;br /&gt;
 Reading state information... Done&lt;br /&gt;
 The following extra packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common nginx-full&lt;br /&gt;
 Suggested packages:&lt;br /&gt;
  libgd-tools fcgiwrap nginx-doc ssl-cert&lt;br /&gt;
 The following NEW packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx nginx-common nginx-full&lt;br /&gt;
 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.&lt;br /&gt;
 Need to get 3,550 kB of archives.&lt;br /&gt;
 After this operation, 8,666 kB of additional disk space will be used.&lt;br /&gt;
 Do you want to continue? [Y/n] y&lt;br /&gt;
By choosing &amp;quot;y&amp;quot; nginx and all needed packages will be installed.&lt;br /&gt;
&lt;br /&gt;
You can check the installation with a browser. Go to the IP address of your Raspberry pi, in our case http://192.168.0.35/&lt;br /&gt;
We should see a message like:&lt;br /&gt;
 &#039;&#039;&#039;Welcome to nginx on Debian!&#039;&#039;&#039;&lt;br /&gt;
 If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.&lt;br /&gt;
 For online documentation and support please refer to nginx.org&lt;br /&gt;
 Please use the reportbug tool to report bugs in the nginx package with Debian. &lt;br /&gt;
 However, check existing bug reports before reporting a  new bug.&lt;br /&gt;
 &#039;&#039;Thank you for using debian and nginx.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Starting and stopping Nginx====&lt;br /&gt;
After installation Nginx will automatically be started. You can: &lt;br /&gt;
* Stop Nginx: sudo service nginx stop&lt;br /&gt;
* Start Nginx: sudo service nginx start&lt;br /&gt;
* Restart Nginx: sudo service nginx restart&lt;br /&gt;
&lt;br /&gt;
===Configure Nginx===&lt;br /&gt;
====Global Nginx configuration====&lt;br /&gt;
In the global configuration of Nginx we can configure default caching etc. The Raspberry Pi 3 uses 1.2 GHz 64-bit &#039;&#039;&#039;quad-core&#039;&#039;&#039; ARM Cortex-A53 processor. If you have an earlier version with less CPU cores, then you should use &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/nginx.conf&amp;lt;/source&amp;gt; to change the &amp;quot;worker_processes&amp;quot; to fit the amount of CPUs of your device. By default it&#039;s configured as&lt;br /&gt;
 worker_processes 4;&lt;br /&gt;
so for Raspberry Pi 3 you don&#039;t have to change it.&lt;br /&gt;
&lt;br /&gt;
After changing the Nginx configuration or virtual domain configuration, you have to do a &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;sudo nginx reload&amp;lt;/source&amp;gt; to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
====Virtual Domains====&lt;br /&gt;
It&#039;s possible to run multiple Joomla websites on the same server using virtual domains.&lt;br /&gt;
&lt;br /&gt;
Put every website in a separate folder in the default webroot /var/www/ for example:&lt;br /&gt;
* /var/www/example.com/&lt;br /&gt;
* /var/www/voorbeeld.nl/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mkdir /var/www/example.com&lt;br /&gt;
sudo mkdir /var/www/voorbeeld.nl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For every site we will create a virtual domain which is basically a text file with domain specific information:&lt;br /&gt;
* /etc/nginx/sites-available/example.com&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 root /var/www/example.com;&lt;br /&gt;
 &lt;br /&gt;
 access_log /var/log/nginx/example.com.access_log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error_log info;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* /etc/nginx/sites-available/voorbeeld.nl&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name voorbeeld.nl www.voorbeeld.nl;&lt;br /&gt;
 root /var/www/voorbeeld.nl;&lt;br /&gt;
 &lt;br /&gt;
 access_log /var/log/nginx/voorbeeld.nl.access_log;&lt;br /&gt;
 error_log /var/log/nginx/voorbeeld.nl.error_log info;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
We need to enable every site by linking from /etc/nginx/sites-enabled/ to the virtual domain in &amp;quot;sites-available&amp;quot;. We create a symbolic link for each virtual domain:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com&lt;br /&gt;
sudo ln -s /etc/nginx/sites-available/voorbeeld.nl /etc/nginx/sites-enabled/voorbeeld.nl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make this virtual domain configuration effective, we do &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nginx reload&amp;lt;/source&amp;gt; and when everything has been configured correctly it will respond:&lt;br /&gt;
 Reloading nginx configuration: nginx.&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
We can install MariaDB or MySQL; Joomla will work with both. Let&#039;s install MariaDB with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mariadb-server&amp;lt;/source&amp;gt;&lt;br /&gt;
During the installation you&#039;ve to add a password for the &#039;&#039;&#039;root&#039;&#039;&#039; user. &lt;br /&gt;
Lets create a &#039;&#039;&#039;database password&#039;&#039;&#039;, for example &#039;&#039;&#039;correcthorsebatterystaple&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally let&#039;s improve the security of our MariaDB installation by removing root accounts that are accessible from outside the local host, anonymous-user accounts and the test database. We can do that with &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mysql_secure_installation&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PHP==&lt;br /&gt;
For PHP we will install the &#039;&#039;&#039;php-fpm&#039;&#039;&#039; (FastCGI Process Manager) that runs as a daemon and receives Fast/CGI requests. Furthermore we will install &#039;&#039;&#039;php5-mysql&#039;&#039;&#039; which is a module for MySQL database connections directly from PHP scripts.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install php5-fpm php5-mysql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to let Nginx know that it should use php-fpm for .php files. We add a couple of lines to our virtual domains:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/sites-available/example.com&amp;lt;/source&amp;gt;&lt;br /&gt;
add:&lt;br /&gt;
 location ~ \.php$ {&lt;br /&gt;
 fastcgi_pass unix:/var/run/php5-fpm.sock;&lt;br /&gt;
 fastcgi_index index.php;&lt;br /&gt;
 include fastcgi_params;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Test it by creating the following PHP file&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /var/www/example.com/test.php&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php phpinfo();?&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
We use a browser to test if we see the PHP configuration page at http://192.168.0.35/example.com/test.php&lt;br /&gt;
&lt;br /&gt;
==Joomla!==&lt;br /&gt;
* to do&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo wget https://github.com/joomla/joomla-cms/releases/download/3.6.3/Joomla_3.6.3-Stable-Full_Package.zip&lt;br /&gt;
sudo unzip -x Joomla_3.6.3-Stable-Full_Package.zip&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to Internet==&lt;br /&gt;
We want people on the internet to be able to visit our Joomla website on our Raspberry Pi. In order to do that we need to &#039;&#039;&#039;configure our Internet router&#039;&#039;&#039; to forward all &#039;&#039;&#039;incoming traffic&#039;&#039;&#039; on port 80 &#039;&#039;&#039;to our Raspberry Pi&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use your web browser to connect to the Web Interface of your router. A router is usually located on the first number of your IP range, in our case on 192.168.0.1. In our router we configure &#039;&#039;&#039;Port Forwarding&#039;&#039;&#039;:&lt;br /&gt;
* External IP Address: 0.0.0.0&lt;br /&gt;
* External Start Port: 80&lt;br /&gt;
* External End Port: 80&lt;br /&gt;
* Internal IP Address: 192.168.0.35 ( = our Raspberry Pi)&lt;br /&gt;
* Internal Start Port: 80&lt;br /&gt;
* Internal End Port: 80&lt;br /&gt;
* Protocol: TCP&lt;br /&gt;
Make sure that it is enabled.&lt;br /&gt;
&lt;br /&gt;
If everything is working correctly then you should see your own Joomla website on the Raspberry Pi by visiting your external IP address (Find your external IP address with a tool like [http://www.whatsmyip.org/ whatsmyip.org]). &lt;br /&gt;
&lt;br /&gt;
===Using a domain name===&lt;br /&gt;
Let&#039;s assume that our external IP address is 42.42.42.42. Let&#039;s also assume that we have registered a domain name called example.com. We would like to serve our Joomla site on our Raspberry Pi to visitors visiting example.com. If your domain name registrar gives us the possibility to configure the &#039;&#039;&#039;Domain Name System (DNS)&#039;&#039;&#039; server, then we&#039;ll need to create an &#039;&#039;&#039;MX record&#039;&#039;&#039; in the DNS that points our &#039;&#039;&#039;domain name to&#039;&#039;&#039; our &#039;&#039;&#039;IP address&#039;&#039;&#039; 42.42.42.42. Note that it can take up to 24 hours till all internet providers will redirect the traffic of their customers to the configured MX record.&lt;br /&gt;
&lt;br /&gt;
===Static IP address===&lt;br /&gt;
Most routers will keep assigning the same internal IP address to your Raspberry Pi. Sometimes it&#039;s better to configure your Raspberry Pi to use a static IP address:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/network/interfaces&amp;lt;/source&amp;gt;&lt;br /&gt;
change &lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
to&lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
 address 192.168.0.35 &lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 gateway 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
The gateway is the IP address of your router. You can also find it using&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;route&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
* [https://raspberrypi.org Raspberry Pi Foundation] (RPF) - official website and forums&lt;br /&gt;
* [http://elinux.org/RaspberryPiBoard Raspberry Pi Wiki], supported by the RPF&lt;br /&gt;
* Video of presentation [https://youtu.be/u2MFQCoexD0 Joomla on Raspberry Pi (with Nginx)] at Joomladay Germany 2013 in Nuremberg, Germany&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338636</id>
		<title>Installing Joomla on a Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338636"/>
		<updated>2016-10-22T19:48:22Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: /* Virtual Domains */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer that was originally developed to promote the teaching of basic computer science in schools and developing countries. Because of its versatility it has become very popular and is used as media player, small stand-alone server, etc. You can use it as webserver and install Joomla! on it. This page shows you how to get a your Joomla! website running on the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
* &#039;&#039;&#039;Rasberry Pi version 3 Model B&#039;&#039;&#039; - There are various models of Raspberry Pi. You can use most models that have an Ethernet port (the Model B types). However for performance we will use the latest version with most RAM memory.&lt;br /&gt;
* &#039;&#039;&#039;micro SD card&#039;&#039;&#039; - For the operating system + webserver + Joomla. (RPi version 3 model B uses micro SD other versions might use normal SD cards) &lt;br /&gt;
* &#039;&#039;&#039;5 Volt adapter (1 Amp)&#039;&#039;&#039; - to power the Raspberry Pi you&#039;ll need to convert the mains power (230V or 110V) to 5 Volt. The Rasperry Pi needs about 1 Amp, and maybe more if you connect USB devices to it.&lt;br /&gt;
* standard &#039;&#039;&#039;Ethernet cable&#039;&#039;&#039; - to connect the RPi to your Local Area Network / router / the internet.&lt;br /&gt;
&lt;br /&gt;
==Installing Operating System==&lt;br /&gt;
The operating system Raspbian is a Debian Linux version specially compiled for the Raspberry Pi. There are two versions of [https://www.raspberrypi.org/downloads/raspbian/ Raspbian] available: &#039;&#039;&#039;Raspbian Jessie with Pixel Lite&#039;&#039;&#039; (version with PIXEL desktop based on Debian Jessie) and &#039;&#039;&#039;Raspbian Jessie Lite&#039;&#039;&#039; (minimal version based on Debian Jessie). Because we use the Raspberry Pi as webserver for Joomla, we won&#039;t need the GUI. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039; [https://www.raspberrypi.org/downloads/raspbian/ Raspbian Jessie Lite] and unzip the downloaded file, e.g. 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.zip&#039;&#039;&#039; (306 MB) to 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.img&#039;&#039;&#039; (1.4 GB).&lt;br /&gt;
&lt;br /&gt;
Now we need to copy the .img file to the (micro) SD card. You can use a tool with graphical interface like&lt;br /&gt;
[https://unetbootin.github.io/ UNetbootin] (for Windows, Mac OS X and Linux) or do it on the command line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be very careful&#039;&#039;&#039; when writing the .img disk image to another disk. In case you use the wrong destination disk, you will overwrite that disk with the .img which makes that disk unusable, resulting in data loss.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
In a terminal (CMD) check which device corresponds with the SD Card and do something like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd bs=1M if=c:\temp\2016-09-23-raspbian-jessie-lite.img od=[the device of your SD Card]&amp;lt;/source&amp;gt;&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/windows.md Installing Operating System Images using Windows]&lt;br /&gt;
&lt;br /&gt;
===Apple OSX===&lt;br /&gt;
Check which device is used for your SD Card. In our case it&#039;s disk1s1 and we&#039;ll do in Terminal: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd bs=1M if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/disk1s1&amp;lt;/source&amp;gt;&lt;br /&gt;
See also: [https://www.raspberrypi.org/documentation/installation/installing-images/mac.md Installing Operating System Images on MacOS]&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
We connect a SD Card reader with the (micro) SD Card to a computer. With &#039;&#039;&#039;dmesg&#039;&#039;&#039; we can find the device name of the SD Card. In our case dmesg shows something like &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[xxxxxx.xxxxxxx]  sdd: sdd1 sdd2&amp;lt;/source&amp;gt; meaning that we have a SD Card with 2 partitions. Do not write the Raspbian image to a partition but to the whole disk &#039;&#039;&#039;sdd&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
We will use &#039;&#039;&#039;dd&#039;&#039;&#039; (&amp;quot;Disk Dump&amp;quot;) to write an Input File (&#039;&#039;&#039;if&#039;&#039;&#039;) to an Output File (&#039;&#039;&#039;of&#039;&#039;&#039;) using a specified Block Size (&#039;&#039;&#039;bs&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be VERY careful&#039;&#039;&#039;: dd will write to a device without any warning. Triple double check that that you write to the right device! If you write to the wrong disk, then you&#039;ll always remember the dd command as &amp;quot;Disk Destroyer&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/sdd bs=4M&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/linux.md Installing Operating System Images on Linux]&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to LAN==&lt;br /&gt;
When we have installed the Raspbian Operating System on the SD Card, we will:&lt;br /&gt;
* Insert the micro SD card in the SD Card slot on the Raspberry Pi. &lt;br /&gt;
* Connect an an Ethernet cable to the Raspberry Pi and to the Local Area Network (connect it to our router).&lt;br /&gt;
* Connect the 5V power supply to the the Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Booting up the Raspberry Pi takes roughly 30 seconds. We&#039;ve to find the IP address to connect to it using SSH. We can use different approaches for that: &lt;br /&gt;
* log into the webinterface of your router and look up the connected devices;&lt;br /&gt;
* use a mobile phone connected the Wifi router using a network scanning App called &#039;&#039;&#039;Fing Overlook&#039;&#039;&#039;;&lt;br /&gt;
* use a command like &#039;&#039;&#039;nmap&#039;&#039;&#039;. Assuming that our PC has IP address &#039;&#039;&#039;192.168.0&#039;&#039;&#039;.25 we can find all other devices in the same network range by doing the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nmap -sP 192.168.0/24&amp;lt;/source&amp;gt;&lt;br /&gt;
Which might show the following details:&lt;br /&gt;
&lt;br /&gt;
 Starting Nmap 6.47 ( http://nmap.org ) at 2016-10-22 17:42 CEST&lt;br /&gt;
 Nmap scan report for &#039;&#039;&#039;192.168.0.35&#039;&#039;&#039;&lt;br /&gt;
 Host is up (0.00042s latency).&lt;br /&gt;
 MAC Address: 42:42:42:42:42:42 (Raspberry Pi Foundation)&lt;br /&gt;
&lt;br /&gt;
To log into our Raspberry Pi, we&#039;ll use the command &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first time you&#039;ll connect to it, it will show something like:&lt;br /&gt;
 The authenticity of host &#039;192.168.0.35 (192.168.0.35)&#039; can&#039;t be established.&lt;br /&gt;
 ECDSA key fingerprint is 42:42:42:42:42:42:42:42:42:42:42:42:42:42:42:42. &lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
We&#039;ll choose &amp;quot;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
 Warning: Permanently added &#039;192.168.0.35&#039; (ECDSA) to the list of known hosts.&lt;br /&gt;
 pi@192.168.0.35&#039;s password: &lt;br /&gt;
and use the &#039;&#039;&#039;default password&#039;&#039;&#039;: &#039;&#039;&#039;raspberry&#039;&#039;&#039;&lt;br /&gt;
which on successful login will show:&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
 &lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 pi@raspberrypi:~ $ &lt;br /&gt;
&lt;br /&gt;
We can configure the Raspberry Pi using a text interface via:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo raspi-config&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Raspberry Pi Software Configuration Tool (raspi-config)===&lt;br /&gt;
With this configuration tool we&#039;ll only change the following settings.&lt;br /&gt;
====1 Expand Filesystem====&lt;br /&gt;
By default the disk space on the SD Card is the same size as the 1.4GB .img file that you used to create the SD card for your Raspberry Pi. You can use this option to gain the rest of the disk space.&lt;br /&gt;
&lt;br /&gt;
====2 Change User Password====&lt;br /&gt;
For security reasons it&#039;s best to &#039;&#039;&#039;change the default password&#039;&#039;&#039; &amp;quot;raspberry&amp;quot; as soon as possible.&lt;br /&gt;
&lt;br /&gt;
====3 Boot Options==== &lt;br /&gt;
We would like the Raspberry Pi to boot the Text console&lt;br /&gt;
=====B2 Console Autologin Text console, automatically logged in as &#039;pi&#039; user=====    &lt;br /&gt;
&lt;br /&gt;
====9 Advanced Options====&lt;br /&gt;
=====A3 Memory Split=====&lt;br /&gt;
Because we will use the Raspberry Pi as a headless server without connecting it to a monitor, we can decrease the memory used for the GPU from 64 to &#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====5 Internationalisation Options====&lt;br /&gt;
=====I2 Change Timezone=====&lt;br /&gt;
We&#039;ll change the Timezone to our own time zone (e.g. Europe/Amsterdam)&lt;br /&gt;
&lt;br /&gt;
After all changes we&#039;ll Reboot the Raspberry Pi, and will login again with our new password.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
Now it&#039;s time to install everything else.&lt;br /&gt;
&lt;br /&gt;
==Update software==&lt;br /&gt;
Before installing anything else, we&#039;ll:&lt;br /&gt;
* &#039;&#039;&#039;update&#039;&#039;&#039; the list of software versions from all external repositories&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get update&amp;lt;/source&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;upgrade&#039;&#039;&#039; all installed software&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get upgrade&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating the version list and upgrading all software is something that should be done regularly.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Nginx Webserver==&lt;br /&gt;
A fast and lightweight alternative for Apache web server is the increasingly becoming popular &#039;&#039;&#039;Nginx&#039;&#039;&#039; web server.&lt;br /&gt;
&lt;br /&gt;
===Installation of Nginx===&lt;br /&gt;
We will install nginx and all dependencies (read: software that nginx needs to work) with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install nginx&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll get a message like:&lt;br /&gt;
 Reading package lists... Done&lt;br /&gt;
 Building dependency tree       &lt;br /&gt;
 Reading state information... Done&lt;br /&gt;
 The following extra packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common nginx-full&lt;br /&gt;
 Suggested packages:&lt;br /&gt;
  libgd-tools fcgiwrap nginx-doc ssl-cert&lt;br /&gt;
 The following NEW packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx nginx-common nginx-full&lt;br /&gt;
 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.&lt;br /&gt;
 Need to get 3,550 kB of archives.&lt;br /&gt;
 After this operation, 8,666 kB of additional disk space will be used.&lt;br /&gt;
 Do you want to continue? [Y/n] y&lt;br /&gt;
By choosing &amp;quot;y&amp;quot; nginx and all needed packages will be installed.&lt;br /&gt;
&lt;br /&gt;
You can check the installation with a browser. Go to the IP address of your Raspberry pi, in our case http://192.168.0.35/&lt;br /&gt;
We should see a message like:&lt;br /&gt;
 &#039;&#039;&#039;Welcome to nginx on Debian!&#039;&#039;&#039;&lt;br /&gt;
 If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.&lt;br /&gt;
 For online documentation and support please refer to nginx.org&lt;br /&gt;
 Please use the reportbug tool to report bugs in the nginx package with Debian. &lt;br /&gt;
 However, check existing bug reports before reporting a  new bug.&lt;br /&gt;
 &#039;&#039;Thank you for using debian and nginx.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Starting and stopping Nginx====&lt;br /&gt;
After installation Nginx will automatically be started. You can: &lt;br /&gt;
* Stop Nginx: sudo service nginx stop&lt;br /&gt;
* Start Nginx: sudo service nginx start&lt;br /&gt;
* Restart Nginx: sudo service nginx restart&lt;br /&gt;
&lt;br /&gt;
===Configure Nginx===&lt;br /&gt;
====Global Nginx configuration====&lt;br /&gt;
In the global configuration of Nginx we can configure default caching etc. The Raspberry Pi 3 uses 1.2 GHz 64-bit &#039;&#039;&#039;quad-core&#039;&#039;&#039; ARM Cortex-A53 processor. If you have an earlier version with less CPU cores, then you should use &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/nginx.conf&amp;lt;/source&amp;gt; to change the &amp;quot;worker_processes&amp;quot; to fit the amount of CPUs of your device. By default it&#039;s configured as&lt;br /&gt;
 worker_processes 4;&lt;br /&gt;
so for Raspberry Pi 3 you don&#039;t have to change it.&lt;br /&gt;
&lt;br /&gt;
After changing the Nginx configuration or virtual domain configuration, you have to do a &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;sudo nginx reload&amp;lt;/source&amp;gt; to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
====Virtual Domains====&lt;br /&gt;
It&#039;s possible to run multiple Joomla websites on the same server using virtual domains.&lt;br /&gt;
&lt;br /&gt;
Put every website in a separate folder in the default webroot /var/www/ for example:&lt;br /&gt;
* /var/www/example.com/&lt;br /&gt;
* /var/www/voorbeeld.nl/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mkdir /var/www/example.com&lt;br /&gt;
sudo mkdir /var/www/voorbeeld.nl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For every site we will create a virtual domain which is basically a text file with domain specific information:&lt;br /&gt;
* /etc/nginx/sites-available/example.com&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 root /var/www/example.com;&lt;br /&gt;
 &lt;br /&gt;
 access_log /var/log/nginx/example.com.access_log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error_log info;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* /etc/nginx/sites-available/voorbeeld.nl&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name voorbeeld.nl www.voorbeeld.nl;&lt;br /&gt;
 root /var/www/voorbeeld.nl;&lt;br /&gt;
 &lt;br /&gt;
 access_log /var/log/nginx/voorbeeld.nl.access_log;&lt;br /&gt;
 error_log /var/log/nginx/voorbeeld.nl.error_log info;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
We need to enable every site by linking from /etc/nginx/sites-enabled/ to the virtual domain in &amp;quot;sites-available&amp;quot;. We create a symbolic link for each virtual domain:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com&lt;br /&gt;
sudo ln -s /etc/nginx/sites-available/voorbeeld.nl /etc/nginx/sites-enabled/voorbeeld.nl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make this virtual domain configuration effective, we do &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nginx reload&amp;lt;/source&amp;gt; and when everything has been configured correctly it will respond:&lt;br /&gt;
 Reloading nginx configuration: nginx.&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
We can install MariaDB or MySQL; Joomla will work with both. Let&#039;s install MariaDB with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mariadb-server&amp;lt;/source&amp;gt;&lt;br /&gt;
During the installation you&#039;ve to add a password for the &#039;&#039;&#039;root&#039;&#039;&#039; user. &lt;br /&gt;
Lets create a &#039;&#039;&#039;database password&#039;&#039;&#039;, for example &#039;&#039;&#039;correcthorsebatterystaple&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally let&#039;s improve the security of our MariaDB installation by removing root accounts that are accessible from outside the local host, anonymous-user accounts and the test database. We can do that with &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mysql_secure_installation&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PHP==&lt;br /&gt;
For PHP we will install the &#039;&#039;&#039;php-fpm&#039;&#039;&#039; (FastCGI Process Manager) that runs as a daemon and receives Fast/CGI requests. Furthermore we will install &#039;&#039;&#039;php5-mysql&#039;&#039;&#039; which is a module for MySQL database connections directly from PHP scripts.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install php5-fpm php5-mysql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to let Nginx know that it should use php-fpm for .php files. We add a couple of lines to our virtual domains:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/sites-available/example.com&amp;lt;/source&amp;gt;&lt;br /&gt;
add:&lt;br /&gt;
 location ~ \.php$ {&lt;br /&gt;
 fastcgi_pass unix:/var/run/php5-fpm.sock;&lt;br /&gt;
 fastcgi_index index.php;&lt;br /&gt;
 include fastcgi_params;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Test it by creating the following PHP file&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /var/www/example.com/test.php&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php phpinfo();?&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
We use a browser to test if we see the PHP configuration page at http://192.168.0.35/example.com/test.php&lt;br /&gt;
&lt;br /&gt;
==Joomla!==&lt;br /&gt;
* to do&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo wget https://github.com/joomla/joomla-cms/releases/download/3.6.3/Joomla_3.6.3-Stable-Full_Package.zip&lt;br /&gt;
sudo unzip -x Joomla_3.6.3-Stable-Full_Package.zip&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to Internet==&lt;br /&gt;
We want people on the internet to be able to visit our Joomla website on our Raspberry Pi. In order to do that we need to &#039;&#039;&#039;configure our Internet router&#039;&#039;&#039; to forward all &#039;&#039;&#039;incoming traffic&#039;&#039;&#039; on port 80 &#039;&#039;&#039;to our Raspberry Pi&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use your web browser to connect to the Web Interface of your router. A router is usually located on the first number of your IP range, in our case on 192.168.0.1. In our router we configure &#039;&#039;&#039;Port Forwarding&#039;&#039;&#039;:&lt;br /&gt;
* External IP Address: 0.0.0.0&lt;br /&gt;
* External Start Port: 80&lt;br /&gt;
* External End Port: 80&lt;br /&gt;
* Internal IP Address: 192.168.0.35 ( = our Raspberry Pi)&lt;br /&gt;
* Internal Start Port: 80&lt;br /&gt;
* Internal End Port: 80&lt;br /&gt;
* Protocol: TCP&lt;br /&gt;
Make sure that it is enabled.&lt;br /&gt;
&lt;br /&gt;
If everything is working correctly then you should see your own Joomla website on the Raspberry Pi by visiting your external IP address (Find your external IP address with a tool like [http://www.whatsmyip.org/ whatsmyip.org]). &lt;br /&gt;
&lt;br /&gt;
===Using a domain name===&lt;br /&gt;
Let&#039;s assume that our external IP address is 42.42.42.42. Let&#039;s also assume that we have registered a domain name called example.com. We would like to serve our Joomla site on our Raspberry Pi to visitors visiting example.com. If your domain name registrar gives us the possibility to configure the &#039;&#039;&#039;Domain Name System (DNS)&#039;&#039;&#039; server, then we&#039;ll need to create an &#039;&#039;&#039;MX record&#039;&#039;&#039; in the DNS that points our &#039;&#039;&#039;domain name to&#039;&#039;&#039; our &#039;&#039;&#039;IP address&#039;&#039;&#039; 42.42.42.42. Note that it can take up to 24 hours till all internet providers will redirect the traffic of their customers to the configured MX record.&lt;br /&gt;
&lt;br /&gt;
===Static IP address===&lt;br /&gt;
Most routers will keep assigning the same internal IP address to your Raspberry Pi. Sometimes it&#039;s better to configure your Raspberry Pi to use a static IP address:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/network/interfaces&amp;lt;/source&amp;gt;&lt;br /&gt;
change &lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
to&lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
 address 192.168.0.35 &lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 gateway 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
The gateway is the IP address of your router. You can also find it using&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;route&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
* [https://raspberrypi.org Raspberry Pi Foundation] (RPF) - official website and forums&lt;br /&gt;
* [http://elinux.org/RaspberryPiBoard Raspberry Pi Wiki], supported by the RPF&lt;br /&gt;
* Video of presentation [https://youtu.be/u2MFQCoexD0 Joomla on Raspberry Pi (with Nginx)] at Joomladay Germany 2013 in Nuremberg, Germany&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338635</id>
		<title>Installing Joomla on a Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338635"/>
		<updated>2016-10-22T19:47:54Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: /* Virtual Domains */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer that was originally developed to promote the teaching of basic computer science in schools and developing countries. Because of its versatility it has become very popular and is used as media player, small stand-alone server, etc. You can use it as webserver and install Joomla! on it. This page shows you how to get a your Joomla! website running on the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
* &#039;&#039;&#039;Rasberry Pi version 3 Model B&#039;&#039;&#039; - There are various models of Raspberry Pi. You can use most models that have an Ethernet port (the Model B types). However for performance we will use the latest version with most RAM memory.&lt;br /&gt;
* &#039;&#039;&#039;micro SD card&#039;&#039;&#039; - For the operating system + webserver + Joomla. (RPi version 3 model B uses micro SD other versions might use normal SD cards) &lt;br /&gt;
* &#039;&#039;&#039;5 Volt adapter (1 Amp)&#039;&#039;&#039; - to power the Raspberry Pi you&#039;ll need to convert the mains power (230V or 110V) to 5 Volt. The Rasperry Pi needs about 1 Amp, and maybe more if you connect USB devices to it.&lt;br /&gt;
* standard &#039;&#039;&#039;Ethernet cable&#039;&#039;&#039; - to connect the RPi to your Local Area Network / router / the internet.&lt;br /&gt;
&lt;br /&gt;
==Installing Operating System==&lt;br /&gt;
The operating system Raspbian is a Debian Linux version specially compiled for the Raspberry Pi. There are two versions of [https://www.raspberrypi.org/downloads/raspbian/ Raspbian] available: &#039;&#039;&#039;Raspbian Jessie with Pixel Lite&#039;&#039;&#039; (version with PIXEL desktop based on Debian Jessie) and &#039;&#039;&#039;Raspbian Jessie Lite&#039;&#039;&#039; (minimal version based on Debian Jessie). Because we use the Raspberry Pi as webserver for Joomla, we won&#039;t need the GUI. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039; [https://www.raspberrypi.org/downloads/raspbian/ Raspbian Jessie Lite] and unzip the downloaded file, e.g. 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.zip&#039;&#039;&#039; (306 MB) to 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.img&#039;&#039;&#039; (1.4 GB).&lt;br /&gt;
&lt;br /&gt;
Now we need to copy the .img file to the (micro) SD card. You can use a tool with graphical interface like&lt;br /&gt;
[https://unetbootin.github.io/ UNetbootin] (for Windows, Mac OS X and Linux) or do it on the command line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be very careful&#039;&#039;&#039; when writing the .img disk image to another disk. In case you use the wrong destination disk, you will overwrite that disk with the .img which makes that disk unusable, resulting in data loss.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
In a terminal (CMD) check which device corresponds with the SD Card and do something like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd bs=1M if=c:\temp\2016-09-23-raspbian-jessie-lite.img od=[the device of your SD Card]&amp;lt;/source&amp;gt;&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/windows.md Installing Operating System Images using Windows]&lt;br /&gt;
&lt;br /&gt;
===Apple OSX===&lt;br /&gt;
Check which device is used for your SD Card. In our case it&#039;s disk1s1 and we&#039;ll do in Terminal: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd bs=1M if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/disk1s1&amp;lt;/source&amp;gt;&lt;br /&gt;
See also: [https://www.raspberrypi.org/documentation/installation/installing-images/mac.md Installing Operating System Images on MacOS]&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
We connect a SD Card reader with the (micro) SD Card to a computer. With &#039;&#039;&#039;dmesg&#039;&#039;&#039; we can find the device name of the SD Card. In our case dmesg shows something like &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[xxxxxx.xxxxxxx]  sdd: sdd1 sdd2&amp;lt;/source&amp;gt; meaning that we have a SD Card with 2 partitions. Do not write the Raspbian image to a partition but to the whole disk &#039;&#039;&#039;sdd&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
We will use &#039;&#039;&#039;dd&#039;&#039;&#039; (&amp;quot;Disk Dump&amp;quot;) to write an Input File (&#039;&#039;&#039;if&#039;&#039;&#039;) to an Output File (&#039;&#039;&#039;of&#039;&#039;&#039;) using a specified Block Size (&#039;&#039;&#039;bs&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be VERY careful&#039;&#039;&#039;: dd will write to a device without any warning. Triple double check that that you write to the right device! If you write to the wrong disk, then you&#039;ll always remember the dd command as &amp;quot;Disk Destroyer&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/sdd bs=4M&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/linux.md Installing Operating System Images on Linux]&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to LAN==&lt;br /&gt;
When we have installed the Raspbian Operating System on the SD Card, we will:&lt;br /&gt;
* Insert the micro SD card in the SD Card slot on the Raspberry Pi. &lt;br /&gt;
* Connect an an Ethernet cable to the Raspberry Pi and to the Local Area Network (connect it to our router).&lt;br /&gt;
* Connect the 5V power supply to the the Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Booting up the Raspberry Pi takes roughly 30 seconds. We&#039;ve to find the IP address to connect to it using SSH. We can use different approaches for that: &lt;br /&gt;
* log into the webinterface of your router and look up the connected devices;&lt;br /&gt;
* use a mobile phone connected the Wifi router using a network scanning App called &#039;&#039;&#039;Fing Overlook&#039;&#039;&#039;;&lt;br /&gt;
* use a command like &#039;&#039;&#039;nmap&#039;&#039;&#039;. Assuming that our PC has IP address &#039;&#039;&#039;192.168.0&#039;&#039;&#039;.25 we can find all other devices in the same network range by doing the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nmap -sP 192.168.0/24&amp;lt;/source&amp;gt;&lt;br /&gt;
Which might show the following details:&lt;br /&gt;
&lt;br /&gt;
 Starting Nmap 6.47 ( http://nmap.org ) at 2016-10-22 17:42 CEST&lt;br /&gt;
 Nmap scan report for &#039;&#039;&#039;192.168.0.35&#039;&#039;&#039;&lt;br /&gt;
 Host is up (0.00042s latency).&lt;br /&gt;
 MAC Address: 42:42:42:42:42:42 (Raspberry Pi Foundation)&lt;br /&gt;
&lt;br /&gt;
To log into our Raspberry Pi, we&#039;ll use the command &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first time you&#039;ll connect to it, it will show something like:&lt;br /&gt;
 The authenticity of host &#039;192.168.0.35 (192.168.0.35)&#039; can&#039;t be established.&lt;br /&gt;
 ECDSA key fingerprint is 42:42:42:42:42:42:42:42:42:42:42:42:42:42:42:42. &lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
We&#039;ll choose &amp;quot;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
 Warning: Permanently added &#039;192.168.0.35&#039; (ECDSA) to the list of known hosts.&lt;br /&gt;
 pi@192.168.0.35&#039;s password: &lt;br /&gt;
and use the &#039;&#039;&#039;default password&#039;&#039;&#039;: &#039;&#039;&#039;raspberry&#039;&#039;&#039;&lt;br /&gt;
which on successful login will show:&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
 &lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 pi@raspberrypi:~ $ &lt;br /&gt;
&lt;br /&gt;
We can configure the Raspberry Pi using a text interface via:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo raspi-config&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Raspberry Pi Software Configuration Tool (raspi-config)===&lt;br /&gt;
With this configuration tool we&#039;ll only change the following settings.&lt;br /&gt;
====1 Expand Filesystem====&lt;br /&gt;
By default the disk space on the SD Card is the same size as the 1.4GB .img file that you used to create the SD card for your Raspberry Pi. You can use this option to gain the rest of the disk space.&lt;br /&gt;
&lt;br /&gt;
====2 Change User Password====&lt;br /&gt;
For security reasons it&#039;s best to &#039;&#039;&#039;change the default password&#039;&#039;&#039; &amp;quot;raspberry&amp;quot; as soon as possible.&lt;br /&gt;
&lt;br /&gt;
====3 Boot Options==== &lt;br /&gt;
We would like the Raspberry Pi to boot the Text console&lt;br /&gt;
=====B2 Console Autologin Text console, automatically logged in as &#039;pi&#039; user=====    &lt;br /&gt;
&lt;br /&gt;
====9 Advanced Options====&lt;br /&gt;
=====A3 Memory Split=====&lt;br /&gt;
Because we will use the Raspberry Pi as a headless server without connecting it to a monitor, we can decrease the memory used for the GPU from 64 to &#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====5 Internationalisation Options====&lt;br /&gt;
=====I2 Change Timezone=====&lt;br /&gt;
We&#039;ll change the Timezone to our own time zone (e.g. Europe/Amsterdam)&lt;br /&gt;
&lt;br /&gt;
After all changes we&#039;ll Reboot the Raspberry Pi, and will login again with our new password.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
Now it&#039;s time to install everything else.&lt;br /&gt;
&lt;br /&gt;
==Update software==&lt;br /&gt;
Before installing anything else, we&#039;ll:&lt;br /&gt;
* &#039;&#039;&#039;update&#039;&#039;&#039; the list of software versions from all external repositories&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get update&amp;lt;/source&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;upgrade&#039;&#039;&#039; all installed software&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get upgrade&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating the version list and upgrading all software is something that should be done regularly.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Nginx Webserver==&lt;br /&gt;
A fast and lightweight alternative for Apache web server is the increasingly becoming popular &#039;&#039;&#039;Nginx&#039;&#039;&#039; web server.&lt;br /&gt;
&lt;br /&gt;
===Installation of Nginx===&lt;br /&gt;
We will install nginx and all dependencies (read: software that nginx needs to work) with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install nginx&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll get a message like:&lt;br /&gt;
 Reading package lists... Done&lt;br /&gt;
 Building dependency tree       &lt;br /&gt;
 Reading state information... Done&lt;br /&gt;
 The following extra packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common nginx-full&lt;br /&gt;
 Suggested packages:&lt;br /&gt;
  libgd-tools fcgiwrap nginx-doc ssl-cert&lt;br /&gt;
 The following NEW packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx nginx-common nginx-full&lt;br /&gt;
 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.&lt;br /&gt;
 Need to get 3,550 kB of archives.&lt;br /&gt;
 After this operation, 8,666 kB of additional disk space will be used.&lt;br /&gt;
 Do you want to continue? [Y/n] y&lt;br /&gt;
By choosing &amp;quot;y&amp;quot; nginx and all needed packages will be installed.&lt;br /&gt;
&lt;br /&gt;
You can check the installation with a browser. Go to the IP address of your Raspberry pi, in our case http://192.168.0.35/&lt;br /&gt;
We should see a message like:&lt;br /&gt;
 &#039;&#039;&#039;Welcome to nginx on Debian!&#039;&#039;&#039;&lt;br /&gt;
 If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.&lt;br /&gt;
 For online documentation and support please refer to nginx.org&lt;br /&gt;
 Please use the reportbug tool to report bugs in the nginx package with Debian. &lt;br /&gt;
 However, check existing bug reports before reporting a  new bug.&lt;br /&gt;
 &#039;&#039;Thank you for using debian and nginx.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Starting and stopping Nginx====&lt;br /&gt;
After installation Nginx will automatically be started. You can: &lt;br /&gt;
* Stop Nginx: sudo service nginx stop&lt;br /&gt;
* Start Nginx: sudo service nginx start&lt;br /&gt;
* Restart Nginx: sudo service nginx restart&lt;br /&gt;
&lt;br /&gt;
===Configure Nginx===&lt;br /&gt;
====Global Nginx configuration====&lt;br /&gt;
In the global configuration of Nginx we can configure default caching etc. The Raspberry Pi 3 uses 1.2 GHz 64-bit &#039;&#039;&#039;quad-core&#039;&#039;&#039; ARM Cortex-A53 processor. If you have an earlier version with less CPU cores, then you should use &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/nginx.conf&amp;lt;/source&amp;gt; to change the &amp;quot;worker_processes&amp;quot; to fit the amount of CPUs of your device. By default it&#039;s configured as&lt;br /&gt;
 worker_processes 4;&lt;br /&gt;
so for Raspberry Pi 3 you don&#039;t have to change it.&lt;br /&gt;
&lt;br /&gt;
After changing the Nginx configuration or virtual domain configuration, you have to do a &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;sudo nginx reload&amp;lt;/source&amp;gt; to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
====Virtual Domains====&lt;br /&gt;
It&#039;s possible to run multiple Joomla websites on the same server using virtual domains.&lt;br /&gt;
&lt;br /&gt;
Put every website in a separate folder in the default webroot /var/www/ for example:&lt;br /&gt;
* /var/www/example.com/&lt;br /&gt;
* /var/www/voorbeeld.nl/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mkdir /var/www/example.com&lt;br /&gt;
sudo mkdir /var/www/voorbeeld.nl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For every site we will create a virtual domain which is basically a text file with domain specific information:&lt;br /&gt;
* /etc/nginx/sites-available/example.com&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 root /var/www/example.com;&lt;br /&gt;
 &lt;br /&gt;
 access_log /var/log/nginx/example.com.access_log;&lt;br /&gt;
 error_log /var/log/nginx/example.com.error_log info;&lt;br /&gt;
&lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* /etc/nginx/sites-available/voorbeeld.nl&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name voorbeeld.nl www.voorbeeld.nl;&lt;br /&gt;
 root /var/www/voorbeeld.nl;&lt;br /&gt;
 &lt;br /&gt;
 access_log /var/log/nginx/voorbeeld.nl.access_log;&lt;br /&gt;
 error_log /var/log/nginx/voorbeeld.nl.error_log info;&lt;br /&gt;
&lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
We need to enable every site by linking from /etc/nginx/sites-enabled/ to the virtual domain in &amp;quot;sites-available&amp;quot;. We create a symbolic link for each virtual domain:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com&lt;br /&gt;
sudo ln -s /etc/nginx/sites-available/voorbeeld.nl /etc/nginx/sites-enabled/voorbeeld.nl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make this virtual domain configuration effective, we do &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nginx reload&amp;lt;/source&amp;gt; and when everything has been configured correctly it will respond:&lt;br /&gt;
 Reloading nginx configuration: nginx.&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
We can install MariaDB or MySQL; Joomla will work with both. Let&#039;s install MariaDB with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mariadb-server&amp;lt;/source&amp;gt;&lt;br /&gt;
During the installation you&#039;ve to add a password for the &#039;&#039;&#039;root&#039;&#039;&#039; user. &lt;br /&gt;
Lets create a &#039;&#039;&#039;database password&#039;&#039;&#039;, for example &#039;&#039;&#039;correcthorsebatterystaple&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally let&#039;s improve the security of our MariaDB installation by removing root accounts that are accessible from outside the local host, anonymous-user accounts and the test database. We can do that with &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mysql_secure_installation&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PHP==&lt;br /&gt;
For PHP we will install the &#039;&#039;&#039;php-fpm&#039;&#039;&#039; (FastCGI Process Manager) that runs as a daemon and receives Fast/CGI requests. Furthermore we will install &#039;&#039;&#039;php5-mysql&#039;&#039;&#039; which is a module for MySQL database connections directly from PHP scripts.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install php5-fpm php5-mysql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to let Nginx know that it should use php-fpm for .php files. We add a couple of lines to our virtual domains:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/sites-available/example.com&amp;lt;/source&amp;gt;&lt;br /&gt;
add:&lt;br /&gt;
 location ~ \.php$ {&lt;br /&gt;
 fastcgi_pass unix:/var/run/php5-fpm.sock;&lt;br /&gt;
 fastcgi_index index.php;&lt;br /&gt;
 include fastcgi_params;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Test it by creating the following PHP file&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /var/www/example.com/test.php&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php phpinfo();?&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
We use a browser to test if we see the PHP configuration page at http://192.168.0.35/example.com/test.php&lt;br /&gt;
&lt;br /&gt;
==Joomla!==&lt;br /&gt;
* to do&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo wget https://github.com/joomla/joomla-cms/releases/download/3.6.3/Joomla_3.6.3-Stable-Full_Package.zip&lt;br /&gt;
sudo unzip -x Joomla_3.6.3-Stable-Full_Package.zip&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to Internet==&lt;br /&gt;
We want people on the internet to be able to visit our Joomla website on our Raspberry Pi. In order to do that we need to &#039;&#039;&#039;configure our Internet router&#039;&#039;&#039; to forward all &#039;&#039;&#039;incoming traffic&#039;&#039;&#039; on port 80 &#039;&#039;&#039;to our Raspberry Pi&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use your web browser to connect to the Web Interface of your router. A router is usually located on the first number of your IP range, in our case on 192.168.0.1. In our router we configure &#039;&#039;&#039;Port Forwarding&#039;&#039;&#039;:&lt;br /&gt;
* External IP Address: 0.0.0.0&lt;br /&gt;
* External Start Port: 80&lt;br /&gt;
* External End Port: 80&lt;br /&gt;
* Internal IP Address: 192.168.0.35 ( = our Raspberry Pi)&lt;br /&gt;
* Internal Start Port: 80&lt;br /&gt;
* Internal End Port: 80&lt;br /&gt;
* Protocol: TCP&lt;br /&gt;
Make sure that it is enabled.&lt;br /&gt;
&lt;br /&gt;
If everything is working correctly then you should see your own Joomla website on the Raspberry Pi by visiting your external IP address (Find your external IP address with a tool like [http://www.whatsmyip.org/ whatsmyip.org]). &lt;br /&gt;
&lt;br /&gt;
===Using a domain name===&lt;br /&gt;
Let&#039;s assume that our external IP address is 42.42.42.42. Let&#039;s also assume that we have registered a domain name called example.com. We would like to serve our Joomla site on our Raspberry Pi to visitors visiting example.com. If your domain name registrar gives us the possibility to configure the &#039;&#039;&#039;Domain Name System (DNS)&#039;&#039;&#039; server, then we&#039;ll need to create an &#039;&#039;&#039;MX record&#039;&#039;&#039; in the DNS that points our &#039;&#039;&#039;domain name to&#039;&#039;&#039; our &#039;&#039;&#039;IP address&#039;&#039;&#039; 42.42.42.42. Note that it can take up to 24 hours till all internet providers will redirect the traffic of their customers to the configured MX record.&lt;br /&gt;
&lt;br /&gt;
===Static IP address===&lt;br /&gt;
Most routers will keep assigning the same internal IP address to your Raspberry Pi. Sometimes it&#039;s better to configure your Raspberry Pi to use a static IP address:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/network/interfaces&amp;lt;/source&amp;gt;&lt;br /&gt;
change &lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
to&lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
 address 192.168.0.35 &lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 gateway 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
The gateway is the IP address of your router. You can also find it using&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;route&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
* [https://raspberrypi.org Raspberry Pi Foundation] (RPF) - official website and forums&lt;br /&gt;
* [http://elinux.org/RaspberryPiBoard Raspberry Pi Wiki], supported by the RPF&lt;br /&gt;
* Video of presentation [https://youtu.be/u2MFQCoexD0 Joomla on Raspberry Pi (with Nginx)] at Joomladay Germany 2013 in Nuremberg, Germany&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338634</id>
		<title>Installing Joomla on a Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338634"/>
		<updated>2016-10-22T19:44:45Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: /* Virtual Domains */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer that was originally developed to promote the teaching of basic computer science in schools and developing countries. Because of its versatility it has become very popular and is used as media player, small stand-alone server, etc. You can use it as webserver and install Joomla! on it. This page shows you how to get a your Joomla! website running on the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
* &#039;&#039;&#039;Rasberry Pi version 3 Model B&#039;&#039;&#039; - There are various models of Raspberry Pi. You can use most models that have an Ethernet port (the Model B types). However for performance we will use the latest version with most RAM memory.&lt;br /&gt;
* &#039;&#039;&#039;micro SD card&#039;&#039;&#039; - For the operating system + webserver + Joomla. (RPi version 3 model B uses micro SD other versions might use normal SD cards) &lt;br /&gt;
* &#039;&#039;&#039;5 Volt adapter (1 Amp)&#039;&#039;&#039; - to power the Raspberry Pi you&#039;ll need to convert the mains power (230V or 110V) to 5 Volt. The Rasperry Pi needs about 1 Amp, and maybe more if you connect USB devices to it.&lt;br /&gt;
* standard &#039;&#039;&#039;Ethernet cable&#039;&#039;&#039; - to connect the RPi to your Local Area Network / router / the internet.&lt;br /&gt;
&lt;br /&gt;
==Installing Operating System==&lt;br /&gt;
The operating system Raspbian is a Debian Linux version specially compiled for the Raspberry Pi. There are two versions of [https://www.raspberrypi.org/downloads/raspbian/ Raspbian] available: &#039;&#039;&#039;Raspbian Jessie with Pixel Lite&#039;&#039;&#039; (version with PIXEL desktop based on Debian Jessie) and &#039;&#039;&#039;Raspbian Jessie Lite&#039;&#039;&#039; (minimal version based on Debian Jessie). Because we use the Raspberry Pi as webserver for Joomla, we won&#039;t need the GUI. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039; [https://www.raspberrypi.org/downloads/raspbian/ Raspbian Jessie Lite] and unzip the downloaded file, e.g. 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.zip&#039;&#039;&#039; (306 MB) to 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.img&#039;&#039;&#039; (1.4 GB).&lt;br /&gt;
&lt;br /&gt;
Now we need to copy the .img file to the (micro) SD card. You can use a tool with graphical interface like&lt;br /&gt;
[https://unetbootin.github.io/ UNetbootin] (for Windows, Mac OS X and Linux) or do it on the command line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be very careful&#039;&#039;&#039; when writing the .img disk image to another disk. In case you use the wrong destination disk, you will overwrite that disk with the .img which makes that disk unusable, resulting in data loss.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
In a terminal (CMD) check which device corresponds with the SD Card and do something like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd bs=1M if=c:\temp\2016-09-23-raspbian-jessie-lite.img od=[the device of your SD Card]&amp;lt;/source&amp;gt;&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/windows.md Installing Operating System Images using Windows]&lt;br /&gt;
&lt;br /&gt;
===Apple OSX===&lt;br /&gt;
Check which device is used for your SD Card. In our case it&#039;s disk1s1 and we&#039;ll do in Terminal: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd bs=1M if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/disk1s1&amp;lt;/source&amp;gt;&lt;br /&gt;
See also: [https://www.raspberrypi.org/documentation/installation/installing-images/mac.md Installing Operating System Images on MacOS]&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
We connect a SD Card reader with the (micro) SD Card to a computer. With &#039;&#039;&#039;dmesg&#039;&#039;&#039; we can find the device name of the SD Card. In our case dmesg shows something like &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[xxxxxx.xxxxxxx]  sdd: sdd1 sdd2&amp;lt;/source&amp;gt; meaning that we have a SD Card with 2 partitions. Do not write the Raspbian image to a partition but to the whole disk &#039;&#039;&#039;sdd&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
We will use &#039;&#039;&#039;dd&#039;&#039;&#039; (&amp;quot;Disk Dump&amp;quot;) to write an Input File (&#039;&#039;&#039;if&#039;&#039;&#039;) to an Output File (&#039;&#039;&#039;of&#039;&#039;&#039;) using a specified Block Size (&#039;&#039;&#039;bs&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be VERY careful&#039;&#039;&#039;: dd will write to a device without any warning. Triple double check that that you write to the right device! If you write to the wrong disk, then you&#039;ll always remember the dd command as &amp;quot;Disk Destroyer&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/sdd bs=4M&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/linux.md Installing Operating System Images on Linux]&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to LAN==&lt;br /&gt;
When we have installed the Raspbian Operating System on the SD Card, we will:&lt;br /&gt;
* Insert the micro SD card in the SD Card slot on the Raspberry Pi. &lt;br /&gt;
* Connect an an Ethernet cable to the Raspberry Pi and to the Local Area Network (connect it to our router).&lt;br /&gt;
* Connect the 5V power supply to the the Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Booting up the Raspberry Pi takes roughly 30 seconds. We&#039;ve to find the IP address to connect to it using SSH. We can use different approaches for that: &lt;br /&gt;
* log into the webinterface of your router and look up the connected devices;&lt;br /&gt;
* use a mobile phone connected the Wifi router using a network scanning App called &#039;&#039;&#039;Fing Overlook&#039;&#039;&#039;;&lt;br /&gt;
* use a command like &#039;&#039;&#039;nmap&#039;&#039;&#039;. Assuming that our PC has IP address &#039;&#039;&#039;192.168.0&#039;&#039;&#039;.25 we can find all other devices in the same network range by doing the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nmap -sP 192.168.0/24&amp;lt;/source&amp;gt;&lt;br /&gt;
Which might show the following details:&lt;br /&gt;
&lt;br /&gt;
 Starting Nmap 6.47 ( http://nmap.org ) at 2016-10-22 17:42 CEST&lt;br /&gt;
 Nmap scan report for &#039;&#039;&#039;192.168.0.35&#039;&#039;&#039;&lt;br /&gt;
 Host is up (0.00042s latency).&lt;br /&gt;
 MAC Address: 42:42:42:42:42:42 (Raspberry Pi Foundation)&lt;br /&gt;
&lt;br /&gt;
To log into our Raspberry Pi, we&#039;ll use the command &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first time you&#039;ll connect to it, it will show something like:&lt;br /&gt;
 The authenticity of host &#039;192.168.0.35 (192.168.0.35)&#039; can&#039;t be established.&lt;br /&gt;
 ECDSA key fingerprint is 42:42:42:42:42:42:42:42:42:42:42:42:42:42:42:42. &lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
We&#039;ll choose &amp;quot;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
 Warning: Permanently added &#039;192.168.0.35&#039; (ECDSA) to the list of known hosts.&lt;br /&gt;
 pi@192.168.0.35&#039;s password: &lt;br /&gt;
and use the &#039;&#039;&#039;default password&#039;&#039;&#039;: &#039;&#039;&#039;raspberry&#039;&#039;&#039;&lt;br /&gt;
which on successful login will show:&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
 &lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 pi@raspberrypi:~ $ &lt;br /&gt;
&lt;br /&gt;
We can configure the Raspberry Pi using a text interface via:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo raspi-config&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Raspberry Pi Software Configuration Tool (raspi-config)===&lt;br /&gt;
With this configuration tool we&#039;ll only change the following settings.&lt;br /&gt;
====1 Expand Filesystem====&lt;br /&gt;
By default the disk space on the SD Card is the same size as the 1.4GB .img file that you used to create the SD card for your Raspberry Pi. You can use this option to gain the rest of the disk space.&lt;br /&gt;
&lt;br /&gt;
====2 Change User Password====&lt;br /&gt;
For security reasons it&#039;s best to &#039;&#039;&#039;change the default password&#039;&#039;&#039; &amp;quot;raspberry&amp;quot; as soon as possible.&lt;br /&gt;
&lt;br /&gt;
====3 Boot Options==== &lt;br /&gt;
We would like the Raspberry Pi to boot the Text console&lt;br /&gt;
=====B2 Console Autologin Text console, automatically logged in as &#039;pi&#039; user=====    &lt;br /&gt;
&lt;br /&gt;
====9 Advanced Options====&lt;br /&gt;
=====A3 Memory Split=====&lt;br /&gt;
Because we will use the Raspberry Pi as a headless server without connecting it to a monitor, we can decrease the memory used for the GPU from 64 to &#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====5 Internationalisation Options====&lt;br /&gt;
=====I2 Change Timezone=====&lt;br /&gt;
We&#039;ll change the Timezone to our own time zone (e.g. Europe/Amsterdam)&lt;br /&gt;
&lt;br /&gt;
After all changes we&#039;ll Reboot the Raspberry Pi, and will login again with our new password.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
Now it&#039;s time to install everything else.&lt;br /&gt;
&lt;br /&gt;
==Update software==&lt;br /&gt;
Before installing anything else, we&#039;ll:&lt;br /&gt;
* &#039;&#039;&#039;update&#039;&#039;&#039; the list of software versions from all external repositories&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get update&amp;lt;/source&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;upgrade&#039;&#039;&#039; all installed software&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get upgrade&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating the version list and upgrading all software is something that should be done regularly.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Nginx Webserver==&lt;br /&gt;
A fast and lightweight alternative for Apache web server is the increasingly becoming popular &#039;&#039;&#039;Nginx&#039;&#039;&#039; web server.&lt;br /&gt;
&lt;br /&gt;
===Installation of Nginx===&lt;br /&gt;
We will install nginx and all dependencies (read: software that nginx needs to work) with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install nginx&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll get a message like:&lt;br /&gt;
 Reading package lists... Done&lt;br /&gt;
 Building dependency tree       &lt;br /&gt;
 Reading state information... Done&lt;br /&gt;
 The following extra packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common nginx-full&lt;br /&gt;
 Suggested packages:&lt;br /&gt;
  libgd-tools fcgiwrap nginx-doc ssl-cert&lt;br /&gt;
 The following NEW packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx nginx-common nginx-full&lt;br /&gt;
 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.&lt;br /&gt;
 Need to get 3,550 kB of archives.&lt;br /&gt;
 After this operation, 8,666 kB of additional disk space will be used.&lt;br /&gt;
 Do you want to continue? [Y/n] y&lt;br /&gt;
By choosing &amp;quot;y&amp;quot; nginx and all needed packages will be installed.&lt;br /&gt;
&lt;br /&gt;
You can check the installation with a browser. Go to the IP address of your Raspberry pi, in our case http://192.168.0.35/&lt;br /&gt;
We should see a message like:&lt;br /&gt;
 &#039;&#039;&#039;Welcome to nginx on Debian!&#039;&#039;&#039;&lt;br /&gt;
 If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.&lt;br /&gt;
 For online documentation and support please refer to nginx.org&lt;br /&gt;
 Please use the reportbug tool to report bugs in the nginx package with Debian. &lt;br /&gt;
 However, check existing bug reports before reporting a  new bug.&lt;br /&gt;
 &#039;&#039;Thank you for using debian and nginx.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Starting and stopping Nginx====&lt;br /&gt;
After installation Nginx will automatically be started. You can: &lt;br /&gt;
* Stop Nginx: sudo service nginx stop&lt;br /&gt;
* Start Nginx: sudo service nginx start&lt;br /&gt;
* Restart Nginx: sudo service nginx restart&lt;br /&gt;
&lt;br /&gt;
===Configure Nginx===&lt;br /&gt;
====Global Nginx configuration====&lt;br /&gt;
In the global configuration of Nginx we can configure default caching etc. The Raspberry Pi 3 uses 1.2 GHz 64-bit &#039;&#039;&#039;quad-core&#039;&#039;&#039; ARM Cortex-A53 processor. If you have an earlier version with less CPU cores, then you should use &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/nginx.conf&amp;lt;/source&amp;gt; to change the &amp;quot;worker_processes&amp;quot; to fit the amount of CPUs of your device. By default it&#039;s configured as&lt;br /&gt;
 worker_processes 4;&lt;br /&gt;
so for Raspberry Pi 3 you don&#039;t have to change it.&lt;br /&gt;
&lt;br /&gt;
After changing the Nginx configuration or virtual domain configuration, you have to do a &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;sudo nginx reload&amp;lt;/source&amp;gt; to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
====Virtual Domains====&lt;br /&gt;
It&#039;s possible to run multiple Joomla websites on the same server using virtual domains.&lt;br /&gt;
&lt;br /&gt;
Put every website in a separate folder in the default webroot /var/www/ for example:&lt;br /&gt;
* /var/www/example.com/&lt;br /&gt;
* /var/www/voorbeeld.nl/&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mkdir /var/www/example.com&lt;br /&gt;
sudo mkdir /var/www/voorbeeld.nl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For every site we will create a virtual domain which is basically a text file with domain specific information:&lt;br /&gt;
* /etc/nginx/sites-available/example.com&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 root /var/www/example.com;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* /etc/nginx/sites-available/voorbeeld.nl&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name voorbeeld.nl www.voorbeeld.nl;&lt;br /&gt;
 root /var/www/voorbeeld.nl;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
We need to enable every site by linking from /etc/nginx/sites-enabled/ to the virtual domain in &amp;quot;sites-available&amp;quot;. We create a symbolic link for each virtual domain:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com&lt;br /&gt;
sudo ln -s /etc/nginx/sites-available/voorbeeld.nl /etc/nginx/sites-enabled/voorbeeld.nl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make this virtual domain configuration effective, we do &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nginx reload&amp;lt;/source&amp;gt; and when everything has been configured correctly it will respond:&lt;br /&gt;
 Reloading nginx configuration: nginx.&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
We can install MariaDB or MySQL; Joomla will work with both. Let&#039;s install MariaDB with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mariadb-server&amp;lt;/source&amp;gt;&lt;br /&gt;
During the installation you&#039;ve to add a password for the &#039;&#039;&#039;root&#039;&#039;&#039; user. &lt;br /&gt;
Lets create a &#039;&#039;&#039;database password&#039;&#039;&#039;, for example &#039;&#039;&#039;correcthorsebatterystaple&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally let&#039;s improve the security of our MariaDB installation by removing root accounts that are accessible from outside the local host, anonymous-user accounts and the test database. We can do that with &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mysql_secure_installation&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PHP==&lt;br /&gt;
For PHP we will install the &#039;&#039;&#039;php-fpm&#039;&#039;&#039; (FastCGI Process Manager) that runs as a daemon and receives Fast/CGI requests. Furthermore we will install &#039;&#039;&#039;php5-mysql&#039;&#039;&#039; which is a module for MySQL database connections directly from PHP scripts.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install php5-fpm php5-mysql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to let Nginx know that it should use php-fpm for .php files. We add a couple of lines to our virtual domains:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/sites-available/example.com&amp;lt;/source&amp;gt;&lt;br /&gt;
add:&lt;br /&gt;
 location ~ \.php$ {&lt;br /&gt;
 fastcgi_pass unix:/var/run/php5-fpm.sock;&lt;br /&gt;
 fastcgi_index index.php;&lt;br /&gt;
 include fastcgi_params;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Test it by creating the following PHP file&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /var/www/example.com/test.php&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php phpinfo();?&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
We use a browser to test if we see the PHP configuration page at http://192.168.0.35/example.com/test.php&lt;br /&gt;
&lt;br /&gt;
==Joomla!==&lt;br /&gt;
* to do&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo wget https://github.com/joomla/joomla-cms/releases/download/3.6.3/Joomla_3.6.3-Stable-Full_Package.zip&lt;br /&gt;
sudo unzip -x Joomla_3.6.3-Stable-Full_Package.zip&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to Internet==&lt;br /&gt;
We want people on the internet to be able to visit our Joomla website on our Raspberry Pi. In order to do that we need to &#039;&#039;&#039;configure our Internet router&#039;&#039;&#039; to forward all &#039;&#039;&#039;incoming traffic&#039;&#039;&#039; on port 80 &#039;&#039;&#039;to our Raspberry Pi&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use your web browser to connect to the Web Interface of your router. A router is usually located on the first number of your IP range, in our case on 192.168.0.1. In our router we configure &#039;&#039;&#039;Port Forwarding&#039;&#039;&#039;:&lt;br /&gt;
* External IP Address: 0.0.0.0&lt;br /&gt;
* External Start Port: 80&lt;br /&gt;
* External End Port: 80&lt;br /&gt;
* Internal IP Address: 192.168.0.35 ( = our Raspberry Pi)&lt;br /&gt;
* Internal Start Port: 80&lt;br /&gt;
* Internal End Port: 80&lt;br /&gt;
* Protocol: TCP&lt;br /&gt;
Make sure that it is enabled.&lt;br /&gt;
&lt;br /&gt;
If everything is working correctly then you should see your own Joomla website on the Raspberry Pi by visiting your external IP address (Find your external IP address with a tool like [http://www.whatsmyip.org/ whatsmyip.org]). &lt;br /&gt;
&lt;br /&gt;
===Using a domain name===&lt;br /&gt;
Let&#039;s assume that our external IP address is 42.42.42.42. Let&#039;s also assume that we have registered a domain name called example.com. We would like to serve our Joomla site on our Raspberry Pi to visitors visiting example.com. If your domain name registrar gives us the possibility to configure the &#039;&#039;&#039;Domain Name System (DNS)&#039;&#039;&#039; server, then we&#039;ll need to create an &#039;&#039;&#039;MX record&#039;&#039;&#039; in the DNS that points our &#039;&#039;&#039;domain name to&#039;&#039;&#039; our &#039;&#039;&#039;IP address&#039;&#039;&#039; 42.42.42.42. Note that it can take up to 24 hours till all internet providers will redirect the traffic of their customers to the configured MX record.&lt;br /&gt;
&lt;br /&gt;
===Static IP address===&lt;br /&gt;
Most routers will keep assigning the same internal IP address to your Raspberry Pi. Sometimes it&#039;s better to configure your Raspberry Pi to use a static IP address:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/network/interfaces&amp;lt;/source&amp;gt;&lt;br /&gt;
change &lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
to&lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
 address 192.168.0.35 &lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 gateway 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
The gateway is the IP address of your router. You can also find it using&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;route&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
* [https://raspberrypi.org Raspberry Pi Foundation] (RPF) - official website and forums&lt;br /&gt;
* [http://elinux.org/RaspberryPiBoard Raspberry Pi Wiki], supported by the RPF&lt;br /&gt;
* Video of presentation [https://youtu.be/u2MFQCoexD0 Joomla on Raspberry Pi (with Nginx)] at Joomladay Germany 2013 in Nuremberg, Germany&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338633</id>
		<title>Installing Joomla on a Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338633"/>
		<updated>2016-10-22T19:38:15Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: /* PHP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer that was originally developed to promote the teaching of basic computer science in schools and developing countries. Because of its versatility it has become very popular and is used as media player, small stand-alone server, etc. You can use it as webserver and install Joomla! on it. This page shows you how to get a your Joomla! website running on the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
* &#039;&#039;&#039;Rasberry Pi version 3 Model B&#039;&#039;&#039; - There are various models of Raspberry Pi. You can use most models that have an Ethernet port (the Model B types). However for performance we will use the latest version with most RAM memory.&lt;br /&gt;
* &#039;&#039;&#039;micro SD card&#039;&#039;&#039; - For the operating system + webserver + Joomla. (RPi version 3 model B uses micro SD other versions might use normal SD cards) &lt;br /&gt;
* &#039;&#039;&#039;5 Volt adapter (1 Amp)&#039;&#039;&#039; - to power the Raspberry Pi you&#039;ll need to convert the mains power (230V or 110V) to 5 Volt. The Rasperry Pi needs about 1 Amp, and maybe more if you connect USB devices to it.&lt;br /&gt;
* standard &#039;&#039;&#039;Ethernet cable&#039;&#039;&#039; - to connect the RPi to your Local Area Network / router / the internet.&lt;br /&gt;
&lt;br /&gt;
==Installing Operating System==&lt;br /&gt;
The operating system Raspbian is a Debian Linux version specially compiled for the Raspberry Pi. There are two versions of [https://www.raspberrypi.org/downloads/raspbian/ Raspbian] available: &#039;&#039;&#039;Raspbian Jessie with Pixel Lite&#039;&#039;&#039; (version with PIXEL desktop based on Debian Jessie) and &#039;&#039;&#039;Raspbian Jessie Lite&#039;&#039;&#039; (minimal version based on Debian Jessie). Because we use the Raspberry Pi as webserver for Joomla, we won&#039;t need the GUI. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039; [https://www.raspberrypi.org/downloads/raspbian/ Raspbian Jessie Lite] and unzip the downloaded file, e.g. 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.zip&#039;&#039;&#039; (306 MB) to 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.img&#039;&#039;&#039; (1.4 GB).&lt;br /&gt;
&lt;br /&gt;
Now we need to copy the .img file to the (micro) SD card. You can use a tool with graphical interface like&lt;br /&gt;
[https://unetbootin.github.io/ UNetbootin] (for Windows, Mac OS X and Linux) or do it on the command line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be very careful&#039;&#039;&#039; when writing the .img disk image to another disk. In case you use the wrong destination disk, you will overwrite that disk with the .img which makes that disk unusable, resulting in data loss.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
In a terminal (CMD) check which device corresponds with the SD Card and do something like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd bs=1M if=c:\temp\2016-09-23-raspbian-jessie-lite.img od=[the device of your SD Card]&amp;lt;/source&amp;gt;&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/windows.md Installing Operating System Images using Windows]&lt;br /&gt;
&lt;br /&gt;
===Apple OSX===&lt;br /&gt;
Check which device is used for your SD Card. In our case it&#039;s disk1s1 and we&#039;ll do in Terminal: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd bs=1M if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/disk1s1&amp;lt;/source&amp;gt;&lt;br /&gt;
See also: [https://www.raspberrypi.org/documentation/installation/installing-images/mac.md Installing Operating System Images on MacOS]&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
We connect a SD Card reader with the (micro) SD Card to a computer. With &#039;&#039;&#039;dmesg&#039;&#039;&#039; we can find the device name of the SD Card. In our case dmesg shows something like &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[xxxxxx.xxxxxxx]  sdd: sdd1 sdd2&amp;lt;/source&amp;gt; meaning that we have a SD Card with 2 partitions. Do not write the Raspbian image to a partition but to the whole disk &#039;&#039;&#039;sdd&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
We will use &#039;&#039;&#039;dd&#039;&#039;&#039; (&amp;quot;Disk Dump&amp;quot;) to write an Input File (&#039;&#039;&#039;if&#039;&#039;&#039;) to an Output File (&#039;&#039;&#039;of&#039;&#039;&#039;) using a specified Block Size (&#039;&#039;&#039;bs&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be VERY careful&#039;&#039;&#039;: dd will write to a device without any warning. Triple double check that that you write to the right device! If you write to the wrong disk, then you&#039;ll always remember the dd command as &amp;quot;Disk Destroyer&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/sdd bs=4M&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/linux.md Installing Operating System Images on Linux]&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to LAN==&lt;br /&gt;
When we have installed the Raspbian Operating System on the SD Card, we will:&lt;br /&gt;
* Insert the micro SD card in the SD Card slot on the Raspberry Pi. &lt;br /&gt;
* Connect an an Ethernet cable to the Raspberry Pi and to the Local Area Network (connect it to our router).&lt;br /&gt;
* Connect the 5V power supply to the the Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Booting up the Raspberry Pi takes roughly 30 seconds. We&#039;ve to find the IP address to connect to it using SSH. We can use different approaches for that: &lt;br /&gt;
* log into the webinterface of your router and look up the connected devices;&lt;br /&gt;
* use a mobile phone connected the Wifi router using a network scanning App called &#039;&#039;&#039;Fing Overlook&#039;&#039;&#039;;&lt;br /&gt;
* use a command like &#039;&#039;&#039;nmap&#039;&#039;&#039;. Assuming that our PC has IP address &#039;&#039;&#039;192.168.0&#039;&#039;&#039;.25 we can find all other devices in the same network range by doing the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nmap -sP 192.168.0/24&amp;lt;/source&amp;gt;&lt;br /&gt;
Which might show the following details:&lt;br /&gt;
&lt;br /&gt;
 Starting Nmap 6.47 ( http://nmap.org ) at 2016-10-22 17:42 CEST&lt;br /&gt;
 Nmap scan report for &#039;&#039;&#039;192.168.0.35&#039;&#039;&#039;&lt;br /&gt;
 Host is up (0.00042s latency).&lt;br /&gt;
 MAC Address: 42:42:42:42:42:42 (Raspberry Pi Foundation)&lt;br /&gt;
&lt;br /&gt;
To log into our Raspberry Pi, we&#039;ll use the command &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first time you&#039;ll connect to it, it will show something like:&lt;br /&gt;
 The authenticity of host &#039;192.168.0.35 (192.168.0.35)&#039; can&#039;t be established.&lt;br /&gt;
 ECDSA key fingerprint is 42:42:42:42:42:42:42:42:42:42:42:42:42:42:42:42. &lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
We&#039;ll choose &amp;quot;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
 Warning: Permanently added &#039;192.168.0.35&#039; (ECDSA) to the list of known hosts.&lt;br /&gt;
 pi@192.168.0.35&#039;s password: &lt;br /&gt;
and use the &#039;&#039;&#039;default password&#039;&#039;&#039;: &#039;&#039;&#039;raspberry&#039;&#039;&#039;&lt;br /&gt;
which on successful login will show:&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
 &lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 pi@raspberrypi:~ $ &lt;br /&gt;
&lt;br /&gt;
We can configure the Raspberry Pi using a text interface via:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo raspi-config&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Raspberry Pi Software Configuration Tool (raspi-config)===&lt;br /&gt;
With this configuration tool we&#039;ll only change the following settings.&lt;br /&gt;
====1 Expand Filesystem====&lt;br /&gt;
By default the disk space on the SD Card is the same size as the 1.4GB .img file that you used to create the SD card for your Raspberry Pi. You can use this option to gain the rest of the disk space.&lt;br /&gt;
&lt;br /&gt;
====2 Change User Password====&lt;br /&gt;
For security reasons it&#039;s best to &#039;&#039;&#039;change the default password&#039;&#039;&#039; &amp;quot;raspberry&amp;quot; as soon as possible.&lt;br /&gt;
&lt;br /&gt;
====3 Boot Options==== &lt;br /&gt;
We would like the Raspberry Pi to boot the Text console&lt;br /&gt;
=====B2 Console Autologin Text console, automatically logged in as &#039;pi&#039; user=====    &lt;br /&gt;
&lt;br /&gt;
====9 Advanced Options====&lt;br /&gt;
=====A3 Memory Split=====&lt;br /&gt;
Because we will use the Raspberry Pi as a headless server without connecting it to a monitor, we can decrease the memory used for the GPU from 64 to &#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====5 Internationalisation Options====&lt;br /&gt;
=====I2 Change Timezone=====&lt;br /&gt;
We&#039;ll change the Timezone to our own time zone (e.g. Europe/Amsterdam)&lt;br /&gt;
&lt;br /&gt;
After all changes we&#039;ll Reboot the Raspberry Pi, and will login again with our new password.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
Now it&#039;s time to install everything else.&lt;br /&gt;
&lt;br /&gt;
==Update software==&lt;br /&gt;
Before installing anything else, we&#039;ll:&lt;br /&gt;
* &#039;&#039;&#039;update&#039;&#039;&#039; the list of software versions from all external repositories&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get update&amp;lt;/source&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;upgrade&#039;&#039;&#039; all installed software&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get upgrade&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating the version list and upgrading all software is something that should be done regularly.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Nginx Webserver==&lt;br /&gt;
A fast and lightweight alternative for Apache web server is the increasingly becoming popular &#039;&#039;&#039;Nginx&#039;&#039;&#039; web server.&lt;br /&gt;
&lt;br /&gt;
===Installation of Nginx===&lt;br /&gt;
We will install nginx and all dependencies (read: software that nginx needs to work) with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install nginx&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll get a message like:&lt;br /&gt;
 Reading package lists... Done&lt;br /&gt;
 Building dependency tree       &lt;br /&gt;
 Reading state information... Done&lt;br /&gt;
 The following extra packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common nginx-full&lt;br /&gt;
 Suggested packages:&lt;br /&gt;
  libgd-tools fcgiwrap nginx-doc ssl-cert&lt;br /&gt;
 The following NEW packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx nginx-common nginx-full&lt;br /&gt;
 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.&lt;br /&gt;
 Need to get 3,550 kB of archives.&lt;br /&gt;
 After this operation, 8,666 kB of additional disk space will be used.&lt;br /&gt;
 Do you want to continue? [Y/n] y&lt;br /&gt;
By choosing &amp;quot;y&amp;quot; nginx and all needed packages will be installed.&lt;br /&gt;
&lt;br /&gt;
You can check the installation with a browser. Go to the IP address of your Raspberry pi, in our case http://192.168.0.35/&lt;br /&gt;
We should see a message like:&lt;br /&gt;
 &#039;&#039;&#039;Welcome to nginx on Debian!&#039;&#039;&#039;&lt;br /&gt;
 If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.&lt;br /&gt;
 For online documentation and support please refer to nginx.org&lt;br /&gt;
 Please use the reportbug tool to report bugs in the nginx package with Debian. &lt;br /&gt;
 However, check existing bug reports before reporting a  new bug.&lt;br /&gt;
 &#039;&#039;Thank you for using debian and nginx.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Starting and stopping Nginx====&lt;br /&gt;
After installation Nginx will automatically be started. You can: &lt;br /&gt;
* Stop Nginx: sudo service nginx stop&lt;br /&gt;
* Start Nginx: sudo service nginx start&lt;br /&gt;
* Restart Nginx: sudo service nginx restart&lt;br /&gt;
&lt;br /&gt;
===Configure Nginx===&lt;br /&gt;
====Global Nginx configuration====&lt;br /&gt;
In the global configuration of Nginx we can configure default caching etc. The Raspberry Pi 3 uses 1.2 GHz 64-bit &#039;&#039;&#039;quad-core&#039;&#039;&#039; ARM Cortex-A53 processor. If you have an earlier version with less CPU cores, then you should use &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/nginx.conf&amp;lt;/source&amp;gt; to change the &amp;quot;worker_processes&amp;quot; to fit the amount of CPUs of your device. By default it&#039;s configured as&lt;br /&gt;
 worker_processes 4;&lt;br /&gt;
so for Raspberry Pi 3 you don&#039;t have to change it.&lt;br /&gt;
&lt;br /&gt;
After changing the Nginx configuration or virtual domain configuration, you have to do a &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;sudo nginx reload&amp;lt;/source&amp;gt; to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
====Virtual Domains====&lt;br /&gt;
It&#039;s possible to run multiple Joomla websites on the same server using virtual domains.&lt;br /&gt;
&lt;br /&gt;
Put every website in a separate folder in the default webroot /var/www/ for example:&lt;br /&gt;
* /var/www/example.com/&lt;br /&gt;
* /var/www/voorbeeld.nl/&lt;br /&gt;
&lt;br /&gt;
For every site we will create a virtual domain which is basically a text file with domain specific information:&lt;br /&gt;
* /etc/nginx/sites-available/example.com&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 root /var/www/example.com;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* /etc/nginx/sites-available/voorbeeld.nl&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name voorbeeld.nl www.voorbeeld.nl;&lt;br /&gt;
 root /var/www/voorbeeld.nl;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
We need to enable every site by linking from /etc/nginx/sites-enabled/ to the virtual domain in &amp;quot;sites-available&amp;quot;. We create a symbolic link for each virtual domain:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ln -s/etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com&lt;br /&gt;
sudo ln -s/etc/nginx/sites-available/voorbeeld.nl /etc/nginx/sites-enabled/voorbeeld.nl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make this virtual domain configuration effective, we do &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nginx reload&amp;lt;/source&amp;gt; and when everything has been configured correctly it will respond:&lt;br /&gt;
 Reloading nginx configuration: nginx.&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
We can install MariaDB or MySQL; Joomla will work with both. Let&#039;s install MariaDB with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mariadb-server&amp;lt;/source&amp;gt;&lt;br /&gt;
During the installation you&#039;ve to add a password for the &#039;&#039;&#039;root&#039;&#039;&#039; user. &lt;br /&gt;
Lets create a &#039;&#039;&#039;database password&#039;&#039;&#039;, for example &#039;&#039;&#039;correcthorsebatterystaple&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally let&#039;s improve the security of our MariaDB installation by removing root accounts that are accessible from outside the local host, anonymous-user accounts and the test database. We can do that with &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mysql_secure_installation&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PHP==&lt;br /&gt;
For PHP we will install the &#039;&#039;&#039;php-fpm&#039;&#039;&#039; (FastCGI Process Manager) that runs as a daemon and receives Fast/CGI requests. Furthermore we will install &#039;&#039;&#039;php5-mysql&#039;&#039;&#039; which is a module for MySQL database connections directly from PHP scripts.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install php5-fpm php5-mysql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to let Nginx know that it should use php-fpm for .php files. We add a couple of lines to our virtual domains:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/sites-available/example.com&amp;lt;/source&amp;gt;&lt;br /&gt;
add:&lt;br /&gt;
 location ~ \.php$ {&lt;br /&gt;
 fastcgi_pass unix:/var/run/php5-fpm.sock;&lt;br /&gt;
 fastcgi_index index.php;&lt;br /&gt;
 include fastcgi_params;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Test it by creating the following PHP file&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /var/www/example.com/test.php&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php phpinfo();?&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
We use a browser to test if we see the PHP configuration page at http://192.168.0.35/example.com/test.php&lt;br /&gt;
&lt;br /&gt;
==Joomla!==&lt;br /&gt;
* to do&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo wget https://github.com/joomla/joomla-cms/releases/download/3.6.3/Joomla_3.6.3-Stable-Full_Package.zip&lt;br /&gt;
sudo unzip -x Joomla_3.6.3-Stable-Full_Package.zip&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to Internet==&lt;br /&gt;
We want people on the internet to be able to visit our Joomla website on our Raspberry Pi. In order to do that we need to &#039;&#039;&#039;configure our Internet router&#039;&#039;&#039; to forward all &#039;&#039;&#039;incoming traffic&#039;&#039;&#039; on port 80 &#039;&#039;&#039;to our Raspberry Pi&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use your web browser to connect to the Web Interface of your router. A router is usually located on the first number of your IP range, in our case on 192.168.0.1. In our router we configure &#039;&#039;&#039;Port Forwarding&#039;&#039;&#039;:&lt;br /&gt;
* External IP Address: 0.0.0.0&lt;br /&gt;
* External Start Port: 80&lt;br /&gt;
* External End Port: 80&lt;br /&gt;
* Internal IP Address: 192.168.0.35 ( = our Raspberry Pi)&lt;br /&gt;
* Internal Start Port: 80&lt;br /&gt;
* Internal End Port: 80&lt;br /&gt;
* Protocol: TCP&lt;br /&gt;
Make sure that it is enabled.&lt;br /&gt;
&lt;br /&gt;
If everything is working correctly then you should see your own Joomla website on the Raspberry Pi by visiting your external IP address (Find your external IP address with a tool like [http://www.whatsmyip.org/ whatsmyip.org]). &lt;br /&gt;
&lt;br /&gt;
===Using a domain name===&lt;br /&gt;
Let&#039;s assume that our external IP address is 42.42.42.42. Let&#039;s also assume that we have registered a domain name called example.com. We would like to serve our Joomla site on our Raspberry Pi to visitors visiting example.com. If your domain name registrar gives us the possibility to configure the &#039;&#039;&#039;Domain Name System (DNS)&#039;&#039;&#039; server, then we&#039;ll need to create an &#039;&#039;&#039;MX record&#039;&#039;&#039; in the DNS that points our &#039;&#039;&#039;domain name to&#039;&#039;&#039; our &#039;&#039;&#039;IP address&#039;&#039;&#039; 42.42.42.42. Note that it can take up to 24 hours till all internet providers will redirect the traffic of their customers to the configured MX record.&lt;br /&gt;
&lt;br /&gt;
===Static IP address===&lt;br /&gt;
Most routers will keep assigning the same internal IP address to your Raspberry Pi. Sometimes it&#039;s better to configure your Raspberry Pi to use a static IP address:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/network/interfaces&amp;lt;/source&amp;gt;&lt;br /&gt;
change &lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
to&lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
 address 192.168.0.35 &lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 gateway 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
The gateway is the IP address of your router. You can also find it using&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;route&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
* [https://raspberrypi.org Raspberry Pi Foundation] (RPF) - official website and forums&lt;br /&gt;
* [http://elinux.org/RaspberryPiBoard Raspberry Pi Wiki], supported by the RPF&lt;br /&gt;
* Video of presentation [https://youtu.be/u2MFQCoexD0 Joomla on Raspberry Pi (with Nginx)] at Joomladay Germany 2013 in Nuremberg, Germany&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338632</id>
		<title>Installing Joomla on a Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338632"/>
		<updated>2016-10-22T19:33:44Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: /* Database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer that was originally developed to promote the teaching of basic computer science in schools and developing countries. Because of its versatility it has become very popular and is used as media player, small stand-alone server, etc. You can use it as webserver and install Joomla! on it. This page shows you how to get a your Joomla! website running on the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
* &#039;&#039;&#039;Rasberry Pi version 3 Model B&#039;&#039;&#039; - There are various models of Raspberry Pi. You can use most models that have an Ethernet port (the Model B types). However for performance we will use the latest version with most RAM memory.&lt;br /&gt;
* &#039;&#039;&#039;micro SD card&#039;&#039;&#039; - For the operating system + webserver + Joomla. (RPi version 3 model B uses micro SD other versions might use normal SD cards) &lt;br /&gt;
* &#039;&#039;&#039;5 Volt adapter (1 Amp)&#039;&#039;&#039; - to power the Raspberry Pi you&#039;ll need to convert the mains power (230V or 110V) to 5 Volt. The Rasperry Pi needs about 1 Amp, and maybe more if you connect USB devices to it.&lt;br /&gt;
* standard &#039;&#039;&#039;Ethernet cable&#039;&#039;&#039; - to connect the RPi to your Local Area Network / router / the internet.&lt;br /&gt;
&lt;br /&gt;
==Installing Operating System==&lt;br /&gt;
The operating system Raspbian is a Debian Linux version specially compiled for the Raspberry Pi. There are two versions of [https://www.raspberrypi.org/downloads/raspbian/ Raspbian] available: &#039;&#039;&#039;Raspbian Jessie with Pixel Lite&#039;&#039;&#039; (version with PIXEL desktop based on Debian Jessie) and &#039;&#039;&#039;Raspbian Jessie Lite&#039;&#039;&#039; (minimal version based on Debian Jessie). Because we use the Raspberry Pi as webserver for Joomla, we won&#039;t need the GUI. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039; [https://www.raspberrypi.org/downloads/raspbian/ Raspbian Jessie Lite] and unzip the downloaded file, e.g. 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.zip&#039;&#039;&#039; (306 MB) to 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.img&#039;&#039;&#039; (1.4 GB).&lt;br /&gt;
&lt;br /&gt;
Now we need to copy the .img file to the (micro) SD card. You can use a tool with graphical interface like&lt;br /&gt;
[https://unetbootin.github.io/ UNetbootin] (for Windows, Mac OS X and Linux) or do it on the command line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be very careful&#039;&#039;&#039; when writing the .img disk image to another disk. In case you use the wrong destination disk, you will overwrite that disk with the .img which makes that disk unusable, resulting in data loss.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
In a terminal (CMD) check which device corresponds with the SD Card and do something like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd bs=1M if=c:\temp\2016-09-23-raspbian-jessie-lite.img od=[the device of your SD Card]&amp;lt;/source&amp;gt;&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/windows.md Installing Operating System Images using Windows]&lt;br /&gt;
&lt;br /&gt;
===Apple OSX===&lt;br /&gt;
Check which device is used for your SD Card. In our case it&#039;s disk1s1 and we&#039;ll do in Terminal: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd bs=1M if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/disk1s1&amp;lt;/source&amp;gt;&lt;br /&gt;
See also: [https://www.raspberrypi.org/documentation/installation/installing-images/mac.md Installing Operating System Images on MacOS]&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
We connect a SD Card reader with the (micro) SD Card to a computer. With &#039;&#039;&#039;dmesg&#039;&#039;&#039; we can find the device name of the SD Card. In our case dmesg shows something like &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[xxxxxx.xxxxxxx]  sdd: sdd1 sdd2&amp;lt;/source&amp;gt; meaning that we have a SD Card with 2 partitions. Do not write the Raspbian image to a partition but to the whole disk &#039;&#039;&#039;sdd&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
We will use &#039;&#039;&#039;dd&#039;&#039;&#039; (&amp;quot;Disk Dump&amp;quot;) to write an Input File (&#039;&#039;&#039;if&#039;&#039;&#039;) to an Output File (&#039;&#039;&#039;of&#039;&#039;&#039;) using a specified Block Size (&#039;&#039;&#039;bs&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be VERY careful&#039;&#039;&#039;: dd will write to a device without any warning. Triple double check that that you write to the right device! If you write to the wrong disk, then you&#039;ll always remember the dd command as &amp;quot;Disk Destroyer&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/sdd bs=4M&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/linux.md Installing Operating System Images on Linux]&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to LAN==&lt;br /&gt;
When we have installed the Raspbian Operating System on the SD Card, we will:&lt;br /&gt;
* Insert the micro SD card in the SD Card slot on the Raspberry Pi. &lt;br /&gt;
* Connect an an Ethernet cable to the Raspberry Pi and to the Local Area Network (connect it to our router).&lt;br /&gt;
* Connect the 5V power supply to the the Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Booting up the Raspberry Pi takes roughly 30 seconds. We&#039;ve to find the IP address to connect to it using SSH. We can use different approaches for that: &lt;br /&gt;
* log into the webinterface of your router and look up the connected devices;&lt;br /&gt;
* use a mobile phone connected the Wifi router using a network scanning App called &#039;&#039;&#039;Fing Overlook&#039;&#039;&#039;;&lt;br /&gt;
* use a command like &#039;&#039;&#039;nmap&#039;&#039;&#039;. Assuming that our PC has IP address &#039;&#039;&#039;192.168.0&#039;&#039;&#039;.25 we can find all other devices in the same network range by doing the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nmap -sP 192.168.0/24&amp;lt;/source&amp;gt;&lt;br /&gt;
Which might show the following details:&lt;br /&gt;
&lt;br /&gt;
 Starting Nmap 6.47 ( http://nmap.org ) at 2016-10-22 17:42 CEST&lt;br /&gt;
 Nmap scan report for &#039;&#039;&#039;192.168.0.35&#039;&#039;&#039;&lt;br /&gt;
 Host is up (0.00042s latency).&lt;br /&gt;
 MAC Address: 42:42:42:42:42:42 (Raspberry Pi Foundation)&lt;br /&gt;
&lt;br /&gt;
To log into our Raspberry Pi, we&#039;ll use the command &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first time you&#039;ll connect to it, it will show something like:&lt;br /&gt;
 The authenticity of host &#039;192.168.0.35 (192.168.0.35)&#039; can&#039;t be established.&lt;br /&gt;
 ECDSA key fingerprint is 42:42:42:42:42:42:42:42:42:42:42:42:42:42:42:42. &lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
We&#039;ll choose &amp;quot;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
 Warning: Permanently added &#039;192.168.0.35&#039; (ECDSA) to the list of known hosts.&lt;br /&gt;
 pi@192.168.0.35&#039;s password: &lt;br /&gt;
and use the &#039;&#039;&#039;default password&#039;&#039;&#039;: &#039;&#039;&#039;raspberry&#039;&#039;&#039;&lt;br /&gt;
which on successful login will show:&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
 &lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 pi@raspberrypi:~ $ &lt;br /&gt;
&lt;br /&gt;
We can configure the Raspberry Pi using a text interface via:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo raspi-config&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Raspberry Pi Software Configuration Tool (raspi-config)===&lt;br /&gt;
With this configuration tool we&#039;ll only change the following settings.&lt;br /&gt;
====1 Expand Filesystem====&lt;br /&gt;
By default the disk space on the SD Card is the same size as the 1.4GB .img file that you used to create the SD card for your Raspberry Pi. You can use this option to gain the rest of the disk space.&lt;br /&gt;
&lt;br /&gt;
====2 Change User Password====&lt;br /&gt;
For security reasons it&#039;s best to &#039;&#039;&#039;change the default password&#039;&#039;&#039; &amp;quot;raspberry&amp;quot; as soon as possible.&lt;br /&gt;
&lt;br /&gt;
====3 Boot Options==== &lt;br /&gt;
We would like the Raspberry Pi to boot the Text console&lt;br /&gt;
=====B2 Console Autologin Text console, automatically logged in as &#039;pi&#039; user=====    &lt;br /&gt;
&lt;br /&gt;
====9 Advanced Options====&lt;br /&gt;
=====A3 Memory Split=====&lt;br /&gt;
Because we will use the Raspberry Pi as a headless server without connecting it to a monitor, we can decrease the memory used for the GPU from 64 to &#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====5 Internationalisation Options====&lt;br /&gt;
=====I2 Change Timezone=====&lt;br /&gt;
We&#039;ll change the Timezone to our own time zone (e.g. Europe/Amsterdam)&lt;br /&gt;
&lt;br /&gt;
After all changes we&#039;ll Reboot the Raspberry Pi, and will login again with our new password.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
Now it&#039;s time to install everything else.&lt;br /&gt;
&lt;br /&gt;
==Update software==&lt;br /&gt;
Before installing anything else, we&#039;ll:&lt;br /&gt;
* &#039;&#039;&#039;update&#039;&#039;&#039; the list of software versions from all external repositories&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get update&amp;lt;/source&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;upgrade&#039;&#039;&#039; all installed software&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get upgrade&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating the version list and upgrading all software is something that should be done regularly.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Nginx Webserver==&lt;br /&gt;
A fast and lightweight alternative for Apache web server is the increasingly becoming popular &#039;&#039;&#039;Nginx&#039;&#039;&#039; web server.&lt;br /&gt;
&lt;br /&gt;
===Installation of Nginx===&lt;br /&gt;
We will install nginx and all dependencies (read: software that nginx needs to work) with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install nginx&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll get a message like:&lt;br /&gt;
 Reading package lists... Done&lt;br /&gt;
 Building dependency tree       &lt;br /&gt;
 Reading state information... Done&lt;br /&gt;
 The following extra packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common nginx-full&lt;br /&gt;
 Suggested packages:&lt;br /&gt;
  libgd-tools fcgiwrap nginx-doc ssl-cert&lt;br /&gt;
 The following NEW packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx nginx-common nginx-full&lt;br /&gt;
 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.&lt;br /&gt;
 Need to get 3,550 kB of archives.&lt;br /&gt;
 After this operation, 8,666 kB of additional disk space will be used.&lt;br /&gt;
 Do you want to continue? [Y/n] y&lt;br /&gt;
By choosing &amp;quot;y&amp;quot; nginx and all needed packages will be installed.&lt;br /&gt;
&lt;br /&gt;
You can check the installation with a browser. Go to the IP address of your Raspberry pi, in our case http://192.168.0.35/&lt;br /&gt;
We should see a message like:&lt;br /&gt;
 &#039;&#039;&#039;Welcome to nginx on Debian!&#039;&#039;&#039;&lt;br /&gt;
 If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.&lt;br /&gt;
 For online documentation and support please refer to nginx.org&lt;br /&gt;
 Please use the reportbug tool to report bugs in the nginx package with Debian. &lt;br /&gt;
 However, check existing bug reports before reporting a  new bug.&lt;br /&gt;
 &#039;&#039;Thank you for using debian and nginx.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Starting and stopping Nginx====&lt;br /&gt;
After installation Nginx will automatically be started. You can: &lt;br /&gt;
* Stop Nginx: sudo service nginx stop&lt;br /&gt;
* Start Nginx: sudo service nginx start&lt;br /&gt;
* Restart Nginx: sudo service nginx restart&lt;br /&gt;
&lt;br /&gt;
===Configure Nginx===&lt;br /&gt;
====Global Nginx configuration====&lt;br /&gt;
In the global configuration of Nginx we can configure default caching etc. The Raspberry Pi 3 uses 1.2 GHz 64-bit &#039;&#039;&#039;quad-core&#039;&#039;&#039; ARM Cortex-A53 processor. If you have an earlier version with less CPU cores, then you should use &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/nginx.conf&amp;lt;/source&amp;gt; to change the &amp;quot;worker_processes&amp;quot; to fit the amount of CPUs of your device. By default it&#039;s configured as&lt;br /&gt;
 worker_processes 4;&lt;br /&gt;
so for Raspberry Pi 3 you don&#039;t have to change it.&lt;br /&gt;
&lt;br /&gt;
After changing the Nginx configuration or virtual domain configuration, you have to do a &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;sudo nginx reload&amp;lt;/source&amp;gt; to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
====Virtual Domains====&lt;br /&gt;
It&#039;s possible to run multiple Joomla websites on the same server using virtual domains.&lt;br /&gt;
&lt;br /&gt;
Put every website in a separate folder in the default webroot /var/www/ for example:&lt;br /&gt;
* /var/www/example.com/&lt;br /&gt;
* /var/www/voorbeeld.nl/&lt;br /&gt;
&lt;br /&gt;
For every site we will create a virtual domain which is basically a text file with domain specific information:&lt;br /&gt;
* /etc/nginx/sites-available/example.com&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 root /var/www/example.com;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* /etc/nginx/sites-available/voorbeeld.nl&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name voorbeeld.nl www.voorbeeld.nl;&lt;br /&gt;
 root /var/www/voorbeeld.nl;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
We need to enable every site by linking from /etc/nginx/sites-enabled/ to the virtual domain in &amp;quot;sites-available&amp;quot;. We create a symbolic link for each virtual domain:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ln -s/etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com&lt;br /&gt;
sudo ln -s/etc/nginx/sites-available/voorbeeld.nl /etc/nginx/sites-enabled/voorbeeld.nl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make this virtual domain configuration effective, we do &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nginx reload&amp;lt;/source&amp;gt; and when everything has been configured correctly it will respond:&lt;br /&gt;
 Reloading nginx configuration: nginx.&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
We can install MariaDB or MySQL; Joomla will work with both. Let&#039;s install MariaDB with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mariadb-server&amp;lt;/source&amp;gt;&lt;br /&gt;
During the installation you&#039;ve to add a password for the &#039;&#039;&#039;root&#039;&#039;&#039; user. &lt;br /&gt;
Lets create a &#039;&#039;&#039;database password&#039;&#039;&#039;, for example &#039;&#039;&#039;correcthorsebatterystaple&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally let&#039;s improve the security of our MariaDB installation by removing root accounts that are accessible from outside the local host, anonymous-user accounts and the test database. We can do that with &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mysql_secure_installation&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PHP==&lt;br /&gt;
For PHP we will install the php-fpm (FastCGI Process Manager) that runs as a daemon and receives Fast/CGI requests. Furthermore we will install php5-mysql which is a module for MySQL database connections directly from PHP scripts.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install php5-fpm php5-mysql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to let Nginx know that it should use php-fpm for .php files. We add a couple of lines to our virtual domains:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/sites-available/example.com&amp;lt;/source&amp;gt;&lt;br /&gt;
add:&lt;br /&gt;
 location ~ \.php$ {&lt;br /&gt;
 fastcgi_pass unix:/var/run/php5-fpm.sock;&lt;br /&gt;
 fastcgi_index index.php;&lt;br /&gt;
 include fastcgi_params;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Joomla!==&lt;br /&gt;
* to do&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo wget https://github.com/joomla/joomla-cms/releases/download/3.6.3/Joomla_3.6.3-Stable-Full_Package.zip&lt;br /&gt;
sudo unzip -x Joomla_3.6.3-Stable-Full_Package.zip&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to Internet==&lt;br /&gt;
We want people on the internet to be able to visit our Joomla website on our Raspberry Pi. In order to do that we need to &#039;&#039;&#039;configure our Internet router&#039;&#039;&#039; to forward all &#039;&#039;&#039;incoming traffic&#039;&#039;&#039; on port 80 &#039;&#039;&#039;to our Raspberry Pi&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use your web browser to connect to the Web Interface of your router. A router is usually located on the first number of your IP range, in our case on 192.168.0.1. In our router we configure &#039;&#039;&#039;Port Forwarding&#039;&#039;&#039;:&lt;br /&gt;
* External IP Address: 0.0.0.0&lt;br /&gt;
* External Start Port: 80&lt;br /&gt;
* External End Port: 80&lt;br /&gt;
* Internal IP Address: 192.168.0.35 ( = our Raspberry Pi)&lt;br /&gt;
* Internal Start Port: 80&lt;br /&gt;
* Internal End Port: 80&lt;br /&gt;
* Protocol: TCP&lt;br /&gt;
Make sure that it is enabled.&lt;br /&gt;
&lt;br /&gt;
If everything is working correctly then you should see your own Joomla website on the Raspberry Pi by visiting your external IP address (Find your external IP address with a tool like [http://www.whatsmyip.org/ whatsmyip.org]). &lt;br /&gt;
&lt;br /&gt;
===Using a domain name===&lt;br /&gt;
Let&#039;s assume that our external IP address is 42.42.42.42. Let&#039;s also assume that we have registered a domain name called example.com. We would like to serve our Joomla site on our Raspberry Pi to visitors visiting example.com. If your domain name registrar gives us the possibility to configure the &#039;&#039;&#039;Domain Name System (DNS)&#039;&#039;&#039; server, then we&#039;ll need to create an &#039;&#039;&#039;MX record&#039;&#039;&#039; in the DNS that points our &#039;&#039;&#039;domain name to&#039;&#039;&#039; our &#039;&#039;&#039;IP address&#039;&#039;&#039; 42.42.42.42. Note that it can take up to 24 hours till all internet providers will redirect the traffic of their customers to the configured MX record.&lt;br /&gt;
&lt;br /&gt;
===Static IP address===&lt;br /&gt;
Most routers will keep assigning the same internal IP address to your Raspberry Pi. Sometimes it&#039;s better to configure your Raspberry Pi to use a static IP address:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/network/interfaces&amp;lt;/source&amp;gt;&lt;br /&gt;
change &lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
to&lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
 address 192.168.0.35 &lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 gateway 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
The gateway is the IP address of your router. You can also find it using&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;route&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
* [https://raspberrypi.org Raspberry Pi Foundation] (RPF) - official website and forums&lt;br /&gt;
* [http://elinux.org/RaspberryPiBoard Raspberry Pi Wiki], supported by the RPF&lt;br /&gt;
* Video of presentation [https://youtu.be/u2MFQCoexD0 Joomla on Raspberry Pi (with Nginx)] at Joomladay Germany 2013 in Nuremberg, Germany&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338631</id>
		<title>Installing Joomla on a Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338631"/>
		<updated>2016-10-22T19:21:51Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: /* PHP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer that was originally developed to promote the teaching of basic computer science in schools and developing countries. Because of its versatility it has become very popular and is used as media player, small stand-alone server, etc. You can use it as webserver and install Joomla! on it. This page shows you how to get a your Joomla! website running on the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
* &#039;&#039;&#039;Rasberry Pi version 3 Model B&#039;&#039;&#039; - There are various models of Raspberry Pi. You can use most models that have an Ethernet port (the Model B types). However for performance we will use the latest version with most RAM memory.&lt;br /&gt;
* &#039;&#039;&#039;micro SD card&#039;&#039;&#039; - For the operating system + webserver + Joomla. (RPi version 3 model B uses micro SD other versions might use normal SD cards) &lt;br /&gt;
* &#039;&#039;&#039;5 Volt adapter (1 Amp)&#039;&#039;&#039; - to power the Raspberry Pi you&#039;ll need to convert the mains power (230V or 110V) to 5 Volt. The Rasperry Pi needs about 1 Amp, and maybe more if you connect USB devices to it.&lt;br /&gt;
* standard &#039;&#039;&#039;Ethernet cable&#039;&#039;&#039; - to connect the RPi to your Local Area Network / router / the internet.&lt;br /&gt;
&lt;br /&gt;
==Installing Operating System==&lt;br /&gt;
The operating system Raspbian is a Debian Linux version specially compiled for the Raspberry Pi. There are two versions of [https://www.raspberrypi.org/downloads/raspbian/ Raspbian] available: &#039;&#039;&#039;Raspbian Jessie with Pixel Lite&#039;&#039;&#039; (version with PIXEL desktop based on Debian Jessie) and &#039;&#039;&#039;Raspbian Jessie Lite&#039;&#039;&#039; (minimal version based on Debian Jessie). Because we use the Raspberry Pi as webserver for Joomla, we won&#039;t need the GUI. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039; [https://www.raspberrypi.org/downloads/raspbian/ Raspbian Jessie Lite] and unzip the downloaded file, e.g. 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.zip&#039;&#039;&#039; (306 MB) to 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.img&#039;&#039;&#039; (1.4 GB).&lt;br /&gt;
&lt;br /&gt;
Now we need to copy the .img file to the (micro) SD card. You can use a tool with graphical interface like&lt;br /&gt;
[https://unetbootin.github.io/ UNetbootin] (for Windows, Mac OS X and Linux) or do it on the command line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be very careful&#039;&#039;&#039; when writing the .img disk image to another disk. In case you use the wrong destination disk, you will overwrite that disk with the .img which makes that disk unusable, resulting in data loss.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
In a terminal (CMD) check which device corresponds with the SD Card and do something like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd bs=1M if=c:\temp\2016-09-23-raspbian-jessie-lite.img od=[the device of your SD Card]&amp;lt;/source&amp;gt;&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/windows.md Installing Operating System Images using Windows]&lt;br /&gt;
&lt;br /&gt;
===Apple OSX===&lt;br /&gt;
Check which device is used for your SD Card. In our case it&#039;s disk1s1 and we&#039;ll do in Terminal: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd bs=1M if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/disk1s1&amp;lt;/source&amp;gt;&lt;br /&gt;
See also: [https://www.raspberrypi.org/documentation/installation/installing-images/mac.md Installing Operating System Images on MacOS]&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
We connect a SD Card reader with the (micro) SD Card to a computer. With &#039;&#039;&#039;dmesg&#039;&#039;&#039; we can find the device name of the SD Card. In our case dmesg shows something like &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[xxxxxx.xxxxxxx]  sdd: sdd1 sdd2&amp;lt;/source&amp;gt; meaning that we have a SD Card with 2 partitions. Do not write the Raspbian image to a partition but to the whole disk &#039;&#039;&#039;sdd&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
We will use &#039;&#039;&#039;dd&#039;&#039;&#039; (&amp;quot;Disk Dump&amp;quot;) to write an Input File (&#039;&#039;&#039;if&#039;&#039;&#039;) to an Output File (&#039;&#039;&#039;of&#039;&#039;&#039;) using a specified Block Size (&#039;&#039;&#039;bs&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be VERY careful&#039;&#039;&#039;: dd will write to a device without any warning. Triple double check that that you write to the right device! If you write to the wrong disk, then you&#039;ll always remember the dd command as &amp;quot;Disk Destroyer&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/sdd bs=4M&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/linux.md Installing Operating System Images on Linux]&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to LAN==&lt;br /&gt;
When we have installed the Raspbian Operating System on the SD Card, we will:&lt;br /&gt;
* Insert the micro SD card in the SD Card slot on the Raspberry Pi. &lt;br /&gt;
* Connect an an Ethernet cable to the Raspberry Pi and to the Local Area Network (connect it to our router).&lt;br /&gt;
* Connect the 5V power supply to the the Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Booting up the Raspberry Pi takes roughly 30 seconds. We&#039;ve to find the IP address to connect to it using SSH. We can use different approaches for that: &lt;br /&gt;
* log into the webinterface of your router and look up the connected devices;&lt;br /&gt;
* use a mobile phone connected the Wifi router using a network scanning App called &#039;&#039;&#039;Fing Overlook&#039;&#039;&#039;;&lt;br /&gt;
* use a command like &#039;&#039;&#039;nmap&#039;&#039;&#039;. Assuming that our PC has IP address &#039;&#039;&#039;192.168.0&#039;&#039;&#039;.25 we can find all other devices in the same network range by doing the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nmap -sP 192.168.0/24&amp;lt;/source&amp;gt;&lt;br /&gt;
Which might show the following details:&lt;br /&gt;
&lt;br /&gt;
 Starting Nmap 6.47 ( http://nmap.org ) at 2016-10-22 17:42 CEST&lt;br /&gt;
 Nmap scan report for &#039;&#039;&#039;192.168.0.35&#039;&#039;&#039;&lt;br /&gt;
 Host is up (0.00042s latency).&lt;br /&gt;
 MAC Address: 42:42:42:42:42:42 (Raspberry Pi Foundation)&lt;br /&gt;
&lt;br /&gt;
To log into our Raspberry Pi, we&#039;ll use the command &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first time you&#039;ll connect to it, it will show something like:&lt;br /&gt;
 The authenticity of host &#039;192.168.0.35 (192.168.0.35)&#039; can&#039;t be established.&lt;br /&gt;
 ECDSA key fingerprint is 42:42:42:42:42:42:42:42:42:42:42:42:42:42:42:42. &lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
We&#039;ll choose &amp;quot;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
 Warning: Permanently added &#039;192.168.0.35&#039; (ECDSA) to the list of known hosts.&lt;br /&gt;
 pi@192.168.0.35&#039;s password: &lt;br /&gt;
and use the &#039;&#039;&#039;default password&#039;&#039;&#039;: &#039;&#039;&#039;raspberry&#039;&#039;&#039;&lt;br /&gt;
which on successful login will show:&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
 &lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 pi@raspberrypi:~ $ &lt;br /&gt;
&lt;br /&gt;
We can configure the Raspberry Pi using a text interface via:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo raspi-config&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Raspberry Pi Software Configuration Tool (raspi-config)===&lt;br /&gt;
With this configuration tool we&#039;ll only change the following settings.&lt;br /&gt;
====1 Expand Filesystem====&lt;br /&gt;
By default the disk space on the SD Card is the same size as the 1.4GB .img file that you used to create the SD card for your Raspberry Pi. You can use this option to gain the rest of the disk space.&lt;br /&gt;
&lt;br /&gt;
====2 Change User Password====&lt;br /&gt;
For security reasons it&#039;s best to &#039;&#039;&#039;change the default password&#039;&#039;&#039; &amp;quot;raspberry&amp;quot; as soon as possible.&lt;br /&gt;
&lt;br /&gt;
====3 Boot Options==== &lt;br /&gt;
We would like the Raspberry Pi to boot the Text console&lt;br /&gt;
=====B2 Console Autologin Text console, automatically logged in as &#039;pi&#039; user=====    &lt;br /&gt;
&lt;br /&gt;
====9 Advanced Options====&lt;br /&gt;
=====A3 Memory Split=====&lt;br /&gt;
Because we will use the Raspberry Pi as a headless server without connecting it to a monitor, we can decrease the memory used for the GPU from 64 to &#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====5 Internationalisation Options====&lt;br /&gt;
=====I2 Change Timezone=====&lt;br /&gt;
We&#039;ll change the Timezone to our own time zone (e.g. Europe/Amsterdam)&lt;br /&gt;
&lt;br /&gt;
After all changes we&#039;ll Reboot the Raspberry Pi, and will login again with our new password.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
Now it&#039;s time to install everything else.&lt;br /&gt;
&lt;br /&gt;
==Update software==&lt;br /&gt;
Before installing anything else, we&#039;ll:&lt;br /&gt;
* &#039;&#039;&#039;update&#039;&#039;&#039; the list of software versions from all external repositories&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get update&amp;lt;/source&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;upgrade&#039;&#039;&#039; all installed software&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get upgrade&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating the version list and upgrading all software is something that should be done regularly.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Nginx Webserver==&lt;br /&gt;
A fast and lightweight alternative for Apache web server is the increasingly becoming popular &#039;&#039;&#039;Nginx&#039;&#039;&#039; web server.&lt;br /&gt;
&lt;br /&gt;
===Installation of Nginx===&lt;br /&gt;
We will install nginx and all dependencies (read: software that nginx needs to work) with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install nginx&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll get a message like:&lt;br /&gt;
 Reading package lists... Done&lt;br /&gt;
 Building dependency tree       &lt;br /&gt;
 Reading state information... Done&lt;br /&gt;
 The following extra packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common nginx-full&lt;br /&gt;
 Suggested packages:&lt;br /&gt;
  libgd-tools fcgiwrap nginx-doc ssl-cert&lt;br /&gt;
 The following NEW packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx nginx-common nginx-full&lt;br /&gt;
 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.&lt;br /&gt;
 Need to get 3,550 kB of archives.&lt;br /&gt;
 After this operation, 8,666 kB of additional disk space will be used.&lt;br /&gt;
 Do you want to continue? [Y/n] y&lt;br /&gt;
By choosing &amp;quot;y&amp;quot; nginx and all needed packages will be installed.&lt;br /&gt;
&lt;br /&gt;
You can check the installation with a browser. Go to the IP address of your Raspberry pi, in our case http://192.168.0.35/&lt;br /&gt;
We should see a message like:&lt;br /&gt;
 &#039;&#039;&#039;Welcome to nginx on Debian!&#039;&#039;&#039;&lt;br /&gt;
 If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.&lt;br /&gt;
 For online documentation and support please refer to nginx.org&lt;br /&gt;
 Please use the reportbug tool to report bugs in the nginx package with Debian. &lt;br /&gt;
 However, check existing bug reports before reporting a  new bug.&lt;br /&gt;
 &#039;&#039;Thank you for using debian and nginx.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Starting and stopping Nginx====&lt;br /&gt;
After installation Nginx will automatically be started. You can: &lt;br /&gt;
* Stop Nginx: sudo service nginx stop&lt;br /&gt;
* Start Nginx: sudo service nginx start&lt;br /&gt;
* Restart Nginx: sudo service nginx restart&lt;br /&gt;
&lt;br /&gt;
===Configure Nginx===&lt;br /&gt;
====Global Nginx configuration====&lt;br /&gt;
In the global configuration of Nginx we can configure default caching etc. The Raspberry Pi 3 uses 1.2 GHz 64-bit &#039;&#039;&#039;quad-core&#039;&#039;&#039; ARM Cortex-A53 processor. If you have an earlier version with less CPU cores, then you should use &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/nginx.conf&amp;lt;/source&amp;gt; to change the &amp;quot;worker_processes&amp;quot; to fit the amount of CPUs of your device. By default it&#039;s configured as&lt;br /&gt;
 worker_processes 4;&lt;br /&gt;
so for Raspberry Pi 3 you don&#039;t have to change it.&lt;br /&gt;
&lt;br /&gt;
After changing the Nginx configuration or virtual domain configuration, you have to do a &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;sudo nginx reload&amp;lt;/source&amp;gt; to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
====Virtual Domains====&lt;br /&gt;
It&#039;s possible to run multiple Joomla websites on the same server using virtual domains.&lt;br /&gt;
&lt;br /&gt;
Put every website in a separate folder in the default webroot /var/www/ for example:&lt;br /&gt;
* /var/www/example.com/&lt;br /&gt;
* /var/www/voorbeeld.nl/&lt;br /&gt;
&lt;br /&gt;
For every site we will create a virtual domain which is basically a text file with domain specific information:&lt;br /&gt;
* /etc/nginx/sites-available/example.com&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 root /var/www/example.com;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* /etc/nginx/sites-available/voorbeeld.nl&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name voorbeeld.nl www.voorbeeld.nl;&lt;br /&gt;
 root /var/www/voorbeeld.nl;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
We need to enable every site by linking from /etc/nginx/sites-enabled/ to the virtual domain in &amp;quot;sites-available&amp;quot;. We create a symbolic link for each virtual domain:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ln -s/etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com&lt;br /&gt;
sudo ln -s/etc/nginx/sites-available/voorbeeld.nl /etc/nginx/sites-enabled/voorbeeld.nl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make this virtual domain configuration effective, we do &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nginx reload&amp;lt;/source&amp;gt; and when everything has been configured correctly it will respond:&lt;br /&gt;
 Reloading nginx configuration: nginx.&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
We can install MariaDB or MySQL; Joomla will work with both. Let&#039;s install MariaDB with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mariadb-server&amp;lt;/source&amp;gt;&lt;br /&gt;
During the installation you&#039;ve to add a password for the &#039;&#039;&#039;root&#039;&#039;&#039; user. &lt;br /&gt;
Lets create a &#039;&#039;&#039;database password&#039;&#039;&#039;, for example &#039;&#039;&#039;correcthorsebatterystaple&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally let&#039;s improve the security of our MariaDB installation by removing root accounts that are accessible from outside the local host, anonymous-user accounts and the test database. We can do that with &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mysql_secure_installation&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Joomla!==&lt;br /&gt;
* to do&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo wget https://github.com/joomla/joomla-cms/releases/download/3.6.3/Joomla_3.6.3-Stable-Full_Package.zip&lt;br /&gt;
sudo unzip -x Joomla_3.6.3-Stable-Full_Package.zip&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to Internet==&lt;br /&gt;
We want people on the internet to be able to visit our Joomla website on our Raspberry Pi. In order to do that we need to &#039;&#039;&#039;configure our Internet router&#039;&#039;&#039; to forward all &#039;&#039;&#039;incoming traffic&#039;&#039;&#039; on port 80 &#039;&#039;&#039;to our Raspberry Pi&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use your web browser to connect to the Web Interface of your router. A router is usually located on the first number of your IP range, in our case on 192.168.0.1. In our router we configure &#039;&#039;&#039;Port Forwarding&#039;&#039;&#039;:&lt;br /&gt;
* External IP Address: 0.0.0.0&lt;br /&gt;
* External Start Port: 80&lt;br /&gt;
* External End Port: 80&lt;br /&gt;
* Internal IP Address: 192.168.0.35 ( = our Raspberry Pi)&lt;br /&gt;
* Internal Start Port: 80&lt;br /&gt;
* Internal End Port: 80&lt;br /&gt;
* Protocol: TCP&lt;br /&gt;
Make sure that it is enabled.&lt;br /&gt;
&lt;br /&gt;
If everything is working correctly then you should see your own Joomla website on the Raspberry Pi by visiting your external IP address (Find your external IP address with a tool like [http://www.whatsmyip.org/ whatsmyip.org]). &lt;br /&gt;
&lt;br /&gt;
===Using a domain name===&lt;br /&gt;
Let&#039;s assume that our external IP address is 42.42.42.42. Let&#039;s also assume that we have registered a domain name called example.com. We would like to serve our Joomla site on our Raspberry Pi to visitors visiting example.com. If your domain name registrar gives us the possibility to configure the &#039;&#039;&#039;Domain Name System (DNS)&#039;&#039;&#039; server, then we&#039;ll need to create an &#039;&#039;&#039;MX record&#039;&#039;&#039; in the DNS that points our &#039;&#039;&#039;domain name to&#039;&#039;&#039; our &#039;&#039;&#039;IP address&#039;&#039;&#039; 42.42.42.42. Note that it can take up to 24 hours till all internet providers will redirect the traffic of their customers to the configured MX record.&lt;br /&gt;
&lt;br /&gt;
===Static IP address===&lt;br /&gt;
Most routers will keep assigning the same internal IP address to your Raspberry Pi. Sometimes it&#039;s better to configure your Raspberry Pi to use a static IP address:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/network/interfaces&amp;lt;/source&amp;gt;&lt;br /&gt;
change &lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
to&lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
 address 192.168.0.35 &lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 gateway 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
The gateway is the IP address of your router. You can also find it using&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;route&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
* [https://raspberrypi.org Raspberry Pi Foundation] (RPF) - official website and forums&lt;br /&gt;
* [http://elinux.org/RaspberryPiBoard Raspberry Pi Wiki], supported by the RPF&lt;br /&gt;
* Video of presentation [https://youtu.be/u2MFQCoexD0 Joomla on Raspberry Pi (with Nginx)] at Joomladay Germany 2013 in Nuremberg, Germany&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338630</id>
		<title>Installing Joomla on a Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338630"/>
		<updated>2016-10-22T19:21:00Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: /* MySQL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer that was originally developed to promote the teaching of basic computer science in schools and developing countries. Because of its versatility it has become very popular and is used as media player, small stand-alone server, etc. You can use it as webserver and install Joomla! on it. This page shows you how to get a your Joomla! website running on the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
* &#039;&#039;&#039;Rasberry Pi version 3 Model B&#039;&#039;&#039; - There are various models of Raspberry Pi. You can use most models that have an Ethernet port (the Model B types). However for performance we will use the latest version with most RAM memory.&lt;br /&gt;
* &#039;&#039;&#039;micro SD card&#039;&#039;&#039; - For the operating system + webserver + Joomla. (RPi version 3 model B uses micro SD other versions might use normal SD cards) &lt;br /&gt;
* &#039;&#039;&#039;5 Volt adapter (1 Amp)&#039;&#039;&#039; - to power the Raspberry Pi you&#039;ll need to convert the mains power (230V or 110V) to 5 Volt. The Rasperry Pi needs about 1 Amp, and maybe more if you connect USB devices to it.&lt;br /&gt;
* standard &#039;&#039;&#039;Ethernet cable&#039;&#039;&#039; - to connect the RPi to your Local Area Network / router / the internet.&lt;br /&gt;
&lt;br /&gt;
==Installing Operating System==&lt;br /&gt;
The operating system Raspbian is a Debian Linux version specially compiled for the Raspberry Pi. There are two versions of [https://www.raspberrypi.org/downloads/raspbian/ Raspbian] available: &#039;&#039;&#039;Raspbian Jessie with Pixel Lite&#039;&#039;&#039; (version with PIXEL desktop based on Debian Jessie) and &#039;&#039;&#039;Raspbian Jessie Lite&#039;&#039;&#039; (minimal version based on Debian Jessie). Because we use the Raspberry Pi as webserver for Joomla, we won&#039;t need the GUI. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039; [https://www.raspberrypi.org/downloads/raspbian/ Raspbian Jessie Lite] and unzip the downloaded file, e.g. 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.zip&#039;&#039;&#039; (306 MB) to 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.img&#039;&#039;&#039; (1.4 GB).&lt;br /&gt;
&lt;br /&gt;
Now we need to copy the .img file to the (micro) SD card. You can use a tool with graphical interface like&lt;br /&gt;
[https://unetbootin.github.io/ UNetbootin] (for Windows, Mac OS X and Linux) or do it on the command line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be very careful&#039;&#039;&#039; when writing the .img disk image to another disk. In case you use the wrong destination disk, you will overwrite that disk with the .img which makes that disk unusable, resulting in data loss.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
In a terminal (CMD) check which device corresponds with the SD Card and do something like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd bs=1M if=c:\temp\2016-09-23-raspbian-jessie-lite.img od=[the device of your SD Card]&amp;lt;/source&amp;gt;&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/windows.md Installing Operating System Images using Windows]&lt;br /&gt;
&lt;br /&gt;
===Apple OSX===&lt;br /&gt;
Check which device is used for your SD Card. In our case it&#039;s disk1s1 and we&#039;ll do in Terminal: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd bs=1M if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/disk1s1&amp;lt;/source&amp;gt;&lt;br /&gt;
See also: [https://www.raspberrypi.org/documentation/installation/installing-images/mac.md Installing Operating System Images on MacOS]&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
We connect a SD Card reader with the (micro) SD Card to a computer. With &#039;&#039;&#039;dmesg&#039;&#039;&#039; we can find the device name of the SD Card. In our case dmesg shows something like &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[xxxxxx.xxxxxxx]  sdd: sdd1 sdd2&amp;lt;/source&amp;gt; meaning that we have a SD Card with 2 partitions. Do not write the Raspbian image to a partition but to the whole disk &#039;&#039;&#039;sdd&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
We will use &#039;&#039;&#039;dd&#039;&#039;&#039; (&amp;quot;Disk Dump&amp;quot;) to write an Input File (&#039;&#039;&#039;if&#039;&#039;&#039;) to an Output File (&#039;&#039;&#039;of&#039;&#039;&#039;) using a specified Block Size (&#039;&#039;&#039;bs&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be VERY careful&#039;&#039;&#039;: dd will write to a device without any warning. Triple double check that that you write to the right device! If you write to the wrong disk, then you&#039;ll always remember the dd command as &amp;quot;Disk Destroyer&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/sdd bs=4M&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/linux.md Installing Operating System Images on Linux]&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to LAN==&lt;br /&gt;
When we have installed the Raspbian Operating System on the SD Card, we will:&lt;br /&gt;
* Insert the micro SD card in the SD Card slot on the Raspberry Pi. &lt;br /&gt;
* Connect an an Ethernet cable to the Raspberry Pi and to the Local Area Network (connect it to our router).&lt;br /&gt;
* Connect the 5V power supply to the the Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Booting up the Raspberry Pi takes roughly 30 seconds. We&#039;ve to find the IP address to connect to it using SSH. We can use different approaches for that: &lt;br /&gt;
* log into the webinterface of your router and look up the connected devices;&lt;br /&gt;
* use a mobile phone connected the Wifi router using a network scanning App called &#039;&#039;&#039;Fing Overlook&#039;&#039;&#039;;&lt;br /&gt;
* use a command like &#039;&#039;&#039;nmap&#039;&#039;&#039;. Assuming that our PC has IP address &#039;&#039;&#039;192.168.0&#039;&#039;&#039;.25 we can find all other devices in the same network range by doing the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nmap -sP 192.168.0/24&amp;lt;/source&amp;gt;&lt;br /&gt;
Which might show the following details:&lt;br /&gt;
&lt;br /&gt;
 Starting Nmap 6.47 ( http://nmap.org ) at 2016-10-22 17:42 CEST&lt;br /&gt;
 Nmap scan report for &#039;&#039;&#039;192.168.0.35&#039;&#039;&#039;&lt;br /&gt;
 Host is up (0.00042s latency).&lt;br /&gt;
 MAC Address: 42:42:42:42:42:42 (Raspberry Pi Foundation)&lt;br /&gt;
&lt;br /&gt;
To log into our Raspberry Pi, we&#039;ll use the command &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first time you&#039;ll connect to it, it will show something like:&lt;br /&gt;
 The authenticity of host &#039;192.168.0.35 (192.168.0.35)&#039; can&#039;t be established.&lt;br /&gt;
 ECDSA key fingerprint is 42:42:42:42:42:42:42:42:42:42:42:42:42:42:42:42. &lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
We&#039;ll choose &amp;quot;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
 Warning: Permanently added &#039;192.168.0.35&#039; (ECDSA) to the list of known hosts.&lt;br /&gt;
 pi@192.168.0.35&#039;s password: &lt;br /&gt;
and use the &#039;&#039;&#039;default password&#039;&#039;&#039;: &#039;&#039;&#039;raspberry&#039;&#039;&#039;&lt;br /&gt;
which on successful login will show:&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
 &lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 pi@raspberrypi:~ $ &lt;br /&gt;
&lt;br /&gt;
We can configure the Raspberry Pi using a text interface via:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo raspi-config&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Raspberry Pi Software Configuration Tool (raspi-config)===&lt;br /&gt;
With this configuration tool we&#039;ll only change the following settings.&lt;br /&gt;
====1 Expand Filesystem====&lt;br /&gt;
By default the disk space on the SD Card is the same size as the 1.4GB .img file that you used to create the SD card for your Raspberry Pi. You can use this option to gain the rest of the disk space.&lt;br /&gt;
&lt;br /&gt;
====2 Change User Password====&lt;br /&gt;
For security reasons it&#039;s best to &#039;&#039;&#039;change the default password&#039;&#039;&#039; &amp;quot;raspberry&amp;quot; as soon as possible.&lt;br /&gt;
&lt;br /&gt;
====3 Boot Options==== &lt;br /&gt;
We would like the Raspberry Pi to boot the Text console&lt;br /&gt;
=====B2 Console Autologin Text console, automatically logged in as &#039;pi&#039; user=====    &lt;br /&gt;
&lt;br /&gt;
====9 Advanced Options====&lt;br /&gt;
=====A3 Memory Split=====&lt;br /&gt;
Because we will use the Raspberry Pi as a headless server without connecting it to a monitor, we can decrease the memory used for the GPU from 64 to &#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====5 Internationalisation Options====&lt;br /&gt;
=====I2 Change Timezone=====&lt;br /&gt;
We&#039;ll change the Timezone to our own time zone (e.g. Europe/Amsterdam)&lt;br /&gt;
&lt;br /&gt;
After all changes we&#039;ll Reboot the Raspberry Pi, and will login again with our new password.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
Now it&#039;s time to install everything else.&lt;br /&gt;
&lt;br /&gt;
==Update software==&lt;br /&gt;
Before installing anything else, we&#039;ll:&lt;br /&gt;
* &#039;&#039;&#039;update&#039;&#039;&#039; the list of software versions from all external repositories&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get update&amp;lt;/source&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;upgrade&#039;&#039;&#039; all installed software&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get upgrade&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating the version list and upgrading all software is something that should be done regularly.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Nginx Webserver==&lt;br /&gt;
A fast and lightweight alternative for Apache web server is the increasingly becoming popular &#039;&#039;&#039;Nginx&#039;&#039;&#039; web server.&lt;br /&gt;
&lt;br /&gt;
===Installation of Nginx===&lt;br /&gt;
We will install nginx and all dependencies (read: software that nginx needs to work) with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install nginx&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll get a message like:&lt;br /&gt;
 Reading package lists... Done&lt;br /&gt;
 Building dependency tree       &lt;br /&gt;
 Reading state information... Done&lt;br /&gt;
 The following extra packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common nginx-full&lt;br /&gt;
 Suggested packages:&lt;br /&gt;
  libgd-tools fcgiwrap nginx-doc ssl-cert&lt;br /&gt;
 The following NEW packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx nginx-common nginx-full&lt;br /&gt;
 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.&lt;br /&gt;
 Need to get 3,550 kB of archives.&lt;br /&gt;
 After this operation, 8,666 kB of additional disk space will be used.&lt;br /&gt;
 Do you want to continue? [Y/n] y&lt;br /&gt;
By choosing &amp;quot;y&amp;quot; nginx and all needed packages will be installed.&lt;br /&gt;
&lt;br /&gt;
You can check the installation with a browser. Go to the IP address of your Raspberry pi, in our case http://192.168.0.35/&lt;br /&gt;
We should see a message like:&lt;br /&gt;
 &#039;&#039;&#039;Welcome to nginx on Debian!&#039;&#039;&#039;&lt;br /&gt;
 If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.&lt;br /&gt;
 For online documentation and support please refer to nginx.org&lt;br /&gt;
 Please use the reportbug tool to report bugs in the nginx package with Debian. &lt;br /&gt;
 However, check existing bug reports before reporting a  new bug.&lt;br /&gt;
 &#039;&#039;Thank you for using debian and nginx.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Starting and stopping Nginx====&lt;br /&gt;
After installation Nginx will automatically be started. You can: &lt;br /&gt;
* Stop Nginx: sudo service nginx stop&lt;br /&gt;
* Start Nginx: sudo service nginx start&lt;br /&gt;
* Restart Nginx: sudo service nginx restart&lt;br /&gt;
&lt;br /&gt;
===Configure Nginx===&lt;br /&gt;
====Global Nginx configuration====&lt;br /&gt;
In the global configuration of Nginx we can configure default caching etc. The Raspberry Pi 3 uses 1.2 GHz 64-bit &#039;&#039;&#039;quad-core&#039;&#039;&#039; ARM Cortex-A53 processor. If you have an earlier version with less CPU cores, then you should use &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/nginx.conf&amp;lt;/source&amp;gt; to change the &amp;quot;worker_processes&amp;quot; to fit the amount of CPUs of your device. By default it&#039;s configured as&lt;br /&gt;
 worker_processes 4;&lt;br /&gt;
so for Raspberry Pi 3 you don&#039;t have to change it.&lt;br /&gt;
&lt;br /&gt;
After changing the Nginx configuration or virtual domain configuration, you have to do a &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;sudo nginx reload&amp;lt;/source&amp;gt; to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
====Virtual Domains====&lt;br /&gt;
It&#039;s possible to run multiple Joomla websites on the same server using virtual domains.&lt;br /&gt;
&lt;br /&gt;
Put every website in a separate folder in the default webroot /var/www/ for example:&lt;br /&gt;
* /var/www/example.com/&lt;br /&gt;
* /var/www/voorbeeld.nl/&lt;br /&gt;
&lt;br /&gt;
For every site we will create a virtual domain which is basically a text file with domain specific information:&lt;br /&gt;
* /etc/nginx/sites-available/example.com&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 root /var/www/example.com;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* /etc/nginx/sites-available/voorbeeld.nl&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name voorbeeld.nl www.voorbeeld.nl;&lt;br /&gt;
 root /var/www/voorbeeld.nl;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
We need to enable every site by linking from /etc/nginx/sites-enabled/ to the virtual domain in &amp;quot;sites-available&amp;quot;. We create a symbolic link for each virtual domain:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ln -s/etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com&lt;br /&gt;
sudo ln -s/etc/nginx/sites-available/voorbeeld.nl /etc/nginx/sites-enabled/voorbeeld.nl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make this virtual domain configuration effective, we do &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nginx reload&amp;lt;/source&amp;gt; and when everything has been configured correctly it will respond:&lt;br /&gt;
 Reloading nginx configuration: nginx.&lt;br /&gt;
&lt;br /&gt;
==PHP==&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
We can install MariaDB or MySQL; Joomla will work with both. Let&#039;s install MariaDB with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get install mariadb-server&amp;lt;/source&amp;gt;&lt;br /&gt;
During the installation you&#039;ve to add a password for the &#039;&#039;&#039;root&#039;&#039;&#039; user. &lt;br /&gt;
Lets create a &#039;&#039;&#039;database password&#039;&#039;&#039;, for example &#039;&#039;&#039;correcthorsebatterystaple&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally let&#039;s improve the security of our MariaDB installation by removing root accounts that are accessible from outside the local host, anonymous-user accounts and the test database. We can do that with &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mysql_secure_installation&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Joomla!==&lt;br /&gt;
* to do&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo wget https://github.com/joomla/joomla-cms/releases/download/3.6.3/Joomla_3.6.3-Stable-Full_Package.zip&lt;br /&gt;
sudo unzip -x Joomla_3.6.3-Stable-Full_Package.zip&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to Internet==&lt;br /&gt;
We want people on the internet to be able to visit our Joomla website on our Raspberry Pi. In order to do that we need to &#039;&#039;&#039;configure our Internet router&#039;&#039;&#039; to forward all &#039;&#039;&#039;incoming traffic&#039;&#039;&#039; on port 80 &#039;&#039;&#039;to our Raspberry Pi&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use your web browser to connect to the Web Interface of your router. A router is usually located on the first number of your IP range, in our case on 192.168.0.1. In our router we configure &#039;&#039;&#039;Port Forwarding&#039;&#039;&#039;:&lt;br /&gt;
* External IP Address: 0.0.0.0&lt;br /&gt;
* External Start Port: 80&lt;br /&gt;
* External End Port: 80&lt;br /&gt;
* Internal IP Address: 192.168.0.35 ( = our Raspberry Pi)&lt;br /&gt;
* Internal Start Port: 80&lt;br /&gt;
* Internal End Port: 80&lt;br /&gt;
* Protocol: TCP&lt;br /&gt;
Make sure that it is enabled.&lt;br /&gt;
&lt;br /&gt;
If everything is working correctly then you should see your own Joomla website on the Raspberry Pi by visiting your external IP address (Find your external IP address with a tool like [http://www.whatsmyip.org/ whatsmyip.org]). &lt;br /&gt;
&lt;br /&gt;
===Using a domain name===&lt;br /&gt;
Let&#039;s assume that our external IP address is 42.42.42.42. Let&#039;s also assume that we have registered a domain name called example.com. We would like to serve our Joomla site on our Raspberry Pi to visitors visiting example.com. If your domain name registrar gives us the possibility to configure the &#039;&#039;&#039;Domain Name System (DNS)&#039;&#039;&#039; server, then we&#039;ll need to create an &#039;&#039;&#039;MX record&#039;&#039;&#039; in the DNS that points our &#039;&#039;&#039;domain name to&#039;&#039;&#039; our &#039;&#039;&#039;IP address&#039;&#039;&#039; 42.42.42.42. Note that it can take up to 24 hours till all internet providers will redirect the traffic of their customers to the configured MX record.&lt;br /&gt;
&lt;br /&gt;
===Static IP address===&lt;br /&gt;
Most routers will keep assigning the same internal IP address to your Raspberry Pi. Sometimes it&#039;s better to configure your Raspberry Pi to use a static IP address:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/network/interfaces&amp;lt;/source&amp;gt;&lt;br /&gt;
change &lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
to&lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
 address 192.168.0.35 &lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 gateway 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
The gateway is the IP address of your router. You can also find it using&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;route&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
* [https://raspberrypi.org Raspberry Pi Foundation] (RPF) - official website and forums&lt;br /&gt;
* [http://elinux.org/RaspberryPiBoard Raspberry Pi Wiki], supported by the RPF&lt;br /&gt;
* Video of presentation [https://youtu.be/u2MFQCoexD0 Joomla on Raspberry Pi (with Nginx)] at Joomladay Germany 2013 in Nuremberg, Germany&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338629</id>
		<title>Installing Joomla on a Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338629"/>
		<updated>2016-10-22T19:04:45Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: /* Nginx Webserver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer that was originally developed to promote the teaching of basic computer science in schools and developing countries. Because of its versatility it has become very popular and is used as media player, small stand-alone server, etc. You can use it as webserver and install Joomla! on it. This page shows you how to get a your Joomla! website running on the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
* &#039;&#039;&#039;Rasberry Pi version 3 Model B&#039;&#039;&#039; - There are various models of Raspberry Pi. You can use most models that have an Ethernet port (the Model B types). However for performance we will use the latest version with most RAM memory.&lt;br /&gt;
* &#039;&#039;&#039;micro SD card&#039;&#039;&#039; - For the operating system + webserver + Joomla. (RPi version 3 model B uses micro SD other versions might use normal SD cards) &lt;br /&gt;
* &#039;&#039;&#039;5 Volt adapter (1 Amp)&#039;&#039;&#039; - to power the Raspberry Pi you&#039;ll need to convert the mains power (230V or 110V) to 5 Volt. The Rasperry Pi needs about 1 Amp, and maybe more if you connect USB devices to it.&lt;br /&gt;
* standard &#039;&#039;&#039;Ethernet cable&#039;&#039;&#039; - to connect the RPi to your Local Area Network / router / the internet.&lt;br /&gt;
&lt;br /&gt;
==Installing Operating System==&lt;br /&gt;
The operating system Raspbian is a Debian Linux version specially compiled for the Raspberry Pi. There are two versions of [https://www.raspberrypi.org/downloads/raspbian/ Raspbian] available: &#039;&#039;&#039;Raspbian Jessie with Pixel Lite&#039;&#039;&#039; (version with PIXEL desktop based on Debian Jessie) and &#039;&#039;&#039;Raspbian Jessie Lite&#039;&#039;&#039; (minimal version based on Debian Jessie). Because we use the Raspberry Pi as webserver for Joomla, we won&#039;t need the GUI. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039; [https://www.raspberrypi.org/downloads/raspbian/ Raspbian Jessie Lite] and unzip the downloaded file, e.g. 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.zip&#039;&#039;&#039; (306 MB) to 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.img&#039;&#039;&#039; (1.4 GB).&lt;br /&gt;
&lt;br /&gt;
Now we need to copy the .img file to the (micro) SD card. You can use a tool with graphical interface like&lt;br /&gt;
[https://unetbootin.github.io/ UNetbootin] (for Windows, Mac OS X and Linux) or do it on the command line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be very careful&#039;&#039;&#039; when writing the .img disk image to another disk. In case you use the wrong destination disk, you will overwrite that disk with the .img which makes that disk unusable, resulting in data loss.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
In a terminal (CMD) check which device corresponds with the SD Card and do something like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd bs=1M if=c:\temp\2016-09-23-raspbian-jessie-lite.img od=[the device of your SD Card]&amp;lt;/source&amp;gt;&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/windows.md Installing Operating System Images using Windows]&lt;br /&gt;
&lt;br /&gt;
===Apple OSX===&lt;br /&gt;
Check which device is used for your SD Card. In our case it&#039;s disk1s1 and we&#039;ll do in Terminal: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd bs=1M if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/disk1s1&amp;lt;/source&amp;gt;&lt;br /&gt;
See also: [https://www.raspberrypi.org/documentation/installation/installing-images/mac.md Installing Operating System Images on MacOS]&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
We connect a SD Card reader with the (micro) SD Card to a computer. With &#039;&#039;&#039;dmesg&#039;&#039;&#039; we can find the device name of the SD Card. In our case dmesg shows something like &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[xxxxxx.xxxxxxx]  sdd: sdd1 sdd2&amp;lt;/source&amp;gt; meaning that we have a SD Card with 2 partitions. Do not write the Raspbian image to a partition but to the whole disk &#039;&#039;&#039;sdd&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
We will use &#039;&#039;&#039;dd&#039;&#039;&#039; (&amp;quot;Disk Dump&amp;quot;) to write an Input File (&#039;&#039;&#039;if&#039;&#039;&#039;) to an Output File (&#039;&#039;&#039;of&#039;&#039;&#039;) using a specified Block Size (&#039;&#039;&#039;bs&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be VERY careful&#039;&#039;&#039;: dd will write to a device without any warning. Triple double check that that you write to the right device! If you write to the wrong disk, then you&#039;ll always remember the dd command as &amp;quot;Disk Destroyer&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/sdd bs=4M&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/linux.md Installing Operating System Images on Linux]&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to LAN==&lt;br /&gt;
When we have installed the Raspbian Operating System on the SD Card, we will:&lt;br /&gt;
* Insert the micro SD card in the SD Card slot on the Raspberry Pi. &lt;br /&gt;
* Connect an an Ethernet cable to the Raspberry Pi and to the Local Area Network (connect it to our router).&lt;br /&gt;
* Connect the 5V power supply to the the Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Booting up the Raspberry Pi takes roughly 30 seconds. We&#039;ve to find the IP address to connect to it using SSH. We can use different approaches for that: &lt;br /&gt;
* log into the webinterface of your router and look up the connected devices;&lt;br /&gt;
* use a mobile phone connected the Wifi router using a network scanning App called &#039;&#039;&#039;Fing Overlook&#039;&#039;&#039;;&lt;br /&gt;
* use a command like &#039;&#039;&#039;nmap&#039;&#039;&#039;. Assuming that our PC has IP address &#039;&#039;&#039;192.168.0&#039;&#039;&#039;.25 we can find all other devices in the same network range by doing the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nmap -sP 192.168.0/24&amp;lt;/source&amp;gt;&lt;br /&gt;
Which might show the following details:&lt;br /&gt;
&lt;br /&gt;
 Starting Nmap 6.47 ( http://nmap.org ) at 2016-10-22 17:42 CEST&lt;br /&gt;
 Nmap scan report for &#039;&#039;&#039;192.168.0.35&#039;&#039;&#039;&lt;br /&gt;
 Host is up (0.00042s latency).&lt;br /&gt;
 MAC Address: 42:42:42:42:42:42 (Raspberry Pi Foundation)&lt;br /&gt;
&lt;br /&gt;
To log into our Raspberry Pi, we&#039;ll use the command &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first time you&#039;ll connect to it, it will show something like:&lt;br /&gt;
 The authenticity of host &#039;192.168.0.35 (192.168.0.35)&#039; can&#039;t be established.&lt;br /&gt;
 ECDSA key fingerprint is 42:42:42:42:42:42:42:42:42:42:42:42:42:42:42:42. &lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
We&#039;ll choose &amp;quot;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
 Warning: Permanently added &#039;192.168.0.35&#039; (ECDSA) to the list of known hosts.&lt;br /&gt;
 pi@192.168.0.35&#039;s password: &lt;br /&gt;
and use the &#039;&#039;&#039;default password&#039;&#039;&#039;: &#039;&#039;&#039;raspberry&#039;&#039;&#039;&lt;br /&gt;
which on successful login will show:&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
 &lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 pi@raspberrypi:~ $ &lt;br /&gt;
&lt;br /&gt;
We can configure the Raspberry Pi using a text interface via:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo raspi-config&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Raspberry Pi Software Configuration Tool (raspi-config)===&lt;br /&gt;
With this configuration tool we&#039;ll only change the following settings.&lt;br /&gt;
====1 Expand Filesystem====&lt;br /&gt;
By default the disk space on the SD Card is the same size as the 1.4GB .img file that you used to create the SD card for your Raspberry Pi. You can use this option to gain the rest of the disk space.&lt;br /&gt;
&lt;br /&gt;
====2 Change User Password====&lt;br /&gt;
For security reasons it&#039;s best to &#039;&#039;&#039;change the default password&#039;&#039;&#039; &amp;quot;raspberry&amp;quot; as soon as possible.&lt;br /&gt;
&lt;br /&gt;
====3 Boot Options==== &lt;br /&gt;
We would like the Raspberry Pi to boot the Text console&lt;br /&gt;
=====B2 Console Autologin Text console, automatically logged in as &#039;pi&#039; user=====    &lt;br /&gt;
&lt;br /&gt;
====9 Advanced Options====&lt;br /&gt;
=====A3 Memory Split=====&lt;br /&gt;
Because we will use the Raspberry Pi as a headless server without connecting it to a monitor, we can decrease the memory used for the GPU from 64 to &#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====5 Internationalisation Options====&lt;br /&gt;
=====I2 Change Timezone=====&lt;br /&gt;
We&#039;ll change the Timezone to our own time zone (e.g. Europe/Amsterdam)&lt;br /&gt;
&lt;br /&gt;
After all changes we&#039;ll Reboot the Raspberry Pi, and will login again with our new password.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
Now it&#039;s time to install everything else.&lt;br /&gt;
&lt;br /&gt;
==Update software==&lt;br /&gt;
Before installing anything else, we&#039;ll:&lt;br /&gt;
* &#039;&#039;&#039;update&#039;&#039;&#039; the list of software versions from all external repositories&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get update&amp;lt;/source&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;upgrade&#039;&#039;&#039; all installed software&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get upgrade&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating the version list and upgrading all software is something that should be done regularly.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Nginx Webserver==&lt;br /&gt;
A fast and lightweight alternative for Apache web server is the increasingly becoming popular &#039;&#039;&#039;Nginx&#039;&#039;&#039; web server.&lt;br /&gt;
&lt;br /&gt;
===Installation of Nginx===&lt;br /&gt;
We will install nginx and all dependencies (read: software that nginx needs to work) with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install nginx&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll get a message like:&lt;br /&gt;
 Reading package lists... Done&lt;br /&gt;
 Building dependency tree       &lt;br /&gt;
 Reading state information... Done&lt;br /&gt;
 The following extra packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common nginx-full&lt;br /&gt;
 Suggested packages:&lt;br /&gt;
  libgd-tools fcgiwrap nginx-doc ssl-cert&lt;br /&gt;
 The following NEW packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx nginx-common nginx-full&lt;br /&gt;
 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.&lt;br /&gt;
 Need to get 3,550 kB of archives.&lt;br /&gt;
 After this operation, 8,666 kB of additional disk space will be used.&lt;br /&gt;
 Do you want to continue? [Y/n] y&lt;br /&gt;
By choosing &amp;quot;y&amp;quot; nginx and all needed packages will be installed.&lt;br /&gt;
&lt;br /&gt;
You can check the installation with a browser. Go to the IP address of your Raspberry pi, in our case http://192.168.0.35/&lt;br /&gt;
We should see a message like:&lt;br /&gt;
 &#039;&#039;&#039;Welcome to nginx on Debian!&#039;&#039;&#039;&lt;br /&gt;
 If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.&lt;br /&gt;
 For online documentation and support please refer to nginx.org&lt;br /&gt;
 Please use the reportbug tool to report bugs in the nginx package with Debian. &lt;br /&gt;
 However, check existing bug reports before reporting a  new bug.&lt;br /&gt;
 &#039;&#039;Thank you for using debian and nginx.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Starting and stopping Nginx====&lt;br /&gt;
After installation Nginx will automatically be started. You can: &lt;br /&gt;
* Stop Nginx: sudo service nginx stop&lt;br /&gt;
* Start Nginx: sudo service nginx start&lt;br /&gt;
* Restart Nginx: sudo service nginx restart&lt;br /&gt;
&lt;br /&gt;
===Configure Nginx===&lt;br /&gt;
====Global Nginx configuration====&lt;br /&gt;
In the global configuration of Nginx we can configure default caching etc. The Raspberry Pi 3 uses 1.2 GHz 64-bit &#039;&#039;&#039;quad-core&#039;&#039;&#039; ARM Cortex-A53 processor. If you have an earlier version with less CPU cores, then you should use &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/nginx.conf&amp;lt;/source&amp;gt; to change the &amp;quot;worker_processes&amp;quot; to fit the amount of CPUs of your device. By default it&#039;s configured as&lt;br /&gt;
 worker_processes 4;&lt;br /&gt;
so for Raspberry Pi 3 you don&#039;t have to change it.&lt;br /&gt;
&lt;br /&gt;
After changing the Nginx configuration or virtual domain configuration, you have to do a &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;sudo nginx reload&amp;lt;/source&amp;gt; to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
====Virtual Domains====&lt;br /&gt;
It&#039;s possible to run multiple Joomla websites on the same server using virtual domains.&lt;br /&gt;
&lt;br /&gt;
Put every website in a separate folder in the default webroot /var/www/ for example:&lt;br /&gt;
* /var/www/example.com/&lt;br /&gt;
* /var/www/voorbeeld.nl/&lt;br /&gt;
&lt;br /&gt;
For every site we will create a virtual domain which is basically a text file with domain specific information:&lt;br /&gt;
* /etc/nginx/sites-available/example.com&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 root /var/www/example.com;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* /etc/nginx/sites-available/voorbeeld.nl&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name voorbeeld.nl www.voorbeeld.nl;&lt;br /&gt;
 root /var/www/voorbeeld.nl;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
We need to enable every site by linking from /etc/nginx/sites-enabled/ to the virtual domain in &amp;quot;sites-available&amp;quot;. We create a symbolic link for each virtual domain:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ln -s/etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com&lt;br /&gt;
sudo ln -s/etc/nginx/sites-available/voorbeeld.nl /etc/nginx/sites-enabled/voorbeeld.nl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make this virtual domain configuration effective, we do &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nginx reload&amp;lt;/source&amp;gt; and when everything has been configured correctly it will respond:&lt;br /&gt;
 Reloading nginx configuration: nginx.&lt;br /&gt;
&lt;br /&gt;
==PHP==&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
==MySQL==&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
==Joomla!==&lt;br /&gt;
* to do&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo wget https://github.com/joomla/joomla-cms/releases/download/3.6.3/Joomla_3.6.3-Stable-Full_Package.zip&lt;br /&gt;
sudo unzip -x Joomla_3.6.3-Stable-Full_Package.zip&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to Internet==&lt;br /&gt;
We want people on the internet to be able to visit our Joomla website on our Raspberry Pi. In order to do that we need to &#039;&#039;&#039;configure our Internet router&#039;&#039;&#039; to forward all &#039;&#039;&#039;incoming traffic&#039;&#039;&#039; on port 80 &#039;&#039;&#039;to our Raspberry Pi&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use your web browser to connect to the Web Interface of your router. A router is usually located on the first number of your IP range, in our case on 192.168.0.1. In our router we configure &#039;&#039;&#039;Port Forwarding&#039;&#039;&#039;:&lt;br /&gt;
* External IP Address: 0.0.0.0&lt;br /&gt;
* External Start Port: 80&lt;br /&gt;
* External End Port: 80&lt;br /&gt;
* Internal IP Address: 192.168.0.35 ( = our Raspberry Pi)&lt;br /&gt;
* Internal Start Port: 80&lt;br /&gt;
* Internal End Port: 80&lt;br /&gt;
* Protocol: TCP&lt;br /&gt;
Make sure that it is enabled.&lt;br /&gt;
&lt;br /&gt;
If everything is working correctly then you should see your own Joomla website on the Raspberry Pi by visiting your external IP address (Find your external IP address with a tool like [http://www.whatsmyip.org/ whatsmyip.org]). &lt;br /&gt;
&lt;br /&gt;
===Using a domain name===&lt;br /&gt;
Let&#039;s assume that our external IP address is 42.42.42.42. Let&#039;s also assume that we have registered a domain name called example.com. We would like to serve our Joomla site on our Raspberry Pi to visitors visiting example.com. If your domain name registrar gives us the possibility to configure the &#039;&#039;&#039;Domain Name System (DNS)&#039;&#039;&#039; server, then we&#039;ll need to create an &#039;&#039;&#039;MX record&#039;&#039;&#039; in the DNS that points our &#039;&#039;&#039;domain name to&#039;&#039;&#039; our &#039;&#039;&#039;IP address&#039;&#039;&#039; 42.42.42.42. Note that it can take up to 24 hours till all internet providers will redirect the traffic of their customers to the configured MX record.&lt;br /&gt;
&lt;br /&gt;
===Static IP address===&lt;br /&gt;
Most routers will keep assigning the same internal IP address to your Raspberry Pi. Sometimes it&#039;s better to configure your Raspberry Pi to use a static IP address:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/network/interfaces&amp;lt;/source&amp;gt;&lt;br /&gt;
change &lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
to&lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
 address 192.168.0.35 &lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 gateway 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
The gateway is the IP address of your router. You can also find it using&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;route&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
* [https://raspberrypi.org Raspberry Pi Foundation] (RPF) - official website and forums&lt;br /&gt;
* [http://elinux.org/RaspberryPiBoard Raspberry Pi Wiki], supported by the RPF&lt;br /&gt;
* Video of presentation [https://youtu.be/u2MFQCoexD0 Joomla on Raspberry Pi (with Nginx)] at Joomladay Germany 2013 in Nuremberg, Germany&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338628</id>
		<title>Installing Joomla on a Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338628"/>
		<updated>2016-10-22T19:00:51Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: /* Virtual Domains */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer that was originally developed to promote the teaching of basic computer science in schools and developing countries. Because of its versatility it has become very popular and is used as media player, small stand-alone server, etc. You can use it as webserver and install Joomla! on it. This page shows you how to get a your Joomla! website running on the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
* &#039;&#039;&#039;Rasberry Pi version 3 Model B&#039;&#039;&#039; - There are various models of Raspberry Pi. You can use most models that have an Ethernet port (the Model B types). However for performance we will use the latest version with most RAM memory.&lt;br /&gt;
* &#039;&#039;&#039;micro SD card&#039;&#039;&#039; - For the operating system + webserver + Joomla. (RPi version 3 model B uses micro SD other versions might use normal SD cards) &lt;br /&gt;
* &#039;&#039;&#039;5 Volt adapter (1 Amp)&#039;&#039;&#039; - to power the Raspberry Pi you&#039;ll need to convert the mains power (230V or 110V) to 5 Volt. The Rasperry Pi needs about 1 Amp, and maybe more if you connect USB devices to it.&lt;br /&gt;
* standard &#039;&#039;&#039;Ethernet cable&#039;&#039;&#039; - to connect the RPi to your Local Area Network / router / the internet.&lt;br /&gt;
&lt;br /&gt;
==Installing Operating System==&lt;br /&gt;
The operating system Raspbian is a Debian Linux version specially compiled for the Raspberry Pi. There are two versions of [https://www.raspberrypi.org/downloads/raspbian/ Raspbian] available: &#039;&#039;&#039;Raspbian Jessie with Pixel Lite&#039;&#039;&#039; (version with PIXEL desktop based on Debian Jessie) and &#039;&#039;&#039;Raspbian Jessie Lite&#039;&#039;&#039; (minimal version based on Debian Jessie). Because we use the Raspberry Pi as webserver for Joomla, we won&#039;t need the GUI. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039; [https://www.raspberrypi.org/downloads/raspbian/ Raspbian Jessie Lite] and unzip the downloaded file, e.g. 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.zip&#039;&#039;&#039; (306 MB) to 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.img&#039;&#039;&#039; (1.4 GB).&lt;br /&gt;
&lt;br /&gt;
Now we need to copy the .img file to the (micro) SD card. You can use a tool with graphical interface like&lt;br /&gt;
[https://unetbootin.github.io/ UNetbootin] (for Windows, Mac OS X and Linux) or do it on the command line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be very careful&#039;&#039;&#039; when writing the .img disk image to another disk. In case you use the wrong destination disk, you will overwrite that disk with the .img which makes that disk unusable, resulting in data loss.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
In a terminal (CMD) check which device corresponds with the SD Card and do something like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd bs=1M if=c:\temp\2016-09-23-raspbian-jessie-lite.img od=[the device of your SD Card]&amp;lt;/source&amp;gt;&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/windows.md Installing Operating System Images using Windows]&lt;br /&gt;
&lt;br /&gt;
===Apple OSX===&lt;br /&gt;
Check which device is used for your SD Card. In our case it&#039;s disk1s1 and we&#039;ll do in Terminal: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd bs=1M if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/disk1s1&amp;lt;/source&amp;gt;&lt;br /&gt;
See also: [https://www.raspberrypi.org/documentation/installation/installing-images/mac.md Installing Operating System Images on MacOS]&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
We connect a SD Card reader with the (micro) SD Card to a computer. With &#039;&#039;&#039;dmesg&#039;&#039;&#039; we can find the device name of the SD Card. In our case dmesg shows something like &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[xxxxxx.xxxxxxx]  sdd: sdd1 sdd2&amp;lt;/source&amp;gt; meaning that we have a SD Card with 2 partitions. Do not write the Raspbian image to a partition but to the whole disk &#039;&#039;&#039;sdd&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
We will use &#039;&#039;&#039;dd&#039;&#039;&#039; (&amp;quot;Disk Dump&amp;quot;) to write an Input File (&#039;&#039;&#039;if&#039;&#039;&#039;) to an Output File (&#039;&#039;&#039;of&#039;&#039;&#039;) using a specified Block Size (&#039;&#039;&#039;bs&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be VERY careful&#039;&#039;&#039;: dd will write to a device without any warning. Triple double check that that you write to the right device! If you write to the wrong disk, then you&#039;ll always remember the dd command as &amp;quot;Disk Destroyer&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/sdd bs=4M&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/linux.md Installing Operating System Images on Linux]&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to LAN==&lt;br /&gt;
When we have installed the Raspbian Operating System on the SD Card, we will:&lt;br /&gt;
* Insert the micro SD card in the SD Card slot on the Raspberry Pi. &lt;br /&gt;
* Connect an an Ethernet cable to the Raspberry Pi and to the Local Area Network (connect it to our router).&lt;br /&gt;
* Connect the 5V power supply to the the Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Booting up the Raspberry Pi takes roughly 30 seconds. We&#039;ve to find the IP address to connect to it using SSH. We can use different approaches for that: &lt;br /&gt;
* log into the webinterface of your router and look up the connected devices;&lt;br /&gt;
* use a mobile phone connected the Wifi router using a network scanning App called &#039;&#039;&#039;Fing Overlook&#039;&#039;&#039;;&lt;br /&gt;
* use a command like &#039;&#039;&#039;nmap&#039;&#039;&#039;. Assuming that our PC has IP address &#039;&#039;&#039;192.168.0&#039;&#039;&#039;.25 we can find all other devices in the same network range by doing the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nmap -sP 192.168.0/24&amp;lt;/source&amp;gt;&lt;br /&gt;
Which might show the following details:&lt;br /&gt;
&lt;br /&gt;
 Starting Nmap 6.47 ( http://nmap.org ) at 2016-10-22 17:42 CEST&lt;br /&gt;
 Nmap scan report for &#039;&#039;&#039;192.168.0.35&#039;&#039;&#039;&lt;br /&gt;
 Host is up (0.00042s latency).&lt;br /&gt;
 MAC Address: 42:42:42:42:42:42 (Raspberry Pi Foundation)&lt;br /&gt;
&lt;br /&gt;
To log into our Raspberry Pi, we&#039;ll use the command &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first time you&#039;ll connect to it, it will show something like:&lt;br /&gt;
 The authenticity of host &#039;192.168.0.35 (192.168.0.35)&#039; can&#039;t be established.&lt;br /&gt;
 ECDSA key fingerprint is 42:42:42:42:42:42:42:42:42:42:42:42:42:42:42:42. &lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
We&#039;ll choose &amp;quot;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
 Warning: Permanently added &#039;192.168.0.35&#039; (ECDSA) to the list of known hosts.&lt;br /&gt;
 pi@192.168.0.35&#039;s password: &lt;br /&gt;
and use the &#039;&#039;&#039;default password&#039;&#039;&#039;: &#039;&#039;&#039;raspberry&#039;&#039;&#039;&lt;br /&gt;
which on successful login will show:&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
 &lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 pi@raspberrypi:~ $ &lt;br /&gt;
&lt;br /&gt;
We can configure the Raspberry Pi using a text interface via:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo raspi-config&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Raspberry Pi Software Configuration Tool (raspi-config)===&lt;br /&gt;
With this configuration tool we&#039;ll only change the following settings.&lt;br /&gt;
====1 Expand Filesystem====&lt;br /&gt;
By default the disk space on the SD Card is the same size as the 1.4GB .img file that you used to create the SD card for your Raspberry Pi. You can use this option to gain the rest of the disk space.&lt;br /&gt;
&lt;br /&gt;
====2 Change User Password====&lt;br /&gt;
For security reasons it&#039;s best to &#039;&#039;&#039;change the default password&#039;&#039;&#039; &amp;quot;raspberry&amp;quot; as soon as possible.&lt;br /&gt;
&lt;br /&gt;
====3 Boot Options==== &lt;br /&gt;
We would like the Raspberry Pi to boot the Text console&lt;br /&gt;
=====B2 Console Autologin Text console, automatically logged in as &#039;pi&#039; user=====    &lt;br /&gt;
&lt;br /&gt;
====9 Advanced Options====&lt;br /&gt;
=====A3 Memory Split=====&lt;br /&gt;
Because we will use the Raspberry Pi as a headless server without connecting it to a monitor, we can decrease the memory used for the GPU from 64 to &#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====5 Internationalisation Options====&lt;br /&gt;
=====I2 Change Timezone=====&lt;br /&gt;
We&#039;ll change the Timezone to our own time zone (e.g. Europe/Amsterdam)&lt;br /&gt;
&lt;br /&gt;
After all changes we&#039;ll Reboot the Raspberry Pi, and will login again with our new password.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
Now it&#039;s time to install everything else.&lt;br /&gt;
&lt;br /&gt;
==Update software==&lt;br /&gt;
Before installing anything else, we&#039;ll:&lt;br /&gt;
* &#039;&#039;&#039;update&#039;&#039;&#039; the list of software versions from all external repositories&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get update&amp;lt;/source&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;upgrade&#039;&#039;&#039; all installed software&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get upgrade&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating the version list and upgrading all software is something that should be done regularly.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Nginx Webserver==&lt;br /&gt;
A fast and lightweight alternative for Apache web server is the increasingly becoming popular &#039;&#039;&#039;Nginx&#039;&#039;&#039; web server.&lt;br /&gt;
&lt;br /&gt;
===Installation of Nginx===&lt;br /&gt;
We will install nginx and all dependencies (read: software that nginx needs to work) with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install nginx&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll get a message like:&lt;br /&gt;
 Reading package lists... Done&lt;br /&gt;
 Building dependency tree       &lt;br /&gt;
 Reading state information... Done&lt;br /&gt;
 The following extra packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common nginx-full&lt;br /&gt;
 Suggested packages:&lt;br /&gt;
  libgd-tools fcgiwrap nginx-doc ssl-cert&lt;br /&gt;
 The following NEW packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx nginx-common nginx-full&lt;br /&gt;
 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.&lt;br /&gt;
 Need to get 3,550 kB of archives.&lt;br /&gt;
 After this operation, 8,666 kB of additional disk space will be used.&lt;br /&gt;
 Do you want to continue? [Y/n] y&lt;br /&gt;
By choosing &amp;quot;y&amp;quot; nginx and all needed packages will be installed.&lt;br /&gt;
&lt;br /&gt;
You can check the installation with a browser. Go to the IP address of your Raspberry pi, in our case http://192.168.0.35/&lt;br /&gt;
We should see a message like:&lt;br /&gt;
 &#039;&#039;&#039;Welcome to nginx on Debian!&#039;&#039;&#039;&lt;br /&gt;
 If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.&lt;br /&gt;
 For online documentation and support please refer to nginx.org&lt;br /&gt;
 Please use the reportbug tool to report bugs in the nginx package with Debian. &lt;br /&gt;
 However, check existing bug reports before reporting a  new bug.&lt;br /&gt;
 &#039;&#039;Thank you for using debian and nginx.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Configure Nginx===&lt;br /&gt;
====Global Nginx configuration====&lt;br /&gt;
In the global configuration of Nginx we can configure default caching etc. The Raspberry Pi 3 uses 1.2 GHz 64-bit &#039;&#039;&#039;quad-core&#039;&#039;&#039; ARM Cortex-A53 processor. If you have an earlier version with less CPU cores, then you should use &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/nginx.conf&amp;lt;/source&amp;gt; to change the &amp;quot;worker_processes&amp;quot; to fit the amount of CPUs of your device. By default it&#039;s configured as&lt;br /&gt;
 worker_processes 4;&lt;br /&gt;
so for Raspberry Pi 3 you don&#039;t have to change it.&lt;br /&gt;
&lt;br /&gt;
After changing the Nginx configuration or virtual domain configuration, you have to do a &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;sudo nginx reload&amp;lt;/source&amp;gt; to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
====Virtual Domains====&lt;br /&gt;
It&#039;s possible to run multiple Joomla websites on the same server using virtual domains.&lt;br /&gt;
&lt;br /&gt;
Put every website in a separate folder in the default webroot /var/www/ for example:&lt;br /&gt;
* /var/www/example.com/&lt;br /&gt;
* /var/www/voorbeeld.nl/&lt;br /&gt;
&lt;br /&gt;
For every site we will create a virtual domain which is basically a text file with domain specific information:&lt;br /&gt;
* /etc/nginx/sites-available/example.com&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name example.com www.example.com;&lt;br /&gt;
 root /var/www/example.com;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* /etc/nginx/sites-available/voorbeeld.nl&lt;br /&gt;
 server {&lt;br /&gt;
 listen 80;&lt;br /&gt;
 server_name voorbeeld.nl www.voorbeeld.nl;&lt;br /&gt;
 root /var/www/voorbeeld.nl;&lt;br /&gt;
 &lt;br /&gt;
 location / {&lt;br /&gt;
   index index.php index.html index.htm;&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
We need to enable every site by linking from /etc/nginx/sites-enabled/ to the virtual domain in &amp;quot;sites-available&amp;quot;. We create a symbolic link for each virtual domain:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ln -s/etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com&lt;br /&gt;
sudo ln -s/etc/nginx/sites-available/voorbeeld.nl /etc/nginx/sites-enabled/voorbeeld.nl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make this virtual domain configuration effective, we do &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nginx reload&amp;lt;/source&amp;gt; and when everything has been configured correctly it will respond:&lt;br /&gt;
 Reloading nginx configuration: nginx.&lt;br /&gt;
&lt;br /&gt;
===Starting Nginx webserver===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo service nginx start&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PHP==&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
==MySQL==&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
==Joomla!==&lt;br /&gt;
* to do&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo wget https://github.com/joomla/joomla-cms/releases/download/3.6.3/Joomla_3.6.3-Stable-Full_Package.zip&lt;br /&gt;
sudo unzip -x Joomla_3.6.3-Stable-Full_Package.zip&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to Internet==&lt;br /&gt;
We want people on the internet to be able to visit our Joomla website on our Raspberry Pi. In order to do that we need to &#039;&#039;&#039;configure our Internet router&#039;&#039;&#039; to forward all &#039;&#039;&#039;incoming traffic&#039;&#039;&#039; on port 80 &#039;&#039;&#039;to our Raspberry Pi&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use your web browser to connect to the Web Interface of your router. A router is usually located on the first number of your IP range, in our case on 192.168.0.1. In our router we configure &#039;&#039;&#039;Port Forwarding&#039;&#039;&#039;:&lt;br /&gt;
* External IP Address: 0.0.0.0&lt;br /&gt;
* External Start Port: 80&lt;br /&gt;
* External End Port: 80&lt;br /&gt;
* Internal IP Address: 192.168.0.35 ( = our Raspberry Pi)&lt;br /&gt;
* Internal Start Port: 80&lt;br /&gt;
* Internal End Port: 80&lt;br /&gt;
* Protocol: TCP&lt;br /&gt;
Make sure that it is enabled.&lt;br /&gt;
&lt;br /&gt;
If everything is working correctly then you should see your own Joomla website on the Raspberry Pi by visiting your external IP address (Find your external IP address with a tool like [http://www.whatsmyip.org/ whatsmyip.org]). &lt;br /&gt;
&lt;br /&gt;
===Using a domain name===&lt;br /&gt;
Let&#039;s assume that our external IP address is 42.42.42.42. Let&#039;s also assume that we have registered a domain name called example.com. We would like to serve our Joomla site on our Raspberry Pi to visitors visiting example.com. If your domain name registrar gives us the possibility to configure the &#039;&#039;&#039;Domain Name System (DNS)&#039;&#039;&#039; server, then we&#039;ll need to create an &#039;&#039;&#039;MX record&#039;&#039;&#039; in the DNS that points our &#039;&#039;&#039;domain name to&#039;&#039;&#039; our &#039;&#039;&#039;IP address&#039;&#039;&#039; 42.42.42.42. Note that it can take up to 24 hours till all internet providers will redirect the traffic of their customers to the configured MX record.&lt;br /&gt;
&lt;br /&gt;
===Static IP address===&lt;br /&gt;
Most routers will keep assigning the same internal IP address to your Raspberry Pi. Sometimes it&#039;s better to configure your Raspberry Pi to use a static IP address:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/network/interfaces&amp;lt;/source&amp;gt;&lt;br /&gt;
change &lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
to&lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
 address 192.168.0.35 &lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 gateway 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
The gateway is the IP address of your router. You can also find it using&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;route&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
* [https://raspberrypi.org Raspberry Pi Foundation] (RPF) - official website and forums&lt;br /&gt;
* [http://elinux.org/RaspberryPiBoard Raspberry Pi Wiki], supported by the RPF&lt;br /&gt;
* Video of presentation [https://youtu.be/u2MFQCoexD0 Joomla on Raspberry Pi (with Nginx)] at Joomladay Germany 2013 in Nuremberg, Germany&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338627</id>
		<title>Installing Joomla on a Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338627"/>
		<updated>2016-10-22T18:48:38Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: /* Global Nginx configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer that was originally developed to promote the teaching of basic computer science in schools and developing countries. Because of its versatility it has become very popular and is used as media player, small stand-alone server, etc. You can use it as webserver and install Joomla! on it. This page shows you how to get a your Joomla! website running on the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
* &#039;&#039;&#039;Rasberry Pi version 3 Model B&#039;&#039;&#039; - There are various models of Raspberry Pi. You can use most models that have an Ethernet port (the Model B types). However for performance we will use the latest version with most RAM memory.&lt;br /&gt;
* &#039;&#039;&#039;micro SD card&#039;&#039;&#039; - For the operating system + webserver + Joomla. (RPi version 3 model B uses micro SD other versions might use normal SD cards) &lt;br /&gt;
* &#039;&#039;&#039;5 Volt adapter (1 Amp)&#039;&#039;&#039; - to power the Raspberry Pi you&#039;ll need to convert the mains power (230V or 110V) to 5 Volt. The Rasperry Pi needs about 1 Amp, and maybe more if you connect USB devices to it.&lt;br /&gt;
* standard &#039;&#039;&#039;Ethernet cable&#039;&#039;&#039; - to connect the RPi to your Local Area Network / router / the internet.&lt;br /&gt;
&lt;br /&gt;
==Installing Operating System==&lt;br /&gt;
The operating system Raspbian is a Debian Linux version specially compiled for the Raspberry Pi. There are two versions of [https://www.raspberrypi.org/downloads/raspbian/ Raspbian] available: &#039;&#039;&#039;Raspbian Jessie with Pixel Lite&#039;&#039;&#039; (version with PIXEL desktop based on Debian Jessie) and &#039;&#039;&#039;Raspbian Jessie Lite&#039;&#039;&#039; (minimal version based on Debian Jessie). Because we use the Raspberry Pi as webserver for Joomla, we won&#039;t need the GUI. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039; [https://www.raspberrypi.org/downloads/raspbian/ Raspbian Jessie Lite] and unzip the downloaded file, e.g. 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.zip&#039;&#039;&#039; (306 MB) to 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.img&#039;&#039;&#039; (1.4 GB).&lt;br /&gt;
&lt;br /&gt;
Now we need to copy the .img file to the (micro) SD card. You can use a tool with graphical interface like&lt;br /&gt;
[https://unetbootin.github.io/ UNetbootin] (for Windows, Mac OS X and Linux) or do it on the command line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be very careful&#039;&#039;&#039; when writing the .img disk image to another disk. In case you use the wrong destination disk, you will overwrite that disk with the .img which makes that disk unusable, resulting in data loss.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
In a terminal (CMD) check which device corresponds with the SD Card and do something like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd bs=1M if=c:\temp\2016-09-23-raspbian-jessie-lite.img od=[the device of your SD Card]&amp;lt;/source&amp;gt;&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/windows.md Installing Operating System Images using Windows]&lt;br /&gt;
&lt;br /&gt;
===Apple OSX===&lt;br /&gt;
Check which device is used for your SD Card. In our case it&#039;s disk1s1 and we&#039;ll do in Terminal: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd bs=1M if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/disk1s1&amp;lt;/source&amp;gt;&lt;br /&gt;
See also: [https://www.raspberrypi.org/documentation/installation/installing-images/mac.md Installing Operating System Images on MacOS]&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
We connect a SD Card reader with the (micro) SD Card to a computer. With &#039;&#039;&#039;dmesg&#039;&#039;&#039; we can find the device name of the SD Card. In our case dmesg shows something like &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[xxxxxx.xxxxxxx]  sdd: sdd1 sdd2&amp;lt;/source&amp;gt; meaning that we have a SD Card with 2 partitions. Do not write the Raspbian image to a partition but to the whole disk &#039;&#039;&#039;sdd&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
We will use &#039;&#039;&#039;dd&#039;&#039;&#039; (&amp;quot;Disk Dump&amp;quot;) to write an Input File (&#039;&#039;&#039;if&#039;&#039;&#039;) to an Output File (&#039;&#039;&#039;of&#039;&#039;&#039;) using a specified Block Size (&#039;&#039;&#039;bs&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be VERY careful&#039;&#039;&#039;: dd will write to a device without any warning. Triple double check that that you write to the right device! If you write to the wrong disk, then you&#039;ll always remember the dd command as &amp;quot;Disk Destroyer&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/sdd bs=4M&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/linux.md Installing Operating System Images on Linux]&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to LAN==&lt;br /&gt;
When we have installed the Raspbian Operating System on the SD Card, we will:&lt;br /&gt;
* Insert the micro SD card in the SD Card slot on the Raspberry Pi. &lt;br /&gt;
* Connect an an Ethernet cable to the Raspberry Pi and to the Local Area Network (connect it to our router).&lt;br /&gt;
* Connect the 5V power supply to the the Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Booting up the Raspberry Pi takes roughly 30 seconds. We&#039;ve to find the IP address to connect to it using SSH. We can use different approaches for that: &lt;br /&gt;
* log into the webinterface of your router and look up the connected devices;&lt;br /&gt;
* use a mobile phone connected the Wifi router using a network scanning App called &#039;&#039;&#039;Fing Overlook&#039;&#039;&#039;;&lt;br /&gt;
* use a command like &#039;&#039;&#039;nmap&#039;&#039;&#039;. Assuming that our PC has IP address &#039;&#039;&#039;192.168.0&#039;&#039;&#039;.25 we can find all other devices in the same network range by doing the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nmap -sP 192.168.0/24&amp;lt;/source&amp;gt;&lt;br /&gt;
Which might show the following details:&lt;br /&gt;
&lt;br /&gt;
 Starting Nmap 6.47 ( http://nmap.org ) at 2016-10-22 17:42 CEST&lt;br /&gt;
 Nmap scan report for &#039;&#039;&#039;192.168.0.35&#039;&#039;&#039;&lt;br /&gt;
 Host is up (0.00042s latency).&lt;br /&gt;
 MAC Address: 42:42:42:42:42:42 (Raspberry Pi Foundation)&lt;br /&gt;
&lt;br /&gt;
To log into our Raspberry Pi, we&#039;ll use the command &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first time you&#039;ll connect to it, it will show something like:&lt;br /&gt;
 The authenticity of host &#039;192.168.0.35 (192.168.0.35)&#039; can&#039;t be established.&lt;br /&gt;
 ECDSA key fingerprint is 42:42:42:42:42:42:42:42:42:42:42:42:42:42:42:42. &lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
We&#039;ll choose &amp;quot;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
 Warning: Permanently added &#039;192.168.0.35&#039; (ECDSA) to the list of known hosts.&lt;br /&gt;
 pi@192.168.0.35&#039;s password: &lt;br /&gt;
and use the &#039;&#039;&#039;default password&#039;&#039;&#039;: &#039;&#039;&#039;raspberry&#039;&#039;&#039;&lt;br /&gt;
which on successful login will show:&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
 &lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 pi@raspberrypi:~ $ &lt;br /&gt;
&lt;br /&gt;
We can configure the Raspberry Pi using a text interface via:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo raspi-config&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Raspberry Pi Software Configuration Tool (raspi-config)===&lt;br /&gt;
With this configuration tool we&#039;ll only change the following settings.&lt;br /&gt;
====1 Expand Filesystem====&lt;br /&gt;
By default the disk space on the SD Card is the same size as the 1.4GB .img file that you used to create the SD card for your Raspberry Pi. You can use this option to gain the rest of the disk space.&lt;br /&gt;
&lt;br /&gt;
====2 Change User Password====&lt;br /&gt;
For security reasons it&#039;s best to &#039;&#039;&#039;change the default password&#039;&#039;&#039; &amp;quot;raspberry&amp;quot; as soon as possible.&lt;br /&gt;
&lt;br /&gt;
====3 Boot Options==== &lt;br /&gt;
We would like the Raspberry Pi to boot the Text console&lt;br /&gt;
=====B2 Console Autologin Text console, automatically logged in as &#039;pi&#039; user=====    &lt;br /&gt;
&lt;br /&gt;
====9 Advanced Options====&lt;br /&gt;
=====A3 Memory Split=====&lt;br /&gt;
Because we will use the Raspberry Pi as a headless server without connecting it to a monitor, we can decrease the memory used for the GPU from 64 to &#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====5 Internationalisation Options====&lt;br /&gt;
=====I2 Change Timezone=====&lt;br /&gt;
We&#039;ll change the Timezone to our own time zone (e.g. Europe/Amsterdam)&lt;br /&gt;
&lt;br /&gt;
After all changes we&#039;ll Reboot the Raspberry Pi, and will login again with our new password.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
Now it&#039;s time to install everything else.&lt;br /&gt;
&lt;br /&gt;
==Update software==&lt;br /&gt;
Before installing anything else, we&#039;ll:&lt;br /&gt;
* &#039;&#039;&#039;update&#039;&#039;&#039; the list of software versions from all external repositories&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get update&amp;lt;/source&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;upgrade&#039;&#039;&#039; all installed software&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get upgrade&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating the version list and upgrading all software is something that should be done regularly.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Nginx Webserver==&lt;br /&gt;
A fast and lightweight alternative for Apache web server is the increasingly becoming popular &#039;&#039;&#039;Nginx&#039;&#039;&#039; web server.&lt;br /&gt;
&lt;br /&gt;
===Installation of Nginx===&lt;br /&gt;
We will install nginx and all dependencies (read: software that nginx needs to work) with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install nginx&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll get a message like:&lt;br /&gt;
 Reading package lists... Done&lt;br /&gt;
 Building dependency tree       &lt;br /&gt;
 Reading state information... Done&lt;br /&gt;
 The following extra packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common nginx-full&lt;br /&gt;
 Suggested packages:&lt;br /&gt;
  libgd-tools fcgiwrap nginx-doc ssl-cert&lt;br /&gt;
 The following NEW packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx nginx-common nginx-full&lt;br /&gt;
 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.&lt;br /&gt;
 Need to get 3,550 kB of archives.&lt;br /&gt;
 After this operation, 8,666 kB of additional disk space will be used.&lt;br /&gt;
 Do you want to continue? [Y/n] y&lt;br /&gt;
By choosing &amp;quot;y&amp;quot; nginx and all needed packages will be installed.&lt;br /&gt;
&lt;br /&gt;
You can check the installation with a browser. Go to the IP address of your Raspberry pi, in our case http://192.168.0.35/&lt;br /&gt;
We should see a message like:&lt;br /&gt;
 &#039;&#039;&#039;Welcome to nginx on Debian!&#039;&#039;&#039;&lt;br /&gt;
 If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.&lt;br /&gt;
 For online documentation and support please refer to nginx.org&lt;br /&gt;
 Please use the reportbug tool to report bugs in the nginx package with Debian. &lt;br /&gt;
 However, check existing bug reports before reporting a  new bug.&lt;br /&gt;
 &#039;&#039;Thank you for using debian and nginx.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Configure Nginx===&lt;br /&gt;
====Global Nginx configuration====&lt;br /&gt;
In the global configuration of Nginx we can configure default caching etc. The Raspberry Pi 3 uses 1.2 GHz 64-bit &#039;&#039;&#039;quad-core&#039;&#039;&#039; ARM Cortex-A53 processor. If you have an earlier version with less CPU cores, then you should use &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/nginx.conf&amp;lt;/source&amp;gt; to change the &amp;quot;worker_processes&amp;quot; to fit the amount of CPUs of your device. By default it&#039;s configured as&lt;br /&gt;
 worker_processes 4;&lt;br /&gt;
so for Raspberry Pi 3 you don&#039;t have to change it.&lt;br /&gt;
&lt;br /&gt;
After changing the Nginx configuration or virtual domain configuration, you have to do a &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;sudo nginx reload&amp;lt;/source&amp;gt; to make the changes effective.&lt;br /&gt;
&lt;br /&gt;
====Virtual Domains====&lt;br /&gt;
&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
===Starting Nginx webserver===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo service nginx start&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PHP==&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
==MySQL==&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
==Joomla!==&lt;br /&gt;
* to do&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo wget https://github.com/joomla/joomla-cms/releases/download/3.6.3/Joomla_3.6.3-Stable-Full_Package.zip&lt;br /&gt;
sudo unzip -x Joomla_3.6.3-Stable-Full_Package.zip&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to Internet==&lt;br /&gt;
We want people on the internet to be able to visit our Joomla website on our Raspberry Pi. In order to do that we need to &#039;&#039;&#039;configure our Internet router&#039;&#039;&#039; to forward all &#039;&#039;&#039;incoming traffic&#039;&#039;&#039; on port 80 &#039;&#039;&#039;to our Raspberry Pi&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use your web browser to connect to the Web Interface of your router. A router is usually located on the first number of your IP range, in our case on 192.168.0.1. In our router we configure &#039;&#039;&#039;Port Forwarding&#039;&#039;&#039;:&lt;br /&gt;
* External IP Address: 0.0.0.0&lt;br /&gt;
* External Start Port: 80&lt;br /&gt;
* External End Port: 80&lt;br /&gt;
* Internal IP Address: 192.168.0.35 ( = our Raspberry Pi)&lt;br /&gt;
* Internal Start Port: 80&lt;br /&gt;
* Internal End Port: 80&lt;br /&gt;
* Protocol: TCP&lt;br /&gt;
Make sure that it is enabled.&lt;br /&gt;
&lt;br /&gt;
If everything is working correctly then you should see your own Joomla website on the Raspberry Pi by visiting your external IP address (Find your external IP address with a tool like [http://www.whatsmyip.org/ whatsmyip.org]). &lt;br /&gt;
&lt;br /&gt;
===Using a domain name===&lt;br /&gt;
Let&#039;s assume that our external IP address is 42.42.42.42. Let&#039;s also assume that we have registered a domain name called example.com. We would like to serve our Joomla site on our Raspberry Pi to visitors visiting example.com. If your domain name registrar gives us the possibility to configure the &#039;&#039;&#039;Domain Name System (DNS)&#039;&#039;&#039; server, then we&#039;ll need to create an &#039;&#039;&#039;MX record&#039;&#039;&#039; in the DNS that points our &#039;&#039;&#039;domain name to&#039;&#039;&#039; our &#039;&#039;&#039;IP address&#039;&#039;&#039; 42.42.42.42. Note that it can take up to 24 hours till all internet providers will redirect the traffic of their customers to the configured MX record.&lt;br /&gt;
&lt;br /&gt;
===Static IP address===&lt;br /&gt;
Most routers will keep assigning the same internal IP address to your Raspberry Pi. Sometimes it&#039;s better to configure your Raspberry Pi to use a static IP address:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/network/interfaces&amp;lt;/source&amp;gt;&lt;br /&gt;
change &lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
to&lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
 address 192.168.0.35 &lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 gateway 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
The gateway is the IP address of your router. You can also find it using&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;route&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
* [https://raspberrypi.org Raspberry Pi Foundation] (RPF) - official website and forums&lt;br /&gt;
* [http://elinux.org/RaspberryPiBoard Raspberry Pi Wiki], supported by the RPF&lt;br /&gt;
* Video of presentation [https://youtu.be/u2MFQCoexD0 Joomla on Raspberry Pi (with Nginx)] at Joomladay Germany 2013 in Nuremberg, Germany&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338626</id>
		<title>Installing Joomla on a Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338626"/>
		<updated>2016-10-22T17:47:53Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: /* Connecting Raspberry Pi to Internet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer that was originally developed to promote the teaching of basic computer science in schools and developing countries. Because of its versatility it has become very popular and is used as media player, small stand-alone server, etc. You can use it as webserver and install Joomla! on it. This page shows you how to get a your Joomla! website running on the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
* &#039;&#039;&#039;Rasberry Pi version 3 Model B&#039;&#039;&#039; - There are various models of Raspberry Pi. You can use most models that have an Ethernet port (the Model B types). However for performance we will use the latest version with most RAM memory.&lt;br /&gt;
* &#039;&#039;&#039;micro SD card&#039;&#039;&#039; - For the operating system + webserver + Joomla. (RPi version 3 model B uses micro SD other versions might use normal SD cards) &lt;br /&gt;
* &#039;&#039;&#039;5 Volt adapter (1 Amp)&#039;&#039;&#039; - to power the Raspberry Pi you&#039;ll need to convert the mains power (230V or 110V) to 5 Volt. The Rasperry Pi needs about 1 Amp, and maybe more if you connect USB devices to it.&lt;br /&gt;
* standard &#039;&#039;&#039;Ethernet cable&#039;&#039;&#039; - to connect the RPi to your Local Area Network / router / the internet.&lt;br /&gt;
&lt;br /&gt;
==Installing Operating System==&lt;br /&gt;
The operating system Raspbian is a Debian Linux version specially compiled for the Raspberry Pi. There are two versions of [https://www.raspberrypi.org/downloads/raspbian/ Raspbian] available: &#039;&#039;&#039;Raspbian Jessie with Pixel Lite&#039;&#039;&#039; (version with PIXEL desktop based on Debian Jessie) and &#039;&#039;&#039;Raspbian Jessie Lite&#039;&#039;&#039; (minimal version based on Debian Jessie). Because we use the Raspberry Pi as webserver for Joomla, we won&#039;t need the GUI. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039; [https://www.raspberrypi.org/downloads/raspbian/ Raspbian Jessie Lite] and unzip the downloaded file, e.g. 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.zip&#039;&#039;&#039; (306 MB) to 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.img&#039;&#039;&#039; (1.4 GB).&lt;br /&gt;
&lt;br /&gt;
Now we need to copy the .img file to the (micro) SD card. You can use a tool with graphical interface like&lt;br /&gt;
[https://unetbootin.github.io/ UNetbootin] (for Windows, Mac OS X and Linux) or do it on the command line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be very careful&#039;&#039;&#039; when writing the .img disk image to another disk. In case you use the wrong destination disk, you will overwrite that disk with the .img which makes that disk unusable, resulting in data loss.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
In a terminal (CMD) check which device corresponds with the SD Card and do something like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd bs=1M if=c:\temp\2016-09-23-raspbian-jessie-lite.img od=[the device of your SD Card]&amp;lt;/source&amp;gt;&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/windows.md Installing Operating System Images using Windows]&lt;br /&gt;
&lt;br /&gt;
===Apple OSX===&lt;br /&gt;
Check which device is used for your SD Card. In our case it&#039;s disk1s1 and we&#039;ll do in Terminal: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd bs=1M if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/disk1s1&amp;lt;/source&amp;gt;&lt;br /&gt;
See also: [https://www.raspberrypi.org/documentation/installation/installing-images/mac.md Installing Operating System Images on MacOS]&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
We connect a SD Card reader with the (micro) SD Card to a computer. With &#039;&#039;&#039;dmesg&#039;&#039;&#039; we can find the device name of the SD Card. In our case dmesg shows something like &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[xxxxxx.xxxxxxx]  sdd: sdd1 sdd2&amp;lt;/source&amp;gt; meaning that we have a SD Card with 2 partitions. Do not write the Raspbian image to a partition but to the whole disk &#039;&#039;&#039;sdd&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
We will use &#039;&#039;&#039;dd&#039;&#039;&#039; (&amp;quot;Disk Dump&amp;quot;) to write an Input File (&#039;&#039;&#039;if&#039;&#039;&#039;) to an Output File (&#039;&#039;&#039;of&#039;&#039;&#039;) using a specified Block Size (&#039;&#039;&#039;bs&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be VERY careful&#039;&#039;&#039;: dd will write to a device without any warning. Triple double check that that you write to the right device! If you write to the wrong disk, then you&#039;ll always remember the dd command as &amp;quot;Disk Destroyer&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/sdd bs=4M&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/linux.md Installing Operating System Images on Linux]&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to LAN==&lt;br /&gt;
When we have installed the Raspbian Operating System on the SD Card, we will:&lt;br /&gt;
* Insert the micro SD card in the SD Card slot on the Raspberry Pi. &lt;br /&gt;
* Connect an an Ethernet cable to the Raspberry Pi and to the Local Area Network (connect it to our router).&lt;br /&gt;
* Connect the 5V power supply to the the Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Booting up the Raspberry Pi takes roughly 30 seconds. We&#039;ve to find the IP address to connect to it using SSH. We can use different approaches for that: &lt;br /&gt;
* log into the webinterface of your router and look up the connected devices;&lt;br /&gt;
* use a mobile phone connected the Wifi router using a network scanning App called &#039;&#039;&#039;Fing Overlook&#039;&#039;&#039;;&lt;br /&gt;
* use a command like &#039;&#039;&#039;nmap&#039;&#039;&#039;. Assuming that our PC has IP address &#039;&#039;&#039;192.168.0&#039;&#039;&#039;.25 we can find all other devices in the same network range by doing the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nmap -sP 192.168.0/24&amp;lt;/source&amp;gt;&lt;br /&gt;
Which might show the following details:&lt;br /&gt;
&lt;br /&gt;
 Starting Nmap 6.47 ( http://nmap.org ) at 2016-10-22 17:42 CEST&lt;br /&gt;
 Nmap scan report for &#039;&#039;&#039;192.168.0.35&#039;&#039;&#039;&lt;br /&gt;
 Host is up (0.00042s latency).&lt;br /&gt;
 MAC Address: 42:42:42:42:42:42 (Raspberry Pi Foundation)&lt;br /&gt;
&lt;br /&gt;
To log into our Raspberry Pi, we&#039;ll use the command &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first time you&#039;ll connect to it, it will show something like:&lt;br /&gt;
 The authenticity of host &#039;192.168.0.35 (192.168.0.35)&#039; can&#039;t be established.&lt;br /&gt;
 ECDSA key fingerprint is 42:42:42:42:42:42:42:42:42:42:42:42:42:42:42:42. &lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
We&#039;ll choose &amp;quot;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
 Warning: Permanently added &#039;192.168.0.35&#039; (ECDSA) to the list of known hosts.&lt;br /&gt;
 pi@192.168.0.35&#039;s password: &lt;br /&gt;
and use the &#039;&#039;&#039;default password&#039;&#039;&#039;: &#039;&#039;&#039;raspberry&#039;&#039;&#039;&lt;br /&gt;
which on successful login will show:&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
 &lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 pi@raspberrypi:~ $ &lt;br /&gt;
&lt;br /&gt;
We can configure the Raspberry Pi using a text interface via:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo raspi-config&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Raspberry Pi Software Configuration Tool (raspi-config)===&lt;br /&gt;
With this configuration tool we&#039;ll only change the following settings.&lt;br /&gt;
====1 Expand Filesystem====&lt;br /&gt;
By default the disk space on the SD Card is the same size as the 1.4GB .img file that you used to create the SD card for your Raspberry Pi. You can use this option to gain the rest of the disk space.&lt;br /&gt;
&lt;br /&gt;
====2 Change User Password====&lt;br /&gt;
For security reasons it&#039;s best to &#039;&#039;&#039;change the default password&#039;&#039;&#039; &amp;quot;raspberry&amp;quot; as soon as possible.&lt;br /&gt;
&lt;br /&gt;
====3 Boot Options==== &lt;br /&gt;
We would like the Raspberry Pi to boot the Text console&lt;br /&gt;
=====B2 Console Autologin Text console, automatically logged in as &#039;pi&#039; user=====    &lt;br /&gt;
&lt;br /&gt;
====9 Advanced Options====&lt;br /&gt;
=====A3 Memory Split=====&lt;br /&gt;
Because we will use the Raspberry Pi as a headless server without connecting it to a monitor, we can decrease the memory used for the GPU from 64 to &#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====5 Internationalisation Options====&lt;br /&gt;
=====I2 Change Timezone=====&lt;br /&gt;
We&#039;ll change the Timezone to our own time zone (e.g. Europe/Amsterdam)&lt;br /&gt;
&lt;br /&gt;
After all changes we&#039;ll Reboot the Raspberry Pi, and will login again with our new password.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
Now it&#039;s time to install everything else.&lt;br /&gt;
&lt;br /&gt;
==Update software==&lt;br /&gt;
Before installing anything else, we&#039;ll:&lt;br /&gt;
* &#039;&#039;&#039;update&#039;&#039;&#039; the list of software versions from all external repositories&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get update&amp;lt;/source&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;upgrade&#039;&#039;&#039; all installed software&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get upgrade&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating the version list and upgrading all software is something that should be done regularly.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Nginx Webserver==&lt;br /&gt;
A fast and lightweight alternative for Apache web server is the increasingly becoming popular &#039;&#039;&#039;Nginx&#039;&#039;&#039; web server.&lt;br /&gt;
&lt;br /&gt;
===Installation of Nginx===&lt;br /&gt;
We will install nginx and all dependencies (read: software that nginx needs to work) with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install nginx&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll get a message like:&lt;br /&gt;
 Reading package lists... Done&lt;br /&gt;
 Building dependency tree       &lt;br /&gt;
 Reading state information... Done&lt;br /&gt;
 The following extra packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common nginx-full&lt;br /&gt;
 Suggested packages:&lt;br /&gt;
  libgd-tools fcgiwrap nginx-doc ssl-cert&lt;br /&gt;
 The following NEW packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx nginx-common nginx-full&lt;br /&gt;
 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.&lt;br /&gt;
 Need to get 3,550 kB of archives.&lt;br /&gt;
 After this operation, 8,666 kB of additional disk space will be used.&lt;br /&gt;
 Do you want to continue? [Y/n] y&lt;br /&gt;
By choosing &amp;quot;y&amp;quot; nginx and all needed packages will be installed.&lt;br /&gt;
&lt;br /&gt;
You can check the installation with a browser. Go to the IP address of your Raspberry pi, in our case http://192.168.0.35/&lt;br /&gt;
We should see a message like:&lt;br /&gt;
 &#039;&#039;&#039;Welcome to nginx on Debian!&#039;&#039;&#039;&lt;br /&gt;
 If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.&lt;br /&gt;
 For online documentation and support please refer to nginx.org&lt;br /&gt;
 Please use the reportbug tool to report bugs in the nginx package with Debian. &lt;br /&gt;
 However, check existing bug reports before reporting a  new bug.&lt;br /&gt;
 &#039;&#039;Thank you for using debian and nginx.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Configure Nginx===&lt;br /&gt;
====Global Nginx configuration====&lt;br /&gt;
In the global configuration of Nginx we can configure default caching etc. The Raspberry Pi 3 uses 1.2 GHz 64-bit &#039;&#039;&#039;quad-core&#039;&#039;&#039; ARM Cortex-A53 processor. If you have an earlier version with less CPU cores, then you should use &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/nginx.conf&amp;lt;/source&amp;gt; to change the &amp;quot;worker_processes&amp;quot; to fit the amount of CPUs of your device. By default it&#039;s configured as&lt;br /&gt;
 worker_processes 4;&lt;br /&gt;
so for Raspberry Pi 3 you don&#039;t have to change it.&lt;br /&gt;
&lt;br /&gt;
====Virtual Domains====&lt;br /&gt;
&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
===Starting Nginx webserver===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo service nginx start&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PHP==&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
==MySQL==&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
==Joomla!==&lt;br /&gt;
* to do&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo wget https://github.com/joomla/joomla-cms/releases/download/3.6.3/Joomla_3.6.3-Stable-Full_Package.zip&lt;br /&gt;
sudo unzip -x Joomla_3.6.3-Stable-Full_Package.zip&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to Internet==&lt;br /&gt;
We want people on the internet to be able to visit our Joomla website on our Raspberry Pi. In order to do that we need to &#039;&#039;&#039;configure our Internet router&#039;&#039;&#039; to forward all &#039;&#039;&#039;incoming traffic&#039;&#039;&#039; on port 80 &#039;&#039;&#039;to our Raspberry Pi&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use your web browser to connect to the Web Interface of your router. A router is usually located on the first number of your IP range, in our case on 192.168.0.1. In our router we configure &#039;&#039;&#039;Port Forwarding&#039;&#039;&#039;:&lt;br /&gt;
* External IP Address: 0.0.0.0&lt;br /&gt;
* External Start Port: 80&lt;br /&gt;
* External End Port: 80&lt;br /&gt;
* Internal IP Address: 192.168.0.35 ( = our Raspberry Pi)&lt;br /&gt;
* Internal Start Port: 80&lt;br /&gt;
* Internal End Port: 80&lt;br /&gt;
* Protocol: TCP&lt;br /&gt;
Make sure that it is enabled.&lt;br /&gt;
&lt;br /&gt;
If everything is working correctly then you should see your own Joomla website on the Raspberry Pi by visiting your external IP address (Find your external IP address with a tool like [http://www.whatsmyip.org/ whatsmyip.org]). &lt;br /&gt;
&lt;br /&gt;
===Using a domain name===&lt;br /&gt;
Let&#039;s assume that our external IP address is 42.42.42.42. Let&#039;s also assume that we have registered a domain name called example.com. We would like to serve our Joomla site on our Raspberry Pi to visitors visiting example.com. If your domain name registrar gives us the possibility to configure the &#039;&#039;&#039;Domain Name System (DNS)&#039;&#039;&#039; server, then we&#039;ll need to create an &#039;&#039;&#039;MX record&#039;&#039;&#039; in the DNS that points our &#039;&#039;&#039;domain name to&#039;&#039;&#039; our &#039;&#039;&#039;IP address&#039;&#039;&#039; 42.42.42.42. Note that it can take up to 24 hours till all internet providers will redirect the traffic of their customers to the configured MX record.&lt;br /&gt;
&lt;br /&gt;
===Static IP address===&lt;br /&gt;
Most routers will keep assigning the same internal IP address to your Raspberry Pi. Sometimes it&#039;s better to configure your Raspberry Pi to use a static IP address:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/network/interfaces&amp;lt;/source&amp;gt;&lt;br /&gt;
change &lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
to&lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
 address 192.168.0.35 &lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 gateway 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
The gateway is the IP address of your router. You can also find it using&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;route&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
* [https://raspberrypi.org Raspberry Pi Foundation] (RPF) - official website and forums&lt;br /&gt;
* [http://elinux.org/RaspberryPiBoard Raspberry Pi Wiki], supported by the RPF&lt;br /&gt;
* Video of presentation [https://youtu.be/u2MFQCoexD0 Joomla on Raspberry Pi (with Nginx)] at Joomladay Germany 2013 in Nuremberg, Germany&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338625</id>
		<title>Installing Joomla on a Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338625"/>
		<updated>2016-10-22T17:34:08Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: /* Joomla! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer that was originally developed to promote the teaching of basic computer science in schools and developing countries. Because of its versatility it has become very popular and is used as media player, small stand-alone server, etc. You can use it as webserver and install Joomla! on it. This page shows you how to get a your Joomla! website running on the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
* &#039;&#039;&#039;Rasberry Pi version 3 Model B&#039;&#039;&#039; - There are various models of Raspberry Pi. You can use most models that have an Ethernet port (the Model B types). However for performance we will use the latest version with most RAM memory.&lt;br /&gt;
* &#039;&#039;&#039;micro SD card&#039;&#039;&#039; - For the operating system + webserver + Joomla. (RPi version 3 model B uses micro SD other versions might use normal SD cards) &lt;br /&gt;
* &#039;&#039;&#039;5 Volt adapter (1 Amp)&#039;&#039;&#039; - to power the Raspberry Pi you&#039;ll need to convert the mains power (230V or 110V) to 5 Volt. The Rasperry Pi needs about 1 Amp, and maybe more if you connect USB devices to it.&lt;br /&gt;
* standard &#039;&#039;&#039;Ethernet cable&#039;&#039;&#039; - to connect the RPi to your Local Area Network / router / the internet.&lt;br /&gt;
&lt;br /&gt;
==Installing Operating System==&lt;br /&gt;
The operating system Raspbian is a Debian Linux version specially compiled for the Raspberry Pi. There are two versions of [https://www.raspberrypi.org/downloads/raspbian/ Raspbian] available: &#039;&#039;&#039;Raspbian Jessie with Pixel Lite&#039;&#039;&#039; (version with PIXEL desktop based on Debian Jessie) and &#039;&#039;&#039;Raspbian Jessie Lite&#039;&#039;&#039; (minimal version based on Debian Jessie). Because we use the Raspberry Pi as webserver for Joomla, we won&#039;t need the GUI. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039; [https://www.raspberrypi.org/downloads/raspbian/ Raspbian Jessie Lite] and unzip the downloaded file, e.g. 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.zip&#039;&#039;&#039; (306 MB) to 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.img&#039;&#039;&#039; (1.4 GB).&lt;br /&gt;
&lt;br /&gt;
Now we need to copy the .img file to the (micro) SD card. You can use a tool with graphical interface like&lt;br /&gt;
[https://unetbootin.github.io/ UNetbootin] (for Windows, Mac OS X and Linux) or do it on the command line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be very careful&#039;&#039;&#039; when writing the .img disk image to another disk. In case you use the wrong destination disk, you will overwrite that disk with the .img which makes that disk unusable, resulting in data loss.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
In a terminal (CMD) check which device corresponds with the SD Card and do something like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd bs=1M if=c:\temp\2016-09-23-raspbian-jessie-lite.img od=[the device of your SD Card]&amp;lt;/source&amp;gt;&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/windows.md Installing Operating System Images using Windows]&lt;br /&gt;
&lt;br /&gt;
===Apple OSX===&lt;br /&gt;
Check which device is used for your SD Card. In our case it&#039;s disk1s1 and we&#039;ll do in Terminal: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd bs=1M if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/disk1s1&amp;lt;/source&amp;gt;&lt;br /&gt;
See also: [https://www.raspberrypi.org/documentation/installation/installing-images/mac.md Installing Operating System Images on MacOS]&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
We connect a SD Card reader with the (micro) SD Card to a computer. With &#039;&#039;&#039;dmesg&#039;&#039;&#039; we can find the device name of the SD Card. In our case dmesg shows something like &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[xxxxxx.xxxxxxx]  sdd: sdd1 sdd2&amp;lt;/source&amp;gt; meaning that we have a SD Card with 2 partitions. Do not write the Raspbian image to a partition but to the whole disk &#039;&#039;&#039;sdd&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
We will use &#039;&#039;&#039;dd&#039;&#039;&#039; (&amp;quot;Disk Dump&amp;quot;) to write an Input File (&#039;&#039;&#039;if&#039;&#039;&#039;) to an Output File (&#039;&#039;&#039;of&#039;&#039;&#039;) using a specified Block Size (&#039;&#039;&#039;bs&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be VERY careful&#039;&#039;&#039;: dd will write to a device without any warning. Triple double check that that you write to the right device! If you write to the wrong disk, then you&#039;ll always remember the dd command as &amp;quot;Disk Destroyer&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/sdd bs=4M&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/linux.md Installing Operating System Images on Linux]&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to LAN==&lt;br /&gt;
When we have installed the Raspbian Operating System on the SD Card, we will:&lt;br /&gt;
* Insert the micro SD card in the SD Card slot on the Raspberry Pi. &lt;br /&gt;
* Connect an an Ethernet cable to the Raspberry Pi and to the Local Area Network (connect it to our router).&lt;br /&gt;
* Connect the 5V power supply to the the Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Booting up the Raspberry Pi takes roughly 30 seconds. We&#039;ve to find the IP address to connect to it using SSH. We can use different approaches for that: &lt;br /&gt;
* log into the webinterface of your router and look up the connected devices;&lt;br /&gt;
* use a mobile phone connected the Wifi router using a network scanning App called &#039;&#039;&#039;Fing Overlook&#039;&#039;&#039;;&lt;br /&gt;
* use a command like &#039;&#039;&#039;nmap&#039;&#039;&#039;. Assuming that our PC has IP address &#039;&#039;&#039;192.168.0&#039;&#039;&#039;.25 we can find all other devices in the same network range by doing the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nmap -sP 192.168.0/24&amp;lt;/source&amp;gt;&lt;br /&gt;
Which might show the following details:&lt;br /&gt;
&lt;br /&gt;
 Starting Nmap 6.47 ( http://nmap.org ) at 2016-10-22 17:42 CEST&lt;br /&gt;
 Nmap scan report for &#039;&#039;&#039;192.168.0.35&#039;&#039;&#039;&lt;br /&gt;
 Host is up (0.00042s latency).&lt;br /&gt;
 MAC Address: 42:42:42:42:42:42 (Raspberry Pi Foundation)&lt;br /&gt;
&lt;br /&gt;
To log into our Raspberry Pi, we&#039;ll use the command &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first time you&#039;ll connect to it, it will show something like:&lt;br /&gt;
 The authenticity of host &#039;192.168.0.35 (192.168.0.35)&#039; can&#039;t be established.&lt;br /&gt;
 ECDSA key fingerprint is 42:42:42:42:42:42:42:42:42:42:42:42:42:42:42:42. &lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
We&#039;ll choose &amp;quot;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
 Warning: Permanently added &#039;192.168.0.35&#039; (ECDSA) to the list of known hosts.&lt;br /&gt;
 pi@192.168.0.35&#039;s password: &lt;br /&gt;
and use the &#039;&#039;&#039;default password&#039;&#039;&#039;: &#039;&#039;&#039;raspberry&#039;&#039;&#039;&lt;br /&gt;
which on successful login will show:&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
 &lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 pi@raspberrypi:~ $ &lt;br /&gt;
&lt;br /&gt;
We can configure the Raspberry Pi using a text interface via:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo raspi-config&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Raspberry Pi Software Configuration Tool (raspi-config)===&lt;br /&gt;
With this configuration tool we&#039;ll only change the following settings.&lt;br /&gt;
====1 Expand Filesystem====&lt;br /&gt;
By default the disk space on the SD Card is the same size as the 1.4GB .img file that you used to create the SD card for your Raspberry Pi. You can use this option to gain the rest of the disk space.&lt;br /&gt;
&lt;br /&gt;
====2 Change User Password====&lt;br /&gt;
For security reasons it&#039;s best to &#039;&#039;&#039;change the default password&#039;&#039;&#039; &amp;quot;raspberry&amp;quot; as soon as possible.&lt;br /&gt;
&lt;br /&gt;
====3 Boot Options==== &lt;br /&gt;
We would like the Raspberry Pi to boot the Text console&lt;br /&gt;
=====B2 Console Autologin Text console, automatically logged in as &#039;pi&#039; user=====    &lt;br /&gt;
&lt;br /&gt;
====9 Advanced Options====&lt;br /&gt;
=====A3 Memory Split=====&lt;br /&gt;
Because we will use the Raspberry Pi as a headless server without connecting it to a monitor, we can decrease the memory used for the GPU from 64 to &#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====5 Internationalisation Options====&lt;br /&gt;
=====I2 Change Timezone=====&lt;br /&gt;
We&#039;ll change the Timezone to our own time zone (e.g. Europe/Amsterdam)&lt;br /&gt;
&lt;br /&gt;
After all changes we&#039;ll Reboot the Raspberry Pi, and will login again with our new password.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
Now it&#039;s time to install everything else.&lt;br /&gt;
&lt;br /&gt;
==Update software==&lt;br /&gt;
Before installing anything else, we&#039;ll:&lt;br /&gt;
* &#039;&#039;&#039;update&#039;&#039;&#039; the list of software versions from all external repositories&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get update&amp;lt;/source&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;upgrade&#039;&#039;&#039; all installed software&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get upgrade&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating the version list and upgrading all software is something that should be done regularly.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Nginx Webserver==&lt;br /&gt;
A fast and lightweight alternative for Apache web server is the increasingly becoming popular &#039;&#039;&#039;Nginx&#039;&#039;&#039; web server.&lt;br /&gt;
&lt;br /&gt;
===Installation of Nginx===&lt;br /&gt;
We will install nginx and all dependencies (read: software that nginx needs to work) with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install nginx&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll get a message like:&lt;br /&gt;
 Reading package lists... Done&lt;br /&gt;
 Building dependency tree       &lt;br /&gt;
 Reading state information... Done&lt;br /&gt;
 The following extra packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common nginx-full&lt;br /&gt;
 Suggested packages:&lt;br /&gt;
  libgd-tools fcgiwrap nginx-doc ssl-cert&lt;br /&gt;
 The following NEW packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx nginx-common nginx-full&lt;br /&gt;
 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.&lt;br /&gt;
 Need to get 3,550 kB of archives.&lt;br /&gt;
 After this operation, 8,666 kB of additional disk space will be used.&lt;br /&gt;
 Do you want to continue? [Y/n] y&lt;br /&gt;
By choosing &amp;quot;y&amp;quot; nginx and all needed packages will be installed.&lt;br /&gt;
&lt;br /&gt;
You can check the installation with a browser. Go to the IP address of your Raspberry pi, in our case http://192.168.0.35/&lt;br /&gt;
We should see a message like:&lt;br /&gt;
 &#039;&#039;&#039;Welcome to nginx on Debian!&#039;&#039;&#039;&lt;br /&gt;
 If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.&lt;br /&gt;
 For online documentation and support please refer to nginx.org&lt;br /&gt;
 Please use the reportbug tool to report bugs in the nginx package with Debian. &lt;br /&gt;
 However, check existing bug reports before reporting a  new bug.&lt;br /&gt;
 &#039;&#039;Thank you for using debian and nginx.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Configure Nginx===&lt;br /&gt;
====Global Nginx configuration====&lt;br /&gt;
In the global configuration of Nginx we can configure default caching etc. The Raspberry Pi 3 uses 1.2 GHz 64-bit &#039;&#039;&#039;quad-core&#039;&#039;&#039; ARM Cortex-A53 processor. If you have an earlier version with less CPU cores, then you should use &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/nginx.conf&amp;lt;/source&amp;gt; to change the &amp;quot;worker_processes&amp;quot; to fit the amount of CPUs of your device. By default it&#039;s configured as&lt;br /&gt;
 worker_processes 4;&lt;br /&gt;
so for Raspberry Pi 3 you don&#039;t have to change it.&lt;br /&gt;
&lt;br /&gt;
====Virtual Domains====&lt;br /&gt;
&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
===Starting Nginx webserver===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo service nginx start&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PHP==&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
==MySQL==&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
==Joomla!==&lt;br /&gt;
* to do&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo wget https://github.com/joomla/joomla-cms/releases/download/3.6.3/Joomla_3.6.3-Stable-Full_Package.zip&lt;br /&gt;
sudo unzip -x Joomla_3.6.3-Stable-Full_Package.zip&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to Internet==&lt;br /&gt;
We want people on the internet to be able to visit our Joomla website on our Raspberry Pi. In order to do that we need to &#039;&#039;&#039;configure our Internet router&#039;&#039;&#039; to forward all &#039;&#039;&#039;incoming traffic&#039;&#039;&#039; on port 80 &#039;&#039;&#039;to our Raspberry Pi&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use your web browser to connect to the Web Interface of your router. A router is usually located on the first number of your IP range, in our case on 192.168.0.1. In our router we configure &#039;&#039;&#039;Port Forwarding&#039;&#039;&#039;:&lt;br /&gt;
* External IP Address: 0.0.0.0&lt;br /&gt;
* External Start Port: 80&lt;br /&gt;
* External End Port: 80&lt;br /&gt;
* Internal IP Address: 192.168.0.35 ( = our Raspberry Pi)&lt;br /&gt;
* Internal Start Port: 80&lt;br /&gt;
* Internal End Port: 80&lt;br /&gt;
* Protocol: TCP&lt;br /&gt;
Make sure that it is enabled.&lt;br /&gt;
&lt;br /&gt;
If everything is working correctly then you should see your own Joomla website on the Raspberry Pi by visiting your external IP address (Find your external IP address with a tool like [http://www.whatsmyip.org/ whatsmyip.org]).&lt;br /&gt;
&lt;br /&gt;
===Static IP address===&lt;br /&gt;
Most routers will keep assigning the same internal IP address to your Raspberry Pi. Sometimes it&#039;s better to configure your Raspberry Pi to use a static IP address:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/network/interfaces&amp;lt;/source&amp;gt;&lt;br /&gt;
change &lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
to&lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
 address 192.168.0.35 &lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 gateway 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
The gateway is the IP address of your router. You can also find it using&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;route&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
* [https://raspberrypi.org Raspberry Pi Foundation] (RPF) - official website and forums&lt;br /&gt;
* [http://elinux.org/RaspberryPiBoard Raspberry Pi Wiki], supported by the RPF&lt;br /&gt;
* Video of presentation [https://youtu.be/u2MFQCoexD0 Joomla on Raspberry Pi (with Nginx)] at Joomladay Germany 2013 in Nuremberg, Germany&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338624</id>
		<title>Installing Joomla on a Raspberry Pi</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Installing_Joomla_on_a_Raspberry_Pi&amp;diff=338624"/>
		<updated>2016-10-22T17:34:00Z</updated>

		<summary type="html">&lt;p&gt;Pe7er: /* MySQL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://www.raspberrypi.org/ Raspberry Pi] is a small single-board computer that was originally developed to promote the teaching of basic computer science in schools and developing countries. Because of its versatility it has become very popular and is used as media player, small stand-alone server, etc. You can use it as webserver and install Joomla! on it. This page shows you how to get a your Joomla! website running on the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
==Hardware==&lt;br /&gt;
* &#039;&#039;&#039;Rasberry Pi version 3 Model B&#039;&#039;&#039; - There are various models of Raspberry Pi. You can use most models that have an Ethernet port (the Model B types). However for performance we will use the latest version with most RAM memory.&lt;br /&gt;
* &#039;&#039;&#039;micro SD card&#039;&#039;&#039; - For the operating system + webserver + Joomla. (RPi version 3 model B uses micro SD other versions might use normal SD cards) &lt;br /&gt;
* &#039;&#039;&#039;5 Volt adapter (1 Amp)&#039;&#039;&#039; - to power the Raspberry Pi you&#039;ll need to convert the mains power (230V or 110V) to 5 Volt. The Rasperry Pi needs about 1 Amp, and maybe more if you connect USB devices to it.&lt;br /&gt;
* standard &#039;&#039;&#039;Ethernet cable&#039;&#039;&#039; - to connect the RPi to your Local Area Network / router / the internet.&lt;br /&gt;
&lt;br /&gt;
==Installing Operating System==&lt;br /&gt;
The operating system Raspbian is a Debian Linux version specially compiled for the Raspberry Pi. There are two versions of [https://www.raspberrypi.org/downloads/raspbian/ Raspbian] available: &#039;&#039;&#039;Raspbian Jessie with Pixel Lite&#039;&#039;&#039; (version with PIXEL desktop based on Debian Jessie) and &#039;&#039;&#039;Raspbian Jessie Lite&#039;&#039;&#039; (minimal version based on Debian Jessie). Because we use the Raspberry Pi as webserver for Joomla, we won&#039;t need the GUI. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039; [https://www.raspberrypi.org/downloads/raspbian/ Raspbian Jessie Lite] and unzip the downloaded file, e.g. 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.zip&#039;&#039;&#039; (306 MB) to 2016-09-23-raspbian-jessie-lite&#039;&#039;&#039;.img&#039;&#039;&#039; (1.4 GB).&lt;br /&gt;
&lt;br /&gt;
Now we need to copy the .img file to the (micro) SD card. You can use a tool with graphical interface like&lt;br /&gt;
[https://unetbootin.github.io/ UNetbootin] (for Windows, Mac OS X and Linux) or do it on the command line.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be very careful&#039;&#039;&#039; when writing the .img disk image to another disk. In case you use the wrong destination disk, you will overwrite that disk with the .img which makes that disk unusable, resulting in data loss.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
In a terminal (CMD) check which device corresponds with the SD Card and do something like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd bs=1M if=c:\temp\2016-09-23-raspbian-jessie-lite.img od=[the device of your SD Card]&amp;lt;/source&amp;gt;&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/windows.md Installing Operating System Images using Windows]&lt;br /&gt;
&lt;br /&gt;
===Apple OSX===&lt;br /&gt;
Check which device is used for your SD Card. In our case it&#039;s disk1s1 and we&#039;ll do in Terminal: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd bs=1M if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/disk1s1&amp;lt;/source&amp;gt;&lt;br /&gt;
See also: [https://www.raspberrypi.org/documentation/installation/installing-images/mac.md Installing Operating System Images on MacOS]&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
We connect a SD Card reader with the (micro) SD Card to a computer. With &#039;&#039;&#039;dmesg&#039;&#039;&#039; we can find the device name of the SD Card. In our case dmesg shows something like &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;[xxxxxx.xxxxxxx]  sdd: sdd1 sdd2&amp;lt;/source&amp;gt; meaning that we have a SD Card with 2 partitions. Do not write the Raspbian image to a partition but to the whole disk &#039;&#039;&#039;sdd&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
We will use &#039;&#039;&#039;dd&#039;&#039;&#039; (&amp;quot;Disk Dump&amp;quot;) to write an Input File (&#039;&#039;&#039;if&#039;&#039;&#039;) to an Output File (&#039;&#039;&#039;of&#039;&#039;&#039;) using a specified Block Size (&#039;&#039;&#039;bs&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Be VERY careful&#039;&#039;&#039;: dd will write to a device without any warning. Triple double check that that you write to the right device! If you write to the wrong disk, then you&#039;ll always remember the dd command as &amp;quot;Disk Destroyer&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo dd if=~/Downloads/2016-09-23-raspbian-jessie-lite.img of=/dev/sdd bs=4M&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also [https://www.raspberrypi.org/documentation/installation/installing-images/linux.md Installing Operating System Images on Linux]&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to LAN==&lt;br /&gt;
When we have installed the Raspbian Operating System on the SD Card, we will:&lt;br /&gt;
* Insert the micro SD card in the SD Card slot on the Raspberry Pi. &lt;br /&gt;
* Connect an an Ethernet cable to the Raspberry Pi and to the Local Area Network (connect it to our router).&lt;br /&gt;
* Connect the 5V power supply to the the Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
Booting up the Raspberry Pi takes roughly 30 seconds. We&#039;ve to find the IP address to connect to it using SSH. We can use different approaches for that: &lt;br /&gt;
* log into the webinterface of your router and look up the connected devices;&lt;br /&gt;
* use a mobile phone connected the Wifi router using a network scanning App called &#039;&#039;&#039;Fing Overlook&#039;&#039;&#039;;&lt;br /&gt;
* use a command like &#039;&#039;&#039;nmap&#039;&#039;&#039;. Assuming that our PC has IP address &#039;&#039;&#039;192.168.0&#039;&#039;&#039;.25 we can find all other devices in the same network range by doing the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nmap -sP 192.168.0/24&amp;lt;/source&amp;gt;&lt;br /&gt;
Which might show the following details:&lt;br /&gt;
&lt;br /&gt;
 Starting Nmap 6.47 ( http://nmap.org ) at 2016-10-22 17:42 CEST&lt;br /&gt;
 Nmap scan report for &#039;&#039;&#039;192.168.0.35&#039;&#039;&#039;&lt;br /&gt;
 Host is up (0.00042s latency).&lt;br /&gt;
 MAC Address: 42:42:42:42:42:42 (Raspberry Pi Foundation)&lt;br /&gt;
&lt;br /&gt;
To log into our Raspberry Pi, we&#039;ll use the command &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first time you&#039;ll connect to it, it will show something like:&lt;br /&gt;
 The authenticity of host &#039;192.168.0.35 (192.168.0.35)&#039; can&#039;t be established.&lt;br /&gt;
 ECDSA key fingerprint is 42:42:42:42:42:42:42:42:42:42:42:42:42:42:42:42. &lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
We&#039;ll choose &amp;quot;&#039;&#039;&#039;Yes&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
 Warning: Permanently added &#039;192.168.0.35&#039; (ECDSA) to the list of known hosts.&lt;br /&gt;
 pi@192.168.0.35&#039;s password: &lt;br /&gt;
and use the &#039;&#039;&#039;default password&#039;&#039;&#039;: &#039;&#039;&#039;raspberry&#039;&#039;&#039;&lt;br /&gt;
which on successful login will show:&lt;br /&gt;
 The programs included with the Debian GNU/Linux system are free software;&lt;br /&gt;
 the exact distribution terms for each program are described in the&lt;br /&gt;
 individual files in /usr/share/doc/*/copyright.&lt;br /&gt;
 &lt;br /&gt;
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent&lt;br /&gt;
 permitted by applicable law.&lt;br /&gt;
 pi@raspberrypi:~ $ &lt;br /&gt;
&lt;br /&gt;
We can configure the Raspberry Pi using a text interface via:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo raspi-config&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Raspberry Pi Software Configuration Tool (raspi-config)===&lt;br /&gt;
With this configuration tool we&#039;ll only change the following settings.&lt;br /&gt;
====1 Expand Filesystem====&lt;br /&gt;
By default the disk space on the SD Card is the same size as the 1.4GB .img file that you used to create the SD card for your Raspberry Pi. You can use this option to gain the rest of the disk space.&lt;br /&gt;
&lt;br /&gt;
====2 Change User Password====&lt;br /&gt;
For security reasons it&#039;s best to &#039;&#039;&#039;change the default password&#039;&#039;&#039; &amp;quot;raspberry&amp;quot; as soon as possible.&lt;br /&gt;
&lt;br /&gt;
====3 Boot Options==== &lt;br /&gt;
We would like the Raspberry Pi to boot the Text console&lt;br /&gt;
=====B2 Console Autologin Text console, automatically logged in as &#039;pi&#039; user=====    &lt;br /&gt;
&lt;br /&gt;
====9 Advanced Options====&lt;br /&gt;
=====A3 Memory Split=====&lt;br /&gt;
Because we will use the Raspberry Pi as a headless server without connecting it to a monitor, we can decrease the memory used for the GPU from 64 to &#039;&#039;&#039;16&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====5 Internationalisation Options====&lt;br /&gt;
=====I2 Change Timezone=====&lt;br /&gt;
We&#039;ll change the Timezone to our own time zone (e.g. Europe/Amsterdam)&lt;br /&gt;
&lt;br /&gt;
After all changes we&#039;ll Reboot the Raspberry Pi, and will login again with our new password.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ssh pi@192.168.0.35&amp;lt;/source&amp;gt;&lt;br /&gt;
Now it&#039;s time to install everything else.&lt;br /&gt;
&lt;br /&gt;
==Update software==&lt;br /&gt;
Before installing anything else, we&#039;ll:&lt;br /&gt;
* &#039;&#039;&#039;update&#039;&#039;&#039; the list of software versions from all external repositories&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get update&amp;lt;/source&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;upgrade&#039;&#039;&#039; all installed software&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo apt-get upgrade&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Updating the version list and upgrading all software is something that should be done regularly.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Nginx Webserver==&lt;br /&gt;
A fast and lightweight alternative for Apache web server is the increasingly becoming popular &#039;&#039;&#039;Nginx&#039;&#039;&#039; web server.&lt;br /&gt;
&lt;br /&gt;
===Installation of Nginx===&lt;br /&gt;
We will install nginx and all dependencies (read: software that nginx needs to work) with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install nginx&amp;lt;/source&amp;gt;&lt;br /&gt;
We&#039;ll get a message like:&lt;br /&gt;
 Reading package lists... Done&lt;br /&gt;
 Building dependency tree       &lt;br /&gt;
 Reading state information... Done&lt;br /&gt;
 The following extra packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx-common nginx-full&lt;br /&gt;
 Suggested packages:&lt;br /&gt;
  libgd-tools fcgiwrap nginx-doc ssl-cert&lt;br /&gt;
 The following NEW packages will be installed:&lt;br /&gt;
  fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 libtiff5 libvpx1 libxpm4 libxslt1.1 nginx nginx-common nginx-full&lt;br /&gt;
 0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.&lt;br /&gt;
 Need to get 3,550 kB of archives.&lt;br /&gt;
 After this operation, 8,666 kB of additional disk space will be used.&lt;br /&gt;
 Do you want to continue? [Y/n] y&lt;br /&gt;
By choosing &amp;quot;y&amp;quot; nginx and all needed packages will be installed.&lt;br /&gt;
&lt;br /&gt;
You can check the installation with a browser. Go to the IP address of your Raspberry pi, in our case http://192.168.0.35/&lt;br /&gt;
We should see a message like:&lt;br /&gt;
 &#039;&#039;&#039;Welcome to nginx on Debian!&#039;&#039;&#039;&lt;br /&gt;
 If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.&lt;br /&gt;
 For online documentation and support please refer to nginx.org&lt;br /&gt;
 Please use the reportbug tool to report bugs in the nginx package with Debian. &lt;br /&gt;
 However, check existing bug reports before reporting a  new bug.&lt;br /&gt;
 &#039;&#039;Thank you for using debian and nginx.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Configure Nginx===&lt;br /&gt;
====Global Nginx configuration====&lt;br /&gt;
In the global configuration of Nginx we can configure default caching etc. The Raspberry Pi 3 uses 1.2 GHz 64-bit &#039;&#039;&#039;quad-core&#039;&#039;&#039; ARM Cortex-A53 processor. If you have an earlier version with less CPU cores, then you should use &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/nginx/nginx.conf&amp;lt;/source&amp;gt; to change the &amp;quot;worker_processes&amp;quot; to fit the amount of CPUs of your device. By default it&#039;s configured as&lt;br /&gt;
 worker_processes 4;&lt;br /&gt;
so for Raspberry Pi 3 you don&#039;t have to change it.&lt;br /&gt;
&lt;br /&gt;
====Virtual Domains====&lt;br /&gt;
&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
===Starting Nginx webserver===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo service nginx start&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PHP==&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
==MySQL==&lt;br /&gt;
* to do&lt;br /&gt;
&lt;br /&gt;
==Joomla!==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo wget https://github.com/joomla/joomla-cms/releases/download/3.6.3/Joomla_3.6.3-Stable-Full_Package.zip&lt;br /&gt;
sudo unzip -x Joomla_3.6.3-Stable-Full_Package.zip&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connecting Raspberry Pi to Internet==&lt;br /&gt;
We want people on the internet to be able to visit our Joomla website on our Raspberry Pi. In order to do that we need to &#039;&#039;&#039;configure our Internet router&#039;&#039;&#039; to forward all &#039;&#039;&#039;incoming traffic&#039;&#039;&#039; on port 80 &#039;&#039;&#039;to our Raspberry Pi&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Use your web browser to connect to the Web Interface of your router. A router is usually located on the first number of your IP range, in our case on 192.168.0.1. In our router we configure &#039;&#039;&#039;Port Forwarding&#039;&#039;&#039;:&lt;br /&gt;
* External IP Address: 0.0.0.0&lt;br /&gt;
* External Start Port: 80&lt;br /&gt;
* External End Port: 80&lt;br /&gt;
* Internal IP Address: 192.168.0.35 ( = our Raspberry Pi)&lt;br /&gt;
* Internal Start Port: 80&lt;br /&gt;
* Internal End Port: 80&lt;br /&gt;
* Protocol: TCP&lt;br /&gt;
Make sure that it is enabled.&lt;br /&gt;
&lt;br /&gt;
If everything is working correctly then you should see your own Joomla website on the Raspberry Pi by visiting your external IP address (Find your external IP address with a tool like [http://www.whatsmyip.org/ whatsmyip.org]).&lt;br /&gt;
&lt;br /&gt;
===Static IP address===&lt;br /&gt;
Most routers will keep assigning the same internal IP address to your Raspberry Pi. Sometimes it&#039;s better to configure your Raspberry Pi to use a static IP address:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /etc/network/interfaces&amp;lt;/source&amp;gt;&lt;br /&gt;
change &lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
to&lt;br /&gt;
 iface eth0 inet static &lt;br /&gt;
 address 192.168.0.35 &lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 gateway 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
The gateway is the IP address of your router. You can also find it using&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;route&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
* [https://raspberrypi.org Raspberry Pi Foundation] (RPF) - official website and forums&lt;br /&gt;
* [http://elinux.org/RaspberryPiBoard Raspberry Pi Wiki], supported by the RPF&lt;br /&gt;
* Video of presentation [https://youtu.be/u2MFQCoexD0 Joomla on Raspberry Pi (with Nginx)] at Joomladay Germany 2013 in Nuremberg, Germany&lt;/div&gt;</summary>
		<author><name>Pe7er</name></author>
	</entry>
</feed>