Революция флэш-памяти

Рейтинг флешек

Из-за большого количества разных производителей, компаний и вариантов скорости, объема у людей возникает вопрос, какую флешку лучше купить для компьютера. Следует понимать, что существуют накопители для телефонов, фотоаппаратов (SD) которые подключаются к ПК только через специальный картридер (в ноутбуке он встроенный). Каждый год выходят обзоры, в которых рассматриваются лучшие производители флешек, какие модели стоит выбрать по соотношению цена/качество.

Существуют определенные лидеры продаж, которые пользуются популярностью среди пользователей. Классификация проводится на основе оставленных покупателями отзывов о работе флешек. Вы можете выбрать одну из следующих компаний:

  1. Transcend. Известная компания, которая занимается выпуском продукции для компьютеров в 1988 года. Впервые этот производитель ввел пожизненную гарантию на свои накопители, потому что срок службы, количество циклов записи у этих носителей действительно большой. Хотите проверенную флешку – нужно выбрать Transcend.
  2. Silicon Power. Очень популярна фирма, продукция которой продается в 90 странах мира.
  3. Kingstone. Выбрать этот вариант следует, если хотите проверенный бренд, который на рынке с 1987 года. Производитель уверенно конкурирует со всеми остальными фирмами.
  4. TeamGroup. Каждый год ассортимент увеличивается и покупателю есть из его выбрать.
  5. SanDisk. Появились в 1988 году на рынке и каждый год выпускают не менее 4 млн копий карт памяти. Дизайн очень простои цена демократичная.
  6. Apacer. Зарекомендовала себя компания, как производитель качественной, надежной продукции, которую на страшно выбрать и купить.
  7. Pretec. Эта фирма широко используется в промышленных и военных целях. Это хороший довод в пользу того, чтобы выбрать эту флешку.
  8. Adata. Относительно новая компания, которая выпускает надежную продукцию.
  9. Prestigio. Компания, которая выпускает много электронной продукции. Выбрать такие флешки стоит, если вы любите кожу (эксклюзивный дизайн), которой оформлен корпус изделия.

Самая большая

Накопители отличаются по стоимости в зависимости от того насколько объемным является носитель. Более емкие варианты будут стоить дороже, на данный моменты самый большой объем флешки – 512 Гб. Выбрать такой вариант нужно, если вы хотите копировать фильмы из интернета, игры, с которыми отправитесь в путешествие. Для текстовых файлов, музыки это будет слишком большой объем накопителя. При этом выглядеть устройство будет по-прежнему очень компактно. Вот примеры таких носителей вместе со стоимостью:

  • Intenso Ultra Line 128GB – от 1800 рублей;
  • Sandisk Ultra Fit 128GB – от 2100 рублей;
  • Sandisk Cruzer Blade 128GB – от 1300 рублей;
  • CnMemory Spaceloop XL (256 GB) – от 2000 рублей;
  • Patriot Supersonic Mega (512 GB) – 2500 рублей.

Самая быстрая

Еще один важный параметр накопителя – скорость передачи данных. Все модели проходят обязательное тестирование на заводе и на упаковке должна быть указана величина в Мб/с. Скоростные флешки выносят этот показатель на упаковку, потому что это их преимущество. Если вы нигде не можете найти данный параметр, значит, он низкий и компания не хочет его открывать. Ниже будет представлен небольшой ТОП, какая флешка самая надежная и быстрая:

Название

Соотношение скорости записи/чтения в %

Sandisk Extreme USB 3.0

76

ADATA DashDrive UV128

36

Transcend JetFlash 780

35

Transcend JetFlash 760

22

Kingston DataTraveler G4

20

Silicon Power Marvel M01

18

Transcend JetFlash 790

18

Самые надежные

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

Ниже представлен рейтинг надежных и проверенных моделей на основе положительных отзывов покупателей:

  1. Transcend JetFlash 700. Накопитель с очень простым дизайном из пластика. Выбрать можно вариант с интерфейсом 2.0 и 3.0 (USB). Выбрать стоит эту модель, если нужна хорошая производительность без переплаты за оформление.
  2. Transcend JetFlash 780. Это модель отличается другим устройством ячеек памяти, что обеспечивает более высокую скорость обработки данных.
  3. Kingston DataTraveler 100 GЗ. Простая и практичная модель с раздвижным корпусом из пластика.
  4. Transcend JetFlash З50. Очень маленькая и удобная флешка для работы или учебы.
  5. Kingston DataTraveler G4. Удобная система крепления, можно повесить на ключи, чтобы не потерять.

Odin NAND Erase Explained

So, what does Nand Erase in Odin mean? If you have been into flashing custom ROMs on your Android device, you must be familiar with the term ‘nandroid‘ and ‘nandroid backup‘. The nandroid utility present on custom recoveries like TWRP gives the user an option to create a backup of all partitions and structured directories on a device where the following data are stored.

OEM-specific Partitions

  • datadata (Samsung devices)
  • wimax (Samsung devices)
  • efs (Samsung devices)
  • preload (Samsung devices)
  • .cust_backup (Huawei devices)
  • flexrom (Acer devices)
  • mmcblk0_start (Acer devices)
  • custpack (Alcatel devices)
  • mobile_info (Alcatel devices)
  • appslog (HTC and Sony devices)
  • uboot (MTK based devices)

So, when you create a nandroid backup through Recovery Mode or standalone scripts, the nandroid utility creates an exact mirror of everything present on your Android device. When you restore the backup, all the partitions are restored to the exact condition they were at the time of backup.

The reason why I listed the partitions on Android devices is to explain the meaning of NAND when it’s mentioned in the context of Samsung devices. When you erase NAND on a Samsung device, you wipe everything including boot, kernel, recovery, system, data, cache, and EFS partitions. When all these things are erased from your device, it’s left with nothing except the Download or Odin Mode and the hardware.

Having performed a NAND Erase, your Samsung Galaxy phone or tablet won’t boot at all. and if you don’t know how to recover your phone or about a “nand erase all fix”, your costly device will become unusable. Below, we’ll see how to install a Samsung firmware with Nand Erase and Re-partition options enabled.

The common practice during flashing a stock Samsung firmware using Odin involves just adding the AP, BL, CP, and CSC or HOME_CSC files to the appropriate fields and hit the Start button. By default, the ‘Auto Reboot‘ and ‘F. Reset Time‘ options are checked by default. You aren’t supposed to play with options like Nand Erase or Nand Erase All, Re-Partition, Flash Lock and Device info at all during a normal firmware flash.

Should You Check Re-Partition in Odin?

Well, that depends on the situation. As I said above, you don’t need to do that in normal circumstances. Usually, all Samsung firmware have a PIT file inside the CSC file. When you click the PIT tab in Odin, you’ll get the following warning.

Samsung Odin3 PIT tab

Suppose you purchased a 512GB variant of the Galaxy S10. And, after installing a firmware you’re shocked to see that your phone’s storage is reduced to 128GB. It’s because of PIT corruption or flashing the PIT meant for the 128GB model on the 512GB model.

In case your device’s partition table has corrupted because of a bad firmware flash or any other reason, you can fix your Samsung phone or tablet using the Re-Partition option. You should check the Re-Partition option in Odin only if have to flash a PIT (Partition Information Table) file your Samsung. Make sure that you have the correct PIT file.

Moreover, you aren’t supposed to flash only the PIT file. You must flash a PIT along with the 4 firmware binaries, namely AP, BL, CP, and CSC. Also, you must enable Re-Partition in Odin’s PIT tab. In my case, I am flashing a PIT file on my Galaxy S9+.

Odin PIT and Re-partition options

1.7. Управление плохими блоками

Разработчики NAND микросхем предлагают использовать следующие схемы управления плохими блоками:

  • Пропуск плохих блоков
  • Использование запасной области

Также к методам управления плохими блоками иногда относят использование коррекции ошибок (ECC). Необходимо отметить, что использование коррекции одиночных ошибок не избавляет от множественных ошибок и все равно вынуждает использовать одну из приведенных выше схем. Кроме этого, большинство NAND микросхем имеют гарантировано бессбойную область, в которой не появляются плохие блоки. Бессбойная область, как правило, располагается в начале микросхемы.

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

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

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

1.5. Образ NAND и двоичный образ

Вы можете столкнуться с двумя вариантами образа для записи:

  1. Двоичный файл не разбитый на страницы и без запасной области.
    Такой вариант возможен если вы — разработчик устройства с использованием NAND или получили такой файл от разработчика. Такой образ подходит для записи в микросхемы со страницами любого объема и любым распределением запасной области, только нужно знать каким методом будет формироваться запасная область.
  2. Образ, считанный из другой микросхемы (образца), содержащий запасную область с разметкой плохих блоков, служебной информацией и контрольными кодами.
    Такой образ можно записать только в микросхему с точно такими же размерами страниц и блоков.

Если ваш случай — первый, и вы — разработчик, то вы наверняка имеете всю необходимую информацию. Перед записью нужно преобразовать исходный двоичный файл в образ NAND. Смотрите раздел «»

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

Ячейка памяти с одним транзистором.

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

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

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

Таким образом получается своеобразная элементарная ячейка памяти, способная сохранять один информационный бит

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

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

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

Чтобы удалить заряд с плавающего затвора (выполнить стирания ячейки памяти) на управляющий затвор подается высокое отрицательное напряжение (около 9 В), а на область истока подается положительное напряжение. Это приводит к тому, что электроны туннелируют из области плавающего затвора в область истока. Таким образом происходит квантовое туннелирование Фаулера — Нордхейма (Fowler — Nordheim).

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

Так как при создании массива памяти, каждая ячейка памяти (то есть транзистор) подключается к двум перпендикулярным шинам. Управляющие затворы подключаются к шине, которую называют линией слов (Word Line), а стоки соединяют с шиной, ее называют битовой линией (Bit Line). В следствии чего в схеме находится высокое напряжение и при записи методом инжекции горячих электронов все линии — слов, битов и истоков нужно разместить на большом расстоянии друг от друга. Это даст нужный уровень изоляции, но отразится на ограничении объема флэш-памяти.

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

Тип карты памяти[править]

Существуют несколько типов карт памяти, используемых в сотовых телефонах.
MultiMediaCard (MMC): карточка в формате MMC имеет небольшой размер — 24х32х1,4 мм. Разработана совместно компаниями SanDisk и Siemens. MMC содержит контроллер памяти и обладает высокой совместимостью с устройствами самого различного типа.

Reduced-Size MultiMediaCard (RS-MMC): карта памяти, которая вдвое короче стандартной карты MMC. Ее размеры составляют 24x18x1,4 мм, а вес — около 6 г, все остальные характеристики не отличаются от MMC. Для обеспечения совместимости с существующим стандартом MMC при использовании карт RS-MMC нужен адаптер.

Secure Digital Card (SD Card): поддерживается фирмами SanDisk, Panasoniс и Toshiba. По размерам и характеристикам очень похож на MMC, только чуть толще. Основное отличие от MMC — технология защиты авторских прав: карта имеет криптозащиту от несанкционированного копирования, повышенную защиту информации от случайного стирания или разрушения.

Mini Secure Digital Card (miniSD): флэш-карты нового стандарта miniSD. От стандартных карт Secure Digital (32х24х2.1 мм) отличаются меньшими размерами 21.5х20х1.4 мм. Для обеспечения работы карты в устройствах, оснащенных обычным SD-слотом, предусмотрен адаптер.

Micro Secure Digital Card (microSD): карты памяти microSD являются суперкомпактными съемными устройствами флэш-памяти. Их размеры составляют 11х15х1 мм. Карты данного формата используются в первую очередь в мобильных телефонах, так как благодаря своей компактности позволяют существенно расширить память телефона, не увеличивая при этом его размеры. Карты microSD полностью совместимы с устройствами, работающими на TransFlash (T-Flash) картах. Предполагается, что формат TransFlash будет полностью вытеснен форматом microSD. Для обеспечения совместимости карт T-Flash и microSD с устройствами, поддерживающими стандарт SD, выпускаются специальные SD-адаптеры.

Memory Stick Duo: данный стандарт памяти разрабатывался и поддерживается компанией Sony. Корпус достаточно прочный. На данный момент — это самая дорогая память из всех представленных. Memory Stick Duo был разработан на базе широко распространенного стандарта Memory Stick от той же Sony, отличается малыми размерами (20х31х1.6 мм.).

DV-RS-MMC (Dual Voltage Reduced-Size MultiMediaCards): карты памяти DV-RS-MMC с двойным питанием (1,8 и 3,3 В) отличаются пониженным электропотреблением, что позволит работать мобильному телефону немного дольше. Размеры у этой карты совпадают с размерами RS-MMC, 24x18x1.4 мм.

Causes of Satellite A60: I need WinXP driver for the PCI Flash Memory device?

Если при обновлении драйвера возникает проблема с вашим компьютером, существует несколько способов устранения и диагностики корня его проблемы. Помимо получения информации с помощью приложения Microsoft Windows 10, вы также можете проверить его веб-сайт, чтобы получить еще более подробную информацию о том, как исправить проблему.

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

  1. Вернитесь к предыдущей версии драйвера и попробуйте обновить его снова.
  2. Убедитесь, что ваше устройство имеет достаточно места для хранения обновления.
  3. Проверьте другие драйверы, если они также нуждаются в обновлении.
  4. Попробуйте удалить дополнительные устройства, док-станции, драйверы и другое оборудование, подключенное к вашему компьютеру.
  5. Отключите все сторонние программные обеспечения безопасности.
  6. Устраните любые ошибки жесткого диска перед обновлением драйверов.
  7. Перезагрузите компьютер и попробуйте снова обновить драйвер.

Should You Select Re-Partition in Odin?

The answer is it depends. If you are performing a standard firmware, you don’t have to perform re-partitioning. When it comes to Samsung’s firmware, the PIT (Partition Information Table) file is stored under the CSC file. When you click on the PIT tab on the Odin tool, you will get the said warning that says “Do not use this tab. This tab is for engineers. Your device will be changed with the pit in CSC file”.

To simply it, if your phone has 512GB of storage. However, if you install a stock firmware with the wrong PIT file of 256GB, your phone will be flashed with 256GB storage and the rest of the memory will be corrupted. Here, re-partitioning could solve the problem where you download the right firmware with the right PIT according to your phone and use the same flashing method as you would on Odin to install the firmware and rectify the issue. Also, go to the PIT tab on Odin to enable it when adding the right PIT file so that the whole process is complete without any glitch.

Преимущества и недостатки

Сравнение размеров 3,5-дюймовой дискеты и USB-флеш-накопителя

Картридер имеет вид флешки и позволяет читать карты памяти различных форматов

Преимущества
  • Малый вес, бесшумность работы и портативность.
  • Универсальность: современные компьютеры, телевизоры, DVD- и медиа-проигрыватели имеют USB-порты.
  • Низкое энергопотребление (благодаря отсутствию механических систем, в отличие от CD, DVD, BD и жёстких дисков)
  • Работоспособность в широком диапазоне температур.
  • Более устойчивы к механическим воздействиям (вибрации и ударам), а также к воздействию магнитных полей по сравнению с жёсткими дисками.
  • Не подвержены воздействию царапин и пыли, которые были проблемой для оптических носителей и дискет.
  • Способны сравнительно длительно хранить данные в автономном режиме (не требуя питания), от единиц до 10 лет. В худшем случае (дешевый накопитель с большим износом) хранение данных обеспечивается в течение 3—5 месяцев.
Недостатки
  • Ограниченное число циклов записи-стирания перед выходом из строя. Чипы памяти, сделанные по технологии MLC (большинство), чаще всего выдерживают не более 5000 циклов перезаписи. Кроме этого ограничен ресурс USB-коннектора — около 1500 подключений
  • Скорость записи и чтения ограничены пропускной способностью USB, что особенно сильно проявляется для USB 2.0 (не более 35 МБ/с)
  • В отличие от компакт-дисков, имеют недостатки, свойственные любой электронике:
    • чувствительны к электростатическому разряду — обычное явление в быту, особенно зимой;
    • чувствительны к радиации.
  • Несимметричность интерфейса при симметрично выглядящем разъёме, отчего подключить сразу получается не всегда. Недостаток многих разъёмов, проявившийся для USB вообще, а для флешек особенно — из-за частого подключения-отключения. Похожий недостаток у ключей, устранённый симметричной бородкой. Однако данная проблема в будущем будет устранена благодаря симметричному разъему USB Type-C.

1.2. Разновидности микросхем NAND FLASH

Первоначально NAND FLASH были только одного типа: обычные (RAW) NAND. И на сегодняшний день эти микросхемы составляют большинство микросхем типа NAND. Однако производители микросхем, быстро начали расширять возможности применения NAND. Это стало приводить к появлению новых разновидностей NAND. Наиболее распространенные на сегодня разновидности NAND и их основные отличия сведены в таблицу:

Класс микросхем NAND Интерфейс Исправление ошибок (ECC) Управление плохими блоками
RAW NAND(обычные NAND) Паралельный / NAND Выполняет внешнее устройство Выполняет внешнее устройство
beNAND Реализовано внутри микросхемы (*)
Serial NAND / SPI NAND SPI
OneNAND Паралельный / FLASH
eMMC MMC Реализовано внутри микросхемы

Примечание: * У некоторых видов микросхем внутренее исправление ошибок может быть отключено.

Основное отличие разных видов микросхем NAND сводится к различиям в трех факторах:

  1. Физический интерфейс и система команд
  2. Кто занимается генерацией кодов исправления ошибок: внешнее устройство (host) или сама микросхема
  3. Кто должен управлять плохими блоками: внешнее устройство (host) или сама микросхема

В статье ниже описаны обычные микросхемы NAND или RAW NAND.

Микросхемы со встроенной генерацией кодов исправления ошибок (BENAND в терминологии Toshiba) отличаются от обычных NAND, только тем что сами исправляют некоторое количество одиночных ошибок, что несколько упрощает работу с ними: в большинстве случаев они могут быть считаны и записаны как обычная микросхема FLASH, однако если ошибок на странице окажется много весь блок содержащий страницу должен быть помечен как «плохой». Поэтому все что здесь написано о плохих блоках в полной мере относится и к ним.

О микросхемах c NAND с последовательным интерфейсом более подробно написано здесь.

О микросхемах eMMC NAND более подробно можно почитать в этой статье.

What is Odin NAND Erase?

To simplify it, if you have ever installed a custom ROM or mod in your Samsung or any Android smartphone, you must be knowing Nandroid Backup which is offered by TWRP custom recovery.

Here, Nandroid Backup takes an exact mirror copy of your device which includes everything stored on your device including the Android OS the exact copy of various sections and partitions that EFA, cache, data, system, recovery, boot, kernel and others. Here, once you have removed all these partitions on your phone, you are left with nothing but a phone that won’t turn on and thus, you need to install stock firmware to do it.

Note that you can perform a NAND erase on your device but it will turn on and therefore, you will still a firmware to install. You can use Odin to install and firmware sourced from another tool called Frija firmware download tool.

When you perform a flash without NAND clean, you encounter certain problems. Since Samsung has a different firmware build for each model based on country, downloading the right firmware is crucial since a ROM used in country ‘X’ will encounter problems if you install it in the country ‘Y’. Frija helps find the right ROM for your device and Odin helps in flashing the device with the NAND Erase feature.

Подготовка устройства

Встроенная NAND память не подходит для нашей задумки — слишком маленькая. Хранить систему на вставляемых в хранилище дисках желания нет совсем. Получится смешивание мозгов устройства с периферийными составляющими. А если я захочу диск поменять или он сломается?

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

Для USB устройств было решено взять отдельный USB Network Hub, все равно одного слота не хватает 🙂

Дополнительное железо

Для доступа к мозгам извне на плате есть последовательный UART порт. Вместо того, чтобы перепрошивать ROM специальными программаторами, можно подключиться к контактам на плате и через специальный преобразователь общаться с устройством через эмулятор терминала.

Тема UART во встраиваемых устройствах довольно обширна, кому интересно, можете прочесть хорошую обзорную статью: https://geektimes.ru/post/253786/

Были выбраны и куплены следующие комплектующие:

  • Преобразователь USB — UART на PL2303HX
  • Провода «мама-мама» 20см, 20 шт.
  • Вилка штыревая PLS-40 (DS1021-1×40), прямая черная
  • SanDisk Ultra Fit USB 3.0 16GB

Подключение преобразователя

Распиновка такая (в обратном порядке): { RXD, (пусто), 3.3v, GND, TXD }

Теперь для доступа к встроенному микрокомпьютеру не надо будет доставать плату — провода уже выведены, останется снять переднюю крышку сетевого хранилища.

Так как это последовательный порт, то и соединяем последовательно.

На этом вся механическая работа с оборудованием закончена.

Пробный запуск

Для общения по протоколу UART нам понадобятся:
kwboot — утилита для запуска загрузчика на устройстве «на лету»
minicom — эмулятор терминала для UART протокола

Запускаем minicom на хост системе:

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

Если интересно, вот полный вывод:https://pastebin.com/6SRA6Qgq

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector