Как установить php7.0-mbstring в ubuntu 16.04 lts

Как создать новую главную страницу

Если вы хотите создать документ, в котором повторно используется несколько макетов, вам понадобится несколько мастер-страниц. Создайте новую главную страницу на панели «Страницы», щелкнув правой кнопкой мыши где-нибудь в списке существующих главных страниц. Выберите New Master.

В диалоговом окне «Новый шаблон» выберите префикс для новой главной страницы и дайте ему имя. Затем выберите, сколько страниц должен включать этот новый мастер, и размер страницы. Вы также можете указать ширину, высоту и ориентацию нового мастера. Наконец, выберите ОК.

Создав новую главную страницу, добавьте к ней любые элементы. Затем вы можете применить его к странице в документе, перетащив значок новой эталонной страницы на значок страницы, к которой вы хотите применить его. Или вы можете просто щелкнуть правой кнопкой мыши страницу на панели «Страницы», выбрать «Применить образец к страницам» и выбрать правильный образец для этой страницы.

Установка и настройка модуля CatFace для DLE

В принципе, модуль CatFace делает все то же самое, что и реализация через специальные теги, но у него есть 2 преимущества — во-первых, он работает не только для самых последних версий DLE, во-вторых, этот вариант более наглядный и простой для редактирования.

Скачать модуль CatFace для DLE как и почитать о его особенностях можете здесь. Плагин бесплатный, за что разработчику отдельное спасибо. После установки в админке на странице модуля увидите список категорий своего сайта в таком виде.

Для установки модуля CatFace нужно:

2. Распаковываем и копируем:

  • папку engine + catface_installer.php в корневую директорию.
  • содержимое uploads/templates/Default/ в директорию того шаблона, который вы используете.

3. Запускаем установочный файл http://site.ru/catface_installer.php (вместо site.ru поставьте свой домен). Следуете простым инструкциям. После завершения установки удаляем файл с ФТП.

4. В файле шаблона main.tpl нужно перед содержимым {content} добавить код:

{include file="engine/modules/catface.php"}

На этом установка завершена. Заходите в админку DLE в модуль CatFace и переходите непосредственно к наполнению страниц категорий. Для удобства там имеется специальный текстовый редактор:

По каждой из категорий вы можете задать заголовок и текст описания не только для главной страницы раздела, но и всех остальных. Здесь имеются следующий настройки (жирным выделил те, которые у меня выбраны):

  • Возможность выбора на какой странице активировать модуль — первой, нигде или на всех.
  • Заголовок для категории (основной).
  • Отображение заголовка — показать, по умолчанию, скрывать.
  • Где отображать заголовок — на первой странице, на всех.
  • Описание категории (основное).
  • Заголовок для остальных страниц.
  • Отображать описание — показывать, по умолчанию, скрывать.
  • Где отображать описание — на первой странице, на всех страницах.
  • Описание для остальных страниц.

В принципе, как видите, все предельно ясно и просто. Единственное. что при первом редактировании этих опций у меня были только поля для основного текста и заголовка, а остальные появились лишь при сохранении  — то ли это глюк, то ли специально так задумано — я не разбирался. Кстати, еще хотел отметить, что возможно вам понадобится очистка кэша после внесения изменений в описания. Это можно сделать как через админку (в новых версиях), так и просто удалив с ФТП содержимое директории engine/cache.

В целом модуль CatFace для категорий в DLE неплохой, со своими задачами справляется. Что лучше использовать его или ручную правку шаблон — решать вам, оба метода, в принципе, подходят. Просто, например, в моем случае DLE старой версии, и там параметр определения страницы page-count не работает. Будут какие-то вопросы — пишите, кстати, многие из них можно найти на странице разработчика плагина.

P.S. Для молодых мама в сети полно тематических сайтов, но тут имеется нечто другое — это интернет магазин со всеми необходимыми товарами для малыша.

Частые ошибки пользователей при верификации

Наиболее распространенные ошибки при подтверждении личности и советы как их избежать:

  • Имейте в виду, что внутренний паспорт на Binance не проходит верификацию. С его помощью вы можете подтвердить личность на сервисах Advanced Cash и Payeer, но на Бинанс такой документ не подойдет.
  • Нужен загранпаспорт, ID-карта или права международного образца (обычные водительские права РФ с фото). Хотя если вы загрузите фото внутреннего паспорта система примет документ в обработку, но вскоре вам на email придет сообщение от Binance: ошибка верификации.
  • Постарайтесь, чтобы фотографии документов были четким. Проходить проверку лица нужно в хорошо освещенном помещении, без головного убора и солнцезащитных очков.
  • Иногда селфи клиента может сильно отличаться от фотографии в паспорте. В таком случае служба безопасности биржи просит предоставить дополнительные документы, чтобы выполнить проверку в ручном режиме.

Кнопка «Изменить» где-нибудь рядом с реализацией?

Итак, теперь вы знаете, как редактировать твиты после публикации. Ни один из вариантов не является идеальным, во всяком случае. Однако до тех пор, пока кто-то из Twitter не даст официального ответа или обновит информацию о том, намерены ли они реализовать кнопку редактирования, это то, с чем вам придется работать.

Если вы в Твиттере, приходилось ли вам когда-нибудь заниматься устранением повреждений? Вы согласны с удалением и репостом твитов или предпочитаете Covfefe? Если бы Covfefe получил крутой капитальный ремонт, который исправил бы ответы, ретвиты и репосты мертвых URL-адресов, вы все равно были бы заинтересованы в получении официальной кнопки редактирования?

Поделитесь своими мыслями в разделе комментариев ниже.

Что делать, если вы администратор сайта

Обычно такие проблемы самостоятельно решать не рекомендуется. Лучше сразу же обратиться в службу технической поддержки и описать проблему. Но есть пара действий, которые все же могут помочь определить источник проблемы.

Проверка журнала ошибок

Актуально в случаях, при которых ошибка 502 Bad Gateway появляется после внесения изменений или обновления. Определить это очень просто, нужно лишь проверить журнал ошибок. В CMS WordPress можно включить запись возникающих ошибок, добавив в файл wp-config.php вот такие строки:

define( 'WP_DEBUG', true );

define( 'WP_DEBUG_LOG', true );

define( 'WP_DEBUG_DISPLAY', false );

После этого все записи начнут отображаться в файле debug.log. Храниться он будет в директории wp-content. Понадобится некоторое время, чтобы причины ошибок были записаны. Потом можно тщательно изучить записи и уже на основе их предпринимать конкретные изменения.

Проверка плагинов

Следует проверить, не влияют ли какие-либо плагины на работу сайта. Для этого можно поочередно отключать их, просто переименовывая папку интересующего плагина. Для этого надо выделить папку, затем нажать на меню «Файл» и в нем выбрать пункт «Переименовать».

Проверка сети CDN

Сети CDN и службы предотвращения DoS тоже могут влиять на работу сайта. Обычно виновник проблемы указывается на странице с кодом ошибки. Например, если под кодом 502 Bad Gateway есть строка cloudflare-nginx, значит, для исправления ошибки надо обратиться в службу поддержки CloudFlare. Можно отключить данный сервис, но потом придется долго ждать обновления DNS (это может занять несколько часов).

Ошибка 502 на виртуальном хостинге VPS/VDS

Ошибка 502 Bad Gateway возникает из-за превышения лимита трафика пользователей, «шалостей» бота, скачивания сайта или даже DoS‑атаки. Решение данной проблемы кроется в ограничениях памяти.

Запустить команду top

Данный запрос в терминале поможет установить наличие свободной памяти. Этим же способом можно проверить, работает ли Apache.

Посмотреть логи Apache и nginx

Обычно в этих логах отображается активность пользователей. Если есть что-то подозрительное, можно предпринять действия. К примеру, забанить определенные IP-адреса, настроить Fail2ban или подключить систему защиты от DoS-атак.

Если после этого количество запросов к серверу снизилось, необходимо перезапустить Apache.

Увеличить объем памяти

Бывает, что с логами все нормально, но памяти на обработку запросов все равно не хватает. Узнать об этом просто – при проверке командой top будет выдана ошибка OOM (out of memory). В таких случаях можно просто увеличить ее объем. Можно просто заказать другой тариф, в котором количество предоставляемой памяти больше. Подробнее об этом.

Проверить лимиты на php-cgi процессы

Если после проверки командой top показано, что свободной памяти еще достаточно, значит, на php-cgi процессы установлены лимиты. Для решения надо открыть конфигурационный файл Apache – httpd.conf, найти секцию модуля FastCGI (mod_fascgi или mod_fastcgid) и увеличить лимит.

Обратиться к службе технической поддержки

Если вышеперечисленные способы исправления ошибки 502 на виртуальном сервере не помогут, придется обращаться в техподдержку хостинга. При этом обязательно надо упомянуть, что вы уже предприняли и как проводили все действия.

Выбор версии PHP по умолчанию

Вы можете выбрать какую версию php нужно использовать по умолчанию с помощью утилиты update-alternatives. Сначала смотрим доступные версии:

После этого следует ввести номер версии, которую вы хотите использовать по умолчанию:

Или можно сразу установить php ubuntu по умолчанию:

Чтобы используемая версия обновилась в Apache нужно подключить правильный модуль и перезагрузить веб-сервер. Например, для того чтобы отключить 7.4 и включить 5.6 выполните:

Установка php 8 Ubuntu выполняется так же. Теперь вы знаете как переключить версию php Ubuntu. Установка и настройка PHP вместе с Nginx отдельная обширная тема и она описана в статье про настройку PHP-FPM.

Произошла ошибка при отправке запроса в ведомство — проблема на стороне пользователя

Если портал Госуслуг не выдаёт дополнительных сообщений о временном сбое в
работе ресурса, а заявку не удаётся отправить даже с повторных попыток, то
будьте уверены — скорее всего, проблема на вашей стороне. Остаётся выяснить,
почему возникает ошибка при отправке заявления в ведомство.

Не стоит отчаиваться, и сразу же звонить на горячую линию Госуслуг. Выявить
проблему самостоятельно не составит особого труда. Тем более, пул возможных
ошибок со стороны посетителя не такой уж и большой. Разберём их по пунктам:

  1. Ошибка в
    заполнении
    персональных
    данных;

  2. Неисполнение
    требований
    Госуслуг к
    загружаемым
    файлам (личной
    фотографии, или
    документов в
    электронном виде);

  3. Неверное
    указание адреса
    ведомства
    ответственного
    за обработку
    заявки.

Как видите, если всё систематизировать, то список возможных ошибок не такой уж и
большой. Более того, что касается первого и третьего пункта, то их легко
проверить.

Чтобы сразу отсеять эти пункты, внимательно перепроверьте все заполненные графы
на актуальность информации. При предоставлении персональных данных наиболее
распространены ошибки в цифрах и датах.

Рис. 6.
Ошибки при заполнении сведений о трудовой деятельности на портале Госуслуг

Например, при оформлении заявки на получение загранпаспорта, потребуется
заполнить сведения о трудовой деятельности за последние 10 лет. Для этого, нужно
указать точные даты поступления на работу, и увольнения-сокращения.
А в периоды промежутков между работами обозначить — «Не работал (а)«,
указав первый и крайний день нахождения в статусе безработного.

Ошибка в указании хотя бы одной цифры, в предоставляемых датах, приводит к
отклонению заявки на Госуслугах, и отправки её на доработку. Поэтому, прежде
всего, внимательно проверьте графы с датами, номерами подразделений, и
прочих числовых обозначений, которые вы заполняли. Как показывает
практика, именно эти разделы отличаются наибольшим количеством непреднамеренных
ошибок.

Что касается третьего пункта, а именно неверного указания подразделения
ответственного за исполнение заявки, то указание неверного адреса ФМС, тоже
достаточно распространённая ошибка на Госуслугах.

Чтобы её исключить, портал
ввёл специальные автоматические подсказки, которые предлагают полный адрес
подразделения при наборе его первых букв.

Если с первым и третьим пунктом проблем нет, но сайт Гос услуг снова выдаёт
ошибку, то остаётся только второй пункт. С ним дела обстоят немного сложнее, так
как он включает в себя несколько возможных вариаций неправильных действий со
стороны пользователя. Поэтому, далее разберём их подробнее.

Как подтвердить домен: пошаговая инструкция

Помните, что подтвердить домен можно только при наличии прав администратора или разработчика.  

  1. Войдите в аккаунт Business Manager. Откройте меню «Все инструменты» и выберите пункт «Безопасность бренда».
  1. Откройте раздел «Безопасность бренда» — «Домены». На основном экране появится кнопка «Добавить».
  1. Далее введите ваше доменное имя без префиксов (http:// или https://)  и всяческих «хвостиков» после .ru и нажмите «Добавить домен».
  1. Дальше вы можете выбрать один из трех вариантов:

Обновить TXT-запись DNS у своего регистратора доменов

Самый редкий способ подтверждения. Если действовать по инструкции, которую вы увидите на экране, то сложностей не возникнет. 

Скопируйте текстовую запись из пункта 2. В аккаунте на сайте вашего регистратора доменных записей в разделе «Домены» нажмите «Добавить запись». Откроется окно, в котором нужно указать:

  1. Хост – @
  2. Тип – TXT
  3. Значение – тот самый скопированный набор цифр и букв

Нажмите «Добавить» и ждите. Обновление кеша DNS может занять до 72 часов. Вот почему этот способ не особо популярен среди пользователей.

После преобразования DNS-записи вернитесь в свой аккаунт Business Manager и нажмите кнопку «Подтвердить».‍

  1. Нажмите на ссылку «HTML verification file» в первом пункте инструкции. 
  1. Откройте файл в браузере и скопируйте имя после слова «Downloads» и содержимое файла. В случае скачивания файла несколько раз, в имени, открывшемся в браузере, может быть лишний символ с порядковым номером: (1), (2) и т.п. Обязательно удалите его, иначе не получится подтвердить права.

  1. В новом окне откройте вашу систему управления сайтом и выберите в настройках пункт «Подтверждение прав». В соответствующие поля впишите имя и содержимое файла. Обязательно сохраните.
  2. Теперь на странице Facebook Business Manager нажмите заветные слова «Подтвердить домен», и появится сообщение об успешном подтверждении.

Meta-tag Verification

  1. Скопируйте мета-тег из первого пункта инструкции, которую увидите на экране. 
  1. В коде сайта вставьте данные перед закрывающим тегом (</>) в разделе head. Если у вас нет доступа к коду сайта, передайте мета-тег своему программисту. После добавления html-кода, вернитесь в Business Manager и нажмите «Подтвердить».
  2. В верхней части окна рядом с именем домена должен появиться зеленый значок, означающий, что вы справились.

Установка PHP в Ubuntu

1. Версия по умолчанию — 7.4

PHP версии 7.4 поставляется в официальных репозиториях Ubuntu, поэтому если вы хотите эту версию, то можете очень просто установить ее с помощью команды apt. Сначала смотрим информацию:

Теперь для установки версии из репозиториев наберите:

Для того чтобы интерпретатор php работал с Apache необходимо установить ещё этот пакет:

После этого можно посмотреть версию php в терминале:

2. Устаревшая версия — 5.6

Если вам нужна другая версия PHP, например, 5.6, то вам придется добавить в систему репозиторий PPA. Сначала необходимо установить зависимости:

Затем для добавления PPA репозитория выполните:

Теперь вы можете установить php ubuntu нужной вам версии. В данном случае 5.6. Для Apache выполните такие команды:

Затем можно смотреть версию:

Обратите внимание, что установленная версия PHP не конфликтует с версией из официальных репозиториев. Обе версии могут существовать в системе и между ними можно переключаться

3. Новая версия — 8.0

На момент написания статьи, версия PHP 8.0 вышла относительно недавно и в официальных репозиториях LTS релиза Ubuntu её нет. В этой версии было много улучшений и исправлений и если вы хотите её попробовать, то можете установить из того же самого PPA:

Затем, как и в предыдущем пункте необходимо указать версию php, которая вам нужна в команде установки:

После завершения установки интерпретатор появится в системе:

Android 6 и targetSdkVersion 23

Схема работы разрешений зависит от версии Android, на которой запущено приложение и от параметра targetSdkVersion приложения.

Новая схема будет работать, если версия Android >= 6 И targetSdkVersion >= 23.

В остальных случаях, т.е. когда targetSdkVersion < 23 ИЛИ версия Android < 6, разрешения будут работать по старому. Т.е. пользователь будет подтверждать их сразу все при установке. Если в приложении есть код, который проверяет разрешения, то он будет получать PERMISSION_GRANTED.

Но учитывайте, что в Android версии 6 и выше, пользователь может отменить разрешения в настройках приложения.

Как установить приложения сторонних производителей на телевизор Samsung Smart TV

Теперь все готово, и все, что вам нужно сделать, это установить приложения сторонних производителей. Есть три различных способа, и вы можете использовать тот, который вам больше всего нравится, они равны.

Мой любимый способ установки сторонних приложений — это использование файла apk. Чтобы использовать этот метод, вам просто нужно сделать следующее:

  • Откройте браузер на вашем Samsung Smart TV
  • Поиск сайта с помощью apk-файла приложения, которое вы хотите установить (используйте только надежные сайты!).
  • Нажмите на ссылку для скачивания
  • Выберите загруженный файл
  • Нажмите на установку
  • Подтвердить установку
  • Следуйте инструкциям на экране

Однако установка сторонних приложений, использующих apk-файлы, может быть неудобной, так как многим неудобно пользоваться браузером на Samsung Smart TV. В этом случае лучше использовать флешку или USB-накопитель.

В этом случае вам необходимо загрузить apk-файл через компьютер и скачать его на флешку или USB-накопитель. Это удобнее, так как вы будете использовать браузер на вашем компьютере.

  • Используйте браузер вашего компьютера, чтобы найти apk-файл на надёжном сайте.
  • Скачать apk-файл на ваш компьютер
  • Сохраните файл apk на вашем флэш- или USB приводе
  • Вставьте флэшку или привод USB к вашему телевизору
  • Открыть файлы и папки
  • Выберите apk-файл
  • Выберите файл apk вашего приложения
  • Щелкните установите
  • Подтвердить установку
  • Следуйте инструкциям на экране

Однако иногда случается, что рядом нет флешки или USB-накопителя, но вы все равно не хотите пользоваться браузером Samsung Smart TV.

В этом случае вы можете использовать командную строку на ПК. Для использования этого метода необходимо сделать следующее:

  • Скачать apk-файл на ваш компьютер
  • Перейдите на телевизор и откройте меню «Настройки» на Samsung Smart TV.
  • Выберите опцию Сеть
  • Нажмите на Информацию
  • Вы увидите раздел IP-адреса. Вы должны справиться с IP-адресом вашего смарт-телевизора.
  • Теперь иди к своему компьютеру
  • Откройте командную строку
  • Введите adb-соединение и IP-адрес вашего телевизора
  • Введите D\and имя вашего apk-файла (с .apk в конце).
  • После установки приложения, введите adb отключения и IP-адрес вашего телевизора, чтобы отключить ваш Samsung Smart TV от компьютера

Я рекомендую использовать первый метод, так как он самый простой и понятный. И я не рекомендую третий метод, так как он наиболее напряженный для не продвинутых пользователей.

Препараты

Сделайте резервную копию : модификации программного обеспечения могут иногда приводить к программным блокам и потере данных из-за ошибки. Поэтому нетрудно всегда иметь при себе резервную копию всех важных данных на случай, если это произойдет.

У нас уже есть руководство по резервному копированию Android, если вам нужно руководство. Более того, если на вашем телефоне установлен TWRP , подумайте о том , чтобы сделать резервную копию NANDroid всей ОС.

Получите root-права на своем Android-устройстве : конечно, для любой модификации основного программного обеспечения требуется root-доступ. Есть большая вероятность, что ваше устройство уже внедрено.

Если нет, и вы новичок во всей сцене, вы можете начать с нашего учебника по рутингу Magisk .

Стоит отметить, что для работы LSPposed Framework требуется Magisk v21 + . Если у вас установлена ​​более старая версия, убедитесь, что вы сначала обновили Magisk.

Удалите EdXposed Framework (если он у вас есть): LSPposed автоматически отключает модуль EdXposed во время установки. Но чтобы быть в безопасности и предотвратить любые необычные результаты, лучше сначала отключить и удалить EdXposed с вашего устройства.

Для этого перейдите в «Magisk Manager» → «Модули» и нажмите кнопку «Удалить» для модуля «Riru — EdXposed». Затем перезагрузите устройство, чтобы полностью отключить и удалить модуль.

В любом случае, что такое LSPposed Framework?

LSPposed — это новый и улучшенный модуль Riru, который позволяет вам запустить Xposed Framework на вашем устройстве Android. Это ответвление широко известной EdXposed Framework , но с меньшим влиянием на производительность и большей безопасностью с точки зрения модулей.

Итак, это еще одна версия EdXposed? Не совсем. Но поскольку он основан на EdXposed Framework, вы, вероятно, увидите много общего. Например, LSPosed использует Riru впрыснуть в зиготы и запустить свой код, точно так же , как и то , что делает EdXposed.

Некоторые подробности от разработчиков

Этот новый модуль создан некоторыми разработчиками, которые были в команде EdXposed, но их пути разошлись. Согласно дискуссии на GitHub , один из разработчиков (kotori02)  что первоначальный автор EdXposed « отказался от множества критических изменений, которые убивают обратную совместимость ».

На  , означает ли это ухудшение совместимости устройства или модуля,  что это означает отказ от поддержки старого установщика Xposed, использование нового API Xposed, некоторые изменения, которые, помимо прочего, могут привести к проблемам с безопасностью и производительностью.

Разработчики LSPposed уже добавили эти изменения в свой список дел .

EdXposed все еще работает

Означает ли это, что EdXposed не работает? Он по-прежнему хорошо работает и даже поддерживает Android 11. Хотя некоторые пользователи сообщают о задержках пользовательского интерфейса и снижении производительности при его использовании, есть другие, которые не пострадали. По-видимому, отчасти это могло быть связано с используемым фреймворком перехвата (YAHFA или SandHook).

LSPposed Framework использует область действия модуля

Ключевое различие между EdXposed и LSPposed заключается в том, что модули теперь привязаны к отдельным приложениям. Чтобы их модули работали с LSPposed, разработчикам необходимо определить область действия, как указано в официальной вики .

Во время установки / активации модуля пользователи также могут выбрать приложения и службы, к которым модуль подключен / применяется.

Эта особенность может способствовать меньшему использованию ОЗУ и повышению производительности LSPposed по сравнению с EdXposed.

Какой выбрать?

Это подводит нас к очевидному вопросу: «Что мне использовать, LSPposed или EdXposed?» Однозначного ответа нет. Но сейчас:

  • EdXposed : если вы хотите продолжить использование существующих модулей. Есть определенные модули, которые не обновляются какое-то время / больше и поэтому не поддерживают механизм области видимости модуля.
    Не все основные модули были обновлены для использования с LSPposed, но некоторые обновились.
  • LSPposed : если у вас возникли проблемы с производительностью, такие как лаги или проблемы с безопасностью, когда дело доходит до модулей. Пользователи XDA-Developers , которые уже установили LSPposed, сообщили, что он «плавнее», чем EdXposed.

GravityBox , один из самых популярных модулей Xposed, был недавно обновлен и теперь работает с LSPposed.

Теперь, если вы приняли решение, приведенные ниже инструкции помогут вам установить LSPposed Xposed Framework на устройства Android под управлением Android 11, вплоть до Android 8.1 / 8.0 Oreo.

До Android 6

До выхода Android 6 все было просто и легко. Когда пользователь устанавливал приложение с манифестом, который мы рассмотрели чуть выше, то он видел такой экран:

Система показывает разрешения, которые были прописаны в манифесте. Сначала те, которые могут быть опасными с точки зрения приватности (отправка смс, доступ к камере/местоположению/контактам), а затем — обычные (интернет, bluetooth).

Таким образом пользователь видит, на что претендует приложение, и может примерно понять все ли в порядке. Если, например, приложение калькулятор при установке просит у вас доступ к контактам и смс, то скорее всего, что-то не так с этим приложением и оно может быть опасным для ваших данных.

Нажав кнопку Install, пользователь автоматически подтверждает свое согласие, что приложению будут предоставлены эти запрашиваемые разрешения. И далее, когда приложение, например, пытается в коде получить список контактов, то оно без проблем их получает.

Если же в манифесте не указать разрешение READ_CONTACTS, то его не будет и в списке тех разрешений, которые подтверждает пользователь. Соответственно, система не предоставит этому приложению доступ к контактам. И при попытке получить список контактов, будет ошибка:java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: