Если инфорация оказалась интересна и/или полезна, не побрезгуйте, оставьте комментарий ;)
Показаны сообщения с ярлыком Android. Показать все сообщения
Показаны сообщения с ярлыком Android. Показать все сообщения

воскресенье, 26 июня 2022 г.

YouTube Vanced больше нет. Но есть ReVanced

Статья навеяна этой новостью на Хабре

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

Напомню, чем был хорош YouTube Vanced (здесь писал, как его установить):

  1. Проигрывание видео в фоне, в том числе с погашенным экраном
  2. Проигрывание видео "картинка в картинке" на фоне другого приложения
  3. Отстутсвие рекламы от Ютуба
  4. Отстутсвие рекламных интеграций от авторов роликов (SponsorBlock)
  5. Подмена кодеков
  6. Расширенная настройка видеопараметров и много чего по мелочи

Но дело освобождения от рекламы живет и побеждает... ну почти. Теперь есть проект ReVanced. Позволяет самостоятельно пропатчить установочный файл YouTube. Для тех, кто хочет себя почувствовать кулхацкером. Надеюсь, мне блог не удалят за рассказ, как пропатчить Ютуб

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

  • ADB. Скачать можно с официального сайта. Распакуйте содержимое архива в директорию, из которой будете работать. У меня это C:\Soft\platform-tools
  • x64 or x86 architecture for now. То есть компьютер на Интеле или АМД. Думаю, с этим проблем нет. ADB и Zulu JDK (см. ниже) есть даже под Mак
  • The apk you want to patch (e.g. YouTube v17.24.34 or YouTube Music v5.03.50). Make sure the same version of the app is installed on the device. Пакет Ютуба (apk) можно взят тут. Важно брать не последнюю версию, а ту, что рекомендуют разработчики ReVanced. Она указана на странице с требованиями. На момент написания стать это 17.24.34. Если возьмете не ту версию, будут такие ошибки:
    WARNING: Skipping seekbar-tapping: Incompatible with version 17.24.35. This patch is only compatible with version com.google.android.youtube: 17.17.34, 17.19.36, 17.20.37, 17.22.36, 17.23.35, 17.23.36, 17.24.34
  • Zulu JDK 17. Брать тут. На всякий случай, полное название "Azul Zulu Build of OpenJDK"
  • Android SDK if you plan to build the integrations from source. Это нам не пригодится
  • Добавлю от себя. У вас должен стоять microG. У меня он уже стоит, так как он используется YouTube Vanced.

Вначале я попытался пойти по этой инструкции. Но она устарела. Ключи запуска изменились. Ссылки на пакеты устарели.

У меня последовательность действий получилась следующая:

  1. Скачиваем ADB и распаковываем. Рекомендую делать короткий путь, чтобы проще было переходить в каталог из командной строки. Мой путь C:\Soft\platform-tools
  2. Скачиваем и ставим Zulu JDK. При установке надо автивировать пункт добавления путей в переменные окружения, чтобы можно было просто написать java [options]
  3. Скачиваем файлы проекта: revanced-cli, revanced-patches, revanced-integrations. И конечно apk-файл Ютуба. Я рекомендую дать скаченным файла простые названия, чтобы ими было удобно пользоваться в командной строке. apk Ютуба я назвал "youtube1.apk", apk c revanced-integrations, соответственно, "revanced-integrations.apk". Скаченные файлы копируем в директорию ADB. То есть я скопировал в C:\Soft\platform-tools.
  4. Запускаем командную строку, переходим в каталог с ADB и нашими файлами. Тут такой момент. В контекстном меню каталога есть пункт "Открыть в терминале" (Windows 11). Но такой терминал у меня рабол некорректно, он не видел запускаемого файла JAVA. Видимо, не читал переменные окружения. И файлы внутри директории видел только с префексом ".\". В общем, не надо так делать. лучше открыть терминал в меню "Пуск/Start" и выполнить команду cd:
    PS C:\Users\Evgeniy> cd C:\Soft\platform-tools\
      PS C:\Soft\platform-tools> ls
    
        Каталог: C:\Soft\platform-tools
    
    Mode                 LastWriteTime         Length Name
    ----                 -------------         ------ ----
    ------        01.01.2008      0:00        5989376 adb.exe
    ------        01.01.2008      0:00          97792 AdbWinApi.dll
    ------        01.01.2008      0:00          62976 AdbWinUsbApi.dll
    ------        01.01.2008      0:00         241664 dmtracedump.exe
    ------        01.01.2008      0:00         436224 etc1tool.exe
    ------        01.01.2008      0:00        1649152 fastboot.exe
    ------        01.01.2008      0:00          44032 hprof-conv.exe
    ------        01.01.2008      0:00         231594 libwinpthread-1.dll
    ------        01.01.2008      0:00         489984 make_f2fs.exe
    ------        01.01.2008      0:00         489984 make_f2fs_casefold.exe
    ------        01.01.2008      0:00           1157 mke2fs.conf
    ------        01.01.2008      0:00         752128 mke2fs.exe
    ------        01.01.2008      0:00        2834292 NOTICE.txt
    -a----        25.06.2022     22:22       45397186 revanced-cli-1.11.1-all.jar
    -a----        25.06.2022     22:20        1816001 revanced-integrations.apk
    -a----        25.06.2022     23:22           2040 revanced-integrations.keystore
    -a----        25.06.2022     22:10         114924 revanced-patches-1.10.5.dex
    -a----        25.06.2022     22:10         251013 revanced-patches-1.10.5.jar
    -a----        26.06.2022      0:08           2040 revanced.keystore
    ------        01.01.2008      0:00             37 source.properties
    ------        01.01.2008      0:00        1162752 sqlite3.exe
    -a----        25.06.2022     22:21      137603855 youtube.apk
    -a----        25.06.2022     23:35      137603855 youtube1.apk
    попробуйте запустить команду java. Должен быть вывод примерно такой:
    PS C:\Soft\platform-tools> java
    Usage: java [options] <mainclass> [args...]
               (to execute a class)
       or  java [options] -jar <jarfile> [args...]
               (to execute a jar file)
       or  java [options] -m <module>[/<mainclass>] [args...]
           java [options] --module <module>[/<mainclass>] [args...]
               (to execute the main class in a module)
       or  java [options] <sourcefile> [args]
               (to execute a single source-file program)
    
     Arguments following the main class, source file, -jar <jarfile>,
     -m or --module <module>/<mainclass> are passed as the arguments to
     main class.
    ..........
  5. Включаем на телефоне отладку по USB. На моем телефоне для этого надо 10 раз пошлепать по номеру сборки в "Информации о телефоне" для получения доступа к "Меню разработчика". Затем выбрать соответствющий пункт. Способ может быть свой каждой модели телефона.
  6. Нужно узнать идентификатор телефона. Для этого подключаем телефон к комптютеру по USB и вводим команду:
    PS C:\Soft\platform-tools> adb devices
    * daemon not running; starting now at tcp:5037
    * daemon started successfully
    List of devices attached
    12345678        unauthorized  
    На экране смартфона появится окно с предложением авторизовать подключение. Соглашаемся. Еще раз выполняем команду для проверки:
    PS C:\Soft\platform-tools> ./adb devices
    List of devices attached
    12345678        device
    Теперь всё хорошо. Нам нужен это идентификатор - в моем примере 12345678.
  7. Надо определиться с теми патчами, которые вы НЕ хотите накладывать. Полный список можно вывести следующей командой. Рекомендую это сделать на своем компьютере, разработчики бодро вносят изменения:
    PS C:\Soft\platform-tools> java.exe -jar .\revanced-cli-1.11.1-all.jar -b .\revanced-patches-1.10.5.jar -l
    INFO: seekbar-tapping: Enable tapping on the seekbar of the YouTube player.
    INFO: general-ads: Patch to remove general ads in bytecode.
    INFO: video-ads: Patch to remove ads in the YouTube video player.
    INFO: custom-branding: Change the branding of YouTube.
    INFO: premium-heading: Show the premium branding on the the YouTube home screen.
    INFO: minimized-playback: Enable minimized and background playback.
    INFO: disable-fullscreen-panels: Disable comments panel in fullscreen view.
    INFO: old-quality-layout: Enable the original quality flyout menu.
    INFO: disable-create-button: Disable the create button.
    INFO: amoled: Enables pure black theme.
    INFO: disable-shorts-button: Hide the shorts button.
    INFO: hide-cast-button: Patch to hide the cast button.
    INFO: microg-support: Patch to allow YouTube ReVanced to run without root and under a different package name.
    INFO: background-play: Enable playing music in the background.
    INFO: exclusive-audio-playback: Add the option to play music without video.
    INFO: codecs-unlock: Enables more audio codecs. Usually results in better audio quality but may depend on song and device.
    INFO: upgrade-button-remover: Remove the upgrade tab from the pivot bar in YouTube music.
    INFO: tasteBuilder-remover: Removes the "Tell us which artists you like" card from the Home screen. The same functionality can be triggered from the settings anyway
    Приведу список ключей, доступный на момент написания статьи. Тоже рекомендую проверить список на момент вашей работы:
    PS C:\Soft\platform-tools> java.exe -jar .\revanced-cli-1.11.1-all.jar -h
    Usage: ReVanced-CLI [-hV] (-b=<patchBundles> [-b=<patchBundles>]... [-l]
                        [-a=<inputFile> -o=<outputPath> [-e=<excludedPatches>]...
                        [-r] [--experimental] [-m=<mergeFiles>]... [--mount]
                        [--cn=<cn>] [--keystore=<keystorePath>] [-p=<password>]
                        [-d=<deploy>] [-t=<cacheDirectory>] [-c]])
      -a, --apk=<inputFile>      Input file to be patched
      -b, --bundles=<patchBundles>
                                 One or more bundles of patches
      -c, --clean                Clean the temporal resource cache directory. This
                                   will be done anyways when running the patcher
          --cn=<cn>              Overwrite the default CN for the signed file
      -d, --deploy-on=<deploy>   If specified, deploy to adb device with given name
      -e, --exclude=<excludedPatches>
                                 Explicitly exclude patches
          --experimental         Disable patch version compatibility patch
      -h, --help                 Show this help message and exit.
          --keystore=<keystorePath>
                                 File path to your keystore
      -l, --list                 List patches only
      -m, --merge=<mergeFiles>   One or more dex file containers to merge
          --mount                If specified, instead of installing, mount
      -o, --out=<outputPath>     Output file path
      -p, --password=<password>  Overwrite the default password for the signed file
      -r, --resource-patcher     Disable patching resources
      -t, --temp-dir=<cacheDirectory>
                                 Temporal resource cache directory
      -V, --version              Print version information and exit.
    Например, в статье, на которую я ссылался выше использовался ключ "-i", позволявший активировать патч. Надо было перечислить все патчи, которые нужно применить. А вот в текущей версии такого ключа нет, но есть ключ "-e", который исключает применение тех или иных патчей. То есть оказывает обратное действие в сравнении со старым ключом "-i".
  8. Проверяем, что телефон подключен к компьютеру и выполняем команду:
    PS C:\Soft\platform-tools> java.exe -jar .\revanced-cli-1.11.1-all.jar -a .\youtube1.apk -c -d 12345678 -o .\revanced.apk -b .\revanced-patches-1.10.5.jar -m .\revanced-integrations.apk
    INFO: Decoding resources
    INFO: Reading dex files
    INFO: Merging .\revanced-integrations.apk
    WARNING: Skipping background-play: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
    WARNING: Skipping exclusive-audio-playback: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
    WARNING: Skipping codecs-unlock: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
    WARNING: Skipping upgrade-button-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
    WARNING: Skipping tasteBuilder-remover: Incompatible with com.google.android.youtube. This patch is only compatible with com.google.android.apps.youtube.music
    INFO: seekbar-tapping succeeded
    INFO: general-ads succeeded
    INFO: video-ads succeeded
    INFO: custom-branding succeeded
    INFO: premium-heading succeeded
    INFO: minimized-playback succeeded
    INFO: disable-fullscreen-panels succeeded
    INFO: old-quality-layout succeeded
    INFO: disable-create-button succeeded
    INFO: amoled succeeded
    INFO: disable-shorts-button succeeded
    INFO: hide-cast-button succeeded
    INFO: microg-support succeeded
    INFO: Compiling resources
    INFO: Writing modified dex files
    INFO: Writing dex file classes.dex
    INFO: Writing dex file classes3.dex
    INFO: Writing dex file classes2.dex
    INFO: Writing dex file classes4.dex
    INFO: Writing dex file classes6.dex
    INFO: Writing dex file classes5.dex
    INFO: Writing dex file classes7.dex
    INFO: Writing dex file classes8.dex
    INFO: Writing resources
    INFO: Aligning revanced_raw.apk
    INFO: Signing revanced_aligned.apk
    INFO: Found existing keystore: revanced
    INFO: Copying revanced_signed.apk to revanced.apk
    INFO: Installing without mounting
    INFO: Finished
    Пакет будет подготовлен и установлен на телефон. Важно. Имя пакета в ключе"-o .\revanced.apk" - это выходное имя создаваемого пакета. Его на момент запуска команды еще не существует. Имя можно выбрать любое. Идентификатор устройства в ключе "-d 12345678" мы узнали на шаге 6.

    Пример команды, если мы хотим исключить некоторые патчи:
    java.exe -jar .\revanced-cli-1.11.1-all.jar -a .\youtube1.apk -c -d 6535d72f -o .\revanced.apk -b .\revanced-patches-1.10.5.jar -m .\revanced-integrations.apk -e custom-branding -e premium-heading -e amoled
  9. Остается проверить, что прижение появилось на телефоне и работает.

Из замеченных минусов - нет тонкой настройки видео, как было в YouTube Vanced. И нет фильтра на ремкламную интеграцию авторов видео. И явный минус - всю эту операцию надо делать регулярно с выходом новых версий Ютуба и патчей ReVanced к нему

среда, 22 июня 2022 г.

Настройка клиента для ownCloud. FolderSync

Первая часть руководства по созданию службы резервного копирования с телефона на базе ownCloud была тут. Рассмотрена установка и настройка серверной части. Во второй части быстро рассмотрим, как настроить клиента для полноты картины

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

Запускаем его. Первым делом надо добавить нашу учетную запить на ownCloud

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

Вводим название учетной записи (1). Я выбрал Backup. Можно взять название сервера, или просто Home Dropbox, в нем же не только резервные копии хранить можно. Кроме имени надо заполнить имя и пароль пользователя (2,3). Это может быть пользователь из параметра --admin-user "admin", созданный на шаге 12 первой части. Либо специально созданный пользователь, если решение используют несколько человек.
Заполняем IP-адрес или FQDN (если в сети поднят DNS-сервер) (4), адрес порта HTTPS 443 (5), директория (по умолчанию owncloud) (6) и разрешение использовать самоподписанный сертификат (мы его сделали на шаге 8) (7). Когда все поля заполнены, нажимает "Тест".

Если всё хорошо, нажимает "Сохранить" (9). Если что-то пошло не так, ищем, где ошибка и повторяем тест.

Следующий шаг - создать задания. Это исходный каталог на устройстве и целевой каталог в ownCloud и регламент синхронизации. На начальном экране программы выбираем "Задания" (1). Далее нашу учетную запить (2).

Выбираем создать новую папку в ownCloud, даем ей говорящее название.

Заходим в нее

И подстверждаем выбор

Выбираем исходный каталог на устройстве (1), файлы из которого мы будем синхронизировать, и подтверждаем выбор (2)

Теперь настраиваем регламент. Вкладка "Основные". выбираем вариант "На удаленную папку", то есть с устройства на ownCloud

На вкладке "Планирование" выбираем работу по расписанию, регулярность копирования (ежедневно) и время синхронизации - лучше выбрать ночное время, когда телефон простаивает и стоит на зарядке

Вкладка "Настройка синхронизации". Выбираем синхронизацию вложенных папок и скрытых файлов (не всегда нужно). Старые файлы заменяются новыми без дополнительных вопросов

Вкладка "Продвинутые". Выбираем "Повторять при ошибке".

Вкладка "Соединение". Выбираем синхронизацию при подключении к Wi-Fi. проводное подключение на телефоне вряд ли будет. А передавать по мобильной сети бессмысленно, так как наш сервер находится в локальной сети.

Во вкладке "Уведомления", чтобы не пропустить проблемы с синхронизацией и вовремя их устранить во избежании потери данных, выбираем уведомления при ошибке синхронизации. Уведомление при успехе выбираем по желанию

Нажимаем кнопку "Синхронизация" в верхней части экрана и смотрим, началась ли синхронизация

Кратка информация по синхронизации есть на главном экране (продолжительность, скороть передачи, количество сравненных и переданных файлов

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

Решение получает простым, гибким и достаточно мощным.

среда, 20 января 2021 г.

Как проигрывать ролики Youtube в фоне на Андроиде

Всем хорошо Ютуб, кроме слежки за вами и невозможностью проигрывать  видео в фоне с выключенным экраном. Часто информация, оформленная в виде видеоролика - это интервью или лекция. И на видео есть только рассказчик или ведущий и опрашиваемый. Такие видео можно слушать не глядя в экран, как аудиозапись. Но не с Ютубом.

Недавно открыл для себя "Youtube Vanced". Это форк стандартного приложения, доведенный до ума.

Инструкция на английском, как ставить есть на форуме xda-developers.com.

Сам проект лежит на GitHub'e

На 4pda.ru дано полное описание преимуществ приложения.

Ниже краткая инструкция, как поставить приложение на свой телефон. Уточню, что инструкция для нерутованного телефона. У меня вообще прошивка от производителя телефона. Предложенный метод использует Vanced Manager от тех же авторов. Можно найти описание установки приложения вручную. Для корректной работы приложения требуется еще одно приложение - microG. Оно знакомо всем, кто прошивает нестандартные прошивки, обычно требует рутованный телефон. Но не в этом случае.

Начнем. Весь путь лучше сразу делать на телефоне.

1. Заходим по ссылке выше на github.com, выбираем проект Vanced Manager, на следующей странице выбираем последнюю версию, на следующей странице нажимаем "Assets", в открывшемся списке выбираем "manager.apk":

 
 
2.  Скачиваем и устанавливаем приложение:

 
 
3. Проходим по мастеру настройки. Можно поставить еще Youtube Music, но я смысла этого приложения не понял.

 

4. Так как у меня телефон от Xiaomi, то нужно в настройках разработчика отключить режим оптимизации. Подробная инструкция выводится при нажатии на кнопку "Руководство".

 

5. Теперь ставим основные приложения. Вначале надо поставить  "Vanced microG". В запущенной программе "Vanced Manager" нажимаем кнопку "Установить" напротив пункта "VANCED MICROG". Будет скачан нужный установочный файл. Андроид может запретить установку приложения из неизвестного источника. Что делать на примере MIUI на снимках экрана ниже. 

После установки "Vanced microG" аналогично ставится "Youtube Vanced". У меня он скачался не с первого раза. Не знаю почему.


6. Выбираете язык, версию и тему. На этом с установкой всё.


7. Необязательный пункт. Настройки.  При работе по мобильной сети брать разрешение попроще. Воспроизводить видео только при подключении наушников. Для параноиков - отключение истории просмотра и поиска.


По умолчанию, приложение не авторизуется под вашей учетной записью Google.

понедельник, 9 апреля 2018 г.

HTC One M8 и новая прошивка Mokee 7.1: большой расход батареи, нагрев и поломка Google Play

5 апреля вышла новая прошивка Mokee для HTC One M8, основанная на Adnroid 7.1. Я уж и не ожидал ее увидеть. Предудыщая прошивка вышла год назад, в пареде 2017.

Для того, чтобы прошивка автоматические ставилась, нужно обновить TWRP до последней версии.  В Google Play есть официальное приложение TWPD для выбора подходящей прошивки для вашей модели телефона. На момент написания заметки последняя версия была за номером 3.2.1-0.

Теперь о неприятном. На мой телефон она не встала. После перепрошивки телефон зацикливается на окне загрузки.

Но это не все проблемы. После возвращения старой прошивки, телефон стал заметно греться. Батарейка села часа за 4. Мощности зарядки едва хватало, чтобы телефон мог заряжаться. Кроме того не работал Google Play. заглавная страница отображалась, но перейти на другие вкладки, например, "Мои приложения и игры" я не мог. Вечно крутился бублик загрузки.

Теперь о хорошем. Решение есть. Надо поставить посление GAPPS (Google Apps)

Нужно выбрать архитектуру процессора, версию ОС и редакцию GAPPS. На мой взгляд, что выбор лежит между редакциями pico и nano
Состав pico:
  • Google Package Installer (replaces stock/AOSP Package Installer)
  • Google Play services
То есть только Google Play.

Состав nano:
  • Device Health Services
  • Google Package Installer (replaces stock/AOSP Package Installer)
  • Google Play services
  • Google Search
  • Google Text-to-Speech
То есть добавлены поиск, средства синхронизации, оффлайн файлы речевого генератора, поиск и проверка приложений на доброкачественность.

Поэтому если столкнулись с той же проблемой, что и я, то после отката на 6-ю версию надо сразу поставить/переставить GAPPS. После этого проблема с перегревом и расходом батареи уходит.

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

Отпишусь, как попробую.
 

воскресенье, 5 января 2014 г.

Ошибка на Samsung Galaxy S II "Память телефона заполнена"

Столкнулся с указанной проблемой. Мнений, отчего она возникает много. В моем случае, решение было простым, что плюс, но потребовало Root, что минус:

Причина засора - лог-файлы и прочий мусор в системном разделе.

План исправления:
  1. Нужно сделать Root. Как сделать Root, написано на 4pda.ru. Ничего сложного и страшного:
    • Скачиваем файл UPDATE-SuperSU.
    • Кладем его на флешку (SD-карту) телефона.
    • Выключаем телефон.
    • Загружаемся в режиме восстановления (включение телефона при нажатых клавишах "Громкость вверх" и "Домой").
    • Выбираем обновление с внешнего носителя, выбираем zip-файл (распаковывать его не надо).
    • После перепрошивки перегружаемся из меню верхнего уровня.
  2. Открываем свой любимый менеджер файлов. Я, по традиции, использую Total Commander.
  3. Переходим в корень файловой системы и далее в папку /data.
  4. В ней есть две подпапки: log и tombstones. В первой папке удаляем все файлы с именами по шаблону dumpstate*.log. Во второй - вообще всё (tombstone*)
  5. Как бы всё. Проверяем свободное место.
  6. Если не помогло, потребуется более творческий подход. Смотрим статью на всё том же сайте. Экспериментируем.
Удачи!

P.S. Не скажу, что мой блог очень популярен у интернет-аудитории. Но на эту запись народ идет косяками. Причем, у нескольких моих знакомых (а этот телефон у нас компании одно время был стандартом, и его давали всем), в том числе у меня самого, эта ошибка началась примерно в одно и то же время декабрь 2013 года - март 2014 года. Такое впечатление, что у Samsung какой-то баг в прошивке, и он у всех выстрелил именно сейчас.

Может, компании стоит выпустить апдейт для наших телефонов? Наш телефон - ровесник iPhone 4. На него обновления выходят. Что же мы такие богом Samsung'ом обиженные? Вот и думай, какой телефон следующим покупать.

UPDATE
В комментариях подсказали, как сделать без Root'a (сам не пробовал, но ниже есть положительные отзывы):

Наберите *#9900# на телефоне и выберите пункт 2 “Delete dumpstate/logcat” - память осчиститься без сброса

Анонимусу большое спасибо за совет!