Иправления

This commit is contained in:
2026-05-06 12:58:29 +03:00
parent b793571681
commit 7001aeb070
8 changed files with 74 additions and 52 deletions

Binary file not shown.

View File

@@ -1,9 +1,11 @@
// build.rs
fn main() { fn main() {
#[cfg(windows)] #[cfg(windows)]
{ {
let mut res = winres::WindowsResource::new(); if let Err(e) = winres::WindowsResource::new()
res.set_icon("assets/logo.ico"); .set_icon("assets/logo.ico")
res.compile().unwrap(); .compile()
{
eprintln!("warning: не удалось встроить иконку: {e}");
}
} }
} }

View File

@@ -1,4 +1,4 @@
.PHONY: all clean build-mac build-windows build-linux build-linux-musl package help quick package-single icons favicon .PHONY: all clean build-mac build-windows build-linux build-linux-musl package help quick package-single setup icons favicon windows-icon
# Название проекта # Название проекта
PROJECT_NAME := ae_anons PROJECT_NAME := ae_anons
@@ -26,6 +26,11 @@ TIMING_FILE := .build_timing
# Определение команды ImageMagick (v6 = convert, v7 = magick) # Определение команды ImageMagick (v6 = convert, v7 = magick)
IMAGEMAGICK := $(shell command -v magick 2>/dev/null || command -v convert 2>/dev/null || echo "false") IMAGEMAGICK := $(shell command -v magick 2>/dev/null || command -v convert 2>/dev/null || echo "false")
# Параметры Font Awesome
FONTAWESOME_VERSION := 6.4.0
FONTAWESOME_CSS_URL := https://cdnjs.cloudflare.com/ajax/libs/font-awesome/$(FONTAWESOME_VERSION)/css/all.min.css
FONTAWESOME_FONTS_URL := https://cdnjs.cloudflare.com/ajax/libs/font-awesome/$(FONTAWESOME_VERSION)/webfonts
help: help:
@echo "$(BOLD)$(CYAN)AE Anons - Makefile команды$(NC)" @echo "$(BOLD)$(CYAN)AE Anons - Makefile команды$(NC)"
@echo "" @echo ""
@@ -44,9 +49,8 @@ help:
@echo " make package - Создать пакеты для всех платформ" @echo " make package - Создать пакеты для всех платформ"
@echo " make package-single - Создать пакет для текущей платформы" @echo " make package-single - Создать пакет для текущей платформы"
@echo "" @echo ""
@echo "$(GREEN)Иконки:$(NC)" @echo "$(GREEN)Подготовка ресурсов:$(NC)"
@echo " make icons - Создать все иконки (logo.ico, logo.icns, favicon.ico)" @echo " make setup - Загрузить и подготовить все статические ресурсы"
@echo " make favicon - Создать только favicon.ico"
@echo "" @echo ""
@echo "$(GREEN)Очистка:$(NC)" @echo "$(GREEN)Очистка:$(NC)"
@echo " make clean - Очистить все сборки" @echo " make clean - Очистить все сборки"
@@ -99,48 +103,64 @@ define print_timing_summary
endef endef
# ============================================ # ============================================
# ИКОНКИ # ПОДГОТОВКА СТАТИЧЕСКИХ РЕСУРСОВ
# ============================================ # ============================================
icons: favicon setup: setup-fontawesome icons
@echo "$(GREEN)Создание иконок для Windows и macOS...$(NC)" @echo "$(GREEN)Все статические ресурсы подготовлены$(NC)"
# Скачивает и подготавливает Font Awesome, если его ещё нет
setup-fontawesome:
@echo "$(GREEN)📦 Проверка Font Awesome...$(NC)"
@if [ ! -f src/static/fontawesome/all.min.css ]; then \
echo "$(YELLOW) Скачивание all.min.css и шрифтов...$(NC)"; \
mkdir -p src/static/fontawesome/webfonts; \
curl -sL -o src/static/fontawesome/all.min.css $(FONTAWESOME_CSS_URL); \
curl -sL -o src/static/fontawesome/webfonts/fa-solid-900.woff2 $(FONTAWESOME_FONTS_URL)/fa-solid-900.woff2; \
curl -sL -o src/static/fontawesome/webfonts/fa-regular-400.woff2 $(FONTAWESOME_FONTS_URL)/fa-regular-400.woff2; \
curl -sL -o src/static/fontawesome/webfonts/fa-brands-400.woff2 $(FONTAWESOME_FONTS_URL)/fa-brands-400.woff2; \
echo "$(GREEN) ✓ Font Awesome скачан$(NC)"; \
else \
echo "$(GREEN) ✓ Font Awesome уже существует$(NC)"; \
fi
@echo "$(GREEN) Исправление путей в all.min.css...$(NC)"
@sed -i '' 's|../webfonts/|/static/fontawesome/webfonts/|g' src/static/fontawesome/all.min.css
@echo "$(GREEN) ✓ Пути исправлены$(NC)"
# Генерация иконок (favicon, .ico, .icns) из логотипа
icons:
@echo "$(GREEN)🎨 Генерация иконок...$(NC)"
@if [ "$(IMAGEMAGICK)" = "false" ]; then \ @if [ "$(IMAGEMAGICK)" = "false" ]; then \
echo "$(RED)❌ ImageMagick не установлен. Установите: brew install imagemagick$(NC)"; \ echo "$(RED)❌ ImageMagick не установлен. Установите: brew install imagemagick$(NC)"; \
exit 1; \ exit 1; \
fi fi
# favicon.ico
@$(IMAGEMAGICK) assets/logo.png -define icon:auto-resize=48,32,16 src/static/favicon.ico
@echo "$(GREEN) ✓ src/static/favicon.ico$(NC)"
# Windows .ico # Windows .ico
@$(IMAGEMAGICK) assets/logo.png -define icon:auto-resize=256,128,64,48,32,16 assets/logo.ico @$(IMAGEMAGICK) assets/logo.png -define icon:auto-resize=256,128,64,48,32,16 assets/logo.ico
@echo "$(GREEN) ✓ assets/logo.ico$(NC)" @echo "$(GREEN) ✓ assets/logo.ico$(NC)"
# macOS .icns # macOS .icns
@mkdir -p assets/icon.iconset @mkdir -p assets/icon.iconset
@sips -z 16 16 assets/logo.png --out assets/icon.iconset/icon_16x16.png 2>/dev/null @sips -z 16 16 assets/logo.png --out assets/icon.iconset/icon_16x16.png 2>/dev/null || true
@sips -z 32 32 assets/logo.png --out assets/icon.iconset/icon_16x16@2x.png 2>/dev/null @sips -z 32 32 assets/logo.png --out assets/icon.iconset/icon_16x16@2x.png 2>/dev/null || true
@sips -z 32 32 assets/logo.png --out assets/icon.iconset/icon_32x32.png 2>/dev/null @sips -z 32 32 assets/logo.png --out assets/icon.iconset/icon_32x32.png 2>/dev/null || true
@sips -z 64 64 assets/logo.png --out assets/icon.iconset/icon_32x32@2x.png 2>/dev/null @sips -z 64 64 assets/logo.png --out assets/icon.iconset/icon_32x32@2x.png 2>/dev/null || true
@sips -z 128 128 assets/logo.png --out assets/icon.iconset/icon_128x128.png 2>/dev/null @sips -z 128 128 assets/logo.png --out assets/icon.iconset/icon_128x128.png 2>/dev/null || true
@sips -z 256 256 assets/logo.png --out assets/icon.iconset/icon_128x128@2x.png 2>/dev/null @sips -z 256 256 assets/logo.png --out assets/icon.iconset/icon_128x128@2x.png 2>/dev/null || true
@sips -z 256 256 assets/logo.png --out assets/icon.iconset/icon_256x256.png 2>/dev/null @sips -z 256 256 assets/logo.png --out assets/icon.iconset/icon_256x256.png 2>/dev/null || true
@sips -z 512 512 assets/logo.png --out assets/icon.iconset/icon_256x256@2x.png 2>/dev/null @sips -z 512 512 assets/logo.png --out assets/icon.iconset/icon_256x256@2x.png 2>/dev/null || true
@sips -z 512 512 assets/logo.png --out assets/icon.iconset/icon_512x512.png 2>/dev/null @sips -z 512 512 assets/logo.png --out assets/icon.iconset/icon_512x512.png 2>/dev/null || true
@iconutil -c icns assets/icon.iconset -o assets/logo.icns 2>/dev/null @iconutil -c icns assets/icon.iconset -o assets/logo.icns 2>/dev/null || true
@rm -rf assets/icon.iconset @rm -rf assets/icon.iconset
@echo "$(GREEN) ✓ assets/logo.icns$(NC)" @echo "$(GREEN) ✓ assets/logo.icns$(NC)"
favicon:
@echo "$(GREEN)Создание favicon.ico...$(NC)"
@if [ "$(IMAGEMAGICK)" = "false" ]; then \
echo "$(RED)❌ ImageMagick не установлен. Установите: brew install imagemagick$(NC)"; \
exit 1; \
fi
@$(IMAGEMAGICK) assets/logo.png -define icon:auto-resize=48,32,16 src/static/favicon.ico
@echo "$(GREEN) ✓ src/static/favicon.ico$(NC)"
# ============================================ # ============================================
# ИКОНКА ДЛЯ WINDOWS # ИКОНКА ДЛЯ WINDOWS .EXE (доп. проверка)
# ============================================ # ============================================
windows-icon: windows-icon:
@if [ ! -f assets/logo.ico ]; then \ @if [ ! -f assets/logo.ico ]; then \
echo "$(YELLOW)logo.ico не найден, запускаю генерацию...$(NC)"; \ echo "$(YELLOW)logo.ico не найден, запускаю генерацию иконок...$(NC)"; \
$(MAKE) icons; \ $(MAKE) icons; \
fi fi
@@ -167,7 +187,7 @@ endif
# БЫСТРАЯ СБОРКА (ТЕКУЩАЯ ПЛАТФОРМА) # БЫСТРАЯ СБОРКА (ТЕКУЩАЯ ПЛАТФОРМА)
# ============================================ # ============================================
quick: detect-platform quick: setup detect-platform
quick-release: quick-release:
ifeq ($(UNAME_S),Darwin) ifeq ($(UNAME_S),Darwin)
@@ -184,7 +204,7 @@ else
@exit 1 @exit 1
endif endif
quick-mac: quick-mac: setup
@rm -f $(TIMING_FILE) @rm -f $(TIMING_FILE)
@$(call measure_time,"🍎 macOS $(UNAME_M)",cargo build --release) @$(call measure_time,"🍎 macOS $(UNAME_M)",cargo build --release)
@mkdir -p $(BINARIES_DIR)/$(PROJECT_NAME)-v$(VERSION)-macos-$(UNAME_M) @mkdir -p $(BINARIES_DIR)/$(PROJECT_NAME)-v$(VERSION)-macos-$(UNAME_M)
@@ -193,7 +213,7 @@ quick-mac:
@echo "$(GREEN)✅ Пакет: $(BINARIES_DIR)/$(PROJECT_NAME)-v$(VERSION)-macos-$(UNAME_M)/$(NC)" @echo "$(GREEN)✅ Пакет: $(BINARIES_DIR)/$(PROJECT_NAME)-v$(VERSION)-macos-$(UNAME_M)/$(NC)"
@$(call print_timing_summary) @$(call print_timing_summary)
quick-linux: quick-linux: setup
@rm -f $(TIMING_FILE) @rm -f $(TIMING_FILE)
@$(call measure_time,"🐧 Linux $(UNAME_M)",cargo build --target x86_64-unknown-linux-musl --release) @$(call measure_time,"🐧 Linux $(UNAME_M)",cargo build --target x86_64-unknown-linux-musl --release)
@mkdir -p $(BINARIES_DIR)/$(PROJECT_NAME)-v$(VERSION)-linux-$(UNAME_M) @mkdir -p $(BINARIES_DIR)/$(PROJECT_NAME)-v$(VERSION)-linux-$(UNAME_M)
@@ -202,7 +222,7 @@ quick-linux:
@echo "$(GREEN)✅ Пакет: $(BINARIES_DIR)/$(PROJECT_NAME)-v$(VERSION)-linux-$(UNAME_M)/$(NC)" @echo "$(GREEN)✅ Пакет: $(BINARIES_DIR)/$(PROJECT_NAME)-v$(VERSION)-linux-$(UNAME_M)/$(NC)"
@$(call print_timing_summary) @$(call print_timing_summary)
quick-windows: quick-windows: setup windows-icon
@rm -f $(TIMING_FILE) @rm -f $(TIMING_FILE)
@if command -v x86_64-w64-mingw32-gcc >/dev/null 2>&1; then \ @if command -v x86_64-w64-mingw32-gcc >/dev/null 2>&1; then \
$(call measure_time,"🪟 Windows x64",cargo build --target x86_64-pc-windows-gnu --release); \ $(call measure_time,"🪟 Windows x64",cargo build --target x86_64-pc-windows-gnu --release); \
@@ -221,19 +241,19 @@ quick-windows:
# СБОРКА ПОД КОНКРЕТНЫЕ ПЛАТФОРМЫ # СБОРКА ПОД КОНКРЕТНЫЕ ПЛАТФОРМЫ
# ============================================ # ============================================
build-mac: build-mac: setup
@echo "$(GREEN)🍎 Сборка для macOS...$(NC)" @echo "$(GREEN)🍎 Сборка для macOS...$(NC)"
@time cargo build --release @time cargo build --release
build-windows: windows-icon build-windows: setup windows-icon
@echo "$(GREEN)🪟 Сборка для Windows x86_64...$(NC)" @echo "$(GREEN)🪟 Сборка для Windows x86_64...$(NC)"
@time cargo build --target x86_64-pc-windows-gnu --release @time cargo build --target x86_64-pc-windows-gnu --release
build-linux: build-linux: setup
@echo "$(GREEN)🐧 Сборка для Linux x86_64 (GNU)...$(NC)" @echo "$(GREEN)🐧 Сборка для Linux x86_64 (GNU)...$(NC)"
@time cargo build --target x86_64-unknown-linux-gnu --release @time cargo build --target x86_64-unknown-linux-gnu --release
build-linux-musl: build-linux-musl: setup
@echo "$(GREEN)🐧 Сборка для Linux x86_64 (musl static)...$(NC)" @echo "$(GREEN)🐧 Сборка для Linux x86_64 (musl static)...$(NC)"
@time cargo build --target x86_64-unknown-linux-musl --release @time cargo build --target x86_64-unknown-linux-musl --release
@@ -241,7 +261,7 @@ build-linux-musl:
# СБОРКА ВСЕХ ПЛАТФОРМ С ТАЙМИНГОМ # СБОРКА ВСЕХ ПЛАТФОРМ С ТАЙМИНГОМ
# ============================================ # ============================================
build-all: build-all: setup
@rm -f $(TIMING_FILE) @rm -f $(TIMING_FILE)
@echo "$(BOLD)$(CYAN)🚀 Сборка для всех платформ...$(NC)" @echo "$(BOLD)$(CYAN)🚀 Сборка для всех платформ...$(NC)"
@echo "" @echo ""

View File

@@ -6793,7 +6793,7 @@
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
font-display: block; font-display: block;
src: url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-brands-400.ttf) format("truetype") src: url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-brands-400.ttf) format("truetype")
} }
.fa-brands, .fa-brands,
@@ -8713,7 +8713,7 @@
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
font-display: block; font-display: block;
src: url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-regular-400.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-regular-400.ttf) format("truetype") src: url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-regular-400.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-regular-400.ttf) format("truetype")
} }
.fa-regular, .fa-regular,
@@ -8732,7 +8732,7 @@
font-style: normal; font-style: normal;
font-weight: 900; font-weight: 900;
font-display: block; font-display: block;
src: url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-solid-900.ttf) format("truetype") src: url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-solid-900.ttf) format("truetype")
} }
.fa-solid, .fa-solid,
@@ -8744,45 +8744,45 @@
font-family: "Font Awesome 5 Brands"; font-family: "Font Awesome 5 Brands";
font-display: block; font-display: block;
font-weight: 400; font-weight: 400;
src: url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-brands-400.ttf) format("truetype") src: url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-brands-400.ttf) format("truetype")
} }
@font-face { @font-face {
font-family: "Font Awesome 5 Free"; font-family: "Font Awesome 5 Free";
font-display: block; font-display: block;
font-weight: 900; font-weight: 900;
src: url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-solid-900.ttf) format("truetype") src: url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-solid-900.ttf) format("truetype")
} }
@font-face { @font-face {
font-family: "Font Awesome 5 Free"; font-family: "Font Awesome 5 Free";
font-display: block; font-display: block;
font-weight: 400; font-weight: 400;
src: url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-regular-400.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-regular-400.ttf) format("truetype") src: url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-regular-400.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-regular-400.ttf) format("truetype")
} }
@font-face { @font-face {
font-family: "FontAwesome"; font-family: "FontAwesome";
font-display: block; font-display: block;
src: url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-solid-900.ttf) format("truetype") src: url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-solid-900.ttf) format("truetype")
} }
@font-face { @font-face {
font-family: "FontAwesome"; font-family: "FontAwesome";
font-display: block; font-display: block;
src: url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-brands-400.ttf) format("truetype") src: url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-brands-400.ttf) format("truetype")
} }
@font-face { @font-face {
font-family: "FontAwesome"; font-family: "FontAwesome";
font-display: block; font-display: block;
src: url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-regular-400.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-regular-400.ttf) format("truetype"); src: url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-regular-400.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-regular-400.ttf) format("truetype");
unicode-range: u+f003, u+f006, u+f014, u+f016-f017, u+f01a-f01b, u+f01d, u+f022, u+f03e, u+f044, u+f046, u+f05c-f05d, u+f06e, u+f070, u+f087-f088, u+f08a, u+f094, u+f096-f097, u+f09d, u+f0a0, u+f0a2, u+f0a4-f0a7, u+f0c5, u+f0c7, u+f0e5-f0e6, u+f0eb, u+f0f6-f0f8, u+f10c, u+f114-f115, u+f118-f11a, u+f11c-f11d, u+f133, u+f147, u+f14e, u+f150-f152, u+f185-f186, u+f18e, u+f190-f192, u+f196, u+f1c1-f1c9, u+f1d9, u+f1db, u+f1e3, u+f1ea, u+f1f7, u+f1f9, u+f20a, u+f247-f248, u+f24a, u+f24d, u+f255-f25b, u+f25d, u+f271-f274, u+f278, u+f27b, u+f28c, u+f28e, u+f29c, u+f2b5, u+f2b7, u+f2ba, u+f2bc, u+f2be, u+f2c0-f2c1, u+f2c3, u+f2d0, u+f2d2, u+f2d4, u+f2dc unicode-range: u+f003, u+f006, u+f014, u+f016-f017, u+f01a-f01b, u+f01d, u+f022, u+f03e, u+f044, u+f046, u+f05c-f05d, u+f06e, u+f070, u+f087-f088, u+f08a, u+f094, u+f096-f097, u+f09d, u+f0a0, u+f0a2, u+f0a4-f0a7, u+f0c5, u+f0c7, u+f0e5-f0e6, u+f0eb, u+f0f6-f0f8, u+f10c, u+f114-f115, u+f118-f11a, u+f11c-f11d, u+f133, u+f147, u+f14e, u+f150-f152, u+f185-f186, u+f18e, u+f190-f192, u+f196, u+f1c1-f1c9, u+f1d9, u+f1db, u+f1e3, u+f1ea, u+f1f7, u+f1f9, u+f20a, u+f247-f248, u+f24a, u+f24d, u+f255-f25b, u+f25d, u+f271-f274, u+f278, u+f27b, u+f28c, u+f28e, u+f29c, u+f2b5, u+f2b7, u+f2ba, u+f2bc, u+f2be, u+f2c0-f2c1, u+f2c3, u+f2d0, u+f2d2, u+f2d4, u+f2dc
} }
@font-face { @font-face {
font-family: "FontAwesome"; font-family: "FontAwesome";
font-display: block; font-display: block;
src: url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-v4compatibility.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-v4compatibility.ttf) format("truetype"); src: url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-v4compatibility.woff2) format("woff2"), url(/static/fontaweso/static/fontaweso/static/fontaweso/static/fontaweso/static/fontawesome/webfonts/fa-v4compatibility.ttf) format("truetype");
unicode-range: u+f041, u+f047, u+f065-f066, u+f07d-f07e, u+f080, u+f08b, u+f08e, u+f090, u+f09a, u+f0ac, u+f0ae, u+f0b2, u+f0d0, u+f0d6, u+f0e4, u+f0ec, u+f10a-f10b, u+f123, u+f13e, u+f148-f149, u+f14c, u+f156, u+f15e, u+f160-f161, u+f163, u+f175-f178, u+f195, u+f1f8, u+f219, u+f27a unicode-range: u+f041, u+f047, u+f065-f066, u+f07d-f07e, u+f080, u+f08b, u+f08e, u+f090, u+f09a, u+f0ac, u+f0ae, u+f0b2, u+f0d0, u+f0d6, u+f0e4, u+f0ec, u+f10a-f10b, u+f123, u+f13e, u+f148-f149, u+f14c, u+f156, u+f15e, u+f160-f161, u+f163, u+f175-f178, u+f195, u+f1f8, u+f219, u+f27a
} }