Skip to content

Commit 8927fe5

Browse files
committed
0.2
1 parent 538b37c commit 8927fe5

19 files changed

+44
-15
lines changed

.pio/build/.DS_Store

-6 KB
Binary file not shown.

.pio/build/esp12e/.DS_Store

-6 KB
Binary file not shown.

.pio/build/esp12e/.sconsign311.dblite

5.18 KB
Binary file not shown.

.pio/build/esp12e/firmware.bin

100 KB
Binary file not shown.

.pio/build/esp12e/firmware.elf

1.05 MB
Binary file not shown.

.pio/build/esp12e/idedata.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"build_type": "release", "env_name": "esp12e", "libsource_dirs": ["/Users/a1/Documents/PlatformIO/Projects/maestro-programmer/lib", "/Users/a1/Documents/PlatformIO/Projects/maestro-programmer/.pio/libdeps/esp12e", "/Users/a1/.platformio/lib", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries"], "defines": ["PLATFORMIO=60116", "ESP8266", "ARDUINO_ARCH_ESP8266", "ARDUINO_ESP8266_ESP12", "F_CPU=80000000L", "__ets__", "ICACHE_FLASH", "_GNU_SOURCE", "ARDUINO=10805", "ARDUINO_BOARD=\"PLATFORMIO_ESP12E\"", "ARDUINO_BOARD_ID=\"esp12e\"", "FLASHMODE_DIO", "LWIP_OPEN_SRC", "NONOSDK22x_190703=1", "TCP_MSS=536", "LWIP_FEATURES=1", "LWIP_IPV6=0", "VTABLES_IN_FLASH", "MMU_IRAM_SIZE=0x8000", "MMU_ICACHE_SIZE=0x8000"], "includes": {"build": ["/Users/a1/Documents/PlatformIO/Projects/maestro-programmer/include", "/Users/a1/Documents/PlatformIO/Projects/maestro-programmer/src", "/Users/a1/Documents/PlatformIO/Projects/maestro-programmer/.pio/libdeps/esp12e/WiFiManager", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266mDNS/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WebServer/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/DNSServer/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/tools/sdk/include", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/cores/esp8266", "/Users/a1/.platformio/packages/toolchain-xtensa/include", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/tools/sdk/lwip2/include", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/variants/nodemcu"], "compatlib": ["/Users/a1/Documents/PlatformIO/Projects/maestro-programmer/.pio/libdeps/esp12e/WiFiManager", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266mDNS/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WebServer/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/DNSServer/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/DNSServer/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WebServer/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266mDNS/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ArduinoOTA", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/EEPROM", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266AVRISP/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPUpdateServer/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266LLMNR", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266NetBIOS", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266SSDP", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266SdFat/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFiMesh/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266httpUpdate/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/Ethernet/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/FSTools", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/GDBStub/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/Hash/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/I2S/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/LittleFS/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/Netdump/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/SD/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/SDFS/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/SPI", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/SPISlave/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/Servo/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/SoftwareSerial/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/TFT_Touch_Shield_V2", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/Ticker/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/Wire", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/esp8266/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_Ethernet/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_PPP/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_enc28j60/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_w5100/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_w5500/src"], "toolchain": ["/Users/a1/.platformio/packages/toolchain-xtensa/xtensa-lx106-elf/include/c++/10.3.0", "/Users/a1/.platformio/packages/toolchain-xtensa/xtensa-lx106-elf/include/c++/10.3.0/xtensa-lx106-elf", "/Users/a1/.platformio/packages/toolchain-xtensa/lib/gcc/xtensa-lx106-elf/10.3.0/include", "/Users/a1/.platformio/packages/toolchain-xtensa/lib/gcc/xtensa-lx106-elf/10.3.0/include-fixed", "/Users/a1/.platformio/packages/toolchain-xtensa/xtensa-lx106-elf/include"]}, "cc_flags": ["-std=gnu17", "-Wpointer-arith", "-Wno-implicit-function-declaration", "-Wl,-EL", "-fno-inline-functions", "-nostdlib", "-Os", "-mlongcalls", "-mtext-section-literals", "-falign-functions=4", "-U__STRICT_ANSI__", "-ffunction-sections", "-fdata-sections", "-Wall", "-Werror=return-type", "-free", "-fipa-pta"], "cxx_flags": ["-fno-rtti", "-std=gnu++17", "-fno-exceptions", "-Os", "-mlongcalls", "-mtext-section-literals", "-falign-functions=4", "-U__STRICT_ANSI__", "-ffunction-sections", "-fdata-sections", "-Wall", "-Werror=return-type", "-free", "-fipa-pta"], "cc_path": "/Users/a1/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-gcc", "cxx_path": "/Users/a1/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++", "gdb_path": "/Users/a1/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-gdb", "prog_path": "/Users/a1/Documents/PlatformIO/Projects/maestro-programmer/.pio/build/esp12e/firmware.elf", "svd_path": null, "compiler_type": "gcc", "targets": [{"name": "buildfs", "title": "Build Filesystem Image", "description": null, "group": "Platform"}, {"name": "size", "title": "Program Size", "description": "Calculate program size", "group": "Platform"}, {"name": "upload", "title": "Upload", "description": null, "group": "Platform"}, {"name": "uploadfs", "title": "Upload Filesystem Image", "description": null, "group": "Platform"}, {"name": "uploadfsota", "title": "Upload Filesystem Image OTA", "description": null, "group": "Platform"}, {"name": "erase", "title": "Erase Flash", "description": null, "group": "Platform"}], "extra": {"flash_images": []}}
1+
{"build_type": "release", "env_name": "esp12e", "libsource_dirs": ["/Users/a1/Documents/PlatformIO/Projects/maestro-programmer/lib", "/Users/a1/Documents/PlatformIO/Projects/maestro-programmer/.pio/libdeps/esp12e", "/Users/a1/.platformio/lib", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries"], "defines": ["PLATFORMIO=60116", "ESP8266", "ARDUINO_ARCH_ESP8266", "ARDUINO_ESP8266_ESP12", "F_CPU=80000000L", "__ets__", "ICACHE_FLASH", "_GNU_SOURCE", "ARDUINO=10805", "ARDUINO_BOARD=\"PLATFORMIO_ESP12E\"", "ARDUINO_BOARD_ID=\"esp12e\"", "FLASHMODE_DIO", "LWIP_OPEN_SRC", "NONOSDK22x_190703=1", "TCP_MSS=536", "LWIP_FEATURES=1", "LWIP_IPV6=0", "VTABLES_IN_FLASH", "MMU_IRAM_SIZE=0x8000", "MMU_ICACHE_SIZE=0x8000"], "includes": {"build": ["/Users/a1/Documents/PlatformIO/Projects/maestro-programmer/include", "/Users/a1/Documents/PlatformIO/Projects/maestro-programmer/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266httpUpdate/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src", "/Users/a1/Documents/PlatformIO/Projects/maestro-programmer/.pio/libdeps/esp12e/WiFiManager", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266mDNS/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WebServer/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/DNSServer/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/tools/sdk/include", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/cores/esp8266", "/Users/a1/.platformio/packages/toolchain-xtensa/include", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/tools/sdk/lwip2/include", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/variants/nodemcu"], "compatlib": ["/Users/a1/Documents/PlatformIO/Projects/maestro-programmer/.pio/libdeps/esp12e/WiFiManager", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266mDNS/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WebServer/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/DNSServer/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/DNSServer/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPClient/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WebServer/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFi/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266httpUpdate/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266mDNS/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ArduinoOTA", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/EEPROM", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266AVRISP/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266HTTPUpdateServer/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266LLMNR", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266NetBIOS", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266SSDP", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266SdFat/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/ESP8266WiFiMesh/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/Ethernet/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/FSTools", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/GDBStub/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/Hash/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/I2S/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/LittleFS/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/Netdump/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/SD/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/SDFS/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/SPI", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/SPISlave/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/Servo/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/SoftwareSerial/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/TFT_Touch_Shield_V2", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/Ticker/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/Wire", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/esp8266/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_Ethernet/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_PPP/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_enc28j60/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_w5100/src", "/Users/a1/.platformio/packages/framework-arduinoespressif8266/libraries/lwIP_w5500/src"], "toolchain": ["/Users/a1/.platformio/packages/toolchain-xtensa/xtensa-lx106-elf/include/c++/10.3.0", "/Users/a1/.platformio/packages/toolchain-xtensa/xtensa-lx106-elf/include/c++/10.3.0/xtensa-lx106-elf", "/Users/a1/.platformio/packages/toolchain-xtensa/lib/gcc/xtensa-lx106-elf/10.3.0/include", "/Users/a1/.platformio/packages/toolchain-xtensa/lib/gcc/xtensa-lx106-elf/10.3.0/include-fixed", "/Users/a1/.platformio/packages/toolchain-xtensa/xtensa-lx106-elf/include"]}, "cc_flags": ["-std=gnu17", "-Wpointer-arith", "-Wno-implicit-function-declaration", "-Wl,-EL", "-fno-inline-functions", "-nostdlib", "-Os", "-mlongcalls", "-mtext-section-literals", "-falign-functions=4", "-U__STRICT_ANSI__", "-ffunction-sections", "-fdata-sections", "-Wall", "-Werror=return-type", "-free", "-fipa-pta"], "cxx_flags": ["-fno-rtti", "-std=gnu++17", "-fno-exceptions", "-Os", "-mlongcalls", "-mtext-section-literals", "-falign-functions=4", "-U__STRICT_ANSI__", "-ffunction-sections", "-fdata-sections", "-Wall", "-Werror=return-type", "-free", "-fipa-pta"], "cc_path": "/Users/a1/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-gcc", "cxx_path": "/Users/a1/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-g++", "gdb_path": "/Users/a1/.platformio/packages/toolchain-xtensa/bin/xtensa-lx106-elf-gdb", "prog_path": "/Users/a1/Documents/PlatformIO/Projects/maestro-programmer/.pio/build/esp12e/firmware.elf", "svd_path": null, "compiler_type": "gcc", "targets": [{"name": "buildfs", "title": "Build Filesystem Image", "description": null, "group": "Platform"}, {"name": "size", "title": "Program Size", "description": "Calculate program size", "group": "Platform"}, {"name": "upload", "title": "Upload", "description": null, "group": "Platform"}, {"name": "uploadfs", "title": "Upload Filesystem Image", "description": null, "group": "Platform"}, {"name": "uploadfsota", "title": "Upload Filesystem Image OTA", "description": null, "group": "Platform"}, {"name": "erase", "title": "Erase Flash", "description": null, "group": "Platform"}], "extra": {"flash_images": []}}
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

.pio/build/esp12e/src/main.cpp.o

32.1 KB
Binary file not shown.

.pio/build/project.checksum

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
47248c667bb3bcdba12055db97c875536c9d672a
1+
e05914af9e9b41c18992badf6318eccb9672210a

platformio.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
platform = espressif8266
1313
board = esp12e
1414
framework = arduino
15-
upload_speed = 115200
1615

1716
lib_deps =
1817
tzapu/WiFiManager @ ^2.0.15 ; Додаємо WiFiManager

src/main.cpp

Lines changed: 42 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,54 @@
11
#include <ESP8266WiFi.h>
22
#include <ESP8266HTTPClient.h>
33
#include <ESP8266httpUpdate.h>
4-
#include <WiFiManager.h> // Бібліотека для управління підключенням до Wi-Fi
4+
#include <WiFiManager.h>
5+
#include <BearSSLHelpers.h> // Бібліотека для роботи з WiFiClientSecure
56

6-
WiFiClient client; // WiFi-клієнт для HTTP-запитів
7+
WiFiClientSecure client; // WiFi-клієнт для HTTPS-запитів
78

89
// Статична IP-адреса, шлюз і маска підмережі
910
IPAddress staticIP(192, 168, 68, 68); // Фіксована IP-адреса ESP8266
1011
IPAddress gateway(192, 168, 68, 1); // IP-адреса маршрутизатора (шлюз)
1112
IPAddress subnet(255, 255, 255, 0); // Маска підмережі
13+
IPAddress primaryDNS(8, 8, 8, 8); // Google DNS
14+
IPAddress secondaryDNS(8, 8, 4, 4); // Альтернативний Google DNS
1215

13-
// Оновлене пряме посилання для завантаження файлу з Dropbox
14-
const char* firmware_url = "https://dl.dropboxusercontent.com/s/eii4ouipu21lzyrggjyvl/firmware.bin?dl=1"; // Пряме посилання на прошивку
16+
// Пряме посилання для завантаження файлу з GitHub
17+
const char* firmware_url = "https://github.com/stigmat4j/maestro-programmer/releases/download/untagged-c6f6b30c800ec7b513c2/firmware.bin";
1518
const String currentVersion = "0.1"; // Поточна версія прошивки
1619

20+
void checkWiFiConnection() {
21+
if (WiFi.status() != WL_CONNECTED) {
22+
Serial.println("WiFi не підключено! Спробуйте знову.");
23+
return;
24+
}
25+
26+
Serial.println("WiFi підключено:");
27+
Serial.print("IP-адреса: ");
28+
Serial.println(WiFi.localIP());
29+
Serial.print("Шлюз: ");
30+
Serial.println(WiFi.gatewayIP());
31+
32+
HTTPClient http;
33+
http.begin(client, "http://example.com");
34+
int httpCode = http.GET();
35+
36+
if (httpCode > 0) {
37+
Serial.printf("З'єднання з example.com успішне, код відповіді: %d\n", httpCode);
38+
} else {
39+
Serial.printf("З'єднання з example.com не вдалося, помилка: %s\n", http.errorToString(httpCode).c_str());
40+
}
41+
42+
http.end();
43+
}
44+
1745
void checkForUpdates() {
1846
Serial.println("Перевірка наявності оновлень...");
47+
Serial.println(firmware_url);
48+
49+
client.setInsecure(); // Відключаємо перевірку сертифікатів, що може допомогти з HTTPS
1950

20-
// Оновлення по HTTP
51+
// Оновлення по HTTPS
2152
t_httpUpdate_return ret = ESPhttpUpdate.update(client, firmware_url);
2253

2354
switch (ret) {
@@ -39,23 +70,22 @@ void checkForUpdates() {
3970
void setup() {
4071
Serial.begin(115200);
4172

42-
// Налаштування статичної IP-адреси
43-
WiFi.config(staticIP, gateway, subnet);
73+
// Налаштування статичної IP-адреси і DNS-серверів
74+
if (!WiFi.config(staticIP, gateway, subnet, primaryDNS, secondaryDNS)) {
75+
Serial.println("Помилка налаштування статичної IP або DNS!");
76+
}
4477

45-
// Перевірка збереженої мережі
4678
WiFiManager wifiManager;
47-
48-
// Якщо немає збереженої мережі, відкриваємо точку доступу
79+
4980
if (!wifiManager.autoConnect("TerikonAP")) {
5081
Serial.println("Не вдалось підключитись до WiFi. Перезавантаження...");
5182
delay(3000);
5283
ESP.restart();
5384
}
5485

55-
// Підключення до WiFi
5686
Serial.println("WiFi підключено з фіксованою IP-адресою 192.168.68.68");
5787

58-
// Перевірка оновлень прошивки
88+
checkWiFiConnection();
5989
checkForUpdates();
6090
}
6191

0 commit comments

Comments
 (0)