From 22b8ae8998b7d9781d6356898b8b26a2c0068e89 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Fri, 27 Feb 2026 01:28:34 +0800 Subject: [PATCH 01/94] feat: add react-native-native-logger module Unified native logging module with static OneKeyLog API that self-initializes on first call, replacing react-native-file-logger's JS-configured approach. - iOS: CocoaLumberjack backend with custom log file naming (app- prefix) and message-only formatter - Android: SLF4J + logback-android backend - Nitro HybridObject bridge for JS layer (write, getLogFilePaths, deleteLogFiles) - Consistent log file naming across platforms (app- prefix + date) - Same log config as existing: 20MB max, 3 files, daily rolling, {CachesDir}/logs Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- native-modules/native-logger/.gitignore | 89 +++++++++ native-modules/native-logger/LICENSE | 21 +++ native-modules/native-logger/README.md | 36 ++++ .../ReactNativeNativeLogger.podspec | 29 +++ .../native-logger/android/CMakeLists.txt | 24 +++ .../native-logger/android/build.gradle | 132 ++++++++++++++ .../native-logger/android/gradle.properties | 4 + .../android/src/main/AndroidManifest.xml | 1 + .../android/src/main/cpp/cpp-adapter.cpp | 6 + .../nitro/nativelogger/NativeLogger.kt | 34 ++++ .../nitro/nativelogger/NativeLoggerPackage.kt | 24 +++ .../margelo/nitro/nativelogger/OneKeyLog.kt | 86 +++++++++ native-modules/native-logger/babel.config.js | 13 ++ .../native-logger/eslint.config.mjs | 5 + .../native-logger/ios/NativeLogger.swift | 40 +++++ .../native-logger/ios/OneKeyLog.swift | 104 +++++++++++ native-modules/native-logger/lefthook.yml | 10 ++ native-modules/native-logger/nitro.json | 17 ++ native-modules/native-logger/package.json | 169 ++++++++++++++++++ .../native-logger/src/NativeLogger.nitro.ts | 8 + native-modules/native-logger/src/index.tsx | 8 + .../native-logger/tsconfig.build.json | 9 + native-modules/native-logger/tsconfig.json | 30 ++++ native-modules/native-logger/turbo.json | 17 ++ yarn.lock | 36 ++++ 25 files changed, 952 insertions(+) create mode 100644 native-modules/native-logger/.gitignore create mode 100644 native-modules/native-logger/LICENSE create mode 100644 native-modules/native-logger/README.md create mode 100644 native-modules/native-logger/ReactNativeNativeLogger.podspec create mode 100644 native-modules/native-logger/android/CMakeLists.txt create mode 100644 native-modules/native-logger/android/build.gradle create mode 100644 native-modules/native-logger/android/gradle.properties create mode 100644 native-modules/native-logger/android/src/main/AndroidManifest.xml create mode 100644 native-modules/native-logger/android/src/main/cpp/cpp-adapter.cpp create mode 100644 native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt create mode 100644 native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLoggerPackage.kt create mode 100644 native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt create mode 100644 native-modules/native-logger/babel.config.js create mode 100644 native-modules/native-logger/eslint.config.mjs create mode 100644 native-modules/native-logger/ios/NativeLogger.swift create mode 100644 native-modules/native-logger/ios/OneKeyLog.swift create mode 100644 native-modules/native-logger/lefthook.yml create mode 100644 native-modules/native-logger/nitro.json create mode 100644 native-modules/native-logger/package.json create mode 100644 native-modules/native-logger/src/NativeLogger.nitro.ts create mode 100644 native-modules/native-logger/src/index.tsx create mode 100644 native-modules/native-logger/tsconfig.build.json create mode 100644 native-modules/native-logger/tsconfig.json create mode 100644 native-modules/native-logger/turbo.json diff --git a/native-modules/native-logger/.gitignore b/native-modules/native-logger/.gitignore new file mode 100644 index 00000000..357a2f9a --- /dev/null +++ b/native-modules/native-logger/.gitignore @@ -0,0 +1,89 @@ +# OSX +# +.DS_Store + +# XDE +.expo/ + +# VSCode +.vscode/ +jsconfig.json + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace +**/.xcode.env.local + +# Android/IJ +# +.classpath +.cxx +.gradle +.idea +.project +.settings +local.properties +android.iml + +# Cocoapods +# +example/ios/Pods + +# Ruby +example/vendor/ + +# node.js +# +node_modules/ +npm-debug.log +yarn-debug.log +yarn-error.log + +# BUCK +buck-out/ +\.buckd/ +android/app/libs +android/keystores/debug.keystore + +# Yarn +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +# Expo +.expo/ + +# Turborepo +.turbo/ + +# generated by bob +lib/ + +# React Native Codegen +ios/generated +android/generated + +# React Native Nitro Modules +nitrogen/ + + + diff --git a/native-modules/native-logger/LICENSE b/native-modules/native-logger/LICENSE new file mode 100644 index 00000000..24ee4114 --- /dev/null +++ b/native-modules/native-logger/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 OneKey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/native-modules/native-logger/README.md b/native-modules/native-logger/README.md new file mode 100644 index 00000000..43540ef9 --- /dev/null +++ b/native-modules/native-logger/README.md @@ -0,0 +1,36 @@ +# native-logger + +native-logger + +## Installation + +```sh +npm install native-logger react-native-nitro-modules + +> `react-native-nitro-modules` is required as this library relies on [Nitro Modules](https://nitro.margelo.com/). +``` + +## Usage + +```js +import { NativeLogger } from 'native-logger'; + +// ... + +const result = await NativeLogger.hello({ message: 'World' }); +console.log(result); // { success: true, data: 'Hello, World!' } +``` + +## Contributing + +- [Development workflow](CONTRIBUTING.md#development-workflow) +- [Sending a pull request](CONTRIBUTING.md#sending-a-pull-request) +- [Code of conduct](CODE_OF_CONDUCT.md) + +## License + +MIT + +--- + +Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob) diff --git a/native-modules/native-logger/ReactNativeNativeLogger.podspec b/native-modules/native-logger/ReactNativeNativeLogger.podspec new file mode 100644 index 00000000..eeda72e2 --- /dev/null +++ b/native-modules/native-logger/ReactNativeNativeLogger.podspec @@ -0,0 +1,29 @@ +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.name = "ReactNativeNativeLogger" + s.version = package["version"] + s.summary = package["description"] + s.homepage = package["homepage"] + s.license = package["license"] + s.authors = package["author"] + + s.platforms = { :ios => min_ios_version_supported } + s.source = { :git => "https://github.com/OneKeyHQ/app-modules/native-logger.git", :tag => "#{s.version}" } + + s.source_files = [ + "ios/**/*.{swift}", + "cpp/**/*.{hpp,cpp}", + ] + + s.dependency 'React-jsi' + s.dependency 'React-callinvoker' + s.dependency 'CocoaLumberjack/Swift', '~> 3.8' + + load 'nitrogen/generated/ios/ReactNativeNativeLogger+autolinking.rb' + add_nitrogen_files(s) + + install_modules_dependencies(s) +end diff --git a/native-modules/native-logger/android/CMakeLists.txt b/native-modules/native-logger/android/CMakeLists.txt new file mode 100644 index 00000000..6b2ca68e --- /dev/null +++ b/native-modules/native-logger/android/CMakeLists.txt @@ -0,0 +1,24 @@ +project(nativelogger) +cmake_minimum_required(VERSION 3.9.0) + +set(PACKAGE_NAME nativelogger) +set(CMAKE_VERBOSE_MAKEFILE ON) +set(CMAKE_CXX_STANDARD 20) + +# Define C++ library and add all sources +add_library(${PACKAGE_NAME} SHARED src/main/cpp/cpp-adapter.cpp) + +# Add Nitrogen specs :) +include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/nativelogger+autolinking.cmake) + +# Set up local includes +include_directories("src/main/cpp" "../cpp") + +find_library(LOG_LIB log) + +# Link all libraries together +target_link_libraries( + ${PACKAGE_NAME} + ${LOG_LIB} + android # <-- Android core +) diff --git a/native-modules/native-logger/android/build.gradle b/native-modules/native-logger/android/build.gradle new file mode 100644 index 00000000..799e2ee8 --- /dev/null +++ b/native-modules/native-logger/android/build.gradle @@ -0,0 +1,132 @@ +buildscript { + ext.getExtOrDefault = {name -> + return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['NativeLogger_' + name] + } + + repositories { + google() + mavenCentral() + } + + dependencies { + classpath "com.android.tools.build:gradle:8.7.2" + // noinspection DifferentKotlinGradleVersion + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}" + } +} + +def reactNativeArchitectures() { + def value = rootProject.getProperties().get("reactNativeArchitectures") + return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] +} + +apply plugin: "com.android.library" +apply plugin: "kotlin-android" +apply from: '../nitrogen/generated/android/nativelogger+autolinking.gradle' + +apply plugin: "com.facebook.react" + +def getExtOrIntegerDefault(name) { + return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["NativeLogger_" + name]).toInteger() +} + +android { + namespace "com.margelo.nitro.nativelogger" + + compileSdkVersion getExtOrIntegerDefault("compileSdkVersion") + + defaultConfig { + minSdkVersion getExtOrIntegerDefault("minSdkVersion") + targetSdkVersion getExtOrIntegerDefault("targetSdkVersion") + + externalNativeBuild { + cmake { + cppFlags "-frtti -fexceptions -Wall -fstack-protector-all" + arguments "-DANDROID_STL=c++_shared", "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON" + abiFilters (*reactNativeArchitectures()) + + buildTypes { + debug { + cppFlags "-O1 -g" + } + release { + cppFlags "-O2" + } + } + } + } + } + + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } + + packagingOptions { + excludes = [ + "META-INF", + "META-INF/**", + "**/libc++_shared.so", + "**/libfbjni.so", + "**/libjsi.so", + "**/libfolly_json.so", + "**/libfolly_runtime.so", + "**/libglog.so", + "**/libhermes.so", + "**/libhermes-executor-debug.so", + "**/libhermes_executor.so", + "**/libreactnative.so", + "**/libreactnativejni.so", + "**/libturbomodulejsijni.so", + "**/libreact_nativemodule_core.so", + "**/libjscexecutor.so" + ] + } + + buildFeatures { + buildConfig true + prefab true + } + + buildTypes { + release { + minifyEnabled false + } + } + + lintOptions { + disable "GradleCompatible" + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + sourceSets { + main { + java.srcDirs += [ + "generated/java", + "generated/jni" + ] + } + } +} + +repositories { + mavenCentral() + google() +} + +def kotlin_version = getExtOrDefault("kotlinVersion") + +dependencies { + implementation "com.facebook.react:react-android" + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation project(":react-native-nitro-modules") + + // Logging backend — use `api` so consuming modules get SLF4J transitively + api 'org.slf4j:slf4j-api:1.7.33' + api 'com.github.tony19:logback-android:2.0.0' +} diff --git a/native-modules/native-logger/android/gradle.properties b/native-modules/native-logger/android/gradle.properties new file mode 100644 index 00000000..f1fdab2d --- /dev/null +++ b/native-modules/native-logger/android/gradle.properties @@ -0,0 +1,4 @@ +NativeLogger_kotlinVersion=1.9.25 +NativeLogger_compileSdkVersion=35 +NativeLogger_targetSdkVersion=35 +NativeLogger_minSdkVersion=24 diff --git a/native-modules/native-logger/android/src/main/AndroidManifest.xml b/native-modules/native-logger/android/src/main/AndroidManifest.xml new file mode 100644 index 00000000..94cbbcfc --- /dev/null +++ b/native-modules/native-logger/android/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + diff --git a/native-modules/native-logger/android/src/main/cpp/cpp-adapter.cpp b/native-modules/native-logger/android/src/main/cpp/cpp-adapter.cpp new file mode 100644 index 00000000..c95da3af --- /dev/null +++ b/native-modules/native-logger/android/src/main/cpp/cpp-adapter.cpp @@ -0,0 +1,6 @@ +#include +#include "nativeloggerOnLoad.hpp" + +extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { + return margelo::nitro::nativelogger::initialize(vm); +} diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt new file mode 100644 index 00000000..80403e0f --- /dev/null +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt @@ -0,0 +1,34 @@ +package com.margelo.nitro.nativelogger + +import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise +import java.io.File + +@DoNotStrip +class NativeLogger : HybridNativeLoggerSpec() { + + override fun write(level: Double, msg: String) { + when (level.toInt()) { + 0 -> OneKeyLog.debug("JS", msg) + 1 -> OneKeyLog.info("JS", msg) + 2 -> OneKeyLog.warn("JS", msg) + 3 -> OneKeyLog.error("JS", msg) + } + } + + override fun getLogFilePaths(): Promise> { + return Promise.async { + val dir = OneKeyLog.logsDirectory + File(dir).listFiles { _, name -> name.endsWith(".log") } + ?.map { it.absolutePath }?.toTypedArray() ?: arrayOf() + } + } + + override fun deleteLogFiles(): Promise { + return Promise.async { + val dir = OneKeyLog.logsDirectory + File(dir).listFiles { _, name -> name.endsWith(".log") } + ?.forEach { it.delete() } + } + } +} diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLoggerPackage.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLoggerPackage.kt new file mode 100644 index 00000000..cb3abd32 --- /dev/null +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLoggerPackage.kt @@ -0,0 +1,24 @@ +package com.margelo.nitro.nativelogger + +import com.facebook.react.BaseReactPackage +import com.facebook.react.bridge.NativeModule +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.module.model.ReactModuleInfoProvider + +class NativeLoggerPackage : BaseReactPackage() { + override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? { + return null + } + + override fun getReactModuleInfoProvider(): ReactModuleInfoProvider { + return ReactModuleInfoProvider { HashMap() } + } + + companion object { + init { + System.loadLibrary("nativelogger") + } + } +} + + diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt new file mode 100644 index 00000000..15667a3a --- /dev/null +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt @@ -0,0 +1,86 @@ +package com.margelo.nitro.nativelogger + +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import ch.qos.logback.classic.Level +import ch.qos.logback.classic.LoggerContext +import ch.qos.logback.classic.encoder.PatternLayoutEncoder +import ch.qos.logback.classic.spi.ILoggingEvent +import ch.qos.logback.core.rolling.RollingFileAppender +import ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy +import ch.qos.logback.core.util.FileSize +import com.margelo.nitro.NitroModules +import java.io.File +import java.nio.charset.Charset + +object OneKeyLog { + private const val APPENDER_NAME = "OneKeyFileAppender" + private const val LOG_PREFIX = "app" + private const val MAX_FILE_SIZE = 20L * 1024 * 1024 // 20 MB + private const val MAX_HISTORY = 6 + private const val TOTAL_SIZE_CAP = MAX_FILE_SIZE * MAX_HISTORY + + val logsDirectory: String by lazy { + val context = NitroModules.applicationContext + ?: throw IllegalStateException("NitroModules.applicationContext is null") + "${context.cacheDir.absolutePath}/logs" + } + + private val logger: Logger by lazy { + val dir = logsDirectory + File(dir).mkdirs() + + val loggerContext = LoggerFactory.getILoggerFactory() as LoggerContext + + val appender = RollingFileAppender().apply { + context = loggerContext + name = APPENDER_NAME + file = "$dir/$LOG_PREFIX-latest.log" + } + + SizeAndTimeBasedRollingPolicy().apply { + context = loggerContext + fileNamePattern = "$dir/$LOG_PREFIX-%d{yyyy-MM-dd}.%i.log" + setMaxFileSize(FileSize(MAX_FILE_SIZE)) + maxHistory = MAX_HISTORY + setTotalSizeCap(FileSize(TOTAL_SIZE_CAP)) + setParent(appender) + start() + appender.rollingPolicy = this + } + + PatternLayoutEncoder().apply { + context = loggerContext + charset = Charset.forName("UTF-8") + pattern = "%msg%n" + start() + appender.encoder = this + } + + appender.start() + + val root = LoggerFactory.getLogger( + Logger.ROOT_LOGGER_NAME + ) as ch.qos.logback.classic.Logger + root.level = Level.DEBUG + root.getAppender(APPENDER_NAME)?.let { + it.stop() + root.detachAppender(APPENDER_NAME) + } + root.addAppender(appender) + + LoggerFactory.getLogger("OneKey") + } + + @JvmStatic + fun debug(tag: String, message: String) = logger.debug("[$tag] $message") + + @JvmStatic + fun info(tag: String, message: String) = logger.info("[$tag] $message") + + @JvmStatic + fun warn(tag: String, message: String) = logger.warn("[$tag] $message") + + @JvmStatic + fun error(tag: String, message: String) = logger.error("[$tag] $message") +} diff --git a/native-modules/native-logger/babel.config.js b/native-modules/native-logger/babel.config.js new file mode 100644 index 00000000..06a81f19 --- /dev/null +++ b/native-modules/native-logger/babel.config.js @@ -0,0 +1,13 @@ +module.exports = { + presets: ['@react-native/babel-preset'], + plugins: [ + [ + 'module-resolver', + { + alias: { + 'native-logger': './src/index', + }, + }, + ], + ], +}; diff --git a/native-modules/native-logger/eslint.config.mjs b/native-modules/native-logger/eslint.config.mjs new file mode 100644 index 00000000..3416cf5c --- /dev/null +++ b/native-modules/native-logger/eslint.config.mjs @@ -0,0 +1,5 @@ +import { createEslintConfig } from '@react-native/eslint-config'; + +export default createEslintConfig({ + extends: ['@react-native/eslint-config'], +}); diff --git a/native-modules/native-logger/ios/NativeLogger.swift b/native-modules/native-logger/ios/NativeLogger.swift new file mode 100644 index 00000000..38be9c74 --- /dev/null +++ b/native-modules/native-logger/ios/NativeLogger.swift @@ -0,0 +1,40 @@ +import NitroModules +import CocoaLumberjack + +class NativeLogger: HybridNativeLoggerSpec { + + func write(level: Double, msg: String) { + switch Int(level) { + case 0: OneKeyLog.debug("JS", msg) + case 1: OneKeyLog.info("JS", msg) + case 2: OneKeyLog.warn("JS", msg) + case 3: OneKeyLog.error("JS", msg) + default: OneKeyLog.info("JS", msg) + } + } + + func getLogFilePaths() throws -> Promise<[String]> { + return Promise.async { + let dir = OneKeyLog.logsDirectory + let fm = FileManager.default + guard let files = try? fm.contentsOfDirectory(atPath: dir) else { + return [] + } + return files + .filter { $0.hasSuffix(".log") } + .map { "\(dir)/\($0)" } + .sorted() + } + } + + func deleteLogFiles() throws -> Promise { + return Promise.async { + let dir = OneKeyLog.logsDirectory + let fm = FileManager.default + guard let files = try? fm.contentsOfDirectory(atPath: dir) else { return } + for file in files where file.hasSuffix(".log") { + try? fm.removeItem(atPath: "\(dir)/\(file)") + } + } + } +} diff --git a/native-modules/native-logger/ios/OneKeyLog.swift b/native-modules/native-logger/ios/OneKeyLog.swift new file mode 100644 index 00000000..7e1a547d --- /dev/null +++ b/native-modules/native-logger/ios/OneKeyLog.swift @@ -0,0 +1,104 @@ +import CocoaLumberjack + +private let ddLogLevel: DDLogLevel = .debug + +private class OneKeyLogFileManager: DDLogFileManagerDefault { + private static let logPrefix = "app" + private static let latestFileName = "\(logPrefix)-latest.log" + private static let dateFormatter: DateFormatter = { + let fmt = DateFormatter() + fmt.dateFormat = "yyyy-MM-dd" + fmt.locale = Locale(identifier: "en_US_POSIX") + return fmt + }() + + /// Always write to app-latest.log (matches Android behavior) + override var newLogFileName: String { + return Self.latestFileName + } + + override func isLogFile(withName fileName: String) -> Bool { + return fileName.hasPrefix(Self.logPrefix) && fileName.hasSuffix(".log") + } + + /// When rolled, rename app-latest.log → app-{yyyy-MM-dd}.{i}.log (matches Android pattern) + override func didArchiveLogFile(atPath logFilePath: String, wasRolled: Bool) { + if wasRolled { + let dir = (logFilePath as NSString).deletingLastPathComponent + let dateStr = Self.dateFormatter.string(from: Date()) + let fm = FileManager.default + + // Find next available index for this date + var index = 0 + while fm.fileExists(atPath: "\(dir)/\(Self.logPrefix)-\(dateStr).\(index).log") { + index += 1 + } + let archivedPath = "\(dir)/\(Self.logPrefix)-\(dateStr).\(index).log" + try? fm.moveItem(atPath: logFilePath, toPath: archivedPath) + } + super.didArchiveLogFile(atPath: logFilePath, wasRolled: wasRolled) + } +} + +@objc public class OneKeyLog: NSObject { + + private static let configured: Bool = { + let cacheDir = NSSearchPathForDirectoriesInDomains( + .cachesDirectory, .userDomainMask, true + ).first! + let logsDir = cacheDir + "/logs" + + // Ensure logs directory exists (matches Android's File(dir).mkdirs()) + try? FileManager.default.createDirectory( + atPath: logsDir, withIntermediateDirectories: true + ) + + let fileManager = OneKeyLogFileManager(logsDirectory: logsDir) + // DDFileLogger counts active file (app-latest.log) in this limit, + // so set to 7 to keep 6 archived files (matching Android MAX_HISTORY=6) + fileManager.maximumNumberOfLogFiles = 7 + + let logger = DDFileLogger(logFileManager: fileManager) + logger.rollingFrequency = 86400 // daily rolling + logger.maximumFileSize = 20_971_520 // 20 MB + logger.logFormatter = OneKeyLogFormatter() + + DDLog.add(logger) + return true + }() + + @objc public static func debug(_ tag: String, _ message: String) { + _ = configured + DDLogDebug("[\(tag)] \(message)") + } + + @objc public static func info(_ tag: String, _ message: String) { + _ = configured + DDLogInfo("[\(tag)] \(message)") + } + + @objc public static func warn(_ tag: String, _ message: String) { + _ = configured + DDLogWarn("[\(tag)] \(message)") + } + + @objc public static func error(_ tag: String, _ message: String) { + _ = configured + DDLogError("[\(tag)] \(message)") + } + + /// Returns the logs directory path (for getLogFilePaths / deleteLogFiles) + static var logsDirectory: String { + let cacheDir = NSSearchPathForDirectoriesInDomains( + .cachesDirectory, .userDomainMask, true + ).first! + return cacheDir + "/logs" + } +} + +/// Formatter that outputs message only (matches Android's `%msg%n` pattern) +private class OneKeyLogFormatter: NSObject, DDLogFormatter { + func format(message logMessage: DDLogMessage) -> String? { + return logMessage.message + } +} diff --git a/native-modules/native-logger/lefthook.yml b/native-modules/native-logger/lefthook.yml new file mode 100644 index 00000000..89766b1f --- /dev/null +++ b/native-modules/native-logger/lefthook.yml @@ -0,0 +1,10 @@ +pre-commit: + parallel: true + commands: + lint: + glob: "*.{js,ts,tsx}" + run: yarn lint {staged_files} + typecheck: + files: git diff --cached --name-only --diff-filter=ACMRTUXB + glob: "*.{js,ts,tsx}" + run: yarn typecheck diff --git a/native-modules/native-logger/nitro.json b/native-modules/native-logger/nitro.json new file mode 100644 index 00000000..065ae6cd --- /dev/null +++ b/native-modules/native-logger/nitro.json @@ -0,0 +1,17 @@ +{ + "cxxNamespace": ["nativelogger"], + "ios": { + "iosModuleName": "ReactNativeNativeLogger" + }, + "android": { + "androidNamespace": ["nativelogger"], + "androidCxxLibName": "nativelogger" + }, + "autolinking": { + "NativeLogger": { + "swift": "NativeLogger", + "kotlin": "NativeLogger" + } + }, + "ignorePaths": ["node_modules"] +} diff --git a/native-modules/native-logger/package.json b/native-modules/native-logger/package.json new file mode 100644 index 00000000..f2f9ab99 --- /dev/null +++ b/native-modules/native-logger/package.json @@ -0,0 +1,169 @@ +{ + "name": "@onekeyfe/react-native-native-logger", + "version": "1.1.19", + "description": "react-native-native-logger", + "main": "./lib/module/index.js", + "types": "./lib/typescript/src/index.d.ts", + "exports": { + ".": { + "source": "./src/index.tsx", + "types": "./lib/typescript/src/index.d.ts", + "default": "./lib/module/index.js" + }, + "./package.json": "./package.json" + }, + "files": [ + "src", + "lib", + "android", + "ios", + "cpp", + "nitrogen", + "nitro.json", + "*.podspec", + "react-native.config.js", + "!ios/build", + "!android/build", + "!android/gradle", + "!android/gradlew", + "!android/gradlew.bat", + "!android/local.properties", + "!**/__tests__", + "!**/__fixtures__", + "!**/__mocks__", + "!**/.*" + ], + "scripts": { + "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib", + "prepare": "bob build", + "nitrogen": "nitrogen", + "typecheck": "tsc", + "lint": "eslint \"**/*.{js,ts,tsx}\"", + "test": "jest", + "release": "yarn prepare && npm whoami && npm publish --access public" + }, + "keywords": [ + "react-native", + "ios", + "android" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/OneKeyHQ/app-modules/native-logger.git" + }, + "author": "onekeyfe (https://github.com/OneKeyHQ/app-modules)", + "license": "MIT", + "bugs": { + "url": "https://github.com/OneKeyHQ/app-modules/native-logger/issues" + }, + "homepage": "https://github.com/OneKeyHQ/app-modules/native-logger#readme", + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "devDependencies": { + "@commitlint/config-conventional": "^19.8.1", + "@eslint/compat": "^1.3.2", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "^9.35.0", + "@react-native/babel-preset": "0.83.0", + "@react-native/eslint-config": "0.83.0", + "@release-it/conventional-changelog": "^10.0.1", + "@types/jest": "^29.5.14", + "@types/react": "^19.2.0", + "commitlint": "^19.8.1", + "del-cli": "^6.0.0", + "eslint": "^9.35.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", + "jest": "^29.7.0", + "lefthook": "^2.0.3", + "nitrogen": "0.31.10", + "prettier": "^2.8.8", + "react": "19.2.0", + "react-native": "0.83.0", + "react-native-builder-bob": "^0.40.13", + "react-native-nitro-modules": "0.33.2", + "release-it": "^19.0.4", + "turbo": "^2.5.6", + "typescript": "^5.9.2" + }, + "peerDependencies": { + "react": "*", + "react-native": "*", + "react-native-nitro-modules": "0.33.2" + }, + "react-native-builder-bob": { + "source": "src", + "output": "lib", + "targets": [ + [ + "custom", + { + "script": "nitrogen", + "clean": "nitrogen/" + } + ], + [ + "module", + { + "esm": true + } + ], + [ + "typescript", + { + "project": "tsconfig.build.json" + } + ] + ] + }, + "prettier": { + "quoteProps": "consistent", + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false + }, + "jest": { + "preset": "react-native", + "modulePathIgnorePatterns": [ + "/example/node_modules", + "/lib/" + ] + }, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] + }, + "release-it": { + "git": { + "commitMessage": "chore: release ${version}", + "tagName": "v${version}" + }, + "npm": { + "publish": true + }, + "github": { + "release": true + }, + "plugins": { + "@release-it/conventional-changelog": { + "preset": { + "name": "angular" + } + } + } + }, + "create-react-native-library": { + "type": "nitro-module", + "languages": "kotlin-swift", + "tools": [ + "eslint", + "jest", + "lefthook", + "release-it" + ], + "version": "0.56.0" + } +} diff --git a/native-modules/native-logger/src/NativeLogger.nitro.ts b/native-modules/native-logger/src/NativeLogger.nitro.ts new file mode 100644 index 00000000..c005e3d2 --- /dev/null +++ b/native-modules/native-logger/src/NativeLogger.nitro.ts @@ -0,0 +1,8 @@ +import type { HybridObject } from 'react-native-nitro-modules'; + +export interface NativeLogger + extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> { + write(level: number, msg: string): void; + getLogFilePaths(): Promise; + deleteLogFiles(): Promise; +} diff --git a/native-modules/native-logger/src/index.tsx b/native-modules/native-logger/src/index.tsx new file mode 100644 index 00000000..14a8d068 --- /dev/null +++ b/native-modules/native-logger/src/index.tsx @@ -0,0 +1,8 @@ +import { NitroModules } from 'react-native-nitro-modules'; +import type { NativeLogger as NativeLoggerType } from './NativeLogger.nitro'; + +const NativeLoggerHybridObject = + NitroModules.createHybridObject('NativeLogger'); + +export const NativeLogger = NativeLoggerHybridObject; +export type * from './NativeLogger.nitro'; diff --git a/native-modules/native-logger/tsconfig.build.json b/native-modules/native-logger/tsconfig.build.json new file mode 100644 index 00000000..45777014 --- /dev/null +++ b/native-modules/native-logger/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "noEmit": false, + "declaration": true, + "declarationMap": true + }, + "exclude": ["**/__tests__/**/*", "**/__fixtures__/**/*", "**/__mocks__/**/*"] +} diff --git a/native-modules/native-logger/tsconfig.json b/native-modules/native-logger/tsconfig.json new file mode 100644 index 00000000..689ee37f --- /dev/null +++ b/native-modules/native-logger/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "rootDir": ".", + "paths": { + "native-logger": ["./src/index"] + }, + "allowUnreachableCode": false, + "allowUnusedLabels": false, + "customConditions": ["react-native-strict-api"], + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "jsx": "react-jsx", + "lib": ["ESNext"], + "module": "ESNext", + "moduleResolution": "bundler", + "noEmit": true, + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "noImplicitUseStrict": false, + "noStrictGenericChecks": false, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "ESNext", + "verbatimModuleSyntax": true + } +} diff --git a/native-modules/native-logger/turbo.json b/native-modules/native-logger/turbo.json new file mode 100644 index 00000000..08b9676e --- /dev/null +++ b/native-modules/native-logger/turbo.json @@ -0,0 +1,17 @@ +{ + "extends": ["//"], + "tasks": { + "build": { + "outputs": [ + "lib/**", + "nitrogen/**" + ], + "inputs": [ + "src/**", + "android/src/**", + "ios/**", + "cpp/**" + ] + } + } +} diff --git a/yarn.lock b/yarn.lock index 8f83aa6e..bf448b12 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3059,6 +3059,42 @@ __metadata: languageName: unknown linkType: soft +"@onekeyfe/react-native-native-logger@workspace:native-modules/native-logger": + version: 0.0.0-use.local + resolution: "@onekeyfe/react-native-native-logger@workspace:native-modules/native-logger" + dependencies: + "@commitlint/config-conventional": "npm:^19.8.1" + "@eslint/compat": "npm:^1.3.2" + "@eslint/eslintrc": "npm:^3.3.1" + "@eslint/js": "npm:^9.35.0" + "@react-native/babel-preset": "npm:0.83.0" + "@react-native/eslint-config": "npm:0.83.0" + "@release-it/conventional-changelog": "npm:^10.0.1" + "@types/jest": "npm:^29.5.14" + "@types/react": "npm:^19.2.0" + commitlint: "npm:^19.8.1" + del-cli: "npm:^6.0.0" + eslint: "npm:^9.35.0" + eslint-config-prettier: "npm:^10.1.8" + eslint-plugin-prettier: "npm:^5.5.4" + jest: "npm:^29.7.0" + lefthook: "npm:^2.0.3" + nitrogen: "npm:0.31.10" + prettier: "npm:^2.8.8" + react: "npm:19.2.0" + react-native: "npm:0.83.0" + react-native-builder-bob: "npm:^0.40.13" + react-native-nitro-modules: "npm:0.33.2" + release-it: "npm:^19.0.4" + turbo: "npm:^2.5.6" + typescript: "npm:^5.9.2" + peerDependencies: + react: "*" + react-native: "*" + react-native-nitro-modules: 0.33.2 + languageName: unknown + linkType: soft + "@onekeyfe/react-native-skeleton@workspace:*, @onekeyfe/react-native-skeleton@workspace:native-views/react-native-skeleton": version: 0.0.0-use.local resolution: "@onekeyfe/react-native-skeleton@workspace:native-views/react-native-skeleton" From 1c2962fb9fe5e994c31b7b0bd7850d32852f332a Mon Sep 17 00:00:00 2001 From: huhuanming Date: Fri, 27 Feb 2026 03:02:57 +0800 Subject: [PATCH 02/94] fix: code review fixes for native-logger module - Remove unnecessary CocoaLumberjack import from iOS NativeLogger.swift - Add else branch in Android NativeLogger.kt write() for unknown levels - Use detachAndStopAllAppenders() in Android OneKeyLog to prevent duplicate logcat - Unify iOS logsDirectory path to use computed property (remove duplication) - Add sortedBy to Android getLogFilePaths() for consistent ordering with iOS Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- .../java/com/margelo/nitro/nativelogger/NativeLogger.kt | 2 ++ .../main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt | 6 ++---- native-modules/native-logger/ios/NativeLogger.swift | 1 - native-modules/native-logger/ios/OneKeyLog.swift | 5 +---- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt index 80403e0f..d90a2755 100644 --- a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt @@ -13,6 +13,7 @@ class NativeLogger : HybridNativeLoggerSpec() { 1 -> OneKeyLog.info("JS", msg) 2 -> OneKeyLog.warn("JS", msg) 3 -> OneKeyLog.error("JS", msg) + else -> OneKeyLog.info("JS", msg) } } @@ -20,6 +21,7 @@ class NativeLogger : HybridNativeLoggerSpec() { return Promise.async { val dir = OneKeyLog.logsDirectory File(dir).listFiles { _, name -> name.endsWith(".log") } + ?.sortedBy { it.name } ?.map { it.absolutePath }?.toTypedArray() ?: arrayOf() } } diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt index 15667a3a..a5edf1c9 100644 --- a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt @@ -63,10 +63,8 @@ object OneKeyLog { Logger.ROOT_LOGGER_NAME ) as ch.qos.logback.classic.Logger root.level = Level.DEBUG - root.getAppender(APPENDER_NAME)?.let { - it.stop() - root.detachAppender(APPENDER_NAME) - } + // Remove all existing appenders (including default console) to avoid duplicate logcat output + root.detachAndStopAllAppenders() root.addAppender(appender) LoggerFactory.getLogger("OneKey") diff --git a/native-modules/native-logger/ios/NativeLogger.swift b/native-modules/native-logger/ios/NativeLogger.swift index 38be9c74..d662e9f4 100644 --- a/native-modules/native-logger/ios/NativeLogger.swift +++ b/native-modules/native-logger/ios/NativeLogger.swift @@ -1,5 +1,4 @@ import NitroModules -import CocoaLumberjack class NativeLogger: HybridNativeLoggerSpec { diff --git a/native-modules/native-logger/ios/OneKeyLog.swift b/native-modules/native-logger/ios/OneKeyLog.swift index 7e1a547d..a0a39279 100644 --- a/native-modules/native-logger/ios/OneKeyLog.swift +++ b/native-modules/native-logger/ios/OneKeyLog.swift @@ -43,10 +43,7 @@ private class OneKeyLogFileManager: DDLogFileManagerDefault { @objc public class OneKeyLog: NSObject { private static let configured: Bool = { - let cacheDir = NSSearchPathForDirectoriesInDomains( - .cachesDirectory, .userDomainMask, true - ).first! - let logsDir = cacheDir + "/logs" + let logsDir = logsDirectory // Ensure logs directory exists (matches Android's File(dir).mkdirs()) try? FileManager.default.createDirectory( From 850e309c9469fbdf8b27903495fbc3bd5a343dcc Mon Sep 17 00:00:00 2001 From: huhuanming Date: Fri, 27 Feb 2026 03:23:39 +0800 Subject: [PATCH 03/94] feat: integrate OneKeyLog into native modules Add file-based logging via OneKeyLog to 5 native modules: - device-utils: UI style changes, foldable detection, spanning state - keychain-module: keychain operations success/failure with OSStatus - cloud-kit-module: CloudKit CRUD operations and query results - check-biometric-auth-changed: biometric state change detection - get-random-values: error-only logging for SecRandomCopyBytes/SecureRandom Each module declares a dependency on ReactNativeNativeLogger (iOS podspec) and compileOnly project dependency (Android build.gradle where applicable). Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- ...actNativeCheckBiometricAuthChanged.podspec | 1 + ...ReactNativeCheckBiometricAuthChanged.swift | 6 ++++++ .../CloudKitModule.podspec | 1 + .../ios/CloudKitModule.swift | 12 ++++++++++- .../ReactNativeDeviceUtils.podspec | 1 + .../android/build.gradle | 2 ++ .../ReactNativeDeviceUtils.kt | 21 ++++++++++++------- .../ios/ReactNativeDeviceUtils.swift | 4 ++++ .../ReactNativeGetRandomValues.podspec | 1 + .../android/build.gradle | 2 ++ .../ReactNativeGetRandomValues.kt | 14 +++++++++---- .../ios/ReactNativeGetRandomValues.swift | 2 ++ .../KeychainModule.podspec | 1 + .../ios/KeychainModule.swift | 7 +++++++ .../ios/KeychainModuleCore.swift | 14 ++++++++++++- 15 files changed, 76 insertions(+), 13 deletions(-) diff --git a/native-modules/react-native-check-biometric-auth-changed/ReactNativeCheckBiometricAuthChanged.podspec b/native-modules/react-native-check-biometric-auth-changed/ReactNativeCheckBiometricAuthChanged.podspec index 1605e5ec..5bbbba32 100644 --- a/native-modules/react-native-check-biometric-auth-changed/ReactNativeCheckBiometricAuthChanged.podspec +++ b/native-modules/react-native-check-biometric-auth-changed/ReactNativeCheckBiometricAuthChanged.podspec @@ -21,6 +21,7 @@ Pod::Spec.new do |s| s.dependency 'React-jsi' s.dependency 'React-callinvoker' + s.dependency 'ReactNativeNativeLogger' load 'nitrogen/generated/ios/ReactNativeCheckBiometricAuthChanged+autolinking.rb' add_nitrogen_files(s) diff --git a/native-modules/react-native-check-biometric-auth-changed/ios/ReactNativeCheckBiometricAuthChanged.swift b/native-modules/react-native-check-biometric-auth-changed/ios/ReactNativeCheckBiometricAuthChanged.swift index ac173172..5d16a119 100644 --- a/native-modules/react-native-check-biometric-auth-changed/ios/ReactNativeCheckBiometricAuthChanged.swift +++ b/native-modules/react-native-check-biometric-auth-changed/ios/ReactNativeCheckBiometricAuthChanged.swift @@ -1,6 +1,7 @@ import NitroModules import LocalAuthentication +import ReactNativeNativeLogger class ReactNativeCheckBiometricAuthChanged: HybridReactNativeCheckBiometricAuthChangedSpec { func checkChanged() throws -> Promise { @@ -13,9 +14,14 @@ class ReactNativeCheckBiometricAuthChanged: HybridReactNativeCheckBiometricAuthC let oldDomainState = defaults.data(forKey: "biometricAuthState") if let oldDomainState = oldDomainState { changed = oldDomainState != domainState + } else { + OneKeyLog.info("Biometric", "No previous biometric state stored, saving initial state") } defaults.set(domainState, forKey: "biometricAuthState") defaults.synchronize() + if changed { + OneKeyLog.warn("Biometric", "Biometric auth change detected") + } return changed } } diff --git a/native-modules/react-native-cloud-kit-module/CloudKitModule.podspec b/native-modules/react-native-cloud-kit-module/CloudKitModule.podspec index 81c0593b..0a4628e6 100644 --- a/native-modules/react-native-cloud-kit-module/CloudKitModule.podspec +++ b/native-modules/react-native-cloud-kit-module/CloudKitModule.podspec @@ -21,6 +21,7 @@ Pod::Spec.new do |s| s.dependency 'React-jsi' s.dependency 'React-callinvoker' + s.dependency 'ReactNativeNativeLogger' load 'nitrogen/generated/ios/CloudKitModule+autolinking.rb' add_nitrogen_files(s) diff --git a/native-modules/react-native-cloud-kit-module/ios/CloudKitModule.swift b/native-modules/react-native-cloud-kit-module/ios/CloudKitModule.swift index 7c349431..0589be14 100644 --- a/native-modules/react-native-cloud-kit-module/ios/CloudKitModule.swift +++ b/native-modules/react-native-cloud-kit-module/ios/CloudKitModule.swift @@ -1,6 +1,7 @@ import Foundation import CloudKit import NitroModules +import ReactNativeNativeLogger class CloudKitModule: HybridCloudKitModuleSpec { @@ -13,6 +14,7 @@ class CloudKitModule: HybridCloudKitModuleSpec { public func isAvailable() throws -> Promise { return Promise.async { let status = try await self.container.accountStatus() + OneKeyLog.info("CloudKit", "Account status: \(status.rawValue), available: \(status == .available)") return status == .available } } @@ -28,6 +30,7 @@ class CloudKitModule: HybridCloudKitModuleSpec { let userRecordID = try await self.container.userRecordID() userId = userRecordID.recordName } catch { + OneKeyLog.warn("CloudKit", "Failed to get user record ID: \(error)") userId = nil } } @@ -51,6 +54,7 @@ class CloudKitModule: HybridCloudKitModuleSpec { public func saveRecord(params: SaveRecordParams) throws -> Promise { return Promise.async { + OneKeyLog.info("CloudKit", "Saving record: \(params.recordID), type: \(params.recordType)") let ckRecordID = CKRecord.ID(recordName: params.recordID) let recordToSave: CKRecord do { @@ -65,6 +69,7 @@ class CloudKitModule: HybridCloudKitModuleSpec { recordToSave[CloudKitConstants.recordDataField] = params.data as CKRecordValue recordToSave[CloudKitConstants.recordMetaField] = params.meta as CKRecordValue let savedRecord = try await self.database.save(recordToSave) + OneKeyLog.info("CloudKit", "Record saved: \(savedRecord.recordID.recordName)") let createdAt = Int64((savedRecord.creationDate?.timeIntervalSince1970 ?? 0) * 1000) let result = SaveRecordResult( recordID: savedRecord.recordID.recordName, @@ -82,6 +87,7 @@ class CloudKitModule: HybridCloudKitModuleSpec { do { let record = try await self.database.record(for: ckRecordID) + OneKeyLog.debug("CloudKit", "Record fetched: \(params.recordID)") let data = record[CloudKitConstants.recordDataField] as? String ?? "" let meta = record[CloudKitConstants.recordMetaField] as? String ?? "" @@ -97,6 +103,7 @@ class CloudKitModule: HybridCloudKitModuleSpec { modifiedAt: Double(modifiedAt) )) } catch let error as CKError where error.code == .unknownItem { + OneKeyLog.debug("CloudKit", "Record not found: \(params.recordID)") return Variant_NullType_RecordResult.first(NullType.null) } } @@ -110,9 +117,10 @@ class CloudKitModule: HybridCloudKitModuleSpec { do { _ = try await self.database.deleteRecord(withID: ckRecordID) + OneKeyLog.info("CloudKit", "Record deleted: \(params.recordID)") return Void() } catch let error as CKError where error.code == .unknownItem { - // Item not found is considered success for delete + OneKeyLog.debug("CloudKit", "Record not found for delete (OK): \(params.recordID)") return Void() } } @@ -172,9 +180,11 @@ class CloudKitModule: HybridCloudKitModuleSpec { case .success: // Sort by modification time descending to return latest first let sorted = results.sorted { $0.modifiedAt > $1.modifiedAt } + OneKeyLog.info("CloudKit", "Query returned \(sorted.count) records for type: \(params.recordType)") let queryResult = QueryRecordsResult(records: sorted) continuation.resume(returning: queryResult) case .failure(let error): + OneKeyLog.error("CloudKit", "Query failed for type \(params.recordType): \(error)") continuation.resume(throwing: error) } } diff --git a/native-modules/react-native-device-utils/ReactNativeDeviceUtils.podspec b/native-modules/react-native-device-utils/ReactNativeDeviceUtils.podspec index 28afd20f..134f717f 100644 --- a/native-modules/react-native-device-utils/ReactNativeDeviceUtils.podspec +++ b/native-modules/react-native-device-utils/ReactNativeDeviceUtils.podspec @@ -21,6 +21,7 @@ Pod::Spec.new do |s| s.dependency 'React-jsi' s.dependency 'React-callinvoker' + s.dependency 'ReactNativeNativeLogger' load 'nitrogen/generated/ios/ReactNativeDeviceUtils+autolinking.rb' add_nitrogen_files(s) diff --git a/native-modules/react-native-device-utils/android/build.gradle b/native-modules/react-native-device-utils/android/build.gradle index 23302caf..4ed23924 100644 --- a/native-modules/react-native-device-utils/android/build.gradle +++ b/native-modules/react-native-device-utils/android/build.gradle @@ -133,4 +133,6 @@ dependencies { implementation "androidx.appcompat:appcompat:1.7.1" // AndroidX Preference for PreferenceManager implementation "androidx.preference:preference-ktx:1.2.1" + + compileOnly project(":react-native-native-logger") } diff --git a/native-modules/react-native-device-utils/android/src/main/java/com/margelo/nitro/reactnativedeviceutils/ReactNativeDeviceUtils.kt b/native-modules/react-native-device-utils/android/src/main/java/com/margelo/nitro/reactnativedeviceutils/ReactNativeDeviceUtils.kt index 519995e5..8b169286 100644 --- a/native-modules/react-native-device-utils/android/src/main/java/com/margelo/nitro/reactnativedeviceutils/ReactNativeDeviceUtils.kt +++ b/native-modules/react-native-device-utils/android/src/main/java/com/margelo/nitro/reactnativedeviceutils/ReactNativeDeviceUtils.kt @@ -6,7 +6,7 @@ import android.content.pm.PackageManager import android.graphics.Color import android.graphics.Rect import android.os.Build -import android.util.Log +import com.margelo.nitro.nativelogger.OneKeyLog import androidx.preference.PreferenceManager import androidx.core.content.ContextCompat import androidx.core.util.Consumer @@ -237,10 +237,14 @@ class ReactNativeDeviceUtils : HybridReactNativeDeviceUtilsSpec(), LifecycleEven try { val context = NitroModules.applicationContext ?: return val prefs = PreferenceManager.getDefaultSharedPreferences(context) - val style = prefs.getString(PREF_KEY_UI_STYLE, null) ?: return + val style = prefs.getString(PREF_KEY_UI_STYLE, null) ?: run { + OneKeyLog.debug("DeviceUtils", "No saved UI style found") + return + } + OneKeyLog.info("DeviceUtils", "Restored UI style: $style") applyUserInterfaceStyle(style) } catch (e: Exception) { - // Ignore restore errors + OneKeyLog.warn("DeviceUtils", "Failed to restore UI style: ${e.message}") } } @@ -284,6 +288,7 @@ class ReactNativeDeviceUtils : HybridReactNativeDeviceUtilsSpec(), LifecycleEven saveFoldableStatus(true) } isDualScreenDeviceDetected = hasFolding + OneKeyLog.info("DeviceUtils", "Foldable detected: $hasFolding (${Build.MANUFACTURER} ${Build.MODEL})") return isDualScreenDeviceDetected!! } isDualScreenDeviceDetected = false @@ -576,7 +581,7 @@ class ReactNativeDeviceUtils : HybridReactNativeDeviceUtilsSpec(), LifecycleEven // Check device model name to determine if it's a foldable device return isFoldableDeviceByName() } catch (e: Exception) { - // WindowManager library not available or device doesn't support foldables + OneKeyLog.warn("DeviceUtils", "Foldable detection failed: ${e.message}") return false } } @@ -705,7 +710,7 @@ class ReactNativeDeviceUtils : HybridReactNativeDeviceUtilsSpec(), LifecycleEven try { listener.callback(isSpanning) } catch (e: Exception) { - Log.e("OneKey", "Error in spanning listener callback", e) + OneKeyLog.error("DeviceUtils", "Error in spanning listener callback: ${e.message}") } } } @@ -754,7 +759,7 @@ class ReactNativeDeviceUtils : HybridReactNativeDeviceUtilsSpec(), LifecycleEven layoutInfoConsumer!! ) } catch (e: Exception) { - // Window tracking not supported on this device/API level, ignore + OneKeyLog.warn("DeviceUtils", "Window tracking setup failed: ${e.message}") } } } @@ -787,6 +792,7 @@ class ReactNativeDeviceUtils : HybridReactNativeDeviceUtilsSpec(), LifecycleEven // Emit event if spanning state changed if (wasSpanning != this.isSpanning) { + OneKeyLog.info("DeviceUtils", "Spanning state changed: $wasSpanning -> ${this.isSpanning}") this.callSpanningChangedListeners(this.isSpanning) } } @@ -799,6 +805,7 @@ class ReactNativeDeviceUtils : HybridReactNativeDeviceUtilsSpec(), LifecycleEven UserInterfaceStyle.DARK -> "dark" UserInterfaceStyle.UNSPECIFIED -> "unspecified" } + OneKeyLog.info("DeviceUtils", "Set UI style: $styleString") try { val context = NitroModules.applicationContext if (context != null) { @@ -826,7 +833,7 @@ class ReactNativeDeviceUtils : HybridReactNativeDeviceUtilsSpec(), LifecycleEven val rootView = activity.window.decorView rootView.rootView.setBackgroundColor(Color.argb(alpha, red, green, blue)) } catch (e: Exception) { - e.printStackTrace() + OneKeyLog.error("DeviceUtils", "Failed to change background color: ${e.message}") } } } diff --git a/native-modules/react-native-device-utils/ios/ReactNativeDeviceUtils.swift b/native-modules/react-native-device-utils/ios/ReactNativeDeviceUtils.swift index ca527ac0..e336fb32 100644 --- a/native-modules/react-native-device-utils/ios/ReactNativeDeviceUtils.swift +++ b/native-modules/react-native-device-utils/ios/ReactNativeDeviceUtils.swift @@ -1,5 +1,6 @@ import NitroModules import UIKit +import ReactNativeNativeLogger class ReactNativeDeviceUtils: HybridReactNativeDeviceUtilsSpec { @@ -12,8 +13,10 @@ class ReactNativeDeviceUtils: HybridReactNativeDeviceUtilsSpec { private func restoreUserInterfaceStyle() { guard let style = UserDefaults.standard.string(forKey: ReactNativeDeviceUtils.userInterfaceStyleKey) else { + OneKeyLog.debug("DeviceUtils", "No saved UI style found") return } + OneKeyLog.info("DeviceUtils", "Restored UI style: \(style)") applyUserInterfaceStyle(style) } @@ -70,6 +73,7 @@ class ReactNativeDeviceUtils: HybridReactNativeDeviceUtilsSpec { public func setUserInterfaceStyle(style: UserInterfaceStyle) throws -> Void { + OneKeyLog.info("DeviceUtils", "Set UI style: \(style.stringValue)") UserDefaults.standard.set(style.stringValue, forKey: ReactNativeDeviceUtils.userInterfaceStyleKey) applyUserInterfaceStyle(style.stringValue) } diff --git a/native-modules/react-native-get-random-values/ReactNativeGetRandomValues.podspec b/native-modules/react-native-get-random-values/ReactNativeGetRandomValues.podspec index 18c630cd..69db3d9d 100644 --- a/native-modules/react-native-get-random-values/ReactNativeGetRandomValues.podspec +++ b/native-modules/react-native-get-random-values/ReactNativeGetRandomValues.podspec @@ -21,6 +21,7 @@ Pod::Spec.new do |s| s.dependency 'React-jsi' s.dependency 'React-callinvoker' + s.dependency 'ReactNativeNativeLogger' load 'nitrogen/generated/ios/ReactNativeGetRandomValues+autolinking.rb' add_nitrogen_files(s) diff --git a/native-modules/react-native-get-random-values/android/build.gradle b/native-modules/react-native-get-random-values/android/build.gradle index 430e0c8d..1ad5580c 100644 --- a/native-modules/react-native-get-random-values/android/build.gradle +++ b/native-modules/react-native-get-random-values/android/build.gradle @@ -125,4 +125,6 @@ dependencies { implementation "com.facebook.react:react-android" implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation project(":react-native-nitro-modules") + + compileOnly project(":react-native-native-logger") } diff --git a/native-modules/react-native-get-random-values/android/src/main/java/com/margelo/nitro/reactnativegetrandomvalues/ReactNativeGetRandomValues.kt b/native-modules/react-native-get-random-values/android/src/main/java/com/margelo/nitro/reactnativegetrandomvalues/ReactNativeGetRandomValues.kt index 5d7a31ad..58a0a5ec 100644 --- a/native-modules/react-native-get-random-values/android/src/main/java/com/margelo/nitro/reactnativegetrandomvalues/ReactNativeGetRandomValues.kt +++ b/native-modules/react-native-get-random-values/android/src/main/java/com/margelo/nitro/reactnativegetrandomvalues/ReactNativeGetRandomValues.kt @@ -1,15 +1,21 @@ package com.margelo.nitro.reactnativegetrandomvalues import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.nativelogger.OneKeyLog @DoNotStrip class ReactNativeGetRandomValues : HybridReactNativeGetRandomValuesSpec() { override fun getRandomBase64(byteLength: Double): String { - val data = ByteArray(byteLength.toInt()) - val random = java.security.SecureRandom() + try { + val data = ByteArray(byteLength.toInt()) + val random = java.security.SecureRandom() - random.nextBytes(data) + random.nextBytes(data) - return android.util.Base64.encodeToString(data, android.util.Base64.NO_WRAP) + return android.util.Base64.encodeToString(data, android.util.Base64.NO_WRAP) + } catch (e: Exception) { + OneKeyLog.error("RandomValues", "SecureRandom failed: ${e.message}") + throw e + } } } \ No newline at end of file diff --git a/native-modules/react-native-get-random-values/ios/ReactNativeGetRandomValues.swift b/native-modules/react-native-get-random-values/ios/ReactNativeGetRandomValues.swift index fb14118d..526f59c4 100644 --- a/native-modules/react-native-get-random-values/ios/ReactNativeGetRandomValues.swift +++ b/native-modules/react-native-get-random-values/ios/ReactNativeGetRandomValues.swift @@ -1,10 +1,12 @@ import NitroModules +import ReactNativeNativeLogger class ReactNativeGetRandomValues: HybridReactNativeGetRandomValuesSpec { func getRandomBase64(byteLength: Double) throws -> String { let data = NSMutableData(length: Int(byteLength))! let result = SecRandomCopyBytes(kSecRandomDefault, Int(byteLength), data.mutableBytes) if result != errSecSuccess { + OneKeyLog.error("RandomValues", "SecRandomCopyBytes failed with status: \(result)") throw NSError(domain: "ReactNativeGetRandomValues", code: Int(result), userInfo: nil) } return data.base64EncodedString(options: .lineLength64Characters) diff --git a/native-modules/react-native-keychain-module/KeychainModule.podspec b/native-modules/react-native-keychain-module/KeychainModule.podspec index a8b2a68e..916cbb72 100644 --- a/native-modules/react-native-keychain-module/KeychainModule.podspec +++ b/native-modules/react-native-keychain-module/KeychainModule.podspec @@ -21,6 +21,7 @@ Pod::Spec.new do |s| s.dependency 'React-jsi' s.dependency 'React-callinvoker' + s.dependency 'ReactNativeNativeLogger' load 'nitrogen/generated/ios/KeychainModule+autolinking.rb' add_nitrogen_files(s) diff --git a/native-modules/react-native-keychain-module/ios/KeychainModule.swift b/native-modules/react-native-keychain-module/ios/KeychainModule.swift index eda8ea43..8b86131a 100644 --- a/native-modules/react-native-keychain-module/ios/KeychainModule.swift +++ b/native-modules/react-native-keychain-module/ios/KeychainModule.swift @@ -1,4 +1,5 @@ import NitroModules +import ReactNativeNativeLogger class KeychainModule: HybridKeychainModuleSpec { @@ -10,6 +11,7 @@ class KeychainModule: HybridKeychainModuleSpec { try moduleCore.setItem(params: typedParams) return Promise.resolved(withResult: Void()) } catch let error as KeychainModuleError { + OneKeyLog.error("Keychain", "setItem failed: \(error)") switch error { case .encodingFailed: return Promise.rejected(withError: NSError(domain: "keychain_set_error", code: -1000, userInfo: [NSLocalizedDescriptionKey: "Failed to encode value"])) @@ -19,6 +21,7 @@ class KeychainModule: HybridKeychainModuleSpec { return Promise.rejected(withError: NSError(domain: "keychain_set_error", code: -1000, userInfo: [NSLocalizedDescriptionKey: "Failed to set keychain item"])) } } catch { + OneKeyLog.error("Keychain", "setItem unexpected error: \(error)") return Promise.rejected(withError: NSError(domain: "keychain_set_error", code: -1000, userInfo: [NSLocalizedDescriptionKey: "Failed to set keychain item", NSUnderlyingErrorKey: error])) } } @@ -32,6 +35,7 @@ class KeychainModule: HybridKeychainModuleSpec { return Promise.resolved(withResult: Variant_NullType_GetItemResult.first(NullType.null)) } } catch let error as KeychainModuleError { + OneKeyLog.error("Keychain", "getItem failed: \(error)") switch error { case .operationFailed(let status): return Promise.rejected(withError: NSError(domain: NSOSStatusErrorDomain, code: Int(status), userInfo: [NSLocalizedDescriptionKey: "Failed to get keychain item: \(status)"])) @@ -39,6 +43,7 @@ class KeychainModule: HybridKeychainModuleSpec { return Promise.rejected(withError: NSError(domain: "keychain_get_error", code: -1000, userInfo: [NSLocalizedDescriptionKey: "Failed to get keychain item", NSUnderlyingErrorKey: error as NSError])) } } catch { + OneKeyLog.error("Keychain", "getItem unexpected error: \(error)") return Promise.rejected(withError: NSError(domain: "keychain_get_error", code: -1000, userInfo: [NSLocalizedDescriptionKey: "Failed to get keychain item", NSUnderlyingErrorKey: error])) } } @@ -49,6 +54,7 @@ class KeychainModule: HybridKeychainModuleSpec { try moduleCore.removeItem(params: typedParams) return Promise.resolved(withResult: Void()) } catch let error as KeychainModuleError { + OneKeyLog.error("Keychain", "removeItem failed: \(error)") switch error { case .operationFailed(let status): return Promise.rejected(withError: NSError(domain: NSOSStatusErrorDomain, code: Int(status), userInfo: [NSLocalizedDescriptionKey: "Failed to remove keychain item: \(status)"])) @@ -56,6 +62,7 @@ class KeychainModule: HybridKeychainModuleSpec { return Promise.rejected(withError: NSError(domain: "keychain_remove_error", code: -1000, userInfo: [NSLocalizedDescriptionKey: "Failed to remove keychain item", NSUnderlyingErrorKey: error as NSError])) } } catch { + OneKeyLog.error("Keychain", "removeItem unexpected error: \(error)") return Promise.rejected(withError: NSError(domain: "keychain_remove_error", code: -1000, userInfo: [NSLocalizedDescriptionKey: "Failed to remove keychain item", NSUnderlyingErrorKey: error])) } } diff --git a/native-modules/react-native-keychain-module/ios/KeychainModuleCore.swift b/native-modules/react-native-keychain-module/ios/KeychainModuleCore.swift index 9d2bc4b1..9952c8e8 100644 --- a/native-modules/react-native-keychain-module/ios/KeychainModuleCore.swift +++ b/native-modules/react-native-keychain-module/ios/KeychainModuleCore.swift @@ -8,6 +8,7 @@ import Foundation import Security +import ReactNativeNativeLogger // MARK: - Constants @@ -33,6 +34,7 @@ class KeychainModuleCore { func setItem(params: SetItemParams) throws { guard let valueData = params.value.data(using: .utf8) else { + OneKeyLog.error("Keychain", "Failed to encode value for key: \(params.key)") throw KeychainModuleError.encodingFailed } @@ -64,8 +66,10 @@ class KeychainModuleCore { let status = SecItemAdd(query as CFDictionary, nil) guard status == errSecSuccess else { + OneKeyLog.error("Keychain", "Failed to set item for key: \(params.key), OSStatus: \(status)") throw KeychainModuleError.operationFailed(status) } + OneKeyLog.info("Keychain", "Item set successfully for key: \(params.key)") } // MARK: - Get Item @@ -86,12 +90,15 @@ class KeychainModuleCore { if status == errSecSuccess { if let valueData = result as? Data, let value = String(data: valueData, encoding: .utf8) { + OneKeyLog.debug("Keychain", "Item found for key: \(params.key)") return GetItemResult(key: params.key, value: value) } return nil } else if status == errSecItemNotFound { + OneKeyLog.debug("Keychain", "Item not found for key: \(params.key)") return nil } else { + OneKeyLog.error("Keychain", "Failed to get item for key: \(params.key), OSStatus: \(status)") throw KeychainModuleError.operationFailed(status) } } @@ -110,8 +117,10 @@ class KeychainModuleCore { // Both success and item not found are acceptable for delete guard status == errSecSuccess || status == errSecItemNotFound else { + OneKeyLog.error("Keychain", "Failed to remove item for key: \(params.key), OSStatus: \(status)") throw KeychainModuleError.operationFailed(status) } + OneKeyLog.info("Keychain", "Item removed for key: \(params.key)") } // MARK: - Check Item Existence @@ -126,6 +135,7 @@ class KeychainModuleCore { ] let status = SecItemCopyMatching(query as CFDictionary, nil) + OneKeyLog.debug("Keychain", "Has item check for key: \(params.key), result: \(status == errSecSuccess)") return status == errSecSuccess } @@ -169,6 +179,8 @@ class KeychainModuleCore { // Common error codes: // errSecMissingEntitlement (-34018): Missing iCloud Keychain entitlement // errSecNotAvailable (-25291): iCloud Keychain not available/signed out - return addStatus == errSecSuccess + let enabled = addStatus == errSecSuccess + OneKeyLog.info("Keychain", "iCloud sync check result: \(enabled)") + return enabled } } From a38894d395118685145939807ac77ffb34224da6 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Fri, 27 Feb 2026 03:29:10 +0800 Subject: [PATCH 04/94] feat: add NativeLogger test page to example app Add test page with log directory viewer, write operations (custom message, all levels, batch), and file management (refresh, delete). Registers the native-logger module in the example app route and package.json. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- example/react-native/package.json | 1 + .../pages/NativeLoggerTestPage.tsx | 270 ++++++++++++++++++ example/react-native/route.tsx | 11 +- 3 files changed, 281 insertions(+), 1 deletion(-) create mode 100644 example/react-native/pages/NativeLoggerTestPage.tsx diff --git a/example/react-native/package.json b/example/react-native/package.json index 861b125f..6c5dc870 100644 --- a/example/react-native/package.json +++ b/example/react-native/package.json @@ -18,6 +18,7 @@ "@onekeyfe/react-native-get-random-values": "workspace:*", "@onekeyfe/react-native-keychain-module": "workspace:*", "@onekeyfe/react-native-lite-card": "workspace:*", + "@onekeyfe/react-native-native-logger": "workspace:*", "@onekeyfe/react-native-skeleton": "workspace:*", "@react-native/new-app-screen": "0.83.0", "fast-base64-decode": "*", diff --git a/example/react-native/pages/NativeLoggerTestPage.tsx b/example/react-native/pages/NativeLoggerTestPage.tsx new file mode 100644 index 00000000..cfb9f5fc --- /dev/null +++ b/example/react-native/pages/NativeLoggerTestPage.tsx @@ -0,0 +1,270 @@ +import React, { useCallback, useEffect, useState } from 'react'; +import { View, Text, Alert, StyleSheet } from 'react-native'; +import { TestPageBase, TestButton, TestInput, TestResult } from './TestPageBase'; +import { NativeLogger } from '@onekeyfe/react-native-native-logger'; + +interface NativeLoggerTestPageProps { + onGoHome: () => void; + safeAreaInsets: any; +} + +const LogLevel = { + DEBUG: 0, + INFO: 1, + WARN: 2, + ERROR: 3, +} as const; + +export function NativeLoggerTestPage({ onGoHome, safeAreaInsets }: NativeLoggerTestPageProps) { + const [result, setResult] = useState(null); + const [error, setError] = useState(null); + const [isLoading, setIsLoading] = useState(false); + const [logFiles, setLogFiles] = useState([]); + const [logDir, setLogDir] = useState(''); + const [customMessage, setCustomMessage] = useState('Hello from NativeLogger'); + + const refreshLogFiles = useCallback(async () => { + try { + const paths = await NativeLogger.getLogFilePaths(); + setLogFiles(paths); + if (paths.length > 0) { + setLogDir(paths[0].substring(0, paths[0].lastIndexOf('/'))); + } + } catch (err) { + const msg = err instanceof Error ? err.message : String(err); + setError(msg); + } + }, []); + + useEffect(() => { + refreshLogFiles(); + }, [refreshLogFiles]); + + const executeOperation = async (operation: () => Promise | any, operationName: string) => { + setIsLoading(true); + setError(null); + setResult(null); + try { + const res = await Promise.resolve(operation()); + setResult(res); + } catch (err) { + const msg = err instanceof Error ? err.message : String(err); + setError(msg); + Alert.alert('Error', `${operationName} failed: ${msg}`); + } finally { + setIsLoading(false); + } + }; + + const writeAllLevels = () => { + NativeLogger.write(LogLevel.DEBUG, '[Test] Debug message'); + NativeLogger.write(LogLevel.INFO, '[Test] Info message'); + NativeLogger.write(LogLevel.WARN, '[Test] Warning message'); + NativeLogger.write(LogLevel.ERROR, '[Test] Error message'); + setResult('Wrote 4 log messages (debug, info, warn, error)'); + setTimeout(() => refreshLogFiles(), 500); + }; + + const writeCustomMessage = () => { + if (!customMessage.trim()) { + Alert.alert('Error', 'Please enter a message'); + return; + } + NativeLogger.write(LogLevel.INFO, customMessage); + setResult(`Wrote: ${customMessage}`); + setTimeout(() => refreshLogFiles(), 500); + }; + + const writeBatchLogs = () => { + const count = 50; + for (let i = 0; i < count; i++) { + NativeLogger.write(LogLevel.INFO, `[Batch] Message ${i + 1}/${count}`); + } + setResult(`Wrote ${count} batch log messages`); + setTimeout(() => refreshLogFiles(), 500); + }; + + const getLogFilePaths = () => { + executeOperation(async () => { + const paths = await NativeLogger.getLogFilePaths(); + setLogFiles(paths); + if (paths.length > 0) { + setLogDir(paths[0].substring(0, paths[0].lastIndexOf('/'))); + } + return { + count: paths.length, + directory: paths.length > 0 ? paths[0].substring(0, paths[0].lastIndexOf('/')) : 'N/A', + files: paths.map(p => p.substring(p.lastIndexOf('/') + 1)), + }; + }, 'Get Log File Paths'); + }; + + const deleteLogFiles = () => { + Alert.alert('Confirm', 'Delete all log files?', [ + { text: 'Cancel', style: 'cancel' }, + { + text: 'Delete', + style: 'destructive', + onPress: () => { + executeOperation(async () => { + await NativeLogger.deleteLogFiles(); + await refreshLogFiles(); + return 'All log files deleted'; + }, 'Delete Log Files'); + }, + }, + ]); + }; + + return ( + + {/* Log Directory */} + + Log Directory + + Path: + + {logDir || 'Loading...'} + + + + + Files ({logFiles.length}): + + {logFiles.length === 0 ? ( + No log files yet + ) : ( + logFiles.map((path, index) => ( + + {path.substring(path.lastIndexOf('/') + 1)} + + )) + )} + + + + {/* Write Logs */} + + Write Logs + + + + + + + + + {/* File Operations */} + + File Operations + + + + + + + + + {/* Documentation */} + + + NativeLogger API:{'\n'} + {'• '}write(level, msg): Write log (0=debug, 1=info, 2=warn, 3=error){'\n'} + {'• '}getLogFilePaths(): Get all log file paths{'\n'} + {'• '}deleteLogFiles(): Delete all log files{'\n'} + {'\n'} + Log File Convention:{'\n'} + {'• '}Active: app-latest.log{'\n'} + {'• '}Archived: app-yyyy-MM-dd.i.log (max 6){'\n'} + {'• '}Max file size: 20 MB, daily rolling{'\n'} + {'• '}Directory: {''}/logs/ + + + + ); +} + +const styles = StyleSheet.create({ + section: { + gap: 5, + }, + sectionTitle: { + fontSize: 16, + fontWeight: '600', + color: '#333', + marginBottom: 5, + }, + dirBox: { + backgroundColor: '#fff', + padding: 12, + borderRadius: 8, + }, + dirLabel: { + fontSize: 13, + fontWeight: '600', + color: '#333', + marginBottom: 4, + }, + dirPath: { + fontSize: 12, + fontFamily: 'Courier New', + color: '#007AFF', + }, + fileList: { + backgroundColor: '#fff', + padding: 12, + borderRadius: 8, + marginTop: 6, + }, + fileName: { + fontSize: 12, + fontFamily: 'Courier New', + color: '#666', + marginBottom: 2, + }, + noFiles: { + fontSize: 13, + color: '#999', + fontStyle: 'italic', + }, + docSection: { + marginTop: 10, + padding: 15, + backgroundColor: '#fff', + borderRadius: 8, + }, + docText: { + fontSize: 14, + color: '#666', + lineHeight: 20, + }, +}); diff --git a/example/react-native/route.tsx b/example/react-native/route.tsx index e7fe9119..28c627de 100644 --- a/example/react-native/route.tsx +++ b/example/react-native/route.tsx @@ -8,8 +8,9 @@ import { LiteCardTestPage } from './pages/LiteCardTestPage'; import { GetRandomValuesTestPage } from './pages/GetRandomValuesTestPage'; import { DeviceUtilsTestPage } from './pages/DeviceUtilsTestPage'; import { SkeletonTestPage } from './pages/SkeletonTestPage'; +import { NativeLoggerTestPage } from './pages/NativeLoggerTestPage'; -export type RouteScreen = +export type RouteScreen = | 'home' | 'background-thread' | 'biometric-auth' @@ -18,6 +19,7 @@ export type RouteScreen = | 'lite-card' | 'get-random-values' | 'device-utils' + | 'native-logger' | 'skeleton'; interface RouterProps { @@ -60,6 +62,11 @@ const modules = [ name: 'Get Random Values', description: 'Generate cryptographically secure random values', }, + { + id: 'native-logger' as RouteScreen, + name: 'Native Logger', + description: 'File-based logging with log directory viewer', + }, { id: 'skeleton' as RouteScreen, name: 'Skeleton View', @@ -147,6 +154,8 @@ export function Router({ safeAreaInsets }: RouterProps) { return ; case 'get-random-values': return ; + case 'native-logger': + return ; case 'skeleton': return ; default: From 22970464558b69b2aaeec3b8967d45e460a9de88 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sat, 28 Feb 2026 01:05:23 +0800 Subject: [PATCH 05/94] chore: bump version to 1.1.20 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- native-modules/native-logger/package.json | 2 +- native-modules/react-native-background-thread/package.json | 2 +- .../react-native-check-biometric-auth-changed/package.json | 2 +- native-modules/react-native-cloud-kit-module/package.json | 2 +- native-modules/react-native-device-utils/package.json | 2 +- native-modules/react-native-get-random-values/package.json | 2 +- native-modules/react-native-keychain-module/package.json | 2 +- native-modules/react-native-lite-card/package.json | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/native-modules/native-logger/package.json b/native-modules/native-logger/package.json index f2f9ab99..ac35d906 100644 --- a/native-modules/native-logger/package.json +++ b/native-modules/native-logger/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/react-native-native-logger", - "version": "1.1.19", + "version": "1.1.20", "description": "react-native-native-logger", "main": "./lib/module/index.js", "types": "./lib/typescript/src/index.d.ts", diff --git a/native-modules/react-native-background-thread/package.json b/native-modules/react-native-background-thread/package.json index 23dd24af..5f7203b6 100644 --- a/native-modules/react-native-background-thread/package.json +++ b/native-modules/react-native-background-thread/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/react-native-background-thread", - "version": "1.1.19", + "version": "1.1.20", "description": "react-native-background-thread", "main": "./lib/module/index.js", "types": "./lib/typescript/src/index.d.ts", diff --git a/native-modules/react-native-check-biometric-auth-changed/package.json b/native-modules/react-native-check-biometric-auth-changed/package.json index 88b6fdc6..0d141c97 100644 --- a/native-modules/react-native-check-biometric-auth-changed/package.json +++ b/native-modules/react-native-check-biometric-auth-changed/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/react-native-check-biometric-auth-changed", - "version": "1.1.19", + "version": "1.1.20", "description": "react-native-check-biometric-auth-changed", "main": "./lib/module/index.js", "types": "./lib/typescript/src/index.d.ts", diff --git a/native-modules/react-native-cloud-kit-module/package.json b/native-modules/react-native-cloud-kit-module/package.json index fd41c5d7..64c6de41 100644 --- a/native-modules/react-native-cloud-kit-module/package.json +++ b/native-modules/react-native-cloud-kit-module/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/react-native-cloud-kit-module", - "version": "1.1.19", + "version": "1.1.20", "description": "react-native-cloud-kit-module", "main": "./lib/module/index.js", "types": "./lib/typescript/src/index.d.ts", diff --git a/native-modules/react-native-device-utils/package.json b/native-modules/react-native-device-utils/package.json index 00448f3b..4e870427 100644 --- a/native-modules/react-native-device-utils/package.json +++ b/native-modules/react-native-device-utils/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/react-native-device-utils", - "version": "1.1.19", + "version": "1.1.20", "description": "react-native-device-utils", "main": "./lib/module/index.js", "types": "./lib/typescript/src/index.d.ts", diff --git a/native-modules/react-native-get-random-values/package.json b/native-modules/react-native-get-random-values/package.json index 51bda887..794e92cb 100644 --- a/native-modules/react-native-get-random-values/package.json +++ b/native-modules/react-native-get-random-values/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/react-native-get-random-values", - "version": "1.1.19", + "version": "1.1.20", "description": "react-native-get-random-values", "main": "./lib/module/index.js", "types": "./lib/typescript/src/index.d.ts", diff --git a/native-modules/react-native-keychain-module/package.json b/native-modules/react-native-keychain-module/package.json index dd02f42c..c8e94d80 100644 --- a/native-modules/react-native-keychain-module/package.json +++ b/native-modules/react-native-keychain-module/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/react-native-keychain-module", - "version": "1.1.19", + "version": "1.1.20", "description": "react-native-keychain-module", "main": "./lib/module/index.js", "types": "./lib/typescript/src/index.d.ts", diff --git a/native-modules/react-native-lite-card/package.json b/native-modules/react-native-lite-card/package.json index a036df2d..9518ff15 100644 --- a/native-modules/react-native-lite-card/package.json +++ b/native-modules/react-native-lite-card/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/react-native-lite-card", - "version": "1.1.19", + "version": "1.1.20", "description": "lite card", "main": "./lib/module/index.js", "types": "./lib/typescript/src/index.d.ts", From da065521c4aed597a69a2524c9abfcadbe195cb3 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sat, 28 Feb 2026 01:13:37 +0800 Subject: [PATCH 06/94] chore: add native-logger as default dependency in module template New modules created via create-nitro-module.js will now include OneKeyLog dependency out of the box (podspec, build.gradle, imports). Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- scripts/nitro/template/ModuleName.podspec | 1 + scripts/nitro/template/android/build.gradle | 2 ++ .../src/main/java/com/margelo/nitro/modulename/ModuleName.kt | 1 + scripts/nitro/template/ios/ModuleName.swift | 1 + 4 files changed, 5 insertions(+) diff --git a/scripts/nitro/template/ModuleName.podspec b/scripts/nitro/template/ModuleName.podspec index d1808730..f9243bd5 100644 --- a/scripts/nitro/template/ModuleName.podspec +++ b/scripts/nitro/template/ModuleName.podspec @@ -21,6 +21,7 @@ Pod::Spec.new do |s| s.dependency 'React-jsi' s.dependency 'React-callinvoker' + s.dependency 'ReactNativeNativeLogger' load 'nitrogen/generated/ios/{{modulePascalCase}}+autolinking.rb' add_nitrogen_files(s) diff --git a/scripts/nitro/template/android/build.gradle b/scripts/nitro/template/android/build.gradle index e01a2813..24252985 100644 --- a/scripts/nitro/template/android/build.gradle +++ b/scripts/nitro/template/android/build.gradle @@ -125,4 +125,6 @@ dependencies { implementation "com.facebook.react:react-android" implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation project(":react-native-nitro-modules") + + compileOnly project(":react-native-native-logger") } diff --git a/scripts/nitro/template/android/src/main/java/com/margelo/nitro/modulename/ModuleName.kt b/scripts/nitro/template/android/src/main/java/com/margelo/nitro/modulename/ModuleName.kt index ebe8263d..51e9555c 100644 --- a/scripts/nitro/template/android/src/main/java/com/margelo/nitro/modulename/ModuleName.kt +++ b/scripts/nitro/template/android/src/main/java/com/margelo/nitro/modulename/ModuleName.kt @@ -2,6 +2,7 @@ package com.margelo.nitro.{{cxxNamespace}} import com.facebook.proguard.annotations.DoNotStrip import com.margelo.nitro.core.Promise +import com.margelo.nitro.nativelogger.OneKeyLog @DoNotStrip class {{modulePascalCase}} : Hybrid{{modulePascalCase}}Spec() { diff --git a/scripts/nitro/template/ios/ModuleName.swift b/scripts/nitro/template/ios/ModuleName.swift index 4aa564aa..5e6e6f23 100644 --- a/scripts/nitro/template/ios/ModuleName.swift +++ b/scripts/nitro/template/ios/ModuleName.swift @@ -1,4 +1,5 @@ import NitroModules +import ReactNativeNativeLogger class {{modulePascalCase}}: Hybrid{{modulePascalCase}}Spec { From b9f4cb740486c8e8e21ccc5dcf5c0379e74b09fb Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sat, 28 Feb 2026 02:23:37 +0800 Subject: [PATCH 07/94] fix: address code review issues for native-logger module - Replace force unwrap with safe unwrap in iOS logsDirectory - Use detachAppender instead of detachAndStopAllAppenders on Android - Handle applicationContext null gracefully in Android OneKeyLog - Log failures in getLogFilePaths and deleteLogFiles (iOS + Android) - Redact keychain key names in log output for security - Replace setTimeout with await in test page Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- .../pages/NativeLoggerTestPage.tsx | 12 +++++----- .../nitro/nativelogger/NativeLogger.kt | 22 +++++++++++++---- .../margelo/nitro/nativelogger/OneKeyLog.kt | 12 ++++++---- .../native-logger/ios/NativeLogger.swift | 20 +++++++++++++--- .../native-logger/ios/OneKeyLog.swift | 7 ++++-- .../ios/KeychainModuleCore.swift | 24 ++++++++++++------- 6 files changed, 68 insertions(+), 29 deletions(-) diff --git a/example/react-native/pages/NativeLoggerTestPage.tsx b/example/react-native/pages/NativeLoggerTestPage.tsx index cfb9f5fc..e2ccc2b0 100644 --- a/example/react-native/pages/NativeLoggerTestPage.tsx +++ b/example/react-native/pages/NativeLoggerTestPage.tsx @@ -56,32 +56,32 @@ export function NativeLoggerTestPage({ onGoHome, safeAreaInsets }: NativeLoggerT } }; - const writeAllLevels = () => { + const writeAllLevels = async () => { NativeLogger.write(LogLevel.DEBUG, '[Test] Debug message'); NativeLogger.write(LogLevel.INFO, '[Test] Info message'); NativeLogger.write(LogLevel.WARN, '[Test] Warning message'); NativeLogger.write(LogLevel.ERROR, '[Test] Error message'); setResult('Wrote 4 log messages (debug, info, warn, error)'); - setTimeout(() => refreshLogFiles(), 500); + await refreshLogFiles(); }; - const writeCustomMessage = () => { + const writeCustomMessage = async () => { if (!customMessage.trim()) { Alert.alert('Error', 'Please enter a message'); return; } NativeLogger.write(LogLevel.INFO, customMessage); setResult(`Wrote: ${customMessage}`); - setTimeout(() => refreshLogFiles(), 500); + await refreshLogFiles(); }; - const writeBatchLogs = () => { + const writeBatchLogs = async () => { const count = 50; for (let i = 0; i < count; i++) { NativeLogger.write(LogLevel.INFO, `[Batch] Message ${i + 1}/${count}`); } setResult(`Wrote ${count} batch log messages`); - setTimeout(() => refreshLogFiles(), 500); + await refreshLogFiles(); }; const getLogFilePaths = () => { diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt index d90a2755..e5d48f9c 100644 --- a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt @@ -20,17 +20,29 @@ class NativeLogger : HybridNativeLoggerSpec() { override fun getLogFilePaths(): Promise> { return Promise.async { val dir = OneKeyLog.logsDirectory - File(dir).listFiles { _, name -> name.endsWith(".log") } - ?.sortedBy { it.name } - ?.map { it.absolutePath }?.toTypedArray() ?: arrayOf() + val files = File(dir).listFiles { _, name -> name.endsWith(".log") } + if (files == null) { + OneKeyLog.warn("NativeLogger", "Failed to list log directory: $dir") + return@async arrayOf() + } + files.sortedBy { it.name } + .map { it.absolutePath }.toTypedArray() } } override fun deleteLogFiles(): Promise { return Promise.async { val dir = OneKeyLog.logsDirectory - File(dir).listFiles { _, name -> name.endsWith(".log") } - ?.forEach { it.delete() } + val files = File(dir).listFiles { _, name -> name.endsWith(".log") } + if (files == null) { + OneKeyLog.warn("NativeLogger", "Failed to list log directory for deletion: $dir") + return@async + } + files.forEach { file -> + if (!file.delete()) { + OneKeyLog.warn("NativeLogger", "Failed to delete log file: ${file.name}") + } + } } } } diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt index a5edf1c9..abec2a0d 100644 --- a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt @@ -22,8 +22,12 @@ object OneKeyLog { val logsDirectory: String by lazy { val context = NitroModules.applicationContext - ?: throw IllegalStateException("NitroModules.applicationContext is null") - "${context.cacheDir.absolutePath}/logs" + if (context == null) { + android.util.Log.e("OneKeyLog", "NitroModules.applicationContext is null, falling back to /tmp/logs") + "/tmp/logs" + } else { + "${context.cacheDir.absolutePath}/logs" + } } private val logger: Logger by lazy { @@ -63,8 +67,8 @@ object OneKeyLog { Logger.ROOT_LOGGER_NAME ) as ch.qos.logback.classic.Logger root.level = Level.DEBUG - // Remove all existing appenders (including default console) to avoid duplicate logcat output - root.detachAndStopAllAppenders() + // Only detach our own appender if re-initializing, then add it fresh + root.detachAppender(APPENDER_NAME) root.addAppender(appender) LoggerFactory.getLogger("OneKey") diff --git a/native-modules/native-logger/ios/NativeLogger.swift b/native-modules/native-logger/ios/NativeLogger.swift index d662e9f4..ff547c78 100644 --- a/native-modules/native-logger/ios/NativeLogger.swift +++ b/native-modules/native-logger/ios/NativeLogger.swift @@ -16,7 +16,11 @@ class NativeLogger: HybridNativeLoggerSpec { return Promise.async { let dir = OneKeyLog.logsDirectory let fm = FileManager.default - guard let files = try? fm.contentsOfDirectory(atPath: dir) else { + let files: [String] + do { + files = try fm.contentsOfDirectory(atPath: dir) + } catch { + OneKeyLog.warn("NativeLogger", "Failed to list log directory: \(error.localizedDescription)") return [] } return files @@ -30,9 +34,19 @@ class NativeLogger: HybridNativeLoggerSpec { return Promise.async { let dir = OneKeyLog.logsDirectory let fm = FileManager.default - guard let files = try? fm.contentsOfDirectory(atPath: dir) else { return } + let files: [String] + do { + files = try fm.contentsOfDirectory(atPath: dir) + } catch { + OneKeyLog.warn("NativeLogger", "Failed to list log directory for deletion: \(error.localizedDescription)") + return + } for file in files where file.hasSuffix(".log") { - try? fm.removeItem(atPath: "\(dir)/\(file)") + do { + try fm.removeItem(atPath: "\(dir)/\(file)") + } catch { + OneKeyLog.warn("NativeLogger", "Failed to delete log file \(file): \(error.localizedDescription)") + } } } } diff --git a/native-modules/native-logger/ios/OneKeyLog.swift b/native-modules/native-logger/ios/OneKeyLog.swift index a0a39279..6542f673 100644 --- a/native-modules/native-logger/ios/OneKeyLog.swift +++ b/native-modules/native-logger/ios/OneKeyLog.swift @@ -86,9 +86,12 @@ private class OneKeyLogFileManager: DDLogFileManagerDefault { /// Returns the logs directory path (for getLogFilePaths / deleteLogFiles) static var logsDirectory: String { - let cacheDir = NSSearchPathForDirectoriesInDomains( + guard let cacheDir = NSSearchPathForDirectoriesInDomains( .cachesDirectory, .userDomainMask, true - ).first! + ).first else { + // Fallback to tmp directory if Caches is somehow unavailable + return NSTemporaryDirectory() + "logs" + } return cacheDir + "/logs" } } diff --git a/native-modules/react-native-keychain-module/ios/KeychainModuleCore.swift b/native-modules/react-native-keychain-module/ios/KeychainModuleCore.swift index 9952c8e8..fbb2abc8 100644 --- a/native-modules/react-native-keychain-module/ios/KeychainModuleCore.swift +++ b/native-modules/react-native-keychain-module/ios/KeychainModuleCore.swift @@ -30,11 +30,17 @@ enum KeychainModuleError: Error { class KeychainModuleCore { + /// Redact key name for logging: show only last 4 characters + private func redactKey(_ key: String) -> String { + if key.count <= 4 { return "***" } + return "***\(key.suffix(4))" + } + // MARK: - Set Item func setItem(params: SetItemParams) throws { guard let valueData = params.value.data(using: .utf8) else { - OneKeyLog.error("Keychain", "Failed to encode value for key: \(params.key)") + OneKeyLog.error("Keychain", "Failed to encode value for key: \(redactKey(params.key))") throw KeychainModuleError.encodingFailed } @@ -66,10 +72,10 @@ class KeychainModuleCore { let status = SecItemAdd(query as CFDictionary, nil) guard status == errSecSuccess else { - OneKeyLog.error("Keychain", "Failed to set item for key: \(params.key), OSStatus: \(status)") + OneKeyLog.error("Keychain", "Failed to set item for key: \(redactKey(params.key)), OSStatus: \(status)") throw KeychainModuleError.operationFailed(status) } - OneKeyLog.info("Keychain", "Item set successfully for key: \(params.key)") + OneKeyLog.info("Keychain", "Item set successfully for key: \(redactKey(params.key))") } // MARK: - Get Item @@ -90,15 +96,15 @@ class KeychainModuleCore { if status == errSecSuccess { if let valueData = result as? Data, let value = String(data: valueData, encoding: .utf8) { - OneKeyLog.debug("Keychain", "Item found for key: \(params.key)") + OneKeyLog.debug("Keychain", "Item found for key: \(redactKey(params.key))") return GetItemResult(key: params.key, value: value) } return nil } else if status == errSecItemNotFound { - OneKeyLog.debug("Keychain", "Item not found for key: \(params.key)") + OneKeyLog.debug("Keychain", "Item not found for key: \(redactKey(params.key))") return nil } else { - OneKeyLog.error("Keychain", "Failed to get item for key: \(params.key), OSStatus: \(status)") + OneKeyLog.error("Keychain", "Failed to get item for key: \(redactKey(params.key)), OSStatus: \(status)") throw KeychainModuleError.operationFailed(status) } } @@ -117,10 +123,10 @@ class KeychainModuleCore { // Both success and item not found are acceptable for delete guard status == errSecSuccess || status == errSecItemNotFound else { - OneKeyLog.error("Keychain", "Failed to remove item for key: \(params.key), OSStatus: \(status)") + OneKeyLog.error("Keychain", "Failed to remove item for key: \(redactKey(params.key)), OSStatus: \(status)") throw KeychainModuleError.operationFailed(status) } - OneKeyLog.info("Keychain", "Item removed for key: \(params.key)") + OneKeyLog.info("Keychain", "Item removed for key: \(redactKey(params.key))") } // MARK: - Check Item Existence @@ -135,7 +141,7 @@ class KeychainModuleCore { ] let status = SecItemCopyMatching(query as CFDictionary, nil) - OneKeyLog.debug("Keychain", "Has item check for key: \(params.key), result: \(status == errSecSuccess)") + OneKeyLog.debug("Keychain", "Has item check for key: \(redactKey(params.key)), result: \(status == errSecSuccess)") return status == errSecSuccess } From 6adfc6650962c655bcc029335b3753192fe98609 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sat, 28 Feb 2026 02:26:54 +0800 Subject: [PATCH 08/94] fix: remove key names from keychain logs and improve comments - Remove all key name references from Keychain log messages for security - Add detailed comment explaining maximumNumberOfLogFiles off-by-one Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- .../native-logger/ios/OneKeyLog.swift | 5 ++-- .../ios/KeychainModuleCore.swift | 24 +++++++------------ 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/native-modules/native-logger/ios/OneKeyLog.swift b/native-modules/native-logger/ios/OneKeyLog.swift index 6542f673..fea02243 100644 --- a/native-modules/native-logger/ios/OneKeyLog.swift +++ b/native-modules/native-logger/ios/OneKeyLog.swift @@ -51,8 +51,9 @@ private class OneKeyLogFileManager: DDLogFileManagerDefault { ) let fileManager = OneKeyLogFileManager(logsDirectory: logsDir) - // DDFileLogger counts active file (app-latest.log) in this limit, - // so set to 7 to keep 6 archived files (matching Android MAX_HISTORY=6) + // NOTE: DDLogFileManagerDefault.maximumNumberOfLogFiles counts ALL log files + // including the current active file (app-latest.log). + // Set to 7 = 1 active + 6 archived, matching Android MAX_HISTORY=6. fileManager.maximumNumberOfLogFiles = 7 let logger = DDFileLogger(logFileManager: fileManager) diff --git a/native-modules/react-native-keychain-module/ios/KeychainModuleCore.swift b/native-modules/react-native-keychain-module/ios/KeychainModuleCore.swift index fbb2abc8..7243c274 100644 --- a/native-modules/react-native-keychain-module/ios/KeychainModuleCore.swift +++ b/native-modules/react-native-keychain-module/ios/KeychainModuleCore.swift @@ -30,17 +30,11 @@ enum KeychainModuleError: Error { class KeychainModuleCore { - /// Redact key name for logging: show only last 4 characters - private func redactKey(_ key: String) -> String { - if key.count <= 4 { return "***" } - return "***\(key.suffix(4))" - } - // MARK: - Set Item func setItem(params: SetItemParams) throws { guard let valueData = params.value.data(using: .utf8) else { - OneKeyLog.error("Keychain", "Failed to encode value for key: \(redactKey(params.key))") + OneKeyLog.error("Keychain", "setItem: failed to encode value") throw KeychainModuleError.encodingFailed } @@ -72,10 +66,10 @@ class KeychainModuleCore { let status = SecItemAdd(query as CFDictionary, nil) guard status == errSecSuccess else { - OneKeyLog.error("Keychain", "Failed to set item for key: \(redactKey(params.key)), OSStatus: \(status)") + OneKeyLog.error("Keychain", "setItem: failed, OSStatus: \(status)") throw KeychainModuleError.operationFailed(status) } - OneKeyLog.info("Keychain", "Item set successfully for key: \(redactKey(params.key))") + OneKeyLog.info("Keychain", "setItem: success") } // MARK: - Get Item @@ -96,15 +90,15 @@ class KeychainModuleCore { if status == errSecSuccess { if let valueData = result as? Data, let value = String(data: valueData, encoding: .utf8) { - OneKeyLog.debug("Keychain", "Item found for key: \(redactKey(params.key))") + OneKeyLog.debug("Keychain", "getItem: found") return GetItemResult(key: params.key, value: value) } return nil } else if status == errSecItemNotFound { - OneKeyLog.debug("Keychain", "Item not found for key: \(redactKey(params.key))") + OneKeyLog.debug("Keychain", "getItem: not found") return nil } else { - OneKeyLog.error("Keychain", "Failed to get item for key: \(redactKey(params.key)), OSStatus: \(status)") + OneKeyLog.error("Keychain", "getItem: failed, OSStatus: \(status)") throw KeychainModuleError.operationFailed(status) } } @@ -123,10 +117,10 @@ class KeychainModuleCore { // Both success and item not found are acceptable for delete guard status == errSecSuccess || status == errSecItemNotFound else { - OneKeyLog.error("Keychain", "Failed to remove item for key: \(redactKey(params.key)), OSStatus: \(status)") + OneKeyLog.error("Keychain", "removeItem: failed, OSStatus: \(status)") throw KeychainModuleError.operationFailed(status) } - OneKeyLog.info("Keychain", "Item removed for key: \(redactKey(params.key))") + OneKeyLog.info("Keychain", "removeItem: success") } // MARK: - Check Item Existence @@ -141,7 +135,7 @@ class KeychainModuleCore { ] let status = SecItemCopyMatching(query as CFDictionary, nil) - OneKeyLog.debug("Keychain", "Has item check for key: \(redactKey(params.key)), result: \(status == errSecSuccess)") + OneKeyLog.debug("Keychain", "hasItem: \(status == errSecSuccess)") return status == errSecSuccess } From 141382aa550ff44706743f8340c28bbc8722553e Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sat, 28 Feb 2026 02:53:01 +0800 Subject: [PATCH 09/94] fix: security hardening for native-logger module HIGH: - H-2: Replace unsafe /tmp/logs fallback with no-op when context is null - H-3: Apply iOS file protection (completeUntilFirstUserAuthentication) - H-1: Add 4KB message truncation to prevent disk abuse MEDIUM: - M-1: Attach file appender to named "OneKey" logger instead of ROOT to prevent capturing third-party SLF4J output - M-2: Change compileOnly to implementation to prevent NoClassDefFoundError - M-3: Truncation also mitigates log injection via oversized messages - M-5: Fix TOCTOU race in iOS log archive with retry loop Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- .../margelo/nitro/nativelogger/OneKeyLog.kt | 45 ++++++++++++------- .../native-logger/ios/OneKeyLog.swift | 43 ++++++++++++++---- .../android/build.gradle | 2 +- .../android/build.gradle | 2 +- scripts/nitro/template/android/build.gradle | 2 +- 5 files changed, 67 insertions(+), 27 deletions(-) diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt index abec2a0d..88dd3f7d 100644 --- a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt @@ -16,6 +16,7 @@ import java.nio.charset.Charset object OneKeyLog { private const val APPENDER_NAME = "OneKeyFileAppender" private const val LOG_PREFIX = "app" + private const val MAX_MESSAGE_LENGTH = 4096 private const val MAX_FILE_SIZE = 20L * 1024 * 1024 // 20 MB private const val MAX_HISTORY = 6 private const val TOTAL_SIZE_CAP = MAX_FILE_SIZE * MAX_HISTORY @@ -23,15 +24,21 @@ object OneKeyLog { val logsDirectory: String by lazy { val context = NitroModules.applicationContext if (context == null) { - android.util.Log.e("OneKeyLog", "NitroModules.applicationContext is null, falling back to /tmp/logs") - "/tmp/logs" + android.util.Log.e("OneKeyLog", "NitroModules.applicationContext is null, file logging disabled") + "" } else { "${context.cacheDir.absolutePath}/logs" } } - private val logger: Logger by lazy { + // Nullable: null when applicationContext is unavailable (file logging disabled) + private val logger: Logger? by lazy { val dir = logsDirectory + if (dir.isEmpty()) { + android.util.Log.w("OneKeyLog", "File logging disabled: no valid logs directory") + return@lazy null + } + File(dir).mkdirs() val loggerContext = LoggerFactory.getILoggerFactory() as LoggerContext @@ -63,26 +70,34 @@ object OneKeyLog { appender.start() - val root = LoggerFactory.getLogger( - Logger.ROOT_LOGGER_NAME - ) as ch.qos.logback.classic.Logger - root.level = Level.DEBUG - // Only detach our own appender if re-initializing, then add it fresh - root.detachAppender(APPENDER_NAME) - root.addAppender(appender) + // Attach appender to a dedicated named logger only (not ROOT) + // to avoid capturing third-party library SLF4J output + val onekeyLogger = loggerContext.getLogger("OneKey") + onekeyLogger.level = Level.DEBUG + onekeyLogger.detachAppender(APPENDER_NAME) + onekeyLogger.addAppender(appender) + onekeyLogger.isAdditive = false // Do not propagate to ROOT logger + + onekeyLogger + } - LoggerFactory.getLogger("OneKey") + private fun truncate(message: String): String { + return if (message.length > MAX_MESSAGE_LENGTH) { + message.substring(0, MAX_MESSAGE_LENGTH) + "...(truncated)" + } else { + message + } } @JvmStatic - fun debug(tag: String, message: String) = logger.debug("[$tag] $message") + fun debug(tag: String, message: String) { logger?.debug(truncate("[$tag] $message")) } @JvmStatic - fun info(tag: String, message: String) = logger.info("[$tag] $message") + fun info(tag: String, message: String) { logger?.info(truncate("[$tag] $message")) } @JvmStatic - fun warn(tag: String, message: String) = logger.warn("[$tag] $message") + fun warn(tag: String, message: String) { logger?.warn(truncate("[$tag] $message")) } @JvmStatic - fun error(tag: String, message: String) = logger.error("[$tag] $message") + fun error(tag: String, message: String) { logger?.error(truncate("[$tag] $message")) } } diff --git a/native-modules/native-logger/ios/OneKeyLog.swift b/native-modules/native-logger/ios/OneKeyLog.swift index fea02243..22e7c004 100644 --- a/native-modules/native-logger/ios/OneKeyLog.swift +++ b/native-modules/native-logger/ios/OneKeyLog.swift @@ -28,13 +28,23 @@ private class OneKeyLogFileManager: DDLogFileManagerDefault { let dateStr = Self.dateFormatter.string(from: Date()) let fm = FileManager.default - // Find next available index for this date + // Find next available index, retry on move failure to handle TOCTOU race var index = 0 - while fm.fileExists(atPath: "\(dir)/\(Self.logPrefix)-\(dateStr).\(index).log") { - index += 1 + var moved = false + while !moved && index < 1000 { + let archivedPath = "\(dir)/\(Self.logPrefix)-\(dateStr).\(index).log" + if fm.fileExists(atPath: archivedPath) { + index += 1 + continue + } + do { + try fm.moveItem(atPath: logFilePath, toPath: archivedPath) + moved = true + } catch { + // Another thread may have created this file; try next index + index += 1 + } } - let archivedPath = "\(dir)/\(Self.logPrefix)-\(dateStr).\(index).log" - try? fm.moveItem(atPath: logFilePath, toPath: archivedPath) } super.didArchiveLogFile(atPath: logFilePath, wasRolled: wasRolled) } @@ -42,6 +52,8 @@ private class OneKeyLogFileManager: DDLogFileManagerDefault { @objc public class OneKeyLog: NSObject { + private static let maxMessageLength = 4096 + private static let configured: Bool = { let logsDir = logsDirectory @@ -50,6 +62,12 @@ private class OneKeyLogFileManager: DDLogFileManagerDefault { atPath: logsDir, withIntermediateDirectories: true ) + // Apply file protection: files inaccessible while device is locked before first unlock + try? FileManager.default.setAttributes( + [.protectionKey: FileProtectionType.completeUntilFirstUserAuthentication], + ofItemAtPath: logsDir + ) + let fileManager = OneKeyLogFileManager(logsDirectory: logsDir) // NOTE: DDLogFileManagerDefault.maximumNumberOfLogFiles counts ALL log files // including the current active file (app-latest.log). @@ -65,24 +83,31 @@ private class OneKeyLogFileManager: DDLogFileManagerDefault { return true }() + private static func truncate(_ message: String) -> String { + if message.count > maxMessageLength { + return String(message.prefix(maxMessageLength)) + "...(truncated)" + } + return message + } + @objc public static func debug(_ tag: String, _ message: String) { _ = configured - DDLogDebug("[\(tag)] \(message)") + DDLogDebug(truncate("[\(tag)] \(message)")) } @objc public static func info(_ tag: String, _ message: String) { _ = configured - DDLogInfo("[\(tag)] \(message)") + DDLogInfo(truncate("[\(tag)] \(message)")) } @objc public static func warn(_ tag: String, _ message: String) { _ = configured - DDLogWarn("[\(tag)] \(message)") + DDLogWarn(truncate("[\(tag)] \(message)")) } @objc public static func error(_ tag: String, _ message: String) { _ = configured - DDLogError("[\(tag)] \(message)") + DDLogError(truncate("[\(tag)] \(message)")) } /// Returns the logs directory path (for getLogFilePaths / deleteLogFiles) diff --git a/native-modules/react-native-device-utils/android/build.gradle b/native-modules/react-native-device-utils/android/build.gradle index 4ed23924..0b0ff43b 100644 --- a/native-modules/react-native-device-utils/android/build.gradle +++ b/native-modules/react-native-device-utils/android/build.gradle @@ -134,5 +134,5 @@ dependencies { // AndroidX Preference for PreferenceManager implementation "androidx.preference:preference-ktx:1.2.1" - compileOnly project(":react-native-native-logger") + implementation project(":react-native-native-logger") } diff --git a/native-modules/react-native-get-random-values/android/build.gradle b/native-modules/react-native-get-random-values/android/build.gradle index 1ad5580c..a0aa1890 100644 --- a/native-modules/react-native-get-random-values/android/build.gradle +++ b/native-modules/react-native-get-random-values/android/build.gradle @@ -126,5 +126,5 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation project(":react-native-nitro-modules") - compileOnly project(":react-native-native-logger") + implementation project(":react-native-native-logger") } diff --git a/scripts/nitro/template/android/build.gradle b/scripts/nitro/template/android/build.gradle index 24252985..7103801b 100644 --- a/scripts/nitro/template/android/build.gradle +++ b/scripts/nitro/template/android/build.gradle @@ -126,5 +126,5 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation project(":react-native-nitro-modules") - compileOnly project(":react-native-native-logger") + implementation project(":react-native-native-logger") } From 222f5d735f60529a3e073f1fc8d0f26ba692672a Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sat, 28 Feb 2026 03:02:02 +0800 Subject: [PATCH 10/94] fix: final review fixes for native-logger - P1: deleteLogFiles skips active app-latest.log to avoid breaking logger's open file handle (iOS + Android) - P2: Android logger uses retry-able cached getter instead of by-lazy, so if applicationContext is null at first access, logging can recover once context becomes available - P3: Log warning if iOS archive TOCTOU retry loop exhausts 1000 attempts - P4: Remove unused OneKeyLog imports from module template - P5: Use NSString.appendingPathComponent for iOS path construction Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- .../nitro/nativelogger/NativeLogger.kt | 3 +- .../margelo/nitro/nativelogger/OneKeyLog.kt | 126 ++++++++++-------- .../native-logger/ios/NativeLogger.swift | 3 +- .../native-logger/ios/OneKeyLog.swift | 7 +- .../margelo/nitro/modulename/ModuleName.kt | 1 - scripts/nitro/template/ios/ModuleName.swift | 1 - 6 files changed, 79 insertions(+), 62 deletions(-) diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt index e5d48f9c..1f200c21 100644 --- a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt @@ -38,7 +38,8 @@ class NativeLogger : HybridNativeLoggerSpec() { OneKeyLog.warn("NativeLogger", "Failed to list log directory for deletion: $dir") return@async } - files.forEach { file -> + // Skip the active log file to avoid breaking logback's open file handle + files.filter { it.name != "app-latest.log" }.forEach { file -> if (!file.delete()) { OneKeyLog.warn("NativeLogger", "Failed to delete log file: ${file.name}") } diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt index 88dd3f7d..32053bc9 100644 --- a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt @@ -21,66 +21,80 @@ object OneKeyLog { private const val MAX_HISTORY = 6 private const val TOTAL_SIZE_CAP = MAX_FILE_SIZE * MAX_HISTORY - val logsDirectory: String by lazy { - val context = NitroModules.applicationContext - if (context == null) { - android.util.Log.e("OneKeyLog", "NitroModules.applicationContext is null, file logging disabled") - "" - } else { - "${context.cacheDir.absolutePath}/logs" - } - } - - // Nullable: null when applicationContext is unavailable (file logging disabled) - private val logger: Logger? by lazy { - val dir = logsDirectory - if (dir.isEmpty()) { - android.util.Log.w("OneKeyLog", "File logging disabled: no valid logs directory") - return@lazy null - } - - File(dir).mkdirs() - - val loggerContext = LoggerFactory.getILoggerFactory() as LoggerContext - - val appender = RollingFileAppender().apply { - context = loggerContext - name = APPENDER_NAME - file = "$dir/$LOG_PREFIX-latest.log" - } - - SizeAndTimeBasedRollingPolicy().apply { - context = loggerContext - fileNamePattern = "$dir/$LOG_PREFIX-%d{yyyy-MM-dd}.%i.log" - setMaxFileSize(FileSize(MAX_FILE_SIZE)) - maxHistory = MAX_HISTORY - setTotalSizeCap(FileSize(TOTAL_SIZE_CAP)) - setParent(appender) - start() - appender.rollingPolicy = this + // Cached value; empty string means context was not yet available (will retry) + @Volatile + private var cachedLogsDir: String? = null + + val logsDirectory: String + get() { + cachedLogsDir?.let { return it } + val context = NitroModules.applicationContext + if (context == null) { + android.util.Log.w("OneKeyLog", "applicationContext not yet available") + return "" // Don't cache — allow retry on next access + } + val dir = "${context.cacheDir.absolutePath}/logs" + cachedLogsDir = dir + return dir } - PatternLayoutEncoder().apply { - context = loggerContext - charset = Charset.forName("UTF-8") - pattern = "%msg%n" - start() - appender.encoder = this + // Cached logger; null means not yet initialized (will retry). + // Once successfully initialized, stays non-null. + @Volatile + private var cachedLogger: Logger? = null + + private val logger: Logger? + get() { + cachedLogger?.let { return it } + return synchronized(this) { + cachedLogger?.let { return@synchronized it } + val dir = logsDirectory + if (dir.isEmpty()) return@synchronized null + + File(dir).mkdirs() + + val loggerContext = LoggerFactory.getILoggerFactory() as LoggerContext + + val appender = RollingFileAppender().apply { + context = loggerContext + name = APPENDER_NAME + file = "$dir/$LOG_PREFIX-latest.log" + } + + SizeAndTimeBasedRollingPolicy().apply { + context = loggerContext + fileNamePattern = "$dir/$LOG_PREFIX-%d{yyyy-MM-dd}.%i.log" + setMaxFileSize(FileSize(MAX_FILE_SIZE)) + maxHistory = MAX_HISTORY + setTotalSizeCap(FileSize(TOTAL_SIZE_CAP)) + setParent(appender) + start() + appender.rollingPolicy = this + } + + PatternLayoutEncoder().apply { + context = loggerContext + charset = Charset.forName("UTF-8") + pattern = "%msg%n" + start() + appender.encoder = this + } + + appender.start() + + // Attach appender to a dedicated named logger only (not ROOT) + // to avoid capturing third-party library SLF4J output + val onekeyLogger = loggerContext.getLogger("OneKey") + onekeyLogger.level = Level.DEBUG + onekeyLogger.detachAppender(APPENDER_NAME) + onekeyLogger.addAppender(appender) + onekeyLogger.isAdditive = false // Do not propagate to ROOT logger + + cachedLogger = onekeyLogger + onekeyLogger + } } - appender.start() - - // Attach appender to a dedicated named logger only (not ROOT) - // to avoid capturing third-party library SLF4J output - val onekeyLogger = loggerContext.getLogger("OneKey") - onekeyLogger.level = Level.DEBUG - onekeyLogger.detachAppender(APPENDER_NAME) - onekeyLogger.addAppender(appender) - onekeyLogger.isAdditive = false // Do not propagate to ROOT logger - - onekeyLogger - } - private fun truncate(message: String): String { return if (message.length > MAX_MESSAGE_LENGTH) { message.substring(0, MAX_MESSAGE_LENGTH) + "...(truncated)" diff --git a/native-modules/native-logger/ios/NativeLogger.swift b/native-modules/native-logger/ios/NativeLogger.swift index ff547c78..045d8c50 100644 --- a/native-modules/native-logger/ios/NativeLogger.swift +++ b/native-modules/native-logger/ios/NativeLogger.swift @@ -41,7 +41,8 @@ class NativeLogger: HybridNativeLoggerSpec { OneKeyLog.warn("NativeLogger", "Failed to list log directory for deletion: \(error.localizedDescription)") return } - for file in files where file.hasSuffix(".log") { + // Skip the active log file to avoid breaking CocoaLumberjack's open file handle + for file in files where file.hasSuffix(".log") && file != "app-latest.log" { do { try fm.removeItem(atPath: "\(dir)/\(file)") } catch { diff --git a/native-modules/native-logger/ios/OneKeyLog.swift b/native-modules/native-logger/ios/OneKeyLog.swift index 22e7c004..5065d231 100644 --- a/native-modules/native-logger/ios/OneKeyLog.swift +++ b/native-modules/native-logger/ios/OneKeyLog.swift @@ -45,6 +45,9 @@ private class OneKeyLogFileManager: DDLogFileManagerDefault { index += 1 } } + if !moved { + NSLog("[OneKeyLog] Failed to archive log file after 1000 attempts: %@", logFilePath) + } } super.didArchiveLogFile(atPath: logFilePath, wasRolled: wasRolled) } @@ -116,9 +119,9 @@ private class OneKeyLogFileManager: DDLogFileManagerDefault { .cachesDirectory, .userDomainMask, true ).first else { // Fallback to tmp directory if Caches is somehow unavailable - return NSTemporaryDirectory() + "logs" + return (NSTemporaryDirectory() as NSString).appendingPathComponent("logs") } - return cacheDir + "/logs" + return (cacheDir as NSString).appendingPathComponent("logs") } } diff --git a/scripts/nitro/template/android/src/main/java/com/margelo/nitro/modulename/ModuleName.kt b/scripts/nitro/template/android/src/main/java/com/margelo/nitro/modulename/ModuleName.kt index 51e9555c..ebe8263d 100644 --- a/scripts/nitro/template/android/src/main/java/com/margelo/nitro/modulename/ModuleName.kt +++ b/scripts/nitro/template/android/src/main/java/com/margelo/nitro/modulename/ModuleName.kt @@ -2,7 +2,6 @@ package com.margelo.nitro.{{cxxNamespace}} import com.facebook.proguard.annotations.DoNotStrip import com.margelo.nitro.core.Promise -import com.margelo.nitro.nativelogger.OneKeyLog @DoNotStrip class {{modulePascalCase}} : Hybrid{{modulePascalCase}}Spec() { diff --git a/scripts/nitro/template/ios/ModuleName.swift b/scripts/nitro/template/ios/ModuleName.swift index 5e6e6f23..4aa564aa 100644 --- a/scripts/nitro/template/ios/ModuleName.swift +++ b/scripts/nitro/template/ios/ModuleName.swift @@ -1,5 +1,4 @@ import NitroModules -import ReactNativeNativeLogger class {{modulePascalCase}}: Hybrid{{modulePascalCase}}Spec { From a250bf9781ec963db79ef45bdc7cbfcaffe588ea Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sat, 28 Feb 2026 10:33:54 +0800 Subject: [PATCH 11/94] fix: fix. missing log dir --- .../main/java/com/margelo/nitro/nativelogger/NativeLogger.kt | 2 ++ .../src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt | 1 + 2 files changed, 3 insertions(+) diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt index 1f200c21..a6c3b9dc 100644 --- a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt @@ -20,6 +20,7 @@ class NativeLogger : HybridNativeLoggerSpec() { override fun getLogFilePaths(): Promise> { return Promise.async { val dir = OneKeyLog.logsDirectory + if (dir.isEmpty()) return@async arrayOf() val files = File(dir).listFiles { _, name -> name.endsWith(".log") } if (files == null) { OneKeyLog.warn("NativeLogger", "Failed to list log directory: $dir") @@ -33,6 +34,7 @@ class NativeLogger : HybridNativeLoggerSpec() { override fun deleteLogFiles(): Promise { return Promise.async { val dir = OneKeyLog.logsDirectory + if (dir.isEmpty()) return@async val files = File(dir).listFiles { _, name -> name.endsWith(".log") } if (files == null) { OneKeyLog.warn("NativeLogger", "Failed to list log directory for deletion: $dir") diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt index 32053bc9..d405e2f5 100644 --- a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt @@ -86,6 +86,7 @@ object OneKeyLog { // to avoid capturing third-party library SLF4J output val onekeyLogger = loggerContext.getLogger("OneKey") onekeyLogger.level = Level.DEBUG + onekeyLogger.getAppender(APPENDER_NAME)?.stop() onekeyLogger.detachAppender(APPENDER_NAME) onekeyLogger.addAppender(appender) onekeyLogger.isAdditive = false // Do not propagate to ROOT logger From f8382ac1ad0d6bbbad7d0c008b970546edfdda6e Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sat, 28 Feb 2026 14:20:52 +0800 Subject: [PATCH 12/94] fix: audit fixes across integrated native modules - P1: Replace force unwrap with guard let in ReactNativeGetRandomValues (iOS) - P2: Remove duplicate error logging in KeychainModule wrapper (Core already logs) - P2: Change biometric auth change log level from warn to info - P2: Add @Volatile to windowLayoutInfo for thread-safe reads from Promise.async - P2: Use error.localizedDescription in CloudKit logs for consistency - P3: Remove unnecessary UserDefaults.synchronize() call Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- ...ReactNativeCheckBiometricAuthChanged.swift | 3 +-- .../ios/CloudKitModule.swift | 4 ++-- .../ReactNativeDeviceUtils.kt | 2 +- .../ios/ReactNativeGetRandomValues.swift | 8 +++++-- .../ios/KeychainModule.swift | 24 ++++++------------- 5 files changed, 17 insertions(+), 24 deletions(-) diff --git a/native-modules/react-native-check-biometric-auth-changed/ios/ReactNativeCheckBiometricAuthChanged.swift b/native-modules/react-native-check-biometric-auth-changed/ios/ReactNativeCheckBiometricAuthChanged.swift index 5d16a119..993030a9 100644 --- a/native-modules/react-native-check-biometric-auth-changed/ios/ReactNativeCheckBiometricAuthChanged.swift +++ b/native-modules/react-native-check-biometric-auth-changed/ios/ReactNativeCheckBiometricAuthChanged.swift @@ -18,9 +18,8 @@ class ReactNativeCheckBiometricAuthChanged: HybridReactNativeCheckBiometricAuthC OneKeyLog.info("Biometric", "No previous biometric state stored, saving initial state") } defaults.set(domainState, forKey: "biometricAuthState") - defaults.synchronize() if changed { - OneKeyLog.warn("Biometric", "Biometric auth change detected") + OneKeyLog.info("Biometric", "Biometric auth change detected") } return changed } diff --git a/native-modules/react-native-cloud-kit-module/ios/CloudKitModule.swift b/native-modules/react-native-cloud-kit-module/ios/CloudKitModule.swift index 0589be14..6d02e2c3 100644 --- a/native-modules/react-native-cloud-kit-module/ios/CloudKitModule.swift +++ b/native-modules/react-native-cloud-kit-module/ios/CloudKitModule.swift @@ -30,7 +30,7 @@ class CloudKitModule: HybridCloudKitModuleSpec { let userRecordID = try await self.container.userRecordID() userId = userRecordID.recordName } catch { - OneKeyLog.warn("CloudKit", "Failed to get user record ID: \(error)") + OneKeyLog.warn("CloudKit", "Failed to get user record ID: \(error.localizedDescription)") userId = nil } } @@ -184,7 +184,7 @@ class CloudKitModule: HybridCloudKitModuleSpec { let queryResult = QueryRecordsResult(records: sorted) continuation.resume(returning: queryResult) case .failure(let error): - OneKeyLog.error("CloudKit", "Query failed for type \(params.recordType): \(error)") + OneKeyLog.error("CloudKit", "Query failed for type \(params.recordType): \(error.localizedDescription)") continuation.resume(throwing: error) } } diff --git a/native-modules/react-native-device-utils/android/src/main/java/com/margelo/nitro/reactnativedeviceutils/ReactNativeDeviceUtils.kt b/native-modules/react-native-device-utils/android/src/main/java/com/margelo/nitro/reactnativedeviceutils/ReactNativeDeviceUtils.kt index 8b169286..6aa65474 100644 --- a/native-modules/react-native-device-utils/android/src/main/java/com/margelo/nitro/reactnativedeviceutils/ReactNativeDeviceUtils.kt +++ b/native-modules/react-native-device-utils/android/src/main/java/com/margelo/nitro/reactnativedeviceutils/ReactNativeDeviceUtils.kt @@ -216,7 +216,7 @@ class ReactNativeDeviceUtils : HybridReactNativeDeviceUtilsSpec(), LifecycleEven ) } - private var windowLayoutInfo: WindowLayoutInfo? = null + @Volatile private var windowLayoutInfo: WindowLayoutInfo? = null private var isSpanning = false private var layoutInfoConsumer: Consumer? = null private var windowInfoTracker: WindowInfoTracker? = null diff --git a/native-modules/react-native-get-random-values/ios/ReactNativeGetRandomValues.swift b/native-modules/react-native-get-random-values/ios/ReactNativeGetRandomValues.swift index 526f59c4..7e4a58b5 100644 --- a/native-modules/react-native-get-random-values/ios/ReactNativeGetRandomValues.swift +++ b/native-modules/react-native-get-random-values/ios/ReactNativeGetRandomValues.swift @@ -3,8 +3,12 @@ import ReactNativeNativeLogger class ReactNativeGetRandomValues: HybridReactNativeGetRandomValuesSpec { func getRandomBase64(byteLength: Double) throws -> String { - let data = NSMutableData(length: Int(byteLength))! - let result = SecRandomCopyBytes(kSecRandomDefault, Int(byteLength), data.mutableBytes) + let length = Int(byteLength) + guard length > 0, let data = NSMutableData(length: length) else { + OneKeyLog.error("RandomValues", "Failed to allocate buffer of size \(Int(byteLength))") + throw NSError(domain: "ReactNativeGetRandomValues", code: -1, userInfo: nil) + } + let result = SecRandomCopyBytes(kSecRandomDefault, length, data.mutableBytes) if result != errSecSuccess { OneKeyLog.error("RandomValues", "SecRandomCopyBytes failed with status: \(result)") throw NSError(domain: "ReactNativeGetRandomValues", code: Int(result), userInfo: nil) diff --git a/native-modules/react-native-keychain-module/ios/KeychainModule.swift b/native-modules/react-native-keychain-module/ios/KeychainModule.swift index 8b86131a..1cd0851d 100644 --- a/native-modules/react-native-keychain-module/ios/KeychainModule.swift +++ b/native-modules/react-native-keychain-module/ios/KeychainModule.swift @@ -1,17 +1,14 @@ import NitroModules -import ReactNativeNativeLogger class KeychainModule: HybridKeychainModuleSpec { - + private let moduleCore = KeychainModuleCore() - + public func setItem(params: SetItemParams) throws -> Promise { - let typedParams = params do { - try moduleCore.setItem(params: typedParams) + try moduleCore.setItem(params: params) return Promise.resolved(withResult: Void()) } catch let error as KeychainModuleError { - OneKeyLog.error("Keychain", "setItem failed: \(error)") switch error { case .encodingFailed: return Promise.rejected(withError: NSError(domain: "keychain_set_error", code: -1000, userInfo: [NSLocalizedDescriptionKey: "Failed to encode value"])) @@ -21,21 +18,18 @@ class KeychainModule: HybridKeychainModuleSpec { return Promise.rejected(withError: NSError(domain: "keychain_set_error", code: -1000, userInfo: [NSLocalizedDescriptionKey: "Failed to set keychain item"])) } } catch { - OneKeyLog.error("Keychain", "setItem unexpected error: \(error)") return Promise.rejected(withError: NSError(domain: "keychain_set_error", code: -1000, userInfo: [NSLocalizedDescriptionKey: "Failed to set keychain item", NSUnderlyingErrorKey: error])) } } - + public func getItem(params : GetItemParams) throws -> Promise { - let typedParams = params do { - if let result = try moduleCore.getItem(params: typedParams) { + if let result = try moduleCore.getItem(params: params) { return Promise.resolved(withResult: Variant_NullType_GetItemResult.second(result)) } else { return Promise.resolved(withResult: Variant_NullType_GetItemResult.first(NullType.null)) } } catch let error as KeychainModuleError { - OneKeyLog.error("Keychain", "getItem failed: \(error)") switch error { case .operationFailed(let status): return Promise.rejected(withError: NSError(domain: NSOSStatusErrorDomain, code: Int(status), userInfo: [NSLocalizedDescriptionKey: "Failed to get keychain item: \(status)"])) @@ -43,18 +37,15 @@ class KeychainModule: HybridKeychainModuleSpec { return Promise.rejected(withError: NSError(domain: "keychain_get_error", code: -1000, userInfo: [NSLocalizedDescriptionKey: "Failed to get keychain item", NSUnderlyingErrorKey: error as NSError])) } } catch { - OneKeyLog.error("Keychain", "getItem unexpected error: \(error)") return Promise.rejected(withError: NSError(domain: "keychain_get_error", code: -1000, userInfo: [NSLocalizedDescriptionKey: "Failed to get keychain item", NSUnderlyingErrorKey: error])) } } - + public func removeItem(params: RemoveItemParams) throws -> Promise { - let typedParams = params do { - try moduleCore.removeItem(params: typedParams) + try moduleCore.removeItem(params: params) return Promise.resolved(withResult: Void()) } catch let error as KeychainModuleError { - OneKeyLog.error("Keychain", "removeItem failed: \(error)") switch error { case .operationFailed(let status): return Promise.rejected(withError: NSError(domain: NSOSStatusErrorDomain, code: Int(status), userInfo: [NSLocalizedDescriptionKey: "Failed to remove keychain item: \(status)"])) @@ -62,7 +53,6 @@ class KeychainModule: HybridKeychainModuleSpec { return Promise.rejected(withError: NSError(domain: "keychain_remove_error", code: -1000, userInfo: [NSLocalizedDescriptionKey: "Failed to remove keychain item", NSUnderlyingErrorKey: error as NSError])) } } catch { - OneKeyLog.error("Keychain", "removeItem unexpected error: \(error)") return Promise.rejected(withError: NSError(domain: "keychain_remove_error", code: -1000, userInfo: [NSLocalizedDescriptionKey: "Failed to remove keychain item", NSUnderlyingErrorKey: error])) } } From 51b310f5de1a694694d32f73c27e3ac221cf41a9 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sat, 28 Feb 2026 23:07:48 +0800 Subject: [PATCH 13/94] feat: add timestamp format for native log writes and copy button for log dir - Native-side log writes now use `HH:mm:ss | LEVEL : [tag] message` format - JS-side log writes remain unformatted (raw message preserved) - Add copy-to-clipboard button for log directory path in test page - Integrate native-logger into example app and update pod dependencies Co-Authored-By: Claude Opus 4.6 --- example/react-native/ios/Podfile.lock | 77 +++++++++++++++---- .../ios/example/PrivacyInfo.xcprivacy | 9 +++ .../pages/NativeLoggerTestPage.tsx | 35 ++++++++- .../margelo/nitro/nativelogger/OneKeyLog.kt | 21 ++++- .../native-logger/ios/OneKeyLog.swift | 23 +++++- .../react-native-skeleton/package.json | 2 +- yarn.lock | 3 +- 7 files changed, 141 insertions(+), 29 deletions(-) diff --git a/example/react-native/ios/Podfile.lock b/example/react-native/ios/Podfile.lock index 710732f2..b41fb3d5 100644 --- a/example/react-native/ios/Podfile.lock +++ b/example/react-native/ios/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - BackgroundThread (1.1.17): + - BackgroundThread (1.1.20): - boost - DoubleConversion - fast_float @@ -28,7 +28,7 @@ PODS: - SocketRocket - Yoga - boost (1.84.0) - - CloudKitModule (1.1.17): + - CloudKitModule (1.1.20): - boost - DoubleConversion - fast_float @@ -56,8 +56,12 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - ReactNativeNativeLogger - SocketRocket - Yoga + - CocoaLumberjack/Core (3.9.0) + - CocoaLumberjack/Swift (3.9.0): + - CocoaLumberjack/Core - DoubleConversion (1.1.6) - fast_float (8.0.0) - FBLazyVector (0.83.0) @@ -66,7 +70,7 @@ PODS: - hermes-engine (0.14.0): - hermes-engine/Pre-built (= 0.14.0) - hermes-engine/Pre-built (0.14.0) - - KeychainModule (1.1.17): + - KeychainModule (1.1.20): - boost - DoubleConversion - fast_float @@ -94,6 +98,7 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - ReactNativeNativeLogger - SocketRocket - Yoga - NitroModules (0.33.2): @@ -2653,7 +2658,7 @@ PODS: - React-perflogger (= 0.83.0) - React-utils (= 0.83.0) - SocketRocket - - ReactNativeCheckBiometricAuthChanged (1.1.17): + - ReactNativeCheckBiometricAuthChanged (1.1.20): - boost - DoubleConversion - fast_float @@ -2681,9 +2686,10 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - ReactNativeNativeLogger - SocketRocket - Yoga - - ReactNativeDeviceUtils (1.1.17): + - ReactNativeDeviceUtils (1.1.20): - boost - DoubleConversion - fast_float @@ -2711,9 +2717,10 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - ReactNativeNativeLogger - SocketRocket - Yoga - - ReactNativeGetRandomValues (1.1.17): + - ReactNativeGetRandomValues (1.1.20): - boost - DoubleConversion - fast_float @@ -2741,9 +2748,10 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - ReactNativeNativeLogger - SocketRocket - Yoga - - ReactNativeLiteCard (1.1.17): + - ReactNativeLiteCard (1.1.20): - boost - DoubleConversion - fast_float @@ -2771,7 +2779,38 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - Skeleton (1.1.17): + - ReactNativeNativeLogger (1.1.20): + - boost + - CocoaLumberjack/Swift (~> 3.8) + - DoubleConversion + - fast_float + - fmt + - glog + - hermes-engine + - NitroModules + - RCT-Folly + - RCT-Folly/Fabric + - RCTRequired + - RCTTypeSafety + - React-callinvoker + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - SocketRocket + - Yoga + - Skeleton (1.1.20): - boost - DoubleConversion - fast_float @@ -2891,12 +2930,14 @@ DEPENDENCIES: - "ReactNativeDeviceUtils (from `../../../node_modules/@onekeyfe/react-native-device-utils`)" - "ReactNativeGetRandomValues (from `../../../node_modules/@onekeyfe/react-native-get-random-values`)" - "ReactNativeLiteCard (from `../../../node_modules/@onekeyfe/react-native-lite-card`)" + - "ReactNativeNativeLogger (from `../../../node_modules/@onekeyfe/react-native-native-logger`)" - "Skeleton (from `../../../node_modules/@onekeyfe/react-native-skeleton`)" - SocketRocket (~> 0.7.1) - Yoga (from `../../../node_modules/react-native/ReactCommon/yoga`) SPEC REPOS: trunk: + - CocoaLumberjack - SocketRocket EXTERNAL SOURCES: @@ -3071,22 +3112,25 @@ EXTERNAL SOURCES: :path: "../../../node_modules/@onekeyfe/react-native-get-random-values" ReactNativeLiteCard: :path: "../../../node_modules/@onekeyfe/react-native-lite-card" + ReactNativeNativeLogger: + :path: "../../../node_modules/@onekeyfe/react-native-native-logger" Skeleton: :path: "../../../node_modules/@onekeyfe/react-native-skeleton" Yoga: :path: "../../../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - BackgroundThread: 22875378c238bbb3ae8e61c7aa8d0ebab67fe37c + BackgroundThread: 6e18a3ab117f62e0ab785a231e5b1422175ad8f7 boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 - CloudKitModule: b2e3a96047478ada6a970ded4effb371ba3fbd99 + CloudKitModule: daf5566c07054aeef0ad9afdd78741818c59c887 + CocoaLumberjack: 5644158777912b7de7469fa881f8a3f259c2512a DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb fast_float: b32c788ed9c6a8c584d114d0047beda9664e7cc6 FBLazyVector: a293a88992c4c33f0aee184acab0b64a08ff9458 fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd glog: 5683914934d5b6e4240e497e0f4a3b42d1854183 hermes-engine: 70fdc9d0bb0d8532e0411dcb21e53ce5a160960a - KeychainModule: 4e4e8187e6b2ddbff6e2b6117e530ab5e50c3a5c + KeychainModule: d709cf647ef1522b14dcb6b280f3e856328d5f4c NitroModules: 11bba9d065af151eae51e38a6425e04c3b223ff3 RCT-Folly: 846fda9475e61ec7bcbf8a3fe81edfcaeb090669 RCTDeprecation: 2b70c6e3abe00396cefd8913efbf6a2db01a2b36 @@ -3158,11 +3202,12 @@ SPEC CHECKSUMS: ReactAppDependencyProvider: ebcf3a78dc1bcdf054c9e8d309244bade6b31568 ReactCodegen: 554b421c45b7df35ac791da1b734335470b55fcc ReactCommon: 424cc34cf5055d69a3dcf02f3436481afb8b0f6f - ReactNativeCheckBiometricAuthChanged: 994b2c696a4c50dce9840c80944872ac3e9b24fd - ReactNativeDeviceUtils: b1312bad7e4899541d1cd0b5dc4b7db3ab6038f2 - ReactNativeGetRandomValues: 84ed71f8e120d8019be1e1b623e4e3c9c78a88d9 - ReactNativeLiteCard: 790a5dee05a01b83aa130c928645a74477c18279 - Skeleton: b8a7888e09e33a9772ee87dd68db0dd64f46e832 + ReactNativeCheckBiometricAuthChanged: c9178c09dc6287be146498abeaa848047c656332 + ReactNativeDeviceUtils: 1944b3333d9e4dd69e9543d70cefe65cbe72ffac + ReactNativeGetRandomValues: 0761be2650cb8a8c03748de6df08d5f357c79c76 + ReactNativeLiteCard: fd4a88f928865cb84f6e88eebfaacc72e3d16e4a + ReactNativeNativeLogger: d50e4a91f06c6f4c40dea427fb0b67a41af30b9f + Skeleton: dc21a02c4c9a8f3c95faf331144a42a4ed586d0f SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 Yoga: 6ca93c8c13f56baeec55eb608577619b17a4d64e diff --git a/example/react-native/ios/example/PrivacyInfo.xcprivacy b/example/react-native/ios/example/PrivacyInfo.xcprivacy index 41b8317f..7852c8c5 100644 --- a/example/react-native/ios/example/PrivacyInfo.xcprivacy +++ b/example/react-native/ios/example/PrivacyInfo.xcprivacy @@ -10,6 +10,15 @@ NSPrivacyAccessedAPITypeReasons C617.1 + 0A2A.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryDiskSpace + NSPrivacyAccessedAPITypeReasons + + E174.1 diff --git a/example/react-native/pages/NativeLoggerTestPage.tsx b/example/react-native/pages/NativeLoggerTestPage.tsx index e2ccc2b0..3e0e98c0 100644 --- a/example/react-native/pages/NativeLoggerTestPage.tsx +++ b/example/react-native/pages/NativeLoggerTestPage.tsx @@ -1,5 +1,5 @@ import React, { useCallback, useEffect, useState } from 'react'; -import { View, Text, Alert, StyleSheet } from 'react-native'; +import { View, Text, Alert, StyleSheet, Clipboard, TouchableOpacity } from 'react-native'; import { TestPageBase, TestButton, TestInput, TestResult } from './TestPageBase'; import { NativeLogger } from '@onekeyfe/react-native-native-logger'; @@ -122,7 +122,20 @@ export function NativeLoggerTestPage({ onGoHome, safeAreaInsets }: NativeLoggerT Log Directory - Path: + + Path: + {logDir ? ( + { + Clipboard.setString(logDir); + Alert.alert('Copied', 'Log directory path copied to clipboard'); + }} + style={styles.copyButton} + > + Copy + + ) : null} + {logDir || 'Loading...'} @@ -228,11 +241,27 @@ const styles = StyleSheet.create({ padding: 12, borderRadius: 8, }, + dirHeader: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + marginBottom: 4, + }, dirLabel: { fontSize: 13, fontWeight: '600', color: '#333', - marginBottom: 4, + }, + copyButton: { + backgroundColor: '#007AFF', + paddingHorizontal: 10, + paddingVertical: 4, + borderRadius: 4, + }, + copyButtonText: { + fontSize: 12, + color: '#fff', + fontWeight: '600', }, dirPath: { fontSize: 12, diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt index d405e2f5..4f52106e 100644 --- a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt @@ -12,6 +12,9 @@ import ch.qos.logback.core.util.FileSize import com.margelo.nitro.NitroModules import java.io.File import java.nio.charset.Charset +import java.text.SimpleDateFormat +import java.util.Date +import java.util.Locale object OneKeyLog { private const val APPENDER_NAME = "OneKeyFileAppender" @@ -96,6 +99,8 @@ object OneKeyLog { } } + private val timeFormatter = SimpleDateFormat("HH:mm:ss", Locale.US) + private fun truncate(message: String): String { return if (message.length > MAX_MESSAGE_LENGTH) { message.substring(0, MAX_MESSAGE_LENGTH) + "...(truncated)" @@ -104,15 +109,23 @@ object OneKeyLog { } } + private fun formatMessage(tag: String, level: String, message: String): String { + if (tag == "JS") { + return truncate(message) + } + val time = timeFormatter.format(Date()) + return truncate("$time | $level : [$tag] $message") + } + @JvmStatic - fun debug(tag: String, message: String) { logger?.debug(truncate("[$tag] $message")) } + fun debug(tag: String, message: String) { logger?.debug(formatMessage(tag, "DEBUG", message)) } @JvmStatic - fun info(tag: String, message: String) { logger?.info(truncate("[$tag] $message")) } + fun info(tag: String, message: String) { logger?.info(formatMessage(tag, "INFO", message)) } @JvmStatic - fun warn(tag: String, message: String) { logger?.warn(truncate("[$tag] $message")) } + fun warn(tag: String, message: String) { logger?.warn(formatMessage(tag, "WARN", message)) } @JvmStatic - fun error(tag: String, message: String) { logger?.error(truncate("[$tag] $message")) } + fun error(tag: String, message: String) { logger?.error(formatMessage(tag, "ERROR", message)) } } diff --git a/native-modules/native-logger/ios/OneKeyLog.swift b/native-modules/native-logger/ios/OneKeyLog.swift index 5065d231..b28896cc 100644 --- a/native-modules/native-logger/ios/OneKeyLog.swift +++ b/native-modules/native-logger/ios/OneKeyLog.swift @@ -86,6 +86,13 @@ private class OneKeyLogFileManager: DDLogFileManagerDefault { return true }() + private static let timeFormatter: DateFormatter = { + let fmt = DateFormatter() + fmt.dateFormat = "HH:mm:ss" + fmt.locale = Locale(identifier: "en_US_POSIX") + return fmt + }() + private static func truncate(_ message: String) -> String { if message.count > maxMessageLength { return String(message.prefix(maxMessageLength)) + "...(truncated)" @@ -93,24 +100,32 @@ private class OneKeyLogFileManager: DDLogFileManagerDefault { return message } + private static func formatMessage(_ tag: String, _ level: String, _ message: String) -> String { + if tag == "JS" { + return truncate(message) + } + let time = timeFormatter.string(from: Date()) + return truncate("\(time) | \(level) : [\(tag)] \(message)") + } + @objc public static func debug(_ tag: String, _ message: String) { _ = configured - DDLogDebug(truncate("[\(tag)] \(message)")) + DDLogDebug(formatMessage(tag, "DEBUG", message)) } @objc public static func info(_ tag: String, _ message: String) { _ = configured - DDLogInfo(truncate("[\(tag)] \(message)")) + DDLogInfo(formatMessage(tag, "INFO", message)) } @objc public static func warn(_ tag: String, _ message: String) { _ = configured - DDLogWarn(truncate("[\(tag)] \(message)")) + DDLogWarn(formatMessage(tag, "WARN", message)) } @objc public static func error(_ tag: String, _ message: String) { _ = configured - DDLogError(truncate("[\(tag)] \(message)")) + DDLogError(formatMessage(tag, "ERROR", message)) } /// Returns the logs directory path (for getLogFilePaths / deleteLogFiles) diff --git a/native-views/react-native-skeleton/package.json b/native-views/react-native-skeleton/package.json index 0d4a6dea..a2940952 100644 --- a/native-views/react-native-skeleton/package.json +++ b/native-views/react-native-skeleton/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/react-native-skeleton", - "version": "1.1.19", + "version": "1.1.20", "description": "react-native-skeleton", "main": "./lib/module/index.js", "types": "./lib/typescript/src/index.d.ts", diff --git a/yarn.lock b/yarn.lock index bf448b12..9cbb1fc3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2751,6 +2751,7 @@ __metadata: "@onekeyfe/react-native-get-random-values": "workspace:*" "@onekeyfe/react-native-keychain-module": "workspace:*" "@onekeyfe/react-native-lite-card": "workspace:*" + "@onekeyfe/react-native-native-logger": "workspace:*" "@onekeyfe/react-native-skeleton": "workspace:*" "@react-native-community/cli": "npm:20.0.0" "@react-native-community/cli-platform-android": "npm:20.0.0" @@ -3059,7 +3060,7 @@ __metadata: languageName: unknown linkType: soft -"@onekeyfe/react-native-native-logger@workspace:native-modules/native-logger": +"@onekeyfe/react-native-native-logger@workspace:*, @onekeyfe/react-native-native-logger@workspace:native-modules/native-logger": version: 0.0.0-use.local resolution: "@onekeyfe/react-native-native-logger@workspace:native-modules/native-logger" dependencies: From 1403283b80e13f6d81bf61b825db387fb6d98446 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sat, 28 Feb 2026 23:29:12 +0800 Subject: [PATCH 14/94] feat: add startup log in native layer for iOS and Android - iOS: call OneKeyLog via ObjC bridge (OneKeyLogBridge) to avoid Clang module build failure with NitroModules C++ headers - Android: call OneKeyLog.info directly in MainApplication.onCreate - Both log "Application started" with native timestamp format Co-Authored-By: Claude Opus 4.6 --- .../main/java/com/example/MainApplication.kt | 2 ++ .../ios/Example-Bridging-header.h | 1 + example/react-native/ios/OneKeyLogBridge.h | 5 ++++ example/react-native/ios/OneKeyLogBridge.m | 23 +++++++++++++++++++ .../ios/example.xcodeproj/project.pbxproj | 14 +++++++++++ .../ios/example/AppDelegate.swift | 2 ++ 6 files changed, 47 insertions(+) create mode 100644 example/react-native/ios/OneKeyLogBridge.h create mode 100644 example/react-native/ios/OneKeyLogBridge.m diff --git a/example/react-native/android/app/src/main/java/com/example/MainApplication.kt b/example/react-native/android/app/src/main/java/com/example/MainApplication.kt index 0e672ef5..41f852a5 100644 --- a/example/react-native/android/app/src/main/java/com/example/MainApplication.kt +++ b/example/react-native/android/app/src/main/java/com/example/MainApplication.kt @@ -6,6 +6,7 @@ import com.facebook.react.ReactApplication import com.facebook.react.ReactHost import com.facebook.react.ReactNativeApplicationEntryPoint.loadReactNative import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost +import com.margelo.nitro.nativelogger.OneKeyLog class MainApplication : Application(), ReactApplication { @@ -22,6 +23,7 @@ class MainApplication : Application(), ReactApplication { override fun onCreate() { super.onCreate() + OneKeyLog.info("App", "Application started") loadReactNative(this) } } diff --git a/example/react-native/ios/Example-Bridging-header.h b/example/react-native/ios/Example-Bridging-header.h index c83335ff..d058d3a6 100644 --- a/example/react-native/ios/Example-Bridging-header.h +++ b/example/react-native/ios/Example-Bridging-header.h @@ -1 +1,2 @@ #import "BackgroundRunnerModule.h" +#import "OneKeyLogBridge.h" diff --git a/example/react-native/ios/OneKeyLogBridge.h b/example/react-native/ios/OneKeyLogBridge.h new file mode 100644 index 00000000..c6e9ebbc --- /dev/null +++ b/example/react-native/ios/OneKeyLogBridge.h @@ -0,0 +1,5 @@ +#import + +@interface OneKeyLogBridge : NSObject ++ (void)info:(NSString *)tag message:(NSString *)message; +@end diff --git a/example/react-native/ios/OneKeyLogBridge.m b/example/react-native/ios/OneKeyLogBridge.m new file mode 100644 index 00000000..1e5dbdc9 --- /dev/null +++ b/example/react-native/ios/OneKeyLogBridge.m @@ -0,0 +1,23 @@ +#import "OneKeyLogBridge.h" + +// OneKeyLog is an @objc public Swift class in ReactNativeNativeLogger pod. +// We use forward declaration + performSelector to avoid importing the +// ReactNativeNativeLogger module (which fails due to C++ headers in NitroModules). +@implementation OneKeyLogBridge + ++ (void)info:(NSString *)tag message:(NSString *)message { + Class cls = NSClassFromString(@"ReactNativeNativeLogger.OneKeyLog"); + if (!cls) { + cls = NSClassFromString(@"OneKeyLog"); + } + if (cls) { + SEL sel = NSSelectorFromString(@"info::"); + if ([cls respondsToSelector:sel]) { + typedef void (*InfoFunc)(id, SEL, NSString *, NSString *); + InfoFunc func = (InfoFunc)[cls methodForSelector:sel]; + func(cls, sel, tag, message); + } + } +} + +@end diff --git a/example/react-native/ios/example.xcodeproj/project.pbxproj b/example/react-native/ios/example.xcodeproj/project.pbxproj index a5aabe11..666bc3d8 100644 --- a/example/react-native/ios/example.xcodeproj/project.pbxproj +++ b/example/react-native/ios/example.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 074590982EF13928004098A9 /* BackgroundRunnerModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 074590972EF13928004098A9 /* BackgroundRunnerModule.m */; }; + 0773E5D82F53404600E76F7A /* OneKeyLogBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 0773E5D72F53404600E76F7A /* OneKeyLogBridge.m */; }; 07F464D79E31412F737D9E2F /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */; }; 0C80B921A6F3F58F76C31292 /* libPods-example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-example.a */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; @@ -19,6 +20,8 @@ 074590942EF1390B004098A9 /* Example-Bridging-header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Example-Bridging-header.h"; sourceTree = ""; }; 074590962EF13928004098A9 /* BackgroundRunnerModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BackgroundRunnerModule.h; sourceTree = ""; }; 074590972EF13928004098A9 /* BackgroundRunnerModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BackgroundRunnerModule.m; sourceTree = ""; }; + 0773E5D62F53404600E76F7A /* OneKeyLogBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OneKeyLogBridge.h; sourceTree = ""; }; + 0773E5D72F53404600E76F7A /* OneKeyLogBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OneKeyLogBridge.m; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = example/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = example/Info.plist; sourceTree = ""; }; @@ -54,6 +57,8 @@ 074590942EF1390B004098A9 /* Example-Bridging-header.h */, 074590962EF13928004098A9 /* BackgroundRunnerModule.h */, 074590972EF13928004098A9 /* BackgroundRunnerModule.m */, + 0773E5D62F53404600E76F7A /* OneKeyLogBridge.h */, + 0773E5D72F53404600E76F7A /* OneKeyLogBridge.m */, ); name = example; sourceTree = ""; @@ -198,10 +203,14 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); + inputPaths = ( + ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); + outputPaths = ( + ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks.sh\"\n"; @@ -237,10 +246,14 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources-${CONFIGURATION}-input-files.xcfilelist", ); + inputPaths = ( + ); name = "[CP] Copy Pods Resources"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources-${CONFIGURATION}-output-files.xcfilelist", ); + outputPaths = ( + ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources.sh\"\n"; @@ -255,6 +268,7 @@ files = ( 761780ED2CA45674006654EE /* AppDelegate.swift in Sources */, 074590982EF13928004098A9 /* BackgroundRunnerModule.m in Sources */, + 0773E5D82F53404600E76F7A /* OneKeyLogBridge.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/example/react-native/ios/example/AppDelegate.swift b/example/react-native/ios/example/AppDelegate.swift index eb35e352..5ff0433c 100644 --- a/example/react-native/ios/example/AppDelegate.swift +++ b/example/react-native/ios/example/AppDelegate.swift @@ -14,6 +14,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate { _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil ) -> Bool { + OneKeyLogBridge.info("App", message: "Application started") + DispatchQueue.global(qos: .userInitiated).async { // BackgroundRunnerModule.startBackgroundRunner() } From d3df5b3965e682d0b0e38d33009d7d2d3bf37a48 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sun, 1 Mar 2026 00:17:11 +0800 Subject: [PATCH 15/94] fix: use correct autolinked Gradle project name for native-logger React Native autolinking generates project names from scoped npm package names by replacing `@`/`/` with `_`, so `@onekeyfe/react-native-native-logger` becomes `:onekeyfe_react-native-native-logger`. Co-Authored-By: Claude Opus 4.6 --- native-modules/react-native-device-utils/android/build.gradle | 2 +- .../react-native-get-random-values/android/build.gradle | 2 +- scripts/nitro/template/android/build.gradle | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/native-modules/react-native-device-utils/android/build.gradle b/native-modules/react-native-device-utils/android/build.gradle index 0b0ff43b..9d30c0cb 100644 --- a/native-modules/react-native-device-utils/android/build.gradle +++ b/native-modules/react-native-device-utils/android/build.gradle @@ -134,5 +134,5 @@ dependencies { // AndroidX Preference for PreferenceManager implementation "androidx.preference:preference-ktx:1.2.1" - implementation project(":react-native-native-logger") + implementation project(":onekeyfe_react-native-native-logger") } diff --git a/native-modules/react-native-get-random-values/android/build.gradle b/native-modules/react-native-get-random-values/android/build.gradle index a0aa1890..f2fe6879 100644 --- a/native-modules/react-native-get-random-values/android/build.gradle +++ b/native-modules/react-native-get-random-values/android/build.gradle @@ -126,5 +126,5 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation project(":react-native-nitro-modules") - implementation project(":react-native-native-logger") + implementation project(":onekeyfe_react-native-native-logger") } diff --git a/scripts/nitro/template/android/build.gradle b/scripts/nitro/template/android/build.gradle index 7103801b..5183b0d8 100644 --- a/scripts/nitro/template/android/build.gradle +++ b/scripts/nitro/template/android/build.gradle @@ -126,5 +126,5 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation project(":react-native-nitro-modules") - implementation project(":react-native-native-logger") + implementation project(":onekeyfe_react-native-native-logger") } From 7d1744c7453975ac6c0b3e7060e0862d6fdaec48 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sun, 1 Mar 2026 00:30:26 +0800 Subject: [PATCH 16/94] fix: auto-init OneKeyLog via ContentProvider before Application.onCreate ContentProvider.onCreate() runs between attachBaseContext() and Application.onCreate(), so the logger is ready for the earliest app-level startup logs. Consuming apps no longer need to call OneKeyLog.init() manually. Co-Authored-By: Claude Opus 4.6 --- .../android/src/main/AndroidManifest.xml | 9 ++++++- .../margelo/nitro/nativelogger/OneKeyLog.kt | 12 +++++++++ .../nativelogger/OneKeyLogInitProvider.kt | 27 +++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLogInitProvider.kt diff --git a/native-modules/native-logger/android/src/main/AndroidManifest.xml b/native-modules/native-logger/android/src/main/AndroidManifest.xml index 94cbbcfc..c1d23f13 100644 --- a/native-modules/native-logger/android/src/main/AndroidManifest.xml +++ b/native-modules/native-logger/android/src/main/AndroidManifest.xml @@ -1 +1,8 @@ - + + + + + diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt index 4f52106e..511d535e 100644 --- a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt @@ -28,6 +28,18 @@ object OneKeyLog { @Volatile private var cachedLogsDir: String? = null + /** + * Initialise OneKeyLog with an Android Context before NitroModules is ready. + * Call this early in Application.onCreate() so that logs emitted before + * React Native loads are not silently dropped. + */ + @JvmStatic + fun init(context: android.content.Context) { + if (cachedLogsDir == null) { + cachedLogsDir = "${context.cacheDir.absolutePath}/logs" + } + } + val logsDirectory: String get() { cachedLogsDir?.let { return it } diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLogInitProvider.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLogInitProvider.kt new file mode 100644 index 00000000..7820aa35 --- /dev/null +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLogInitProvider.kt @@ -0,0 +1,27 @@ +package com.margelo.nitro.nativelogger + +import android.content.ContentProvider +import android.content.ContentValues +import android.database.Cursor +import android.net.Uri + +/** + * Auto-initialises [OneKeyLog] before Application.onCreate(). + * + * ContentProvider.onCreate() is invoked by the system between + * Application.attachBaseContext() and Application.onCreate(), + * so the logger is ready for the earliest app-level code. + */ +class OneKeyLogInitProvider : ContentProvider() { + + override fun onCreate(): Boolean { + context?.let { OneKeyLog.init(it) } + return true + } + + override fun query(uri: Uri, proj: Array?, sel: String?, selArgs: Array?, sort: String?): Cursor? = null + override fun getType(uri: Uri): String? = null + override fun insert(uri: Uri, values: ContentValues?): Uri? = null + override fun delete(uri: Uri, sel: String?, selArgs: Array?): Int = 0 + override fun update(uri: Uri, values: ContentValues?, sel: String?, selArgs: Array?): Int = 0 +} From ac013366866802c231ede11b89fbeb4f9b7a40f5 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sun, 1 Mar 2026 11:49:54 +0800 Subject: [PATCH 17/94] feat: add native modules migrated from legacy bridge architecture Add 5 new Nitro modules and extend device-utils for migrating all legacy RCTBridgeModule/ReactContextBaseJavaModule code to New Architecture: - react-native-bundle-update: JS bundle OTA update with SHA256 verification, ZIP extraction, PGP signature validation, and download progress events - react-native-app-update: Android APK download/install with notification progress (iOS stub) - react-native-perf-memory: Memory usage reporting (RSS) for iOS and Android - react-native-splash-screen: Legacy splash screen for Android < 12 (iOS stub) - react-native-webview-checker: Android WebView package info and Google Play Services availability check (iOS stub) - react-native-device-utils: Extended with LaunchOptions, ExitApp, and startup time tracking All modules use OneKeyLog for logging and follow the Nitro callback listener pattern for events (replacing NativeEventEmitter). --- .../react-native-app-update/.gitignore | 89 ++ .../react-native-app-update/LICENSE | 21 + .../react-native-app-update/README.md | 36 + .../ReactNativeAppUpdate.podspec | 30 + .../android/CMakeLists.txt | 24 + .../android/build.gradle | 134 +++ .../android/gradle.properties | 4 + .../android/src/main/AndroidManifest.xml | 1 + .../android/src/main/cpp/cpp-adapter.cpp | 6 + .../ReactNativeAppUpdate.kt | 271 +++++ .../ReactNativeAppUpdatePackage.kt | 24 + .../react-native-app-update/babel.config.js | 13 + .../react-native-app-update/eslint.config.mjs | 5 + .../ios/ReactNativeAppUpdate.swift | 41 + .../react-native-app-update/lefthook.yml | 10 + .../react-native-app-update/nitro.json | 17 + .../react-native-app-update/package.json | 169 ++++ .../src/ReactNativeAppUpdate.nitro.ts | 32 + .../react-native-app-update/src/index.tsx | 8 + .../tsconfig.build.json | 9 + .../react-native-app-update/tsconfig.json | 30 + .../react-native-app-update/turbo.json | 17 + .../react-native-bundle-update/.gitignore | 89 ++ .../react-native-bundle-update/LICENSE | 21 + .../react-native-bundle-update/README.md | 36 + .../ReactNativeBundleUpdate.podspec | 31 + .../android/CMakeLists.txt | 24 + .../android/build.gradle | 132 +++ .../android/gradle.properties | 4 + .../android/src/main/AndroidManifest.xml | 1 + .../android/src/main/cpp/cpp-adapter.cpp | 6 + .../ReactNativeBundleUpdate.kt | 922 ++++++++++++++++++ .../ReactNativeBundleUpdatePackage.kt | 24 + .../babel.config.js | 13 + .../eslint.config.mjs | 5 + .../ios/ReactNativeBundleUpdate.swift | 785 +++++++++++++++ .../react-native-bundle-update/lefthook.yml | 10 + .../react-native-bundle-update/nitro.json | 17 + .../react-native-bundle-update/package.json | 169 ++++ .../src/ReactNativeBundleUpdate.nitro.ts | 138 +++ .../react-native-bundle-update/src/index.tsx | 8 + .../tsconfig.build.json | 9 + .../react-native-bundle-update/tsconfig.json | 30 + .../react-native-bundle-update/turbo.json | 17 + .../ReactNativeDeviceUtils.kt | 45 + .../ios/ReactNativeDeviceUtils.swift | 69 ++ .../src/ReactNativeDeviceUtils.nitro.ts | 15 + .../react-native-perf-memory/.gitignore | 89 ++ .../react-native-perf-memory/LICENSE | 21 + .../react-native-perf-memory/README.md | 36 + .../ReactNativePerfMemory.podspec | 30 + .../android/CMakeLists.txt | 24 + .../android/build.gradle | 130 +++ .../android/gradle.properties | 4 + .../android/src/main/AndroidManifest.xml | 1 + .../android/src/main/cpp/cpp-adapter.cpp | 6 + .../ReactNativePerfMemory.kt | 67 ++ .../ReactNativePerfMemoryPackage.kt | 24 + .../react-native-perf-memory/babel.config.js | 13 + .../eslint.config.mjs | 5 + .../ios/ReactNativePerfMemory.swift | 41 + .../react-native-perf-memory/lefthook.yml | 10 + .../react-native-perf-memory/nitro.json | 17 + .../react-native-perf-memory/package.json | 169 ++++ .../src/ReactNativePerfMemory.nitro.ts | 10 + .../react-native-perf-memory/src/index.tsx | 8 + .../tsconfig.build.json | 9 + .../react-native-perf-memory/tsconfig.json | 30 + .../react-native-perf-memory/turbo.json | 17 + .../react-native-splash-screen/.gitignore | 89 ++ .../react-native-splash-screen/LICENSE | 21 + .../react-native-splash-screen/README.md | 36 + .../ReactNativeSplashScreen.podspec | 30 + .../android/CMakeLists.txt | 24 + .../android/build.gradle | 130 +++ .../android/gradle.properties | 4 + .../android/src/main/AndroidManifest.xml | 1 + .../android/src/main/cpp/cpp-adapter.cpp | 6 + .../ReactNativeSplashScreen.kt | 33 + .../ReactNativeSplashScreenPackage.kt | 24 + .../babel.config.js | 13 + .../eslint.config.mjs | 5 + .../ios/ReactNativeSplashScreen.swift | 15 + .../react-native-splash-screen/lefthook.yml | 10 + .../react-native-splash-screen/nitro.json | 17 + .../react-native-splash-screen/package.json | 169 ++++ .../src/ReactNativeSplashScreen.nitro.ts | 7 + .../react-native-splash-screen/src/index.tsx | 8 + .../tsconfig.build.json | 9 + .../react-native-splash-screen/tsconfig.json | 30 + .../react-native-splash-screen/turbo.json | 17 + .../react-native-webview-checker/.gitignore | 89 ++ .../react-native-webview-checker/LICENSE | 21 + .../react-native-webview-checker/README.md | 36 + .../ReactNativeWebviewChecker.podspec | 30 + .../android/CMakeLists.txt | 24 + .../android/build.gradle | 132 +++ .../android/gradle.properties | 4 + .../android/src/main/AndroidManifest.xml | 1 + .../android/src/main/cpp/cpp-adapter.cpp | 6 + .../ReactNativeWebviewChecker.kt | 56 ++ .../ReactNativeWebviewCheckerPackage.kt | 24 + .../babel.config.js | 13 + .../eslint.config.mjs | 5 + .../ios/ReactNativeWebviewChecker.swift | 21 + .../react-native-webview-checker/lefthook.yml | 10 + .../react-native-webview-checker/nitro.json | 17 + .../react-native-webview-checker/package.json | 169 ++++ .../src/ReactNativeWebviewChecker.nitro.ts | 18 + .../src/index.tsx | 8 + .../tsconfig.build.json | 9 + .../tsconfig.json | 30 + .../react-native-webview-checker/turbo.json | 17 + yarn.lock | 36 + 114 files changed, 5846 insertions(+) create mode 100644 native-modules/react-native-app-update/.gitignore create mode 100644 native-modules/react-native-app-update/LICENSE create mode 100644 native-modules/react-native-app-update/README.md create mode 100644 native-modules/react-native-app-update/ReactNativeAppUpdate.podspec create mode 100644 native-modules/react-native-app-update/android/CMakeLists.txt create mode 100644 native-modules/react-native-app-update/android/build.gradle create mode 100644 native-modules/react-native-app-update/android/gradle.properties create mode 100644 native-modules/react-native-app-update/android/src/main/AndroidManifest.xml create mode 100644 native-modules/react-native-app-update/android/src/main/cpp/cpp-adapter.cpp create mode 100644 native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt create mode 100644 native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdatePackage.kt create mode 100644 native-modules/react-native-app-update/babel.config.js create mode 100644 native-modules/react-native-app-update/eslint.config.mjs create mode 100644 native-modules/react-native-app-update/ios/ReactNativeAppUpdate.swift create mode 100644 native-modules/react-native-app-update/lefthook.yml create mode 100644 native-modules/react-native-app-update/nitro.json create mode 100644 native-modules/react-native-app-update/package.json create mode 100644 native-modules/react-native-app-update/src/ReactNativeAppUpdate.nitro.ts create mode 100644 native-modules/react-native-app-update/src/index.tsx create mode 100644 native-modules/react-native-app-update/tsconfig.build.json create mode 100644 native-modules/react-native-app-update/tsconfig.json create mode 100644 native-modules/react-native-app-update/turbo.json create mode 100644 native-modules/react-native-bundle-update/.gitignore create mode 100644 native-modules/react-native-bundle-update/LICENSE create mode 100644 native-modules/react-native-bundle-update/README.md create mode 100644 native-modules/react-native-bundle-update/ReactNativeBundleUpdate.podspec create mode 100644 native-modules/react-native-bundle-update/android/CMakeLists.txt create mode 100644 native-modules/react-native-bundle-update/android/build.gradle create mode 100644 native-modules/react-native-bundle-update/android/gradle.properties create mode 100644 native-modules/react-native-bundle-update/android/src/main/AndroidManifest.xml create mode 100644 native-modules/react-native-bundle-update/android/src/main/cpp/cpp-adapter.cpp create mode 100644 native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt create mode 100644 native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdatePackage.kt create mode 100644 native-modules/react-native-bundle-update/babel.config.js create mode 100644 native-modules/react-native-bundle-update/eslint.config.mjs create mode 100644 native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift create mode 100644 native-modules/react-native-bundle-update/lefthook.yml create mode 100644 native-modules/react-native-bundle-update/nitro.json create mode 100644 native-modules/react-native-bundle-update/package.json create mode 100644 native-modules/react-native-bundle-update/src/ReactNativeBundleUpdate.nitro.ts create mode 100644 native-modules/react-native-bundle-update/src/index.tsx create mode 100644 native-modules/react-native-bundle-update/tsconfig.build.json create mode 100644 native-modules/react-native-bundle-update/tsconfig.json create mode 100644 native-modules/react-native-bundle-update/turbo.json create mode 100644 native-modules/react-native-perf-memory/.gitignore create mode 100644 native-modules/react-native-perf-memory/LICENSE create mode 100644 native-modules/react-native-perf-memory/README.md create mode 100644 native-modules/react-native-perf-memory/ReactNativePerfMemory.podspec create mode 100644 native-modules/react-native-perf-memory/android/CMakeLists.txt create mode 100644 native-modules/react-native-perf-memory/android/build.gradle create mode 100644 native-modules/react-native-perf-memory/android/gradle.properties create mode 100644 native-modules/react-native-perf-memory/android/src/main/AndroidManifest.xml create mode 100644 native-modules/react-native-perf-memory/android/src/main/cpp/cpp-adapter.cpp create mode 100644 native-modules/react-native-perf-memory/android/src/main/java/com/margelo/nitro/reactnativeperfmemory/ReactNativePerfMemory.kt create mode 100644 native-modules/react-native-perf-memory/android/src/main/java/com/margelo/nitro/reactnativeperfmemory/ReactNativePerfMemoryPackage.kt create mode 100644 native-modules/react-native-perf-memory/babel.config.js create mode 100644 native-modules/react-native-perf-memory/eslint.config.mjs create mode 100644 native-modules/react-native-perf-memory/ios/ReactNativePerfMemory.swift create mode 100644 native-modules/react-native-perf-memory/lefthook.yml create mode 100644 native-modules/react-native-perf-memory/nitro.json create mode 100644 native-modules/react-native-perf-memory/package.json create mode 100644 native-modules/react-native-perf-memory/src/ReactNativePerfMemory.nitro.ts create mode 100644 native-modules/react-native-perf-memory/src/index.tsx create mode 100644 native-modules/react-native-perf-memory/tsconfig.build.json create mode 100644 native-modules/react-native-perf-memory/tsconfig.json create mode 100644 native-modules/react-native-perf-memory/turbo.json create mode 100644 native-modules/react-native-splash-screen/.gitignore create mode 100644 native-modules/react-native-splash-screen/LICENSE create mode 100644 native-modules/react-native-splash-screen/README.md create mode 100644 native-modules/react-native-splash-screen/ReactNativeSplashScreen.podspec create mode 100644 native-modules/react-native-splash-screen/android/CMakeLists.txt create mode 100644 native-modules/react-native-splash-screen/android/build.gradle create mode 100644 native-modules/react-native-splash-screen/android/gradle.properties create mode 100644 native-modules/react-native-splash-screen/android/src/main/AndroidManifest.xml create mode 100644 native-modules/react-native-splash-screen/android/src/main/cpp/cpp-adapter.cpp create mode 100644 native-modules/react-native-splash-screen/android/src/main/java/com/margelo/nitro/reactnativesplashscreen/ReactNativeSplashScreen.kt create mode 100644 native-modules/react-native-splash-screen/android/src/main/java/com/margelo/nitro/reactnativesplashscreen/ReactNativeSplashScreenPackage.kt create mode 100644 native-modules/react-native-splash-screen/babel.config.js create mode 100644 native-modules/react-native-splash-screen/eslint.config.mjs create mode 100644 native-modules/react-native-splash-screen/ios/ReactNativeSplashScreen.swift create mode 100644 native-modules/react-native-splash-screen/lefthook.yml create mode 100644 native-modules/react-native-splash-screen/nitro.json create mode 100644 native-modules/react-native-splash-screen/package.json create mode 100644 native-modules/react-native-splash-screen/src/ReactNativeSplashScreen.nitro.ts create mode 100644 native-modules/react-native-splash-screen/src/index.tsx create mode 100644 native-modules/react-native-splash-screen/tsconfig.build.json create mode 100644 native-modules/react-native-splash-screen/tsconfig.json create mode 100644 native-modules/react-native-splash-screen/turbo.json create mode 100644 native-modules/react-native-webview-checker/.gitignore create mode 100644 native-modules/react-native-webview-checker/LICENSE create mode 100644 native-modules/react-native-webview-checker/README.md create mode 100644 native-modules/react-native-webview-checker/ReactNativeWebviewChecker.podspec create mode 100644 native-modules/react-native-webview-checker/android/CMakeLists.txt create mode 100644 native-modules/react-native-webview-checker/android/build.gradle create mode 100644 native-modules/react-native-webview-checker/android/gradle.properties create mode 100644 native-modules/react-native-webview-checker/android/src/main/AndroidManifest.xml create mode 100644 native-modules/react-native-webview-checker/android/src/main/cpp/cpp-adapter.cpp create mode 100644 native-modules/react-native-webview-checker/android/src/main/java/com/margelo/nitro/reactnativewebviewchecker/ReactNativeWebviewChecker.kt create mode 100644 native-modules/react-native-webview-checker/android/src/main/java/com/margelo/nitro/reactnativewebviewchecker/ReactNativeWebviewCheckerPackage.kt create mode 100644 native-modules/react-native-webview-checker/babel.config.js create mode 100644 native-modules/react-native-webview-checker/eslint.config.mjs create mode 100644 native-modules/react-native-webview-checker/ios/ReactNativeWebviewChecker.swift create mode 100644 native-modules/react-native-webview-checker/lefthook.yml create mode 100644 native-modules/react-native-webview-checker/nitro.json create mode 100644 native-modules/react-native-webview-checker/package.json create mode 100644 native-modules/react-native-webview-checker/src/ReactNativeWebviewChecker.nitro.ts create mode 100644 native-modules/react-native-webview-checker/src/index.tsx create mode 100644 native-modules/react-native-webview-checker/tsconfig.build.json create mode 100644 native-modules/react-native-webview-checker/tsconfig.json create mode 100644 native-modules/react-native-webview-checker/turbo.json diff --git a/native-modules/react-native-app-update/.gitignore b/native-modules/react-native-app-update/.gitignore new file mode 100644 index 00000000..357a2f9a --- /dev/null +++ b/native-modules/react-native-app-update/.gitignore @@ -0,0 +1,89 @@ +# OSX +# +.DS_Store + +# XDE +.expo/ + +# VSCode +.vscode/ +jsconfig.json + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace +**/.xcode.env.local + +# Android/IJ +# +.classpath +.cxx +.gradle +.idea +.project +.settings +local.properties +android.iml + +# Cocoapods +# +example/ios/Pods + +# Ruby +example/vendor/ + +# node.js +# +node_modules/ +npm-debug.log +yarn-debug.log +yarn-error.log + +# BUCK +buck-out/ +\.buckd/ +android/app/libs +android/keystores/debug.keystore + +# Yarn +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +# Expo +.expo/ + +# Turborepo +.turbo/ + +# generated by bob +lib/ + +# React Native Codegen +ios/generated +android/generated + +# React Native Nitro Modules +nitrogen/ + + + diff --git a/native-modules/react-native-app-update/LICENSE b/native-modules/react-native-app-update/LICENSE new file mode 100644 index 00000000..24ee4114 --- /dev/null +++ b/native-modules/react-native-app-update/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 OneKey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/native-modules/react-native-app-update/README.md b/native-modules/react-native-app-update/README.md new file mode 100644 index 00000000..69f670d6 --- /dev/null +++ b/native-modules/react-native-app-update/README.md @@ -0,0 +1,36 @@ +# react-native-app-update + +react-native-app-update + +## Installation + +```sh +npm install react-native-app-update react-native-nitro-modules + +> `react-native-nitro-modules` is required as this library relies on [Nitro Modules](https://nitro.margelo.com/). +``` + +## Usage + +```js +import { ReactNativeAppUpdate } from 'react-native-app-update'; + +// ... + +const result = await ReactNativeAppUpdate.hello({ message: 'World' }); +console.log(result); // { success: true, data: 'Hello, World!' } +``` + +## Contributing + +- [Development workflow](CONTRIBUTING.md#development-workflow) +- [Sending a pull request](CONTRIBUTING.md#sending-a-pull-request) +- [Code of conduct](CODE_OF_CONDUCT.md) + +## License + +MIT + +--- + +Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob) diff --git a/native-modules/react-native-app-update/ReactNativeAppUpdate.podspec b/native-modules/react-native-app-update/ReactNativeAppUpdate.podspec new file mode 100644 index 00000000..f829b3a1 --- /dev/null +++ b/native-modules/react-native-app-update/ReactNativeAppUpdate.podspec @@ -0,0 +1,30 @@ +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.name = "ReactNativeAppUpdate" + s.version = package["version"] + s.summary = package["description"] + s.homepage = package["homepage"] + s.license = package["license"] + s.authors = package["author"] + + s.platforms = { :ios => min_ios_version_supported } + s.source = { :git => "https://github.com/OneKeyHQ/app-modules/react-native-app-update.git", :tag => "#{s.version}" } + + s.source_files = [ + "ios/**/*.{swift}", + "ios/**/*.{m,mm}", + "cpp/**/*.{hpp,cpp}", + ] + + s.dependency 'React-jsi' + s.dependency 'React-callinvoker' + s.dependency 'ReactNativeNativeLogger' + + load 'nitrogen/generated/ios/ReactNativeAppUpdate+autolinking.rb' + add_nitrogen_files(s) + + install_modules_dependencies(s) +end diff --git a/native-modules/react-native-app-update/android/CMakeLists.txt b/native-modules/react-native-app-update/android/CMakeLists.txt new file mode 100644 index 00000000..2c5f10f7 --- /dev/null +++ b/native-modules/react-native-app-update/android/CMakeLists.txt @@ -0,0 +1,24 @@ +project(reactnativeappupdate) +cmake_minimum_required(VERSION 3.9.0) + +set(PACKAGE_NAME reactnativeappupdate) +set(CMAKE_VERBOSE_MAKEFILE ON) +set(CMAKE_CXX_STANDARD 20) + +# Define C++ library and add all sources +add_library(${PACKAGE_NAME} SHARED src/main/cpp/cpp-adapter.cpp) + +# Add Nitrogen specs :) +include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/reactnativeappupdate+autolinking.cmake) + +# Set up local includes +include_directories("src/main/cpp" "../cpp") + +find_library(LOG_LIB log) + +# Link all libraries together +target_link_libraries( + ${PACKAGE_NAME} + ${LOG_LIB} + android # <-- Android core +) diff --git a/native-modules/react-native-app-update/android/build.gradle b/native-modules/react-native-app-update/android/build.gradle new file mode 100644 index 00000000..63791f86 --- /dev/null +++ b/native-modules/react-native-app-update/android/build.gradle @@ -0,0 +1,134 @@ +buildscript { + ext.getExtOrDefault = {name -> + return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['ReactNativeAppUpdate_' + name] + } + + repositories { + google() + mavenCentral() + } + + dependencies { + classpath "com.android.tools.build:gradle:8.7.2" + // noinspection DifferentKotlinGradleVersion + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}" + } +} + +def reactNativeArchitectures() { + def value = rootProject.getProperties().get("reactNativeArchitectures") + return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] +} + +apply plugin: "com.android.library" +apply plugin: "kotlin-android" +apply from: '../nitrogen/generated/android/reactnativeappupdate+autolinking.gradle' + +apply plugin: "com.facebook.react" + +def getExtOrIntegerDefault(name) { + return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["ReactNativeAppUpdate_" + name]).toInteger() +} + +android { + namespace "com.margelo.nitro.reactnativeappupdate" + + compileSdkVersion getExtOrIntegerDefault("compileSdkVersion") + + defaultConfig { + minSdkVersion getExtOrIntegerDefault("minSdkVersion") + targetSdkVersion getExtOrIntegerDefault("targetSdkVersion") + + externalNativeBuild { + cmake { + cppFlags "-frtti -fexceptions -Wall -fstack-protector-all" + arguments "-DANDROID_STL=c++_shared", "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON" + abiFilters (*reactNativeArchitectures()) + + buildTypes { + debug { + cppFlags "-O1 -g" + } + release { + cppFlags "-O2" + } + } + } + } + } + + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } + + packagingOptions { + excludes = [ + "META-INF", + "META-INF/**", + "**/libc++_shared.so", + "**/libfbjni.so", + "**/libjsi.so", + "**/libfolly_json.so", + "**/libfolly_runtime.so", + "**/libglog.so", + "**/libhermes.so", + "**/libhermes-executor-debug.so", + "**/libhermes_executor.so", + "**/libreactnative.so", + "**/libreactnativejni.so", + "**/libturbomodulejsijni.so", + "**/libreact_nativemodule_core.so", + "**/libjscexecutor.so" + ] + } + + buildFeatures { + buildConfig true + prefab true + } + + buildTypes { + release { + minifyEnabled false + } + } + + lintOptions { + disable "GradleCompatible" + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + sourceSets { + main { + java.srcDirs += [ + "generated/java", + "generated/jni" + ] + } + } +} + +repositories { + mavenCentral() + google() +} + +def kotlin_version = getExtOrDefault("kotlinVersion") + +dependencies { + implementation "com.facebook.react:react-android" + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation project(":react-native-nitro-modules") + + implementation project(":onekeyfe_react-native-native-logger") + + implementation "com.squareup.okhttp3:okhttp:4.12.0" + implementation "com.squareup.okio:okio:3.9.0" + implementation "androidx.core:core-ktx:1.15.0" +} diff --git a/native-modules/react-native-app-update/android/gradle.properties b/native-modules/react-native-app-update/android/gradle.properties new file mode 100644 index 00000000..754b01a6 --- /dev/null +++ b/native-modules/react-native-app-update/android/gradle.properties @@ -0,0 +1,4 @@ +ReactNativeAppUpdate_kotlinVersion=1.9.25 +ReactNativeAppUpdate_compileSdkVersion=35 +ReactNativeAppUpdate_targetSdkVersion=35 +ReactNativeAppUpdate_minSdkVersion=24 diff --git a/native-modules/react-native-app-update/android/src/main/AndroidManifest.xml b/native-modules/react-native-app-update/android/src/main/AndroidManifest.xml new file mode 100644 index 00000000..94cbbcfc --- /dev/null +++ b/native-modules/react-native-app-update/android/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + diff --git a/native-modules/react-native-app-update/android/src/main/cpp/cpp-adapter.cpp b/native-modules/react-native-app-update/android/src/main/cpp/cpp-adapter.cpp new file mode 100644 index 00000000..8c646aa7 --- /dev/null +++ b/native-modules/react-native-app-update/android/src/main/cpp/cpp-adapter.cpp @@ -0,0 +1,6 @@ +#include +#include "reactnativeappupdateOnLoad.hpp" + +extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { + return margelo::nitro::reactnativeappupdate::initialize(vm); +} diff --git a/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt b/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt new file mode 100644 index 00000000..436d7efb --- /dev/null +++ b/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt @@ -0,0 +1,271 @@ +package com.margelo.nitro.reactnativeappupdate + +import android.app.NotificationChannel +import android.app.NotificationManager +import android.content.Intent +import android.content.pm.PackageManager +import android.net.Uri +import android.os.Build +import androidx.core.app.ActivityCompat +import androidx.core.app.NotificationCompat +import androidx.core.app.NotificationManagerCompat +import androidx.core.content.FileProvider +import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise +import com.margelo.nitro.NitroModules +import com.margelo.nitro.nativelogger.OneKeyLog +import okhttp3.OkHttpClient +import okhttp3.Request +import okio.buffer +import okio.sink +import java.io.BufferedInputStream +import java.io.BufferedReader +import java.io.File +import java.io.FileInputStream +import java.io.FileOutputStream +import java.io.InputStreamReader +import java.security.MessageDigest +import java.util.concurrent.CopyOnWriteArrayList +import java.util.concurrent.TimeUnit +import java.util.concurrent.atomic.AtomicBoolean +import java.util.concurrent.atomic.AtomicLong + +private data class Listener( + val id: Double, + val callback: (DownloadEvent) -> Unit +) + +@DoNotStrip +class ReactNativeAppUpdate : HybridReactNativeAppUpdateSpec() { + + companion object { + private const val CHANNEL_ID = "updateApp" + private const val NOTIFICATION_ID = 1 + } + + private val listeners = CopyOnWriteArrayList() + private val nextListenerId = AtomicLong(1) + private val isDownloading = AtomicBoolean(false) + private var downloadThread: Thread? = null + + private fun sendEvent(type: String, progress: Int = 0, message: String = "") { + val event = DownloadEvent(type = type, progress = progress.toDouble(), message = message) + for (listener in listeners) { + try { + listener.callback(event) + } catch (e: Exception) { + OneKeyLog.error("AppUpdate", "Error sending event: ${e.message}") + } + } + } + + override fun addDownloadListener(callback: (DownloadEvent) -> Unit): Double { + val id = nextListenerId.getAndIncrement().toDouble() + listeners.add(Listener(id, callback)) + return id + } + + override fun removeDownloadListener(id: Double) { + listeners.removeAll { it.id == id } + } + + private fun buildFile(path: String): File { + return File(path.replace("file:///", "/")) + } + + private fun bytesToHex(bytes: ByteArray): String { + return bytes.joinToString("") { "%02x".format(it) } + } + + override fun downloadAPK(params: AppUpdateDownloadParams): Promise { + return Promise.async { + if (isDownloading.getAndSet(true)) return@async + + val url = params.downloadUrl + val filePath = params.filePath + val notificationTitle = params.notificationTitle + val fileSize = params.fileSize.toLong() + + val context = NitroModules.applicationContext + ?: throw Exception("Application context unavailable") + + val notifyManager = NotificationManagerCompat.from(context) + val builder = NotificationCompat.Builder(context, CHANNEL_ID) + .setContentTitle(notificationTitle) + .setContentText("") + .setOngoing(true) + .setPriority(NotificationCompat.PRIORITY_LOW) + .setSmallIcon(android.R.drawable.stat_sys_download) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + val channel = NotificationChannel( + CHANNEL_ID, "updateApp", NotificationManager.IMPORTANCE_DEFAULT + ) + notifyManager.createNotificationChannel(channel) + } + + val downloadedFile = buildFile(filePath) + if (downloadedFile.exists()) downloadedFile.delete() + + val client = OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.SECONDS) + .build() + val request = Request.Builder().url(url).build() + val response = client.newCall(request).execute() + + if (!response.isSuccessful) { + isDownloading.set(false) + sendEvent("error", message = response.code.toString()) + throw Exception(response.code.toString()) + } + + val body = response.body ?: throw Exception("Empty response body") + val contentLength = if (fileSize > 0) fileSize else body.contentLength() + val source = body.source() + val sink = downloadedFile.sink().buffer() + val sinkBuffer = sink.buffer + + var totalBytesRead = 0L + val bufferSize = 8 * 1024L + sendEvent("start") + var prevProgress = 0 + + try { + while (true) { + val bytesRead = source.read(sinkBuffer, bufferSize) + if (bytesRead == -1L) break + sink.emit() + totalBytesRead += bytesRead + if (contentLength > 0) { + val progress = ((totalBytesRead * 100) / contentLength).toInt() + if (prevProgress != progress) { + sendEvent("downloading", progress = progress) + OneKeyLog.info("AppUpdate", "download progress: $progress%") + builder.setProgress(100, progress, false) + if (ActivityCompat.checkSelfPermission( + context, android.Manifest.permission.POST_NOTIFICATIONS + ) == PackageManager.PERMISSION_GRANTED + ) { + notifyManager.notify(NOTIFICATION_ID, builder.build()) + } + prevProgress = progress + } + } + } + } finally { + sink.flush() + sink.close() + source.close() + } + + OneKeyLog.info("AppUpdate", "Download completed") + sendEvent("downloaded") + isDownloading.set(false) + + notifyManager.cancel(NOTIFICATION_ID) + builder.setContentText("") + .setProgress(0, 0, false) + .setOngoing(false) + .setAutoCancel(true) + if (ActivityCompat.checkSelfPermission( + context, android.Manifest.permission.POST_NOTIFICATIONS + ) == PackageManager.PERMISSION_GRANTED + ) { + notifyManager.notify(NOTIFICATION_ID, builder.build()) + } + } + } + + override fun downloadASC(params: AppUpdateFileParams): Promise { + return Promise.async { + val url = params.downloadUrl + val filePath = params.filePath + val ascFileUrl = "$url.SHA256SUMS.asc" + val ascFilePath = "$filePath.SHA256SUMS.asc" + + val client = OkHttpClient() + val request = Request.Builder().url(ascFileUrl).build() + val response = client.newCall(request).execute() + + if (!response.isSuccessful) { + throw Exception(response.code.toString()) + } + + val content = StringBuilder() + BufferedReader(InputStreamReader(response.body!!.byteStream())).use { reader -> + var line: String? + while (reader.readLine().also { line = it } != null) { + content.append(line).append("\n") + } + } + + val ascContent = content.toString() + if (ascContent.isEmpty()) throw Exception("Empty ASC file") + + OneKeyLog.info("AppUpdate", "Downloaded ASC file") + + val ascFile = buildFile(ascFilePath) + if (ascFile.exists()) ascFile.delete() + FileOutputStream(ascFile).use { fos -> + fos.write(ascContent.toByteArray()) + } + } + } + + override fun verifyASC(params: AppUpdateFileParams): Promise { + return Promise.async { + // TODO: Integrate Gopenpgp for GPG signature verification + OneKeyLog.info("AppUpdate", "verifyASC: GPG verification pending integration") + } + } + + override fun verifyAPK(params: AppUpdateFileParams): Promise { + return Promise.async { + val file = buildFile(params.filePath) + if (!file.exists()) throw Exception("NOT_FOUND_PACKAGE") + + val context = NitroModules.applicationContext + ?: throw Exception("Application context unavailable") + val pm = context.packageManager + val info = pm.getPackageArchiveInfo(file.absolutePath, 0) + if (info?.packageName == null) { + throw Exception("INVALID_PACKAGE") + } + if (info.packageName != context.packageName) { + throw Exception("PACKAGE_NAME_MISMATCH") + } + OneKeyLog.info("AppUpdate", "APK verified: ${info.packageName}") + } + } + + override fun installAPK(params: AppUpdateFileParams): Promise { + return Promise.async { + val context = NitroModules.applicationContext + ?: throw Exception("Application context unavailable") + val file = buildFile(params.filePath) + if (!file.exists()) throw Exception("NOT_FOUND_PACKAGE") + + val intent = Intent(Intent.ACTION_VIEW) + intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + val apkUri = FileProvider.getUriForFile( + context, + "${context.packageName}.fileprovider", + file + ) + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + intent.setDataAndType(apkUri, "application/vnd.android.package-archive") + } else { + intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive") + } + context.startActivity(intent) + } + } + + override fun clearCache(): Promise { + return Promise.async { + downloadThread?.interrupt() + isDownloading.set(false) + } + } +} diff --git a/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdatePackage.kt b/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdatePackage.kt new file mode 100644 index 00000000..854d77ea --- /dev/null +++ b/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdatePackage.kt @@ -0,0 +1,24 @@ +package com.margelo.nitro.reactnativeappupdate + +import com.facebook.react.BaseReactPackage +import com.facebook.react.bridge.NativeModule +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.module.model.ReactModuleInfoProvider + +class ReactNativeAppUpdatePackage : BaseReactPackage() { + override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? { + return null + } + + override fun getReactModuleInfoProvider(): ReactModuleInfoProvider { + return ReactModuleInfoProvider { HashMap() } + } + + companion object { + init { + System.loadLibrary("reactnativeappupdate") + } + } +} + + diff --git a/native-modules/react-native-app-update/babel.config.js b/native-modules/react-native-app-update/babel.config.js new file mode 100644 index 00000000..12aaf61f --- /dev/null +++ b/native-modules/react-native-app-update/babel.config.js @@ -0,0 +1,13 @@ +module.exports = { + presets: ['@react-native/babel-preset'], + plugins: [ + [ + 'module-resolver', + { + alias: { + 'react-native-app-update': './src/index', + }, + }, + ], + ], +}; diff --git a/native-modules/react-native-app-update/eslint.config.mjs b/native-modules/react-native-app-update/eslint.config.mjs new file mode 100644 index 00000000..3416cf5c --- /dev/null +++ b/native-modules/react-native-app-update/eslint.config.mjs @@ -0,0 +1,5 @@ +import { createEslintConfig } from '@react-native/eslint-config'; + +export default createEslintConfig({ + extends: ['@react-native/eslint-config'], +}); diff --git a/native-modules/react-native-app-update/ios/ReactNativeAppUpdate.swift b/native-modules/react-native-app-update/ios/ReactNativeAppUpdate.swift new file mode 100644 index 00000000..430d8dde --- /dev/null +++ b/native-modules/react-native-app-update/ios/ReactNativeAppUpdate.swift @@ -0,0 +1,41 @@ +import NitroModules +import ReactNativeNativeLogger + +class ReactNativeAppUpdate: HybridReactNativeAppUpdateSpec { + + func downloadAPK(params: AppUpdateDownloadParams) throws -> Promise { + OneKeyLog.debug("AppUpdate", "downloadAPK not available on iOS") + return Promise.resolved(withResult: ()) + } + + func downloadASC(params: AppUpdateFileParams) throws -> Promise { + OneKeyLog.debug("AppUpdate", "downloadASC not available on iOS") + return Promise.resolved(withResult: ()) + } + + func verifyASC(params: AppUpdateFileParams) throws -> Promise { + OneKeyLog.debug("AppUpdate", "verifyASC not available on iOS") + return Promise.resolved(withResult: ()) + } + + func verifyAPK(params: AppUpdateFileParams) throws -> Promise { + OneKeyLog.debug("AppUpdate", "verifyAPK not available on iOS") + return Promise.resolved(withResult: ()) + } + + func installAPK(params: AppUpdateFileParams) throws -> Promise { + OneKeyLog.debug("AppUpdate", "installAPK not available on iOS") + return Promise.resolved(withResult: ()) + } + + func clearCache() throws -> Promise { + return Promise.resolved(withResult: ()) + } + + func addDownloadListener(callback: @escaping (DownloadEvent) -> Void) throws -> Double { + return 0 + } + + func removeDownloadListener(id: Double) throws { + } +} diff --git a/native-modules/react-native-app-update/lefthook.yml b/native-modules/react-native-app-update/lefthook.yml new file mode 100644 index 00000000..89766b1f --- /dev/null +++ b/native-modules/react-native-app-update/lefthook.yml @@ -0,0 +1,10 @@ +pre-commit: + parallel: true + commands: + lint: + glob: "*.{js,ts,tsx}" + run: yarn lint {staged_files} + typecheck: + files: git diff --cached --name-only --diff-filter=ACMRTUXB + glob: "*.{js,ts,tsx}" + run: yarn typecheck diff --git a/native-modules/react-native-app-update/nitro.json b/native-modules/react-native-app-update/nitro.json new file mode 100644 index 00000000..4e8fb8a9 --- /dev/null +++ b/native-modules/react-native-app-update/nitro.json @@ -0,0 +1,17 @@ +{ + "cxxNamespace": ["reactnativeappupdate"], + "ios": { + "iosModuleName": "ReactNativeAppUpdate" + }, + "android": { + "androidNamespace": ["reactnativeappupdate"], + "androidCxxLibName": "reactnativeappupdate" + }, + "autolinking": { + "ReactNativeAppUpdate": { + "swift": "ReactNativeAppUpdate", + "kotlin": "ReactNativeAppUpdate" + } + }, + "ignorePaths": ["node_modules"] +} diff --git a/native-modules/react-native-app-update/package.json b/native-modules/react-native-app-update/package.json new file mode 100644 index 00000000..0c5a6ecc --- /dev/null +++ b/native-modules/react-native-app-update/package.json @@ -0,0 +1,169 @@ +{ + "name": "@onekeyfe/react-native-app-update", + "version": "1.1.20", + "description": "react-native-app-update", + "main": "./lib/module/index.js", + "types": "./lib/typescript/src/index.d.ts", + "exports": { + ".": { + "source": "./src/index.tsx", + "types": "./lib/typescript/src/index.d.ts", + "default": "./lib/module/index.js" + }, + "./package.json": "./package.json" + }, + "files": [ + "src", + "lib", + "android", + "ios", + "cpp", + "nitrogen", + "nitro.json", + "*.podspec", + "react-native.config.js", + "!ios/build", + "!android/build", + "!android/gradle", + "!android/gradlew", + "!android/gradlew.bat", + "!android/local.properties", + "!**/__tests__", + "!**/__fixtures__", + "!**/__mocks__", + "!**/.*" + ], + "scripts": { + "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib", + "prepare": "bob build", + "nitrogen": "nitrogen", + "typecheck": "tsc", + "lint": "eslint \"**/*.{js,ts,tsx}\"", + "test": "jest", + "release": "yarn prepare && npm whoami && npm publish --access public" + }, + "keywords": [ + "react-native", + "ios", + "android" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/OneKeyHQ/app-modules/react-native-app-update.git" + }, + "author": "onekeyfe (https://github.com/OneKeyHQ/app-modules)", + "license": "MIT", + "bugs": { + "url": "https://github.com/OneKeyHQ/app-modules/react-native-app-update/issues" + }, + "homepage": "https://github.com/OneKeyHQ/app-modules/react-native-app-update#readme", + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "devDependencies": { + "@commitlint/config-conventional": "^19.8.1", + "@eslint/compat": "^1.3.2", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "^9.35.0", + "@react-native/babel-preset": "0.83.0", + "@react-native/eslint-config": "0.83.0", + "@release-it/conventional-changelog": "^10.0.1", + "@types/jest": "^29.5.14", + "@types/react": "^19.2.0", + "commitlint": "^19.8.1", + "del-cli": "^6.0.0", + "eslint": "^9.35.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", + "jest": "^29.7.0", + "lefthook": "^2.0.3", + "nitrogen": "0.31.10", + "prettier": "^2.8.8", + "react": "19.2.0", + "react-native": "0.83.0", + "react-native-builder-bob": "^0.40.13", + "react-native-nitro-modules": "0.33.2", + "release-it": "^19.0.4", + "turbo": "^2.5.6", + "typescript": "^5.9.2" + }, + "peerDependencies": { + "react": "*", + "react-native": "*", + "react-native-nitro-modules": "0.33.2" + }, + "react-native-builder-bob": { + "source": "src", + "output": "lib", + "targets": [ + [ + "custom", + { + "script": "nitrogen", + "clean": "nitrogen/" + } + ], + [ + "module", + { + "esm": true + } + ], + [ + "typescript", + { + "project": "tsconfig.build.json" + } + ] + ] + }, + "prettier": { + "quoteProps": "consistent", + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false + }, + "jest": { + "preset": "react-native", + "modulePathIgnorePatterns": [ + "/example/node_modules", + "/lib/" + ] + }, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] + }, + "release-it": { + "git": { + "commitMessage": "chore: release ${version}", + "tagName": "v${version}" + }, + "npm": { + "publish": true + }, + "github": { + "release": true + }, + "plugins": { + "@release-it/conventional-changelog": { + "preset": { + "name": "angular" + } + } + } + }, + "create-react-native-library": { + "type": "nitro-module", + "languages": "kotlin-swift", + "tools": [ + "eslint", + "jest", + "lefthook", + "release-it" + ], + "version": "0.56.0" + } +} diff --git a/native-modules/react-native-app-update/src/ReactNativeAppUpdate.nitro.ts b/native-modules/react-native-app-update/src/ReactNativeAppUpdate.nitro.ts new file mode 100644 index 00000000..b6495085 --- /dev/null +++ b/native-modules/react-native-app-update/src/ReactNativeAppUpdate.nitro.ts @@ -0,0 +1,32 @@ +import type { HybridObject } from 'react-native-nitro-modules'; + +export interface AppUpdateDownloadParams { + downloadUrl: string; + filePath: string; + notificationTitle: string; + fileSize: number; +} + +export interface AppUpdateFileParams { + downloadUrl: string; + filePath: string; +} + +export interface DownloadEvent { + type: string; + progress: number; + message: string; +} + +export interface ReactNativeAppUpdate + extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> { + downloadAPK(params: AppUpdateDownloadParams): Promise; + downloadASC(params: AppUpdateFileParams): Promise; + verifyASC(params: AppUpdateFileParams): Promise; + verifyAPK(params: AppUpdateFileParams): Promise; + installAPK(params: AppUpdateFileParams): Promise; + clearCache(): Promise; + + addDownloadListener(callback: (event: DownloadEvent) => void): number; + removeDownloadListener(id: number): void; +} diff --git a/native-modules/react-native-app-update/src/index.tsx b/native-modules/react-native-app-update/src/index.tsx new file mode 100644 index 00000000..273854ec --- /dev/null +++ b/native-modules/react-native-app-update/src/index.tsx @@ -0,0 +1,8 @@ +import { NitroModules } from 'react-native-nitro-modules'; +import type { ReactNativeAppUpdate as ReactNativeAppUpdateType } from './ReactNativeAppUpdate.nitro'; + +const ReactNativeAppUpdateHybridObject = + NitroModules.createHybridObject('ReactNativeAppUpdate'); + +export const ReactNativeAppUpdate = ReactNativeAppUpdateHybridObject; +export type * from './ReactNativeAppUpdate.nitro'; diff --git a/native-modules/react-native-app-update/tsconfig.build.json b/native-modules/react-native-app-update/tsconfig.build.json new file mode 100644 index 00000000..45777014 --- /dev/null +++ b/native-modules/react-native-app-update/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "noEmit": false, + "declaration": true, + "declarationMap": true + }, + "exclude": ["**/__tests__/**/*", "**/__fixtures__/**/*", "**/__mocks__/**/*"] +} diff --git a/native-modules/react-native-app-update/tsconfig.json b/native-modules/react-native-app-update/tsconfig.json new file mode 100644 index 00000000..89a63364 --- /dev/null +++ b/native-modules/react-native-app-update/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "rootDir": ".", + "paths": { + "react-native-app-update": ["./src/index"] + }, + "allowUnreachableCode": false, + "allowUnusedLabels": false, + "customConditions": ["react-native-strict-api"], + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "jsx": "react-jsx", + "lib": ["ESNext"], + "module": "ESNext", + "moduleResolution": "bundler", + "noEmit": true, + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "noImplicitUseStrict": false, + "noStrictGenericChecks": false, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "ESNext", + "verbatimModuleSyntax": true + } +} diff --git a/native-modules/react-native-app-update/turbo.json b/native-modules/react-native-app-update/turbo.json new file mode 100644 index 00000000..08b9676e --- /dev/null +++ b/native-modules/react-native-app-update/turbo.json @@ -0,0 +1,17 @@ +{ + "extends": ["//"], + "tasks": { + "build": { + "outputs": [ + "lib/**", + "nitrogen/**" + ], + "inputs": [ + "src/**", + "android/src/**", + "ios/**", + "cpp/**" + ] + } + } +} diff --git a/native-modules/react-native-bundle-update/.gitignore b/native-modules/react-native-bundle-update/.gitignore new file mode 100644 index 00000000..357a2f9a --- /dev/null +++ b/native-modules/react-native-bundle-update/.gitignore @@ -0,0 +1,89 @@ +# OSX +# +.DS_Store + +# XDE +.expo/ + +# VSCode +.vscode/ +jsconfig.json + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace +**/.xcode.env.local + +# Android/IJ +# +.classpath +.cxx +.gradle +.idea +.project +.settings +local.properties +android.iml + +# Cocoapods +# +example/ios/Pods + +# Ruby +example/vendor/ + +# node.js +# +node_modules/ +npm-debug.log +yarn-debug.log +yarn-error.log + +# BUCK +buck-out/ +\.buckd/ +android/app/libs +android/keystores/debug.keystore + +# Yarn +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +# Expo +.expo/ + +# Turborepo +.turbo/ + +# generated by bob +lib/ + +# React Native Codegen +ios/generated +android/generated + +# React Native Nitro Modules +nitrogen/ + + + diff --git a/native-modules/react-native-bundle-update/LICENSE b/native-modules/react-native-bundle-update/LICENSE new file mode 100644 index 00000000..24ee4114 --- /dev/null +++ b/native-modules/react-native-bundle-update/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 OneKey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/native-modules/react-native-bundle-update/README.md b/native-modules/react-native-bundle-update/README.md new file mode 100644 index 00000000..e3218482 --- /dev/null +++ b/native-modules/react-native-bundle-update/README.md @@ -0,0 +1,36 @@ +# react-native-bundle-update + +react-native-bundle-update + +## Installation + +```sh +npm install react-native-bundle-update react-native-nitro-modules + +> `react-native-nitro-modules` is required as this library relies on [Nitro Modules](https://nitro.margelo.com/). +``` + +## Usage + +```js +import { ReactNativeBundleUpdate } from 'react-native-bundle-update'; + +// ... + +const result = await ReactNativeBundleUpdate.hello({ message: 'World' }); +console.log(result); // { success: true, data: 'Hello, World!' } +``` + +## Contributing + +- [Development workflow](CONTRIBUTING.md#development-workflow) +- [Sending a pull request](CONTRIBUTING.md#sending-a-pull-request) +- [Code of conduct](CODE_OF_CONDUCT.md) + +## License + +MIT + +--- + +Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob) diff --git a/native-modules/react-native-bundle-update/ReactNativeBundleUpdate.podspec b/native-modules/react-native-bundle-update/ReactNativeBundleUpdate.podspec new file mode 100644 index 00000000..eda21e20 --- /dev/null +++ b/native-modules/react-native-bundle-update/ReactNativeBundleUpdate.podspec @@ -0,0 +1,31 @@ +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.name = "ReactNativeBundleUpdate" + s.version = package["version"] + s.summary = package["description"] + s.homepage = package["homepage"] + s.license = package["license"] + s.authors = package["author"] + + s.platforms = { :ios => min_ios_version_supported } + s.source = { :git => "https://github.com/OneKeyHQ/app-modules/react-native-bundle-update.git", :tag => "#{s.version}" } + + s.source_files = [ + "ios/**/*.{swift}", + "ios/**/*.{m,mm}", + "cpp/**/*.{hpp,cpp}", + ] + + s.dependency 'React-jsi' + s.dependency 'React-callinvoker' + s.dependency 'ReactNativeNativeLogger' + s.dependency 'SSZipArchive', '~> 2.4' + + load 'nitrogen/generated/ios/ReactNativeBundleUpdate+autolinking.rb' + add_nitrogen_files(s) + + install_modules_dependencies(s) +end diff --git a/native-modules/react-native-bundle-update/android/CMakeLists.txt b/native-modules/react-native-bundle-update/android/CMakeLists.txt new file mode 100644 index 00000000..c1dcdfbb --- /dev/null +++ b/native-modules/react-native-bundle-update/android/CMakeLists.txt @@ -0,0 +1,24 @@ +project(reactnativebundleupdate) +cmake_minimum_required(VERSION 3.9.0) + +set(PACKAGE_NAME reactnativebundleupdate) +set(CMAKE_VERBOSE_MAKEFILE ON) +set(CMAKE_CXX_STANDARD 20) + +# Define C++ library and add all sources +add_library(${PACKAGE_NAME} SHARED src/main/cpp/cpp-adapter.cpp) + +# Add Nitrogen specs :) +include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/reactnativebundleupdate+autolinking.cmake) + +# Set up local includes +include_directories("src/main/cpp" "../cpp") + +find_library(LOG_LIB log) + +# Link all libraries together +target_link_libraries( + ${PACKAGE_NAME} + ${LOG_LIB} + android # <-- Android core +) diff --git a/native-modules/react-native-bundle-update/android/build.gradle b/native-modules/react-native-bundle-update/android/build.gradle new file mode 100644 index 00000000..ba417dd0 --- /dev/null +++ b/native-modules/react-native-bundle-update/android/build.gradle @@ -0,0 +1,132 @@ +buildscript { + ext.getExtOrDefault = {name -> + return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['ReactNativeBundleUpdate_' + name] + } + + repositories { + google() + mavenCentral() + } + + dependencies { + classpath "com.android.tools.build:gradle:8.7.2" + // noinspection DifferentKotlinGradleVersion + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}" + } +} + +def reactNativeArchitectures() { + def value = rootProject.getProperties().get("reactNativeArchitectures") + return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] +} + +apply plugin: "com.android.library" +apply plugin: "kotlin-android" +apply from: '../nitrogen/generated/android/reactnativebundleupdate+autolinking.gradle' + +apply plugin: "com.facebook.react" + +def getExtOrIntegerDefault(name) { + return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["ReactNativeBundleUpdate_" + name]).toInteger() +} + +android { + namespace "com.margelo.nitro.reactnativebundleupdate" + + compileSdkVersion getExtOrIntegerDefault("compileSdkVersion") + + defaultConfig { + minSdkVersion getExtOrIntegerDefault("minSdkVersion") + targetSdkVersion getExtOrIntegerDefault("targetSdkVersion") + + externalNativeBuild { + cmake { + cppFlags "-frtti -fexceptions -Wall -fstack-protector-all" + arguments "-DANDROID_STL=c++_shared", "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON" + abiFilters (*reactNativeArchitectures()) + + buildTypes { + debug { + cppFlags "-O1 -g" + } + release { + cppFlags "-O2" + } + } + } + } + } + + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } + + packagingOptions { + excludes = [ + "META-INF", + "META-INF/**", + "**/libc++_shared.so", + "**/libfbjni.so", + "**/libjsi.so", + "**/libfolly_json.so", + "**/libfolly_runtime.so", + "**/libglog.so", + "**/libhermes.so", + "**/libhermes-executor-debug.so", + "**/libhermes_executor.so", + "**/libreactnative.so", + "**/libreactnativejni.so", + "**/libturbomodulejsijni.so", + "**/libreact_nativemodule_core.so", + "**/libjscexecutor.so" + ] + } + + buildFeatures { + buildConfig true + prefab true + } + + buildTypes { + release { + minifyEnabled false + } + } + + lintOptions { + disable "GradleCompatible" + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + sourceSets { + main { + java.srcDirs += [ + "generated/java", + "generated/jni" + ] + } + } +} + +repositories { + mavenCentral() + google() +} + +def kotlin_version = getExtOrDefault("kotlinVersion") + +dependencies { + implementation "com.facebook.react:react-android" + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation project(":react-native-nitro-modules") + + implementation project(":onekeyfe_react-native-native-logger") + + implementation "com.squareup.okhttp3:okhttp:4.12.0" +} diff --git a/native-modules/react-native-bundle-update/android/gradle.properties b/native-modules/react-native-bundle-update/android/gradle.properties new file mode 100644 index 00000000..e936e5ba --- /dev/null +++ b/native-modules/react-native-bundle-update/android/gradle.properties @@ -0,0 +1,4 @@ +ReactNativeBundleUpdate_kotlinVersion=1.9.25 +ReactNativeBundleUpdate_compileSdkVersion=35 +ReactNativeBundleUpdate_targetSdkVersion=35 +ReactNativeBundleUpdate_minSdkVersion=24 diff --git a/native-modules/react-native-bundle-update/android/src/main/AndroidManifest.xml b/native-modules/react-native-bundle-update/android/src/main/AndroidManifest.xml new file mode 100644 index 00000000..94cbbcfc --- /dev/null +++ b/native-modules/react-native-bundle-update/android/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + diff --git a/native-modules/react-native-bundle-update/android/src/main/cpp/cpp-adapter.cpp b/native-modules/react-native-bundle-update/android/src/main/cpp/cpp-adapter.cpp new file mode 100644 index 00000000..7681b571 --- /dev/null +++ b/native-modules/react-native-bundle-update/android/src/main/cpp/cpp-adapter.cpp @@ -0,0 +1,6 @@ +#include +#include "reactnativebundleupdateOnLoad.hpp" + +extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { + return margelo::nitro::reactnativebundleupdate::initialize(vm); +} diff --git a/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt b/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt new file mode 100644 index 00000000..650d35ff --- /dev/null +++ b/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt @@ -0,0 +1,922 @@ +package com.margelo.nitro.reactnativebundleupdate + +import android.content.Context +import android.content.SharedPreferences +import android.os.Build +import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise +import com.margelo.nitro.NitroModules +import com.margelo.nitro.nativelogger.OneKeyLog +import okhttp3.OkHttpClient +import okhttp3.Request +import java.io.BufferedInputStream +import java.io.File +import java.io.FileInputStream +import java.io.FileOutputStream +import java.nio.file.Path +import java.nio.file.Paths +import java.security.MessageDigest +import java.util.concurrent.CopyOnWriteArrayList +import java.util.concurrent.atomic.AtomicBoolean +import java.util.concurrent.atomic.AtomicLong +import java.util.zip.ZipEntry +import java.util.zip.ZipInputStream +import org.json.JSONArray +import org.json.JSONObject + +private data class BundleListener( + val id: Double, + val callback: (BundleDownloadEvent) -> Unit +) + +// Public static store for CustomReactNativeHost access (called before JS starts) +object BundleUpdateStoreAndroid { + private const val PREFS_NAME = "BundleUpdatePrefs" + private const val NATIVE_VERSION_PREFS_NAME = "NativeVersionPrefs" + private const val CURRENT_BUNDLE_VERSION_KEY = "currentBundleVersion" + + fun getDownloadBundleDir(context: Context): String { + val dir = File(context.filesDir, "onekey-bundle-download") + if (!dir.exists()) dir.mkdirs() + return dir.absolutePath + } + + fun getBundleDir(context: Context): String { + val dir = File(context.filesDir, "onekey-bundle") + if (!dir.exists()) dir.mkdirs() + return dir.absolutePath + } + + fun getCurrentBundleVersion(context: Context): String? { + val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE) + return prefs.getString(CURRENT_BUNDLE_VERSION_KEY, null) + } + + fun setCurrentBundleVersionAndSignature(context: Context, version: String, signature: String?) { + val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE) + val currentVersion = prefs.getString(CURRENT_BUNDLE_VERSION_KEY, "") + val editor = prefs.edit() + editor.putString(CURRENT_BUNDLE_VERSION_KEY, version) + if (signature != null) { + editor.putString(version, signature) + } + if (!currentVersion.isNullOrEmpty()) { + editor.remove(currentVersion) + } + editor.apply() + } + + fun clearUpdateBundleData(context: Context) { + val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE) + prefs.edit().clear().apply() + } + + fun getCurrentBundleDir(context: Context, currentBundleVersion: String?): String? { + if (currentBundleVersion == null) return null + return File(getBundleDir(context), currentBundleVersion).absolutePath + } + + fun getAppVersion(context: Context): String? { + return try { + val pm = context.packageManager + val pi = pm.getPackageInfo(context.packageName, 0) + pi.versionName + } catch (e: Exception) { + OneKeyLog.error("BundleUpdate", "Error getting package info: ${e.message}") + null + } + } + + fun getNativeVersion(context: Context): String { + val prefs = context.getSharedPreferences(NATIVE_VERSION_PREFS_NAME, Context.MODE_PRIVATE) + return prefs.getString("nativeVersion", "") ?: "" + } + + fun setNativeVersion(context: Context, nativeVersion: String) { + val prefs = context.getSharedPreferences(NATIVE_VERSION_PREFS_NAME, Context.MODE_PRIVATE) + prefs.edit().putString("nativeVersion", nativeVersion).apply() + } + + fun calculateSHA256(filePath: String): String? { + return try { + val digest = MessageDigest.getInstance("SHA-256") + BufferedInputStream(FileInputStream(filePath)).use { bis -> + val buffer = ByteArray(8192) + var count: Int + while (bis.read(buffer).also { count = it } > 0) { + digest.update(buffer, 0, count) + } + } + bytesToHex(digest.digest()) + } catch (e: Exception) { + OneKeyLog.error("BundleUpdate", "Error calculating SHA256: ${e.message}") + null + } + } + + private fun bytesToHex(bytes: ByteArray): String { + return bytes.joinToString("") { "%02x".format(it) } + } + + fun getMetadataFilePath(context: Context, currentBundleVersion: String?): String? { + if (currentBundleVersion == null) return null + val file = File(File(getBundleDir(context), currentBundleVersion), "metadata.json") + return if (file.exists()) file.absolutePath else null + } + + fun getMetadataFileContent(context: Context, currentBundleVersion: String?): String? { + val path = getMetadataFilePath(context, currentBundleVersion) ?: return null + return readFileContent(File(path)) + } + + fun parseMetadataJson(jsonContent: String): Map { + val metadata = mutableMapOf() + try { + val obj = JSONObject(jsonContent) + val keys = obj.keys() + while (keys.hasNext()) { + val key = keys.next() + metadata[key] = obj.getString(key) + } + } catch (e: Exception) { + OneKeyLog.error("BundleUpdate", "Error parsing JSON: ${e.message}") + } + return metadata + } + + fun readMetadataFileSha256(signature: String?): String? { + if (signature.isNullOrEmpty()) return null + return try { + val json = JSONObject(signature) + val sha256 = json.optString("sha256", "") + if (sha256.isEmpty()) null else sha256 + } catch (e: Exception) { + OneKeyLog.debug("BundleUpdate", "readMetadataFileSha256: Error extracting SHA256: ${e.message}") + null + } + } + + fun validateMetadataFileSha256(context: Context, currentBundleVersion: String, signature: String?): Boolean { + val metadataFilePath = getMetadataFilePath(context, currentBundleVersion) ?: run { + OneKeyLog.debug("BundleUpdate", "metadataFilePath is null") + return false + } + val extractedSha256 = readMetadataFileSha256(signature) + if (extractedSha256.isNullOrEmpty()) return false + val calculated = calculateSHA256(metadataFilePath) ?: return false + return calculated == extractedSha256 + } + + fun validateAllFilesInDir(context: Context, dirPath: String, metadata: Map, appVersion: String, bundleVersion: String): Boolean { + val dir = File(dirPath) + if (!dir.exists() || !dir.isDirectory) return false + + val parentBundleDir = getBundleDir(context) + val folderName = "$appVersion-$bundleVersion" + val jsBundleDir = File(parentBundleDir, folderName).absolutePath + "/" + + if (!validateFilesRecursive(dir, metadata, jsBundleDir)) return false + + // Verify completeness + for (entry in metadata.entries) { + val expectedFile = File(jsBundleDir + entry.key) + if (!expectedFile.exists()) { + OneKeyLog.error("BundleUpdate", "[bundle-verify] File listed in metadata but missing on disk: ${entry.key}") + return false + } + } + return true + } + + private fun validateFilesRecursive(dir: File, metadata: Map, jsBundleDir: String): Boolean { + val files = dir.listFiles() ?: return true + for (file in files) { + if (file.isDirectory) { + if (!validateFilesRecursive(file, metadata, jsBundleDir)) return false + } else { + if (file.name.contains("metadata.json") || file.name.contains(".DS_Store")) continue + val relativePath = file.absolutePath.replace(jsBundleDir, "") + val expectedSHA256 = metadata[relativePath] + if (expectedSHA256 == null) { + OneKeyLog.error("BundleUpdate", "[bundle-verify] File on disk not found in metadata: $relativePath") + return false + } + val actualSHA256 = calculateSHA256(file.absolutePath) + if (actualSHA256 == null) { + OneKeyLog.error("BundleUpdate", "[bundle-verify] Failed to calculate SHA256 for file: $relativePath") + return false + } + if (expectedSHA256 != actualSHA256) { + OneKeyLog.error("BundleUpdate", "[bundle-verify] SHA256 mismatch for $relativePath") + return false + } + } + } + return true + } + + fun readFileContent(file: File): String { + val sb = StringBuilder() + BufferedInputStream(FileInputStream(file)).use { bis -> + val buffer = ByteArray(1024) + var bytesRead: Int + while (bis.read(buffer).also { bytesRead = it } != -1) { + sb.append(String(buffer, 0, bytesRead, Charsets.UTF_8)) + } + } + return sb.toString() + } + + fun getFallbackUpdateBundleDataFile(context: Context): File { + val path = File(getBundleDir(context), "fallbackUpdateBundleData.json") + if (!path.exists()) { + try { path.createNewFile() } catch (e: Exception) { + OneKeyLog.error("BundleUpdate", "getFallbackUpdateBundleDataFile: ${e.message}") + } + } + return path + } + + fun readFallbackUpdateBundleDataFile(context: Context): MutableList> { + val file = getFallbackUpdateBundleDataFile(context) + val content = try { readFileContent(file) } catch (e: Exception) { "" } + if (content.isEmpty()) return mutableListOf() + return try { + val arr = JSONArray(content) + val result = mutableListOf>() + for (i in 0 until arr.length()) { + val obj = arr.getJSONObject(i) + val map = mutableMapOf() + val keys = obj.keys() + while (keys.hasNext()) { + val key = keys.next() + map[key] = obj.getString(key) + } + result.add(map) + } + result + } catch (e: Exception) { + OneKeyLog.error("BundleUpdate", "readFallbackUpdateBundleDataFile: ${e.message}") + mutableListOf() + } + } + + fun writeFallbackUpdateBundleDataFile(data: List>, context: Context) { + val file = getFallbackUpdateBundleDataFile(context) + val arr = JSONArray() + for (map in data) { + val obj = JSONObject() + for ((k, v) in map) obj.put(k, v) + arr.put(obj) + } + try { + FileOutputStream(file).use { fos -> + fos.write(arr.toString().toByteArray(Charsets.UTF_8)) + } + } catch (e: Exception) { + OneKeyLog.error("BundleUpdate", "writeFallbackUpdateBundleDataFile: ${e.message}") + } + } + + fun getCurrentBundleMainJSBundle(context: Context): String? { + return try { + val currentAppVersion = getAppVersion(context) + val currentBundleVersion = getCurrentBundleVersion(context) ?: return null + + OneKeyLog.info("BundleUpdate", "currentAppVersion: $currentAppVersion, currentBundleVersion: $currentBundleVersion") + + val prevNativeVersion = getNativeVersion(context) + if (prevNativeVersion.isEmpty()) return "" + + if (currentAppVersion != prevNativeVersion) { + OneKeyLog.info("BundleUpdate", "currentAppVersion is not equal to prevNativeVersion $currentAppVersion $prevNativeVersion") + clearUpdateBundleData(context) + return null + } + + val bundleDir = getCurrentBundleDir(context, currentBundleVersion) ?: return null + if (!File(bundleDir).exists()) { + OneKeyLog.info("BundleUpdate", "currentBundleDir does not exist") + return null + } + + val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE) + val signature = prefs.getString(currentBundleVersion, "") ?: "" + + if (!validateMetadataFileSha256(context, currentBundleVersion, signature)) return null + + val metadataContent = getMetadataFileContent(context, currentBundleVersion) ?: return null + val metadata = parseMetadataJson(metadataContent) + + val lastDashIndex = currentBundleVersion.lastIndexOf("-") + if (lastDashIndex > 0) { + val appVer = currentBundleVersion.substring(0, lastDashIndex) + val bundleVer = currentBundleVersion.substring(lastDashIndex + 1) + if (!validateAllFilesInDir(context, bundleDir, metadata, appVer, bundleVer)) { + OneKeyLog.info("BundleUpdate", "validateAllFilesInDir failed on startup") + return null + } + } + + val mainJSBundleFile = File(bundleDir, "main.jsbundle.hbc") + val mainJSBundlePath = mainJSBundleFile.absolutePath + OneKeyLog.info("BundleUpdate", "mainJSBundlePath: $mainJSBundlePath") + if (!mainJSBundleFile.exists()) { + OneKeyLog.info("BundleUpdate", "mainJSBundleFile does not exist") + return null + } + mainJSBundlePath + } catch (e: Exception) { + OneKeyLog.error("BundleUpdate", "Error getting bundle: ${e.message}") + null + } + } + + fun getWebEmbedPath(context: Context): String { + val currentBundleDir = getCurrentBundleDir(context, getCurrentBundleVersion(context)) ?: return "" + return File(currentBundleDir, "web-embed").absolutePath + } + + private fun deleteDirectory(directory: File) { + if (directory.exists()) { + directory.listFiles()?.forEach { file -> + if (file.isDirectory) deleteDirectory(file) else file.delete() + } + directory.delete() + } + } + + fun deleteDir(dir: File) = deleteDirectory(dir) + + fun unzipFile(zipFilePath: String, destDirectory: String) { + val destDir = File(destDirectory) + if (!destDir.exists()) destDir.mkdirs() + + val destDirPath: Path = Paths.get(destDir.canonicalPath) + ZipInputStream(FileInputStream(zipFilePath)).use { zipIn -> + var entry: ZipEntry? = zipIn.nextEntry + while (entry != null) { + val outFile = File(destDir, entry.name) + val outPath: Path = Paths.get(outFile.canonicalPath) + if (!outPath.startsWith(destDirPath)) { + throw java.io.IOException("Entry is outside of the target dir: ${entry.name}") + } + if (!entry.isDirectory) { + outFile.parentFile?.mkdirs() + FileOutputStream(outFile).use { fos -> + val buffer = ByteArray(1024) + var length: Int + while (zipIn.read(buffer).also { length = it } > 0) { + fos.write(buffer, 0, length) + } + } + } else { + outFile.mkdirs() + } + zipIn.closeEntry() + entry = zipIn.nextEntry + } + } + } +} + +@DoNotStrip +class ReactNativeBundleUpdate : HybridReactNativeBundleUpdateSpec() { + + companion object { + private const val PREFS_NAME = "BundleUpdatePrefs" + } + + private val listeners = CopyOnWriteArrayList() + private val nextListenerId = AtomicLong(1) + private val isDownloading = AtomicBoolean(false) + private val httpClient = OkHttpClient.Builder() + .addNetworkInterceptor { chain -> + val req = chain.request() + if (!req.url.isHttps) { + throw java.io.IOException("Redirect to non-HTTPS URL is not allowed: ${req.url}") + } + chain.proceed(req) + } + .build() + + private fun sendEvent(type: String, progress: Int = 0, message: String = "") { + val event = BundleDownloadEvent(type = type, progress = progress.toDouble(), message = message) + for (listener in listeners) { + try { + listener.callback(event) + } catch (e: Exception) { + OneKeyLog.error("BundleUpdate", "Error sending event: ${e.message}") + } + } + } + + override fun addDownloadListener(callback: (BundleDownloadEvent) -> Unit): Double { + val id = nextListenerId.getAndIncrement().toDouble() + listeners.add(BundleListener(id, callback)) + return id + } + + override fun removeDownloadListener(id: Double) { + listeners.removeAll { it.id == id } + } + + private fun getContext(): Context { + return NitroModules.applicationContext + ?: throw Exception("Application context unavailable") + } + + override fun downloadBundle(params: BundleDownloadParams): Promise { + return Promise.async { + if (isDownloading.getAndSet(true)) { + throw Exception("Already downloading") + } + + val context = getContext() + val appVersion = params.latestVersion + val bundleVersion = params.bundleVersion + val downloadUrl = params.downloadUrl + val sha256 = params.sha256 + + if (!downloadUrl.startsWith("https://")) { + isDownloading.set(false) + throw Exception("Bundle download URL must use HTTPS") + } + + val fileName = "$appVersion-$bundleVersion.zip" + val filePath = File(BundleUpdateStoreAndroid.getDownloadBundleDir(context), fileName).absolutePath + + val result = BundleDownloadResult( + downloadedFile = filePath, + downloadUrl = downloadUrl, + latestVersion = appVersion, + bundleVersion = bundleVersion, + sha256 = sha256 + ) + + OneKeyLog.info("BundleUpdate", "downloadBundle: filePath: $filePath") + + val downloadedFile = File(filePath) + if (downloadedFile.exists()) { + if (verifyBundleSHA256(filePath, sha256)) { + isDownloading.set(false) + Thread.sleep(1000) + sendEvent("update/complete") + return@async result + } else { + downloadedFile.delete() + } + } + + sendEvent("update/start") + + val request = Request.Builder().url(downloadUrl).build() + val response = httpClient.newCall(request).execute() + + if (!response.isSuccessful) { + isDownloading.set(false) + sendEvent("update/error", message = response.code.toString()) + throw Exception("HTTP ${response.code}") + } + + val body = response.body ?: throw Exception("Empty response body") + val fileSize = if (params.fileSize > 0) params.fileSize.toLong() else body.contentLength() + + body.byteStream().use { inputStream -> + FileOutputStream(filePath).use { outputStream -> + val buffer = ByteArray(8192) + var totalBytesRead = 0L + var bytesRead: Int + + while (inputStream.read(buffer).also { bytesRead = it } != -1) { + outputStream.write(buffer, 0, bytesRead) + totalBytesRead += bytesRead + if (fileSize > 0) { + val progress = ((totalBytesRead * 100) / fileSize).toInt() + sendEvent("update/downloading", progress = progress) + } + } + } + } + + if (!verifyBundleSHA256(filePath, sha256)) { + File(filePath).delete() + isDownloading.set(false) + sendEvent("update/error", message = "Bundle signature verification failed") + throw Exception("Bundle signature verification failed") + } + + sendEvent("update/complete") + OneKeyLog.info("BundleUpdate", "Download completed") + isDownloading.set(false) + result + } + } + + private fun verifyBundleSHA256(bundlePath: String, sha256: String): Boolean { + val calculated = BundleUpdateStoreAndroid.calculateSHA256(bundlePath) ?: return false + val isValid = calculated == sha256 + OneKeyLog.debug("BundleUpdate", "verifyBundleSHA256: Valid: $isValid") + return isValid + } + + override fun downloadBundleASC(params: BundleDownloadASCParams): Promise { + return Promise.async { + val context = getContext() + val appVersion = params.latestVersion + val bundleVersion = params.bundleVersion + val signature = params.signature + + val storageKey = "$appVersion-$bundleVersion" + val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE) + prefs.edit().putString(storageKey, signature).apply() + + OneKeyLog.info("BundleUpdate", "downloadBundleASC: Stored signature for key: $storageKey") + } + } + + override fun verifyBundleASC(params: BundleVerifyASCParams): Promise { + return Promise.async { + val context = getContext() + val filePath = params.downloadedFile + val sha256 = params.sha256 + val appVersion = params.latestVersion + val bundleVersion = params.bundleVersion + val signature = params.signature + val skipGPG = params.skipGPGVerification + + if (!skipGPG) { + if (!verifyBundleSHA256(filePath, sha256)) { + throw Exception("Bundle signature verification failed") + } + } + + val folderName = "$appVersion-$bundleVersion" + val destination = File(BundleUpdateStoreAndroid.getBundleDir(context), folderName).absolutePath + val destinationDir = File(destination) + + try { + BundleUpdateStoreAndroid.unzipFile(filePath, destination) + + val metadataFile = File(destination, "metadata.json") + if (!metadataFile.exists()) { + BundleUpdateStoreAndroid.deleteDir(destinationDir) + throw Exception("Failed to read metadata.json") + } + + val currentBundleVersion = "$appVersion-$bundleVersion" + if (!skipGPG) { + if (!BundleUpdateStoreAndroid.validateMetadataFileSha256(context, currentBundleVersion, signature)) { + BundleUpdateStoreAndroid.deleteDir(destinationDir) + throw Exception("Bundle signature verification failed") + } + } + + val metadataContent = BundleUpdateStoreAndroid.readFileContent(metadataFile) + val metadata = BundleUpdateStoreAndroid.parseMetadataJson(metadataContent) + if (!BundleUpdateStoreAndroid.validateAllFilesInDir(context, destination, metadata, appVersion, bundleVersion)) { + BundleUpdateStoreAndroid.deleteDir(destinationDir) + throw Exception("Extracted files verification against metadata failed") + } + } catch (e: Exception) { + if (destinationDir.exists()) { + BundleUpdateStoreAndroid.deleteDir(destinationDir) + } + throw e + } + } + } + + override fun verifyBundle(params: BundleVerifyParams): Promise { + return Promise.async { + val context = getContext() + val filePath = params.downloadedFile + val sha256 = params.sha256 + val appVersion = params.latestVersion + val bundleVersion = params.bundleVersion + + if (!verifyBundleSHA256(filePath, sha256)) { + throw Exception("Bundle signature verification failed") + } + + val folderName = "$appVersion-$bundleVersion" + val destination = File(BundleUpdateStoreAndroid.getBundleDir(context), folderName).absolutePath + val metadataFile = File(destination, "metadata.json") + if (!metadataFile.exists()) { + throw Exception("Failed to read metadata.json") + } + + val metadataContent = BundleUpdateStoreAndroid.readFileContent(metadataFile) + val metadata = BundleUpdateStoreAndroid.parseMetadataJson(metadataContent) + if (!BundleUpdateStoreAndroid.validateAllFilesInDir(context, destination, metadata, appVersion, bundleVersion)) { + throw Exception("Bundle signature verification failed") + } + } + } + + override fun installBundle(params: BundleInstallParams): Promise { + return Promise.async { + val context = getContext() + val appVersion = params.latestVersion + val bundleVersion = params.bundleVersion + val signature = params.signature + val skipGPG = params.skipGPGVerification + + val folderName = "$appVersion-$bundleVersion" + val currentFolderName = BundleUpdateStoreAndroid.getCurrentBundleVersion(context) + + // Prevent version downgrade + if (!skipGPG && !currentFolderName.isNullOrEmpty()) { + val dashIndex = currentFolderName.lastIndexOf("-") + if (dashIndex > 0) { + try { + val currentBundleVer = currentFolderName.substring(dashIndex + 1) + val currentVerNum = currentBundleVer.toLong() + val newVerNum = bundleVersion.toLong() + if (newVerNum < currentVerNum) { + throw Exception("Bundle version downgrade rejected: $bundleVersion < $currentBundleVer") + } + } catch (e: NumberFormatException) { + OneKeyLog.warn("BundleUpdate", "Could not parse bundle versions for downgrade check") + } + } + } + + // Verify bundle directory exists + val bundleDirPath = File(BundleUpdateStoreAndroid.getBundleDir(context), folderName) + if (!bundleDirPath.exists()) { + throw Exception("Bundle directory not found: $folderName") + } + + val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE) + val currentSignature = if (currentFolderName != null) prefs.getString(currentFolderName, "") ?: "" else "" + + BundleUpdateStoreAndroid.setCurrentBundleVersionAndSignature(context, folderName, signature) + val nativeVersion = BundleUpdateStoreAndroid.getAppVersion(context) ?: "" + BundleUpdateStoreAndroid.setNativeVersion(context, nativeVersion) + + // Manage fallback data + try { + val fallbackData = BundleUpdateStoreAndroid.readFallbackUpdateBundleDataFile(context) + + if (!currentFolderName.isNullOrEmpty()) { + val lastDashIndex = currentFolderName.lastIndexOf("-") + if (lastDashIndex > 0) { + val curAppVersion = currentFolderName.substring(0, lastDashIndex) + val curBundleVersion = currentFolderName.substring(lastDashIndex + 1) + if (currentSignature.isNotEmpty()) { + fallbackData.add(mutableMapOf( + "appVersion" to curAppVersion, + "bundleVersion" to curBundleVersion, + "signature" to currentSignature + )) + } + } + } + + if (fallbackData.size > 3) { + val shifted = fallbackData.removeAt(0) + val shiftApp = shifted["appVersion"] + val shiftBundle = shifted["bundleVersion"] + if (shiftApp != null && shiftBundle != null) { + val shiftFolderName = "$shiftApp-$shiftBundle" + val oldDir = File(BundleUpdateStoreAndroid.getBundleDir(context), shiftFolderName) + if (oldDir.exists()) { + BundleUpdateStoreAndroid.deleteDir(oldDir) + } + } + } + + BundleUpdateStoreAndroid.writeFallbackUpdateBundleDataFile(fallbackData, context) + } catch (e: Exception) { + OneKeyLog.error("BundleUpdate", "installBundle fallbackUpdateBundleData error: ${e.message}") + } + } + } + + override fun clearBundle(): Promise { + return Promise.async { + val context = getContext() + val downloadDir = File(BundleUpdateStoreAndroid.getDownloadBundleDir(context)) + if (downloadDir.exists()) { + BundleUpdateStoreAndroid.deleteDir(downloadDir) + } + isDownloading.set(false) + } + } + + override fun clearAllJSBundleData(): Promise { + return Promise.async { + val context = getContext() + val downloadDir = File(BundleUpdateStoreAndroid.getDownloadBundleDir(context)) + if (downloadDir.exists()) { + BundleUpdateStoreAndroid.deleteDir(downloadDir) + } + val bundleDir = File(BundleUpdateStoreAndroid.getBundleDir(context)) + if (bundleDir.exists()) { + BundleUpdateStoreAndroid.deleteDir(bundleDir) + } + BundleUpdateStoreAndroid.clearUpdateBundleData(context) + + OneKeyLog.info("BundleUpdate", "clearAllJSBundleData: Successfully cleared all JS bundle data") + TestResult(success = true, message = "Successfully cleared all JS bundle data") + } + } + + override fun getFallbackUpdateBundleData(): Promise> { + return Promise.async { + val context = getContext() + val data = BundleUpdateStoreAndroid.readFallbackUpdateBundleDataFile(context) + data.mapNotNull { map -> + val appVersion = map["appVersion"] ?: return@mapNotNull null + val bundleVersion = map["bundleVersion"] ?: return@mapNotNull null + val signature = map["signature"] ?: return@mapNotNull null + FallbackBundleInfo(appVersion = appVersion, bundleVersion = bundleVersion, signature = signature) + }.toTypedArray() + } + } + + override fun setCurrentUpdateBundleData(params: BundleSwitchParams): Promise { + return Promise.async { + val context = getContext() + val bundleVersion = "${params.appVersion}-${params.bundleVersion}" + val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE) + prefs.edit() + .putString("currentBundleVersion", bundleVersion) + .putString(bundleVersion, params.signature) + .apply() + } + } + + override fun getWebEmbedPath(): String { + val context = NitroModules.applicationContext ?: return "" + return BundleUpdateStoreAndroid.getWebEmbedPath(context) + } + + override fun getWebEmbedPathAsync(): Promise { + return Promise.async { + val context = getContext() + val path = BundleUpdateStoreAndroid.getWebEmbedPath(context) + OneKeyLog.debug("BundleUpdate", "getWebEmbedPathAsync: $path") + path + } + } + + override fun getJsBundlePath(): Promise { + return Promise.async { + val context = getContext() + BundleUpdateStoreAndroid.getCurrentBundleMainJSBundle(context) ?: "" + } + } + + override fun getNativeAppVersion(): Promise { + return Promise.async { + val context = getContext() + BundleUpdateStoreAndroid.getAppVersion(context) ?: "" + } + } + + override fun testVerification(): Promise { + return Promise.async { + // TODO: Integrate Gopenpgp for full GPG verification testing + OneKeyLog.info("BundleUpdate", "testVerification: GPG verification pending integration") + true + } + } + + override fun isBundleExists(appVersion: String, bundleVersion: String): Promise { + return Promise.async { + val context = getContext() + val folderName = "$appVersion-$bundleVersion" + val bundlePath = File(BundleUpdateStoreAndroid.getBundleDir(context), folderName) + bundlePath.exists() + } + } + + override fun verifyExtractedBundle(appVersion: String, bundleVersion: String): Promise { + return Promise.async { + val context = getContext() + val folderName = "$appVersion-$bundleVersion" + val bundlePath = File(BundleUpdateStoreAndroid.getBundleDir(context), folderName) + if (!bundlePath.exists()) throw Exception("Bundle directory not found") + val metadataFile = File(bundlePath, "metadata.json") + if (!metadataFile.exists()) throw Exception("metadata.json not found") + + val metadataContent = BundleUpdateStoreAndroid.readFileContent(metadataFile) + val metadata = BundleUpdateStoreAndroid.parseMetadataJson(metadataContent) + if (!BundleUpdateStoreAndroid.validateAllFilesInDir(context, bundlePath.absolutePath, metadata, appVersion, bundleVersion)) { + throw Exception("File integrity check failed") + } + } + } + + override fun listLocalBundles(): Promise> { + return Promise.async { + val context = getContext() + val bundleDir = File(BundleUpdateStoreAndroid.getBundleDir(context)) + val results = mutableListOf() + if (bundleDir.exists() && bundleDir.isDirectory) { + bundleDir.listFiles()?.forEach { child -> + if (!child.isDirectory) return@forEach + val name = child.name + val lastDash = name.lastIndexOf('-') + if (lastDash <= 0) return@forEach + val appVer = name.substring(0, lastDash) + val bundleVer = name.substring(lastDash + 1) + if (appVer.isNotEmpty() && bundleVer.isNotEmpty()) { + results.add(LocalBundleInfo(appVersion = appVer, bundleVersion = bundleVer)) + } + } + } + results.toTypedArray() + } + } + + override fun getSha256FromFilePath(filePath: String): Promise { + return Promise.async { + OneKeyLog.debug("BundleUpdate", "getSha256FromFilePath: $filePath") + if (filePath.isEmpty()) return@async "" + BundleUpdateStoreAndroid.calculateSHA256(filePath) ?: "" + } + } + + override fun testDeleteJsBundle(appVersion: String, bundleVersion: String): Promise { + return Promise.async { + val context = getContext() + val folderName = "$appVersion-$bundleVersion" + val jsBundlePath = File(File(BundleUpdateStoreAndroid.getBundleDir(context), folderName), "main.jsbundle.hbc") + + if (jsBundlePath.exists()) { + val success = jsBundlePath.delete() + if (success) { + TestResult(success = true, message = "Deleted jsBundle: ${jsBundlePath.absolutePath}") + } else { + throw Exception("Failed to delete jsBundle: ${jsBundlePath.absolutePath}") + } + } else { + TestResult(success = false, message = "jsBundle not found: ${jsBundlePath.absolutePath}") + } + } + } + + override fun testDeleteJsRuntimeDir(appVersion: String, bundleVersion: String): Promise { + return Promise.async { + val context = getContext() + val folderName = "$appVersion-$bundleVersion" + val dir = File(BundleUpdateStoreAndroid.getBundleDir(context), folderName) + + if (dir.exists()) { + BundleUpdateStoreAndroid.deleteDir(dir) + if (!dir.exists()) { + TestResult(success = true, message = "Deleted js runtime directory: ${dir.absolutePath}") + } else { + throw Exception("Failed to delete js runtime directory: ${dir.absolutePath}") + } + } else { + TestResult(success = false, message = "js runtime directory not found: ${dir.absolutePath}") + } + } + } + + override fun testDeleteMetadataJson(appVersion: String, bundleVersion: String): Promise { + return Promise.async { + val context = getContext() + val folderName = "$appVersion-$bundleVersion" + val metadataFile = File(File(BundleUpdateStoreAndroid.getBundleDir(context), folderName), "metadata.json") + + if (metadataFile.exists()) { + val success = metadataFile.delete() + if (success) { + TestResult(success = true, message = "Deleted metadata.json: ${metadataFile.absolutePath}") + } else { + throw Exception("Failed to delete metadata.json: ${metadataFile.absolutePath}") + } + } else { + TestResult(success = false, message = "metadata.json not found: ${metadataFile.absolutePath}") + } + } + } + + override fun testWriteEmptyMetadataJson(appVersion: String, bundleVersion: String): Promise { + return Promise.async { + val context = getContext() + val folderName = "$appVersion-$bundleVersion" + val jsRuntimeDir = File(BundleUpdateStoreAndroid.getBundleDir(context), folderName) + val metadataPath = File(jsRuntimeDir, "metadata.json") + + if (!jsRuntimeDir.exists()) { + if (!jsRuntimeDir.mkdirs()) { + throw Exception("Failed to create directory: ${jsRuntimeDir.absolutePath}") + } + } + + val emptyJson = JSONObject() + FileOutputStream(metadataPath).use { fos -> + fos.write(emptyJson.toString(2).toByteArray(Charsets.UTF_8)) + fos.flush() + } + + TestResult(success = true, message = "Created empty metadata.json: ${metadataPath.absolutePath}") + } + } +} diff --git a/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdatePackage.kt b/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdatePackage.kt new file mode 100644 index 00000000..217f378b --- /dev/null +++ b/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdatePackage.kt @@ -0,0 +1,24 @@ +package com.margelo.nitro.reactnativebundleupdate + +import com.facebook.react.BaseReactPackage +import com.facebook.react.bridge.NativeModule +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.module.model.ReactModuleInfoProvider + +class ReactNativeBundleUpdatePackage : BaseReactPackage() { + override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? { + return null + } + + override fun getReactModuleInfoProvider(): ReactModuleInfoProvider { + return ReactModuleInfoProvider { HashMap() } + } + + companion object { + init { + System.loadLibrary("reactnativebundleupdate") + } + } +} + + diff --git a/native-modules/react-native-bundle-update/babel.config.js b/native-modules/react-native-bundle-update/babel.config.js new file mode 100644 index 00000000..af87eb60 --- /dev/null +++ b/native-modules/react-native-bundle-update/babel.config.js @@ -0,0 +1,13 @@ +module.exports = { + presets: ['@react-native/babel-preset'], + plugins: [ + [ + 'module-resolver', + { + alias: { + 'react-native-bundle-update': './src/index', + }, + }, + ], + ], +}; diff --git a/native-modules/react-native-bundle-update/eslint.config.mjs b/native-modules/react-native-bundle-update/eslint.config.mjs new file mode 100644 index 00000000..3416cf5c --- /dev/null +++ b/native-modules/react-native-bundle-update/eslint.config.mjs @@ -0,0 +1,5 @@ +import { createEslintConfig } from '@react-native/eslint-config'; + +export default createEslintConfig({ + extends: ['@react-native/eslint-config'], +}); diff --git a/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift b/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift new file mode 100644 index 00000000..5167b051 --- /dev/null +++ b/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift @@ -0,0 +1,785 @@ +import NitroModules +import ReactNativeNativeLogger +import Foundation +import CommonCrypto + +// Public static store for AppDelegate access (called before JS starts) +public class BundleUpdateStore { + private static let bundlePrefsKey = "currentBundleVersion" + private static let nativeVersionKey = "nativeVersion" + + public static func documentDirectory() -> String { + NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] + } + + public static func downloadBundleDir() -> String { + let dir = (documentDirectory() as NSString).appendingPathComponent("onekey-bundle-download") + let fm = FileManager.default + if !fm.fileExists(atPath: dir) { + try? fm.createDirectory(atPath: dir, withIntermediateDirectories: true) + } + return dir + } + + public static func bundleDir() -> String { + let dir = (documentDirectory() as NSString).appendingPathComponent("onekey-bundle") + let fm = FileManager.default + if !fm.fileExists(atPath: dir) { + try? fm.createDirectory(atPath: dir, withIntermediateDirectories: true) + } + return dir + } + + public static func getCurrentNativeVersion() -> String { + Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "" + } + + public static func currentBundleVersion() -> String? { + UserDefaults.standard.string(forKey: bundlePrefsKey) + } + + public static func setCurrentBundleVersion(_ version: String) { + UserDefaults.standard.set(version, forKey: bundlePrefsKey) + UserDefaults.standard.synchronize() + } + + public static func currentBundleDir() -> String? { + guard let folderName = currentBundleVersion() else { return nil } + return (bundleDir() as NSString).appendingPathComponent(folderName) + } + + public static func getWebEmbedPath() -> String { + guard let dir = currentBundleDir() else { return "" } + return (dir as NSString).appendingPathComponent("web-embed") + } + + public static func calculateSHA256(_ filePath: String) -> String? { + guard let fileHandle = FileHandle(forReadingAtPath: filePath) else { return nil } + defer { fileHandle.closeFile() } + + var context = CC_SHA256_CTX() + CC_SHA256_Init(&context) + while autoreleasepool(invoking: { + let data = fileHandle.readData(ofLength: 8192) + if data.count > 0 { + data.withUnsafeBytes { CC_SHA256_Update(&context, $0.baseAddress, CC_LONG(data.count)) } + return true + } + return false + }) {} + var hash = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH)) + CC_SHA256_Final(&hash, &context) + return hash.map { String(format: "%02x", $0) }.joined() + } + + public static func getNativeVersion() -> String? { + UserDefaults.standard.string(forKey: nativeVersionKey) + } + + public static func setNativeVersion(_ version: String) { + UserDefaults.standard.set(version, forKey: nativeVersionKey) + UserDefaults.standard.synchronize() + } + + public static func getMetadataFilePath(_ currentBundleVersion: String) -> String? { + let path = (bundleDir() as NSString) + .appendingPathComponent(currentBundleVersion) + let metadataPath = (path as NSString).appendingPathComponent("metadata.json") + guard FileManager.default.fileExists(atPath: metadataPath) else { return nil } + return metadataPath + } + + public static func getMetadataFileContent(_ currentBundleVersion: String) -> [String: String]? { + guard let path = getMetadataFilePath(currentBundleVersion), + let data = FileManager.default.contents(atPath: path), + let json = try? JSONSerialization.jsonObject(with: data) as? [String: String] else { return nil } + return json + } + + public static func readMetadataFileSha256(_ signature: String) -> String? { + // Extract sha256 from GPG signed content + // TODO: Integrate Gopenpgp for full GPG verification + guard !signature.isEmpty else { return nil } + + // Try to parse the signature content as JSON to get sha256 + // The signature contains a JSON object with a "sha256" field + guard let data = signature.data(using: .utf8), + let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any], + let sha256 = json["sha256"] as? String else { + // If direct JSON parse fails, try extracting from GPG signed content + OneKeyLog.debug("BundleUpdate", "Could not parse signature as JSON directly") + return nil + } + return sha256 + } + + public static func validateMetadataFileSha256(_ currentBundleVersion: String, signature: String) -> Bool { + guard let metadataFilePath = getMetadataFilePath(currentBundleVersion) else { + OneKeyLog.debug("BundleUpdate", "metadataFilePath is null") + return false + } + guard let extractedSha256 = readMetadataFileSha256(signature), !extractedSha256.isEmpty else { + return false + } + guard let calculatedSha256 = calculateSHA256(metadataFilePath) else { return false } + return calculatedSha256 == extractedSha256 + } + + public static func validateExtractedPathSafety(_ destination: String) -> Bool { + let fm = FileManager.default + let resolvedDestination = (destination as NSString).resolvingSymlinksInPath + + guard let enumerator = fm.enumerator(atPath: destination) else { return true } + while let file = enumerator.nextObject() as? String { + let fullPath = (destination as NSString).appendingPathComponent(file) + if let attrs = enumerator.fileAttributes, + attrs[.type] as? FileAttributeType == .typeSymbolicLink { + OneKeyLog.error("BundleUpdate", "Symlink detected in extracted bundle: \(file)") + return false + } + let resolvedPath = (fullPath as NSString).resolvingSymlinksInPath + if !resolvedPath.hasPrefix(resolvedDestination) { + OneKeyLog.error("BundleUpdate", "Path traversal detected in extracted bundle: \(file)") + return false + } + } + return true + } + + public static func validateAllFilesInDir(_ dirPath: String, metadata: [String: String], appVersion: String, bundleVersion: String) -> Bool { + let parentBundleDir = bundleDir() + let folderName = "\(appVersion)-\(bundleVersion)" + let jsBundleDir = (parentBundleDir as NSString).appendingPathComponent(folderName) + "/" + let fm = FileManager.default + + guard let enumerator = fm.enumerator(atPath: dirPath) else { return false } + while let file = enumerator.nextObject() as? String { + if file.contains("metadata.json") || file.contains(".DS_Store") { continue } + let fullPath = (dirPath as NSString).appendingPathComponent(file) + var isDir: ObjCBool = false + if fm.fileExists(atPath: fullPath, isDirectory: &isDir), isDir.boolValue { continue } + + let relativePath = fullPath.replacingOccurrences(of: jsBundleDir, with: "") + guard let expectedSHA256 = metadata[relativePath] else { + OneKeyLog.error("BundleUpdate", "[bundle-verify] File on disk not found in metadata: \(relativePath)") + return false + } + guard let actualSHA256 = calculateSHA256(fullPath) else { + OneKeyLog.error("BundleUpdate", "[bundle-verify] Failed to calculate SHA256 for file: \(relativePath)") + return false + } + if expectedSHA256 != actualSHA256 { + OneKeyLog.error("BundleUpdate", "[bundle-verify] SHA256 mismatch for \(relativePath)") + return false + } + } + + // Verify completeness + for key in metadata.keys { + let expectedFilePath = jsBundleDir + key + if !fm.fileExists(atPath: expectedFilePath) { + OneKeyLog.error("BundleUpdate", "[bundle-verify] File listed in metadata but missing on disk: \(key)") + return false + } + } + return true + } + + public static func currentBundleMainJSBundle() -> String? { + guard let currentBundleVer = currentBundleVersion() else { return nil } + + let currentAppVersion = getCurrentNativeVersion() + guard let prevNativeVersion = getNativeVersion() else { return nil } + + if currentAppVersion != prevNativeVersion { + OneKeyLog.debug("BundleUpdate", "currentAppVersion is not equal to prevNativeVersion \(currentAppVersion) \(prevNativeVersion)") + let ud = UserDefaults.standard + if let cbv = ud.string(forKey: "currentBundleVersion") { + ud.removeObject(forKey: cbv) + ud.removeObject(forKey: "currentBundleVersion") + } + ud.synchronize() + return nil + } + + guard let folderName = currentBundleDir(), + FileManager.default.fileExists(atPath: folderName) else { + OneKeyLog.debug("BundleUpdate", "currentBundleDir does not exist") + return nil + } + + let signature = UserDefaults.standard.string(forKey: currentBundleVer) ?? "" + if !validateMetadataFileSha256(currentBundleVer, signature: signature) { + return nil + } + + guard let metadata = getMetadataFileContent(currentBundleVer) else { return nil } + + if let dashRange = currentBundleVer.range(of: "-", options: .backwards) { + let appVer = String(currentBundleVer[currentBundleVer.startIndex.. String { + let path = (bundleDir() as NSString).appendingPathComponent("fallbackUpdateBundleData.json") + if !FileManager.default.fileExists(atPath: path) { + FileManager.default.createFile(atPath: path, contents: nil) + } + return path + } + + static func readFallbackUpdateBundleDataFile() -> [[String: String]] { + let path = getFallbackUpdateBundleDataPath() + guard let content = try? String(contentsOfFile: path, encoding: .utf8), + !content.isEmpty, + let data = content.data(using: .utf8), + let arr = try? JSONSerialization.jsonObject(with: data) as? [[String: String]] else { + return [] + } + return arr + } + + static func writeFallbackUpdateBundleDataFile(_ data: [[String: String]]) { + let path = getFallbackUpdateBundleDataPath() + guard let jsonData = try? JSONSerialization.data(withJSONObject: data), + let jsonString = String(data: jsonData, encoding: .utf8) else { return } + try? jsonString.write(toFile: path, atomically: true, encoding: .utf8) + } + + public static func clearUpdateBundleData() { + let bDir = bundleDir() + let fm = FileManager.default + if fm.fileExists(atPath: bDir) { + try? fm.removeItem(atPath: bDir) + } + let ud = UserDefaults.standard + if let cbv = currentBundleVersion() { + ud.removeObject(forKey: cbv) + } + ud.removeObject(forKey: bundlePrefsKey) + ud.synchronize() + } +} + +// Listener support +private struct BundleListener { + let id: Double + let callback: (BundleDownloadEvent) -> Void +} + +class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec { + + private var listeners: [BundleListener] = [] + private var nextListenerId: Double = 1 + private var isDownloading = false + private var downloadTask: URLSessionDownloadTask? + private var urlSession: URLSession? + private var downloadFilePath: String? + private var downloadSha256: String? + + init() { + let config = URLSessionConfiguration.default + urlSession = URLSession(configuration: config) + } + + private func sendEvent(type: String, progress: Int = 0, message: String = "") { + let event = BundleDownloadEvent(type: type, progress: Double(progress), message: message) + for listener in listeners { + do { + listener.callback(event) + } catch { + OneKeyLog.error("BundleUpdate", "Error sending event: \(error)") + } + } + } + + func addDownloadListener(callback: @escaping (BundleDownloadEvent) -> Void) throws -> Double { + let id = nextListenerId + nextListenerId += 1 + listeners.append(BundleListener(id: id, callback: callback)) + return id + } + + func removeDownloadListener(id: Double) throws { + listeners.removeAll { $0.id == id } + } + + func downloadBundle(params: BundleDownloadParams) throws -> Promise { + return Promise.async { [weak self] in + guard let self = self else { throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Module deallocated"]) } + + guard !self.isDownloading else { + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Already downloading"]) + } + self.isDownloading = true + + let appVersion = params.latestVersion + let bundleVersion = params.bundleVersion + let downloadUrl = params.downloadUrl + let sha256 = params.sha256 + + guard downloadUrl.hasPrefix("https://") else { + self.isDownloading = false + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Bundle download URL must use HTTPS"]) + } + + let fileName = "\(appVersion)-\(bundleVersion).zip" + let filePath = (BundleUpdateStore.downloadBundleDir() as NSString).appendingPathComponent(fileName) + + let result = BundleDownloadResult( + downloadedFile: filePath, + downloadUrl: downloadUrl, + latestVersion: appVersion, + bundleVersion: bundleVersion, + sha256: sha256 + ) + + OneKeyLog.info("BundleUpdate", "downloadBundle: filePath: \(filePath)") + + // Check if file already exists and is valid + if FileManager.default.fileExists(atPath: filePath) { + if self.verifyBundleSHA256(filePath, sha256: sha256) { + self.isDownloading = false + DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { [weak self] in + self?.sendEvent(type: "update/complete") + } + return result + } else { + try? FileManager.default.removeItem(atPath: filePath) + } + } + + // Download the file + guard let url = URL(string: downloadUrl) else { + self.isDownloading = false + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Invalid URL"]) + } + + self.sendEvent(type: "update/start") + + let request = URLRequest(url: url) + let (tempURL, response) = try await URLSession.shared.download(for: request) + + guard let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200 else { + self.isDownloading = false + self.sendEvent(type: "update/error", message: "HTTP error") + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Download failed"]) + } + + // Move downloaded file to destination + let destDir = (filePath as NSString).deletingLastPathComponent + if !FileManager.default.fileExists(atPath: destDir) { + try FileManager.default.createDirectory(atPath: destDir, withIntermediateDirectories: true) + } + if FileManager.default.fileExists(atPath: filePath) { + try FileManager.default.removeItem(atPath: filePath) + } + try FileManager.default.moveItem(at: tempURL, to: URL(fileURLWithPath: filePath)) + + // Verify SHA256 + if !self.verifyBundleSHA256(filePath, sha256: sha256) { + try? FileManager.default.removeItem(atPath: filePath) + self.isDownloading = false + self.sendEvent(type: "update/error", message: "Bundle signature verification failed") + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Bundle signature verification failed"]) + } + + self.sendEvent(type: "update/complete") + OneKeyLog.info("BundleUpdate", "Download completed") + self.isDownloading = false + return result + } + } + + private func verifyBundleSHA256(_ bundlePath: String, sha256: String) -> Bool { + guard let calculated = BundleUpdateStore.calculateSHA256(bundlePath) else { return false } + let isValid = calculated == sha256 + OneKeyLog.debug("BundleUpdate", "verifyBundleSHA256: Valid: \(isValid)") + return isValid + } + + func downloadBundleASC(params: BundleDownloadASCParams) throws -> Promise { + return Promise.async { + let appVersion = params.latestVersion + let bundleVersion = params.bundleVersion + let signature = params.signature + + let storageKey = "\(appVersion)-\(bundleVersion)" + UserDefaults.standard.set(signature, forKey: storageKey) + UserDefaults.standard.synchronize() + + OneKeyLog.info("BundleUpdate", "downloadBundleASC: Stored signature for key: \(storageKey)") + } + } + + func verifyBundleASC(params: BundleVerifyASCParams) throws -> Promise { + return Promise.async { + let filePath = params.downloadedFile + let sha256 = params.sha256 + let appVersion = params.latestVersion + let bundleVersion = params.bundleVersion + let signature = params.signature + let skipGPG = params.skipGPGVerification + + if !skipGPG { + guard let calculated = BundleUpdateStore.calculateSHA256(filePath), calculated == sha256 else { + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Bundle signature verification failed"]) + } + } + + let folderName = "\(appVersion)-\(bundleVersion)" + let destination = (BundleUpdateStore.bundleDir() as NSString).appendingPathComponent(folderName) + + // Unzip using SSZipArchive + guard SSZipArchive.unzipFile(atPath: filePath, toDestination: destination, overwrite: true, password: nil) else { + try? FileManager.default.removeItem(atPath: destination) + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Failed to unzip bundle"]) + } + + // Validate extracted paths + if !BundleUpdateStore.validateExtractedPathSafety(destination) { + try? FileManager.default.removeItem(atPath: destination) + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Path traversal or symlink attack detected"]) + } + + let metadataJsonPath = (destination as NSString).appendingPathComponent("metadata.json") + guard FileManager.default.fileExists(atPath: metadataJsonPath) else { + try? FileManager.default.removeItem(atPath: destination) + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Failed to read metadata.json"]) + } + + let currentBundleVersion = "\(appVersion)-\(bundleVersion)" + if !skipGPG { + if !BundleUpdateStore.validateMetadataFileSha256(currentBundleVersion, signature: signature) { + try? FileManager.default.removeItem(atPath: destination) + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Bundle signature verification failed"]) + } + } + + guard let metadata = BundleUpdateStore.getMetadataFileContent(currentBundleVersion) else { + try? FileManager.default.removeItem(atPath: destination) + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Failed to read metadata.json after extraction"]) + } + + if !BundleUpdateStore.validateAllFilesInDir(destination, metadata: metadata, appVersion: appVersion, bundleVersion: bundleVersion) { + try? FileManager.default.removeItem(atPath: destination) + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Extracted files verification against metadata failed"]) + } + } + } + + func verifyBundle(params: BundleVerifyParams) throws -> Promise { + return Promise.async { + let filePath = params.downloadedFile + let sha256 = params.sha256 + let appVersion = params.latestVersion + let bundleVersion = params.bundleVersion + + guard let calculated = BundleUpdateStore.calculateSHA256(filePath), calculated == sha256 else { + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Bundle signature verification failed"]) + } + + let folderName = "\(appVersion)-\(bundleVersion)" + let destination = (BundleUpdateStore.bundleDir() as NSString).appendingPathComponent(folderName) + let metadataJsonPath = (destination as NSString).appendingPathComponent("metadata.json") + guard FileManager.default.fileExists(atPath: metadataJsonPath) else { + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Failed to read metadata.json"]) + } + + guard let metadata = BundleUpdateStore.getMetadataFileContent("\(appVersion)-\(bundleVersion)") else { + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Error parsing metadata.json"]) + } + + if !BundleUpdateStore.validateAllFilesInDir(destination, metadata: metadata, appVersion: appVersion, bundleVersion: bundleVersion) { + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Bundle signature verification failed"]) + } + } + } + + func installBundle(params: BundleInstallParams) throws -> Promise { + return Promise.async { + let appVersion = params.latestVersion + let bundleVersion = params.bundleVersion + let signature = params.signature + let skipGPG = params.skipGPGVerification + + let folderName = "\(appVersion)-\(bundleVersion)" + let currentFolderName = BundleUpdateStore.currentBundleVersion() + + // Prevent version downgrade + if !skipGPG, let current = currentFolderName, + let dashRange = current.range(of: "-", options: .backwards) { + let currentBundleVer = String(current[dashRange.upperBound...]) + if let currentNum = Int(currentBundleVer), let newNum = Int(bundleVersion), newNum < currentNum { + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Bundle version downgrade rejected: \(bundleVersion) < \(currentBundleVer)"]) + } + } + + // Verify bundle directory exists + let bundleDirPath = (BundleUpdateStore.bundleDir() as NSString).appendingPathComponent(folderName) + guard FileManager.default.fileExists(atPath: bundleDirPath) else { + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Bundle directory not found: \(folderName)"]) + } + + let ud = UserDefaults.standard + ud.set(folderName, forKey: "currentBundleVersion") + if !signature.isEmpty { + ud.set(signature, forKey: folderName) + } + let currentNativeVersion = BundleUpdateStore.getCurrentNativeVersion() + BundleUpdateStore.setNativeVersion(currentNativeVersion) + ud.synchronize() + + // Manage fallback data + var fallbackData = BundleUpdateStore.readFallbackUpdateBundleDataFile() + + if let current = currentFolderName, + let dashRange = current.range(of: "-", options: .backwards) { + let curAppVersion = String(current[current.startIndex.. 3 { + let shifted = fallbackData.removeFirst() + if let shiftApp = shifted["appVersion"], let shiftBundle = shifted["bundleVersion"] { + let dirName = "\(shiftApp)-\(shiftBundle)" + ud.removeObject(forKey: dirName) + let oldPath = (BundleUpdateStore.bundleDir() as NSString).appendingPathComponent(dirName) + if FileManager.default.fileExists(atPath: oldPath) { + try? FileManager.default.removeItem(atPath: oldPath) + } + } + } + + BundleUpdateStore.writeFallbackUpdateBundleDataFile(fallbackData) + ud.synchronize() + } + } + + func clearBundle() throws -> Promise { + return Promise.async { [weak self] in + let downloadDir = BundleUpdateStore.downloadBundleDir() + if FileManager.default.fileExists(atPath: downloadDir) { + try FileManager.default.removeItem(atPath: downloadDir) + } + self?.downloadTask?.cancel() + self?.downloadTask = nil + self?.isDownloading = false + } + } + + func clearAllJSBundleData() throws -> Promise { + return Promise.async { + let bundleDir = BundleUpdateStore.bundleDir() + if FileManager.default.fileExists(atPath: bundleDir) { + try FileManager.default.removeItem(atPath: bundleDir) + } + let ud = UserDefaults.standard + if let cbv = ud.string(forKey: "currentBundleVersion") { + ud.removeObject(forKey: cbv) + ud.removeObject(forKey: "currentBundleVersion") + } + ud.removeObject(forKey: "nativeVersion") + ud.synchronize() + + OneKeyLog.info("BundleUpdate", "clearAllJSBundleData: Successfully cleared all JS bundle data") + return TestResult(success: true, message: "Successfully cleared all JS bundle data") + } + } + + func getFallbackUpdateBundleData() throws -> Promise<[FallbackBundleInfo]> { + return Promise.async { + let data = BundleUpdateStore.readFallbackUpdateBundleDataFile() + return data.compactMap { dict in + guard let appVersion = dict["appVersion"], + let bundleVersion = dict["bundleVersion"], + let signature = dict["signature"] else { return nil } + return FallbackBundleInfo(appVersion: appVersion, bundleVersion: bundleVersion, signature: signature) + } + } + } + + func setCurrentUpdateBundleData(params: BundleSwitchParams) throws -> Promise { + return Promise.async { + let bundleVersion = "\(params.appVersion)-\(params.bundleVersion)" + let ud = UserDefaults.standard + ud.set(bundleVersion, forKey: "currentBundleVersion") + ud.set(params.signature, forKey: bundleVersion) + ud.synchronize() + } + } + + func getWebEmbedPath() throws -> String { + return BundleUpdateStore.getWebEmbedPath() + } + + func getWebEmbedPathAsync() throws -> Promise { + return Promise.async { + let path = BundleUpdateStore.getWebEmbedPath() + OneKeyLog.debug("BundleUpdate", "getWebEmbedPathAsync: \(path)") + return path + } + } + + func getJsBundlePath() throws -> Promise { + return Promise.async { + return BundleUpdateStore.currentBundleMainJSBundle() ?? "" + } + } + + func getNativeAppVersion() throws -> Promise { + return Promise.async { + return BundleUpdateStore.getCurrentNativeVersion() + } + } + + func testVerification() throws -> Promise { + return Promise.async { + // TODO: Integrate Gopenpgp for full GPG verification testing + OneKeyLog.info("BundleUpdate", "testVerification: GPG verification pending integration") + return true + } + } + + func isBundleExists(appVersion: String, bundleVersion: String) throws -> Promise { + return Promise.async { + let folderName = "\(appVersion)-\(bundleVersion)" + let path = (BundleUpdateStore.bundleDir() as NSString).appendingPathComponent(folderName) + return FileManager.default.fileExists(atPath: path) + } + } + + func verifyExtractedBundle(appVersion: String, bundleVersion: String) throws -> Promise { + return Promise.async { + let folderName = "\(appVersion)-\(bundleVersion)" + let bundlePath = (BundleUpdateStore.bundleDir() as NSString).appendingPathComponent(folderName) + guard FileManager.default.fileExists(atPath: bundlePath) else { + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Bundle directory not found"]) + } + let metadataJsonPath = (bundlePath as NSString).appendingPathComponent("metadata.json") + guard FileManager.default.fileExists(atPath: metadataJsonPath) else { + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "metadata.json not found"]) + } + guard let data = FileManager.default.contents(atPath: metadataJsonPath), + let metadata = try? JSONSerialization.jsonObject(with: data) as? [String: String] else { + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Failed to parse metadata.json"]) + } + if !BundleUpdateStore.validateAllFilesInDir(bundlePath, metadata: metadata, appVersion: appVersion, bundleVersion: bundleVersion) { + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "File integrity check failed"]) + } + } + } + + func listLocalBundles() throws -> Promise<[LocalBundleInfo]> { + return Promise.async { + let bundleDir = BundleUpdateStore.bundleDir() + let fm = FileManager.default + guard let contents = try? fm.contentsOfDirectory(atPath: bundleDir) else { return [] } + var results: [LocalBundleInfo] = [] + for name in contents { + let fullPath = (bundleDir as NSString).appendingPathComponent(name) + var isDir: ObjCBool = false + guard fm.fileExists(atPath: fullPath, isDirectory: &isDir), isDir.boolValue else { continue } + guard let lastDash = name.range(of: "-", options: .backwards), + lastDash.lowerBound > name.startIndex else { continue } + let appVersion = String(name[name.startIndex.. Promise { + return Promise.async { + OneKeyLog.debug("BundleUpdate", "getSha256FromFilePath: \(filePath)") + guard !filePath.isEmpty else { return "" } + return BundleUpdateStore.calculateSHA256(filePath) ?? "" + } + } + + func testDeleteJsBundle(appVersion: String, bundleVersion: String) throws -> Promise { + return Promise.async { + let folderName = "\(appVersion)-\(bundleVersion)" + let jsBundlePath = (BundleUpdateStore.bundleDir() as NSString) + .appendingPathComponent(folderName) + let path = (jsBundlePath as NSString).appendingPathComponent("main.jsbundle.hbc") + + if FileManager.default.fileExists(atPath: path) { + try FileManager.default.removeItem(atPath: path) + return TestResult(success: true, message: "Deleted jsBundle: \(path)") + } + return TestResult(success: false, message: "jsBundle not found: \(path)") + } + } + + func testDeleteJsRuntimeDir(appVersion: String, bundleVersion: String) throws -> Promise { + return Promise.async { + let folderName = "\(appVersion)-\(bundleVersion)" + let dirPath = (BundleUpdateStore.bundleDir() as NSString).appendingPathComponent(folderName) + + if FileManager.default.fileExists(atPath: dirPath) { + try FileManager.default.removeItem(atPath: dirPath) + return TestResult(success: true, message: "Deleted js runtime directory: \(dirPath)") + } + return TestResult(success: false, message: "js runtime directory not found: \(dirPath)") + } + } + + func testDeleteMetadataJson(appVersion: String, bundleVersion: String) throws -> Promise { + return Promise.async { + let folderName = "\(appVersion)-\(bundleVersion)" + let metadataPath = (BundleUpdateStore.bundleDir() as NSString) + .appendingPathComponent(folderName) + let path = (metadataPath as NSString).appendingPathComponent("metadata.json") + + if FileManager.default.fileExists(atPath: path) { + try FileManager.default.removeItem(atPath: path) + return TestResult(success: true, message: "Deleted metadata.json: \(path)") + } + return TestResult(success: false, message: "metadata.json not found: \(path)") + } + } + + func testWriteEmptyMetadataJson(appVersion: String, bundleVersion: String) throws -> Promise { + return Promise.async { + let folderName = "\(appVersion)-\(bundleVersion)" + let jsRuntimeDir = (BundleUpdateStore.bundleDir() as NSString).appendingPathComponent(folderName) + let metadataPath = (jsRuntimeDir as NSString).appendingPathComponent("metadata.json") + + if !FileManager.default.fileExists(atPath: jsRuntimeDir) { + try FileManager.default.createDirectory(atPath: jsRuntimeDir, withIntermediateDirectories: true) + } + + let emptyJson: [String: Any] = [:] + let data = try JSONSerialization.data(withJSONObject: emptyJson, options: .prettyPrinted) + try data.write(to: URL(fileURLWithPath: metadataPath), options: .atomic) + + return TestResult(success: true, message: "Created empty metadata.json: \(metadataPath)") + } + } +} diff --git a/native-modules/react-native-bundle-update/lefthook.yml b/native-modules/react-native-bundle-update/lefthook.yml new file mode 100644 index 00000000..89766b1f --- /dev/null +++ b/native-modules/react-native-bundle-update/lefthook.yml @@ -0,0 +1,10 @@ +pre-commit: + parallel: true + commands: + lint: + glob: "*.{js,ts,tsx}" + run: yarn lint {staged_files} + typecheck: + files: git diff --cached --name-only --diff-filter=ACMRTUXB + glob: "*.{js,ts,tsx}" + run: yarn typecheck diff --git a/native-modules/react-native-bundle-update/nitro.json b/native-modules/react-native-bundle-update/nitro.json new file mode 100644 index 00000000..33d405cd --- /dev/null +++ b/native-modules/react-native-bundle-update/nitro.json @@ -0,0 +1,17 @@ +{ + "cxxNamespace": ["reactnativebundleupdate"], + "ios": { + "iosModuleName": "ReactNativeBundleUpdate" + }, + "android": { + "androidNamespace": ["reactnativebundleupdate"], + "androidCxxLibName": "reactnativebundleupdate" + }, + "autolinking": { + "ReactNativeBundleUpdate": { + "swift": "ReactNativeBundleUpdate", + "kotlin": "ReactNativeBundleUpdate" + } + }, + "ignorePaths": ["node_modules"] +} diff --git a/native-modules/react-native-bundle-update/package.json b/native-modules/react-native-bundle-update/package.json new file mode 100644 index 00000000..1441300b --- /dev/null +++ b/native-modules/react-native-bundle-update/package.json @@ -0,0 +1,169 @@ +{ + "name": "@onekeyfe/react-native-bundle-update", + "version": "1.1.20", + "description": "react-native-bundle-update", + "main": "./lib/module/index.js", + "types": "./lib/typescript/src/index.d.ts", + "exports": { + ".": { + "source": "./src/index.tsx", + "types": "./lib/typescript/src/index.d.ts", + "default": "./lib/module/index.js" + }, + "./package.json": "./package.json" + }, + "files": [ + "src", + "lib", + "android", + "ios", + "cpp", + "nitrogen", + "nitro.json", + "*.podspec", + "react-native.config.js", + "!ios/build", + "!android/build", + "!android/gradle", + "!android/gradlew", + "!android/gradlew.bat", + "!android/local.properties", + "!**/__tests__", + "!**/__fixtures__", + "!**/__mocks__", + "!**/.*" + ], + "scripts": { + "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib", + "prepare": "bob build", + "nitrogen": "nitrogen", + "typecheck": "tsc", + "lint": "eslint \"**/*.{js,ts,tsx}\"", + "test": "jest", + "release": "yarn prepare && npm whoami && npm publish --access public" + }, + "keywords": [ + "react-native", + "ios", + "android" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/OneKeyHQ/app-modules/react-native-bundle-update.git" + }, + "author": "onekeyfe (https://github.com/OneKeyHQ/app-modules)", + "license": "MIT", + "bugs": { + "url": "https://github.com/OneKeyHQ/app-modules/react-native-bundle-update/issues" + }, + "homepage": "https://github.com/OneKeyHQ/app-modules/react-native-bundle-update#readme", + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "devDependencies": { + "@commitlint/config-conventional": "^19.8.1", + "@eslint/compat": "^1.3.2", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "^9.35.0", + "@react-native/babel-preset": "0.83.0", + "@react-native/eslint-config": "0.83.0", + "@release-it/conventional-changelog": "^10.0.1", + "@types/jest": "^29.5.14", + "@types/react": "^19.2.0", + "commitlint": "^19.8.1", + "del-cli": "^6.0.0", + "eslint": "^9.35.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", + "jest": "^29.7.0", + "lefthook": "^2.0.3", + "nitrogen": "0.31.10", + "prettier": "^2.8.8", + "react": "19.2.0", + "react-native": "0.83.0", + "react-native-builder-bob": "^0.40.13", + "react-native-nitro-modules": "0.33.2", + "release-it": "^19.0.4", + "turbo": "^2.5.6", + "typescript": "^5.9.2" + }, + "peerDependencies": { + "react": "*", + "react-native": "*", + "react-native-nitro-modules": "0.33.2" + }, + "react-native-builder-bob": { + "source": "src", + "output": "lib", + "targets": [ + [ + "custom", + { + "script": "nitrogen", + "clean": "nitrogen/" + } + ], + [ + "module", + { + "esm": true + } + ], + [ + "typescript", + { + "project": "tsconfig.build.json" + } + ] + ] + }, + "prettier": { + "quoteProps": "consistent", + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false + }, + "jest": { + "preset": "react-native", + "modulePathIgnorePatterns": [ + "/example/node_modules", + "/lib/" + ] + }, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] + }, + "release-it": { + "git": { + "commitMessage": "chore: release ${version}", + "tagName": "v${version}" + }, + "npm": { + "publish": true + }, + "github": { + "release": true + }, + "plugins": { + "@release-it/conventional-changelog": { + "preset": { + "name": "angular" + } + } + } + }, + "create-react-native-library": { + "type": "nitro-module", + "languages": "kotlin-swift", + "tools": [ + "eslint", + "jest", + "lefthook", + "release-it" + ], + "version": "0.56.0" + } +} diff --git a/native-modules/react-native-bundle-update/src/ReactNativeBundleUpdate.nitro.ts b/native-modules/react-native-bundle-update/src/ReactNativeBundleUpdate.nitro.ts new file mode 100644 index 00000000..3bdd7e8a --- /dev/null +++ b/native-modules/react-native-bundle-update/src/ReactNativeBundleUpdate.nitro.ts @@ -0,0 +1,138 @@ +import type { HybridObject } from 'react-native-nitro-modules'; + +export interface BundleDownloadParams { + downloadUrl: string; + latestVersion: string; + bundleVersion: string; + fileSize: number; + sha256: string; +} + +export interface BundleDownloadResult { + downloadedFile: string; + downloadUrl: string; + latestVersion: string; + bundleVersion: string; + sha256: string; +} + +export interface BundleVerifyParams { + downloadedFile: string; + sha256: string; + latestVersion: string; + bundleVersion: string; +} + +export interface BundleVerifyASCParams { + downloadedFile: string; + sha256: string; + latestVersion: string; + bundleVersion: string; + signature: string; + skipGPGVerification: boolean; +} + +export interface BundleDownloadASCParams { + downloadUrl: string; + downloadedFile: string; + signature: string; + latestVersion: string; + bundleVersion: string; + sha256: string; +} + +export interface BundleInstallParams { + downloadedFile: string; + latestVersion: string; + bundleVersion: string; + signature: string; + skipGPGVerification: boolean; +} + +export interface BundleSwitchParams { + appVersion: string; + bundleVersion: string; + signature: string; +} + +export interface BundleDownloadEvent { + type: string; + progress: number; + message: string; +} + +export interface TestResult { + success: boolean; + message: string; +} + +export interface LocalBundleInfo { + appVersion: string; + bundleVersion: string; +} + +export interface FallbackBundleInfo { + appVersion: string; + bundleVersion: string; + signature: string; +} + +export interface ReactNativeBundleUpdate + extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> { + // Download + downloadBundle(params: BundleDownloadParams): Promise; + + // Verify + verifyBundle(params: BundleVerifyParams): Promise; + verifyBundleASC(params: BundleVerifyASCParams): Promise; + downloadBundleASC(params: BundleDownloadASCParams): Promise; + + // Install + installBundle(params: BundleInstallParams): Promise; + + // Clear + clearBundle(): Promise; + clearAllJSBundleData(): Promise; + + // Bundle data + getFallbackUpdateBundleData(): Promise; + setCurrentUpdateBundleData(params: BundleSwitchParams): Promise; + + // Paths + getWebEmbedPath(): string; + getWebEmbedPathAsync(): Promise; + getJsBundlePath(): Promise; + getNativeAppVersion(): Promise; + + // Verification & testing + testVerification(): Promise; + isBundleExists(appVersion: string, bundleVersion: string): Promise; + verifyExtractedBundle( + appVersion: string, + bundleVersion: string, + ): Promise; + listLocalBundles(): Promise; + getSha256FromFilePath(filePath: string): Promise; + + // Test/debug methods + testDeleteJsBundle( + appVersion: string, + bundleVersion: string, + ): Promise; + testDeleteJsRuntimeDir( + appVersion: string, + bundleVersion: string, + ): Promise; + testDeleteMetadataJson( + appVersion: string, + bundleVersion: string, + ): Promise; + testWriteEmptyMetadataJson( + appVersion: string, + bundleVersion: string, + ): Promise; + + // Events + addDownloadListener(callback: (event: BundleDownloadEvent) => void): number; + removeDownloadListener(id: number): void; +} diff --git a/native-modules/react-native-bundle-update/src/index.tsx b/native-modules/react-native-bundle-update/src/index.tsx new file mode 100644 index 00000000..747a3d73 --- /dev/null +++ b/native-modules/react-native-bundle-update/src/index.tsx @@ -0,0 +1,8 @@ +import { NitroModules } from 'react-native-nitro-modules'; +import type { ReactNativeBundleUpdate as ReactNativeBundleUpdateType } from './ReactNativeBundleUpdate.nitro'; + +const ReactNativeBundleUpdateHybridObject = + NitroModules.createHybridObject('ReactNativeBundleUpdate'); + +export const ReactNativeBundleUpdate = ReactNativeBundleUpdateHybridObject; +export type * from './ReactNativeBundleUpdate.nitro'; diff --git a/native-modules/react-native-bundle-update/tsconfig.build.json b/native-modules/react-native-bundle-update/tsconfig.build.json new file mode 100644 index 00000000..45777014 --- /dev/null +++ b/native-modules/react-native-bundle-update/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "noEmit": false, + "declaration": true, + "declarationMap": true + }, + "exclude": ["**/__tests__/**/*", "**/__fixtures__/**/*", "**/__mocks__/**/*"] +} diff --git a/native-modules/react-native-bundle-update/tsconfig.json b/native-modules/react-native-bundle-update/tsconfig.json new file mode 100644 index 00000000..cc7b7b24 --- /dev/null +++ b/native-modules/react-native-bundle-update/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "rootDir": ".", + "paths": { + "react-native-bundle-update": ["./src/index"] + }, + "allowUnreachableCode": false, + "allowUnusedLabels": false, + "customConditions": ["react-native-strict-api"], + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "jsx": "react-jsx", + "lib": ["ESNext"], + "module": "ESNext", + "moduleResolution": "bundler", + "noEmit": true, + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "noImplicitUseStrict": false, + "noStrictGenericChecks": false, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "ESNext", + "verbatimModuleSyntax": true + } +} diff --git a/native-modules/react-native-bundle-update/turbo.json b/native-modules/react-native-bundle-update/turbo.json new file mode 100644 index 00000000..08b9676e --- /dev/null +++ b/native-modules/react-native-bundle-update/turbo.json @@ -0,0 +1,17 @@ +{ + "extends": ["//"], + "tasks": { + "build": { + "outputs": [ + "lib/**", + "nitrogen/**" + ], + "inputs": [ + "src/**", + "android/src/**", + "ios/**", + "cpp/**" + ] + } + } +} diff --git a/native-modules/react-native-device-utils/android/src/main/java/com/margelo/nitro/reactnativedeviceutils/ReactNativeDeviceUtils.kt b/native-modules/react-native-device-utils/android/src/main/java/com/margelo/nitro/reactnativedeviceutils/ReactNativeDeviceUtils.kt index 6aa65474..1cc60c30 100644 --- a/native-modules/react-native-device-utils/android/src/main/java/com/margelo/nitro/reactnativedeviceutils/ReactNativeDeviceUtils.kt +++ b/native-modules/react-native-device-utils/android/src/main/java/com/margelo/nitro/reactnativedeviceutils/ReactNativeDeviceUtils.kt @@ -39,6 +39,14 @@ class ReactNativeDeviceUtils : HybridReactNativeDeviceUtilsSpec(), LifecycleEven private const val PREF_KEY_FOLDABLE = "1k_fold" private const val PREF_KEY_UI_STYLE = "1k_user_interface_style" + @JvmStatic + var staticStartupTime: Long? = null + + @JvmStatic + fun saveStartupTimeStatic(startupTime: Long) { + staticStartupTime = startupTime + } + // Xiaomi foldable models private val XIAOMI_FOLDABLE_MODELS = setOf( "M2011J18C", // Mi MIX FOLD @@ -849,4 +857,41 @@ class ReactNativeDeviceUtils : HybridReactNativeDeviceUtilsSpec(), LifecycleEven override fun onHostDestroy() { stopObservingLayoutChanges() } + + // MARK: - LaunchOptionsManager + + override fun getLaunchOptions(): Promise { + return Promise.async { + OneKeyLog.debug("DeviceUtils", "getLaunchOptions") + LaunchOptions(launchType = "normal") + } + } + + override fun clearLaunchOptions(): Promise { + return Promise.async { + OneKeyLog.info("DeviceUtils", "clearLaunchOptions") + true + } + } + + override fun getDeviceToken(): Promise { + return Promise.async { "" } + } + + override fun registerDeviceToken(): Promise { + return Promise.async { true } + } + + override fun getStartupTime(): Promise { + return Promise.async { + (staticStartupTime ?: 0L).toDouble() + } + } + + // MARK: - ExitModule + + override fun exitApp() { + OneKeyLog.info("DeviceUtils", "exitApp") + android.os.Process.killProcess(android.os.Process.myPid()) + } } diff --git a/native-modules/react-native-device-utils/ios/ReactNativeDeviceUtils.swift b/native-modules/react-native-device-utils/ios/ReactNativeDeviceUtils.swift index e336fb32..01f5e95e 100644 --- a/native-modules/react-native-device-utils/ios/ReactNativeDeviceUtils.swift +++ b/native-modules/react-native-device-utils/ios/ReactNativeDeviceUtils.swift @@ -2,6 +2,19 @@ import NitroModules import UIKit import ReactNativeNativeLogger +public class LaunchOptionsStore { + public static let shared = LaunchOptionsStore() + + public var launchOptions: [AnyHashable: Any]? + public var deviceToken: Data? + public var startupTime: TimeInterval = 0 + + public func getDeviceTokenString() -> String { + guard let token = deviceToken else { return "" } + return token.map { String(format: "%02.2hhx", $0) }.joined() + } +} + class ReactNativeDeviceUtils: HybridReactNativeDeviceUtilsSpec { private static let userInterfaceStyleKey = "1k_user_interface_style" @@ -95,4 +108,60 @@ class ReactNativeDeviceUtils: HybridReactNativeDeviceUtilsSpec { } } } + + // MARK: - LaunchOptionsManager + + func getLaunchOptions() throws -> Promise { + return Promise.async { + let store = LaunchOptionsStore.shared + guard let opts = store.launchOptions else { + OneKeyLog.debug("DeviceUtils", "getLaunchOptions: no launch options") + return LaunchOptions(launchType: "normal") + } + + if opts[UIApplication.LaunchOptionsKey.remoteNotification] != nil { + return LaunchOptions(launchType: "remoteNotification") + } + + if opts[UIApplication.LaunchOptionsKey.localNotification] != nil { + return LaunchOptions(launchType: "localNotification") + } + + return LaunchOptions(launchType: "normal") + } + } + + func clearLaunchOptions() throws -> Promise { + return Promise.async { + LaunchOptionsStore.shared.launchOptions = nil + OneKeyLog.info("DeviceUtils", "Cleared launch options") + return true + } + } + + func getDeviceToken() throws -> Promise { + return Promise.async { + return LaunchOptionsStore.shared.getDeviceTokenString() + } + } + + func registerDeviceToken() throws -> Promise { + return Promise.async { + OneKeyLog.info("DeviceUtils", "registerDeviceToken") + return true + } + } + + func getStartupTime() throws -> Promise { + return Promise.async { + return LaunchOptionsStore.shared.startupTime * 1000.0 + } + } + + // MARK: - ExitModule + + func exitApp() throws { + OneKeyLog.info("DeviceUtils", "exitApp called") + exit(0) + } } diff --git a/native-modules/react-native-device-utils/src/ReactNativeDeviceUtils.nitro.ts b/native-modules/react-native-device-utils/src/ReactNativeDeviceUtils.nitro.ts index de027d7e..ddef8ea2 100644 --- a/native-modules/react-native-device-utils/src/ReactNativeDeviceUtils.nitro.ts +++ b/native-modules/react-native-device-utils/src/ReactNativeDeviceUtils.nitro.ts @@ -10,6 +10,11 @@ export interface DualScreenInfoRect { height: number; } +export interface LaunchOptions { + launchType: string; + deepLink?: string; +} + export interface ReactNativeDeviceUtils extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> { initEventListeners(): void; @@ -21,4 +26,14 @@ export interface ReactNativeDeviceUtils addSpanningChangedListener(callback: (isSpanning: boolean) => void): number; removeSpanningChangedListener(id: number): void; setUserInterfaceStyle(style: UserInterfaceStyle): void; + + // LaunchOptionsManager + getLaunchOptions(): Promise; + clearLaunchOptions(): Promise; + getDeviceToken(): Promise; + registerDeviceToken(): Promise; + getStartupTime(): Promise; + + // ExitModule + exitApp(): void; } diff --git a/native-modules/react-native-perf-memory/.gitignore b/native-modules/react-native-perf-memory/.gitignore new file mode 100644 index 00000000..357a2f9a --- /dev/null +++ b/native-modules/react-native-perf-memory/.gitignore @@ -0,0 +1,89 @@ +# OSX +# +.DS_Store + +# XDE +.expo/ + +# VSCode +.vscode/ +jsconfig.json + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace +**/.xcode.env.local + +# Android/IJ +# +.classpath +.cxx +.gradle +.idea +.project +.settings +local.properties +android.iml + +# Cocoapods +# +example/ios/Pods + +# Ruby +example/vendor/ + +# node.js +# +node_modules/ +npm-debug.log +yarn-debug.log +yarn-error.log + +# BUCK +buck-out/ +\.buckd/ +android/app/libs +android/keystores/debug.keystore + +# Yarn +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +# Expo +.expo/ + +# Turborepo +.turbo/ + +# generated by bob +lib/ + +# React Native Codegen +ios/generated +android/generated + +# React Native Nitro Modules +nitrogen/ + + + diff --git a/native-modules/react-native-perf-memory/LICENSE b/native-modules/react-native-perf-memory/LICENSE new file mode 100644 index 00000000..24ee4114 --- /dev/null +++ b/native-modules/react-native-perf-memory/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 OneKey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/native-modules/react-native-perf-memory/README.md b/native-modules/react-native-perf-memory/README.md new file mode 100644 index 00000000..cd7ab947 --- /dev/null +++ b/native-modules/react-native-perf-memory/README.md @@ -0,0 +1,36 @@ +# react-native-perf-memory + +react-native-perf-memory + +## Installation + +```sh +npm install react-native-perf-memory react-native-nitro-modules + +> `react-native-nitro-modules` is required as this library relies on [Nitro Modules](https://nitro.margelo.com/). +``` + +## Usage + +```js +import { ReactNativePerfMemory } from 'react-native-perf-memory'; + +// ... + +const result = await ReactNativePerfMemory.hello({ message: 'World' }); +console.log(result); // { success: true, data: 'Hello, World!' } +``` + +## Contributing + +- [Development workflow](CONTRIBUTING.md#development-workflow) +- [Sending a pull request](CONTRIBUTING.md#sending-a-pull-request) +- [Code of conduct](CODE_OF_CONDUCT.md) + +## License + +MIT + +--- + +Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob) diff --git a/native-modules/react-native-perf-memory/ReactNativePerfMemory.podspec b/native-modules/react-native-perf-memory/ReactNativePerfMemory.podspec new file mode 100644 index 00000000..37f4fb18 --- /dev/null +++ b/native-modules/react-native-perf-memory/ReactNativePerfMemory.podspec @@ -0,0 +1,30 @@ +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.name = "ReactNativePerfMemory" + s.version = package["version"] + s.summary = package["description"] + s.homepage = package["homepage"] + s.license = package["license"] + s.authors = package["author"] + + s.platforms = { :ios => min_ios_version_supported } + s.source = { :git => "https://github.com/OneKeyHQ/app-modules/react-native-perf-memory.git", :tag => "#{s.version}" } + + s.source_files = [ + "ios/**/*.{swift}", + "ios/**/*.{m,mm}", + "cpp/**/*.{hpp,cpp}", + ] + + s.dependency 'React-jsi' + s.dependency 'React-callinvoker' + s.dependency 'ReactNativeNativeLogger' + + load 'nitrogen/generated/ios/ReactNativePerfMemory+autolinking.rb' + add_nitrogen_files(s) + + install_modules_dependencies(s) +end diff --git a/native-modules/react-native-perf-memory/android/CMakeLists.txt b/native-modules/react-native-perf-memory/android/CMakeLists.txt new file mode 100644 index 00000000..7291ddda --- /dev/null +++ b/native-modules/react-native-perf-memory/android/CMakeLists.txt @@ -0,0 +1,24 @@ +project(reactnativeperfmemory) +cmake_minimum_required(VERSION 3.9.0) + +set(PACKAGE_NAME reactnativeperfmemory) +set(CMAKE_VERBOSE_MAKEFILE ON) +set(CMAKE_CXX_STANDARD 20) + +# Define C++ library and add all sources +add_library(${PACKAGE_NAME} SHARED src/main/cpp/cpp-adapter.cpp) + +# Add Nitrogen specs :) +include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/reactnativeperfmemory+autolinking.cmake) + +# Set up local includes +include_directories("src/main/cpp" "../cpp") + +find_library(LOG_LIB log) + +# Link all libraries together +target_link_libraries( + ${PACKAGE_NAME} + ${LOG_LIB} + android # <-- Android core +) diff --git a/native-modules/react-native-perf-memory/android/build.gradle b/native-modules/react-native-perf-memory/android/build.gradle new file mode 100644 index 00000000..854ecf5d --- /dev/null +++ b/native-modules/react-native-perf-memory/android/build.gradle @@ -0,0 +1,130 @@ +buildscript { + ext.getExtOrDefault = {name -> + return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['ReactNativePerfMemory_' + name] + } + + repositories { + google() + mavenCentral() + } + + dependencies { + classpath "com.android.tools.build:gradle:8.7.2" + // noinspection DifferentKotlinGradleVersion + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}" + } +} + +def reactNativeArchitectures() { + def value = rootProject.getProperties().get("reactNativeArchitectures") + return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] +} + +apply plugin: "com.android.library" +apply plugin: "kotlin-android" +apply from: '../nitrogen/generated/android/reactnativeperfmemory+autolinking.gradle' + +apply plugin: "com.facebook.react" + +def getExtOrIntegerDefault(name) { + return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["ReactNativePerfMemory_" + name]).toInteger() +} + +android { + namespace "com.margelo.nitro.reactnativeperfmemory" + + compileSdkVersion getExtOrIntegerDefault("compileSdkVersion") + + defaultConfig { + minSdkVersion getExtOrIntegerDefault("minSdkVersion") + targetSdkVersion getExtOrIntegerDefault("targetSdkVersion") + + externalNativeBuild { + cmake { + cppFlags "-frtti -fexceptions -Wall -fstack-protector-all" + arguments "-DANDROID_STL=c++_shared", "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON" + abiFilters (*reactNativeArchitectures()) + + buildTypes { + debug { + cppFlags "-O1 -g" + } + release { + cppFlags "-O2" + } + } + } + } + } + + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } + + packagingOptions { + excludes = [ + "META-INF", + "META-INF/**", + "**/libc++_shared.so", + "**/libfbjni.so", + "**/libjsi.so", + "**/libfolly_json.so", + "**/libfolly_runtime.so", + "**/libglog.so", + "**/libhermes.so", + "**/libhermes-executor-debug.so", + "**/libhermes_executor.so", + "**/libreactnative.so", + "**/libreactnativejni.so", + "**/libturbomodulejsijni.so", + "**/libreact_nativemodule_core.so", + "**/libjscexecutor.so" + ] + } + + buildFeatures { + buildConfig true + prefab true + } + + buildTypes { + release { + minifyEnabled false + } + } + + lintOptions { + disable "GradleCompatible" + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + sourceSets { + main { + java.srcDirs += [ + "generated/java", + "generated/jni" + ] + } + } +} + +repositories { + mavenCentral() + google() +} + +def kotlin_version = getExtOrDefault("kotlinVersion") + +dependencies { + implementation "com.facebook.react:react-android" + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation project(":react-native-nitro-modules") + + implementation project(":onekeyfe_react-native-native-logger") +} diff --git a/native-modules/react-native-perf-memory/android/gradle.properties b/native-modules/react-native-perf-memory/android/gradle.properties new file mode 100644 index 00000000..db7241f6 --- /dev/null +++ b/native-modules/react-native-perf-memory/android/gradle.properties @@ -0,0 +1,4 @@ +ReactNativePerfMemory_kotlinVersion=1.9.25 +ReactNativePerfMemory_compileSdkVersion=35 +ReactNativePerfMemory_targetSdkVersion=35 +ReactNativePerfMemory_minSdkVersion=24 diff --git a/native-modules/react-native-perf-memory/android/src/main/AndroidManifest.xml b/native-modules/react-native-perf-memory/android/src/main/AndroidManifest.xml new file mode 100644 index 00000000..94cbbcfc --- /dev/null +++ b/native-modules/react-native-perf-memory/android/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + diff --git a/native-modules/react-native-perf-memory/android/src/main/cpp/cpp-adapter.cpp b/native-modules/react-native-perf-memory/android/src/main/cpp/cpp-adapter.cpp new file mode 100644 index 00000000..ff6b6078 --- /dev/null +++ b/native-modules/react-native-perf-memory/android/src/main/cpp/cpp-adapter.cpp @@ -0,0 +1,6 @@ +#include +#include "reactnativeperfmemoryOnLoad.hpp" + +extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { + return margelo::nitro::reactnativeperfmemory::initialize(vm); +} diff --git a/native-modules/react-native-perf-memory/android/src/main/java/com/margelo/nitro/reactnativeperfmemory/ReactNativePerfMemory.kt b/native-modules/react-native-perf-memory/android/src/main/java/com/margelo/nitro/reactnativeperfmemory/ReactNativePerfMemory.kt new file mode 100644 index 00000000..91a47395 --- /dev/null +++ b/native-modules/react-native-perf-memory/android/src/main/java/com/margelo/nitro/reactnativeperfmemory/ReactNativePerfMemory.kt @@ -0,0 +1,67 @@ +package com.margelo.nitro.reactnativeperfmemory + +import android.app.ActivityManager +import android.content.Context +import android.os.Debug +import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise +import com.margelo.nitro.NitroModules +import com.margelo.nitro.nativelogger.OneKeyLog +import java.io.BufferedReader +import java.io.FileReader + +@DoNotStrip +class ReactNativePerfMemory : HybridReactNativePerfMemorySpec() { + + override fun getMemoryUsage(): Promise { + return Promise.async { + val rssBytes = readVmRssBytesFromProcStatus() + + val context = NitroModules.applicationContext + val am = context?.getSystemService(Context.ACTIVITY_SERVICE) as? ActivityManager + + if (am == null) { + if (rssBytes != null) { + return@async MemoryUsage(rss = rssBytes.toDouble()) + } + OneKeyLog.warn("PerfMemory", "ActivityManager unavailable and /proc/self/status unreadable") + return@async MemoryUsage(rss = 0.0) + } + + val pid = android.os.Process.myPid() + val memInfos = am.getProcessMemoryInfo(intArrayOf(pid)) + + if (memInfos == null || memInfos.isEmpty()) { + if (rssBytes != null) { + return@async MemoryUsage(rss = rssBytes.toDouble()) + } + return@async MemoryUsage(rss = 0.0) + } + + // totalPss is in KB + val pssBytes = memInfos[0].totalPss.toLong() * 1024L + val finalRss = rssBytes ?: pssBytes + + MemoryUsage(rss = finalRss.toDouble()) + } + } + + private fun readVmRssBytesFromProcStatus(): Long? { + try { + BufferedReader(FileReader("/proc/self/status")).use { reader -> + var line: String? + while (reader.readLine().also { line = it } != null) { + if (!line!!.startsWith("VmRSS:")) continue + // Example: "VmRSS:\t 123456 kB" + val parts = line!!.trim().split("\\s+".toRegex()) + if (parts.size < 2) return null + val kb = parts[1].toLong() + return kb * 1024L + } + } + } catch (_: Exception) { + // ignore + } + return null + } +} diff --git a/native-modules/react-native-perf-memory/android/src/main/java/com/margelo/nitro/reactnativeperfmemory/ReactNativePerfMemoryPackage.kt b/native-modules/react-native-perf-memory/android/src/main/java/com/margelo/nitro/reactnativeperfmemory/ReactNativePerfMemoryPackage.kt new file mode 100644 index 00000000..b6f1b036 --- /dev/null +++ b/native-modules/react-native-perf-memory/android/src/main/java/com/margelo/nitro/reactnativeperfmemory/ReactNativePerfMemoryPackage.kt @@ -0,0 +1,24 @@ +package com.margelo.nitro.reactnativeperfmemory + +import com.facebook.react.BaseReactPackage +import com.facebook.react.bridge.NativeModule +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.module.model.ReactModuleInfoProvider + +class ReactNativePerfMemoryPackage : BaseReactPackage() { + override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? { + return null + } + + override fun getReactModuleInfoProvider(): ReactModuleInfoProvider { + return ReactModuleInfoProvider { HashMap() } + } + + companion object { + init { + System.loadLibrary("reactnativeperfmemory") + } + } +} + + diff --git a/native-modules/react-native-perf-memory/babel.config.js b/native-modules/react-native-perf-memory/babel.config.js new file mode 100644 index 00000000..603d3331 --- /dev/null +++ b/native-modules/react-native-perf-memory/babel.config.js @@ -0,0 +1,13 @@ +module.exports = { + presets: ['@react-native/babel-preset'], + plugins: [ + [ + 'module-resolver', + { + alias: { + 'react-native-perf-memory': './src/index', + }, + }, + ], + ], +}; diff --git a/native-modules/react-native-perf-memory/eslint.config.mjs b/native-modules/react-native-perf-memory/eslint.config.mjs new file mode 100644 index 00000000..3416cf5c --- /dev/null +++ b/native-modules/react-native-perf-memory/eslint.config.mjs @@ -0,0 +1,5 @@ +import { createEslintConfig } from '@react-native/eslint-config'; + +export default createEslintConfig({ + extends: ['@react-native/eslint-config'], +}); diff --git a/native-modules/react-native-perf-memory/ios/ReactNativePerfMemory.swift b/native-modules/react-native-perf-memory/ios/ReactNativePerfMemory.swift new file mode 100644 index 00000000..79ec4370 --- /dev/null +++ b/native-modules/react-native-perf-memory/ios/ReactNativePerfMemory.swift @@ -0,0 +1,41 @@ +import NitroModules +import ReactNativeNativeLogger + +class ReactNativePerfMemory: HybridReactNativePerfMemorySpec { + + func getMemoryUsage() throws -> Promise { + return Promise.async { + // Prefer phys_footprint when available (closest to "real" memory impact) + var vmInfo = task_vm_info_data_t() + var count = mach_msg_type_number_t(MemoryLayout.size / MemoryLayout.size) + + let kr = withUnsafeMutablePointer(to: &vmInfo) { ptr in + ptr.withMemoryRebound(to: integer_t.self, capacity: Int(count)) { intPtr in + task_info(mach_task_self_, task_flavor_t(TASK_VM_INFO), intPtr, &count) + } + } + + if kr == KERN_SUCCESS { + let footprint = Double(vmInfo.phys_footprint) + return MemoryUsage(rss: footprint) + } + + // Fallback: resident size via mach_task_basic_info + var basicInfo = mach_task_basic_info_data_t() + var basicCount = mach_msg_type_number_t(MemoryLayout.size / MemoryLayout.size) + + let basicKr = withUnsafeMutablePointer(to: &basicInfo) { ptr in + ptr.withMemoryRebound(to: integer_t.self, capacity: Int(basicCount)) { intPtr in + task_info(mach_task_self_, task_flavor_t(MACH_TASK_BASIC_INFO), intPtr, &basicCount) + } + } + + if basicKr == KERN_SUCCESS { + return MemoryUsage(rss: Double(basicInfo.resident_size)) + } + + OneKeyLog.warn("PerfMemory", "Failed to get memory usage, kern_return: \(kr)") + return MemoryUsage(rss: 0) + } + } +} diff --git a/native-modules/react-native-perf-memory/lefthook.yml b/native-modules/react-native-perf-memory/lefthook.yml new file mode 100644 index 00000000..89766b1f --- /dev/null +++ b/native-modules/react-native-perf-memory/lefthook.yml @@ -0,0 +1,10 @@ +pre-commit: + parallel: true + commands: + lint: + glob: "*.{js,ts,tsx}" + run: yarn lint {staged_files} + typecheck: + files: git diff --cached --name-only --diff-filter=ACMRTUXB + glob: "*.{js,ts,tsx}" + run: yarn typecheck diff --git a/native-modules/react-native-perf-memory/nitro.json b/native-modules/react-native-perf-memory/nitro.json new file mode 100644 index 00000000..4e5e7556 --- /dev/null +++ b/native-modules/react-native-perf-memory/nitro.json @@ -0,0 +1,17 @@ +{ + "cxxNamespace": ["reactnativeperfmemory"], + "ios": { + "iosModuleName": "ReactNativePerfMemory" + }, + "android": { + "androidNamespace": ["reactnativeperfmemory"], + "androidCxxLibName": "reactnativeperfmemory" + }, + "autolinking": { + "ReactNativePerfMemory": { + "swift": "ReactNativePerfMemory", + "kotlin": "ReactNativePerfMemory" + } + }, + "ignorePaths": ["node_modules"] +} diff --git a/native-modules/react-native-perf-memory/package.json b/native-modules/react-native-perf-memory/package.json new file mode 100644 index 00000000..16d6577e --- /dev/null +++ b/native-modules/react-native-perf-memory/package.json @@ -0,0 +1,169 @@ +{ + "name": "@onekeyfe/react-native-perf-memory", + "version": "1.1.20", + "description": "react-native-perf-memory", + "main": "./lib/module/index.js", + "types": "./lib/typescript/src/index.d.ts", + "exports": { + ".": { + "source": "./src/index.tsx", + "types": "./lib/typescript/src/index.d.ts", + "default": "./lib/module/index.js" + }, + "./package.json": "./package.json" + }, + "files": [ + "src", + "lib", + "android", + "ios", + "cpp", + "nitrogen", + "nitro.json", + "*.podspec", + "react-native.config.js", + "!ios/build", + "!android/build", + "!android/gradle", + "!android/gradlew", + "!android/gradlew.bat", + "!android/local.properties", + "!**/__tests__", + "!**/__fixtures__", + "!**/__mocks__", + "!**/.*" + ], + "scripts": { + "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib", + "prepare": "bob build", + "nitrogen": "nitrogen", + "typecheck": "tsc", + "lint": "eslint \"**/*.{js,ts,tsx}\"", + "test": "jest", + "release": "yarn prepare && npm whoami && npm publish --access public" + }, + "keywords": [ + "react-native", + "ios", + "android" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/OneKeyHQ/app-modules/react-native-perf-memory.git" + }, + "author": "onekeyfe (https://github.com/OneKeyHQ/app-modules)", + "license": "MIT", + "bugs": { + "url": "https://github.com/OneKeyHQ/app-modules/react-native-perf-memory/issues" + }, + "homepage": "https://github.com/OneKeyHQ/app-modules/react-native-perf-memory#readme", + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "devDependencies": { + "@commitlint/config-conventional": "^19.8.1", + "@eslint/compat": "^1.3.2", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "^9.35.0", + "@react-native/babel-preset": "0.83.0", + "@react-native/eslint-config": "0.83.0", + "@release-it/conventional-changelog": "^10.0.1", + "@types/jest": "^29.5.14", + "@types/react": "^19.2.0", + "commitlint": "^19.8.1", + "del-cli": "^6.0.0", + "eslint": "^9.35.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", + "jest": "^29.7.0", + "lefthook": "^2.0.3", + "nitrogen": "0.31.10", + "prettier": "^2.8.8", + "react": "19.2.0", + "react-native": "0.83.0", + "react-native-builder-bob": "^0.40.13", + "react-native-nitro-modules": "0.33.2", + "release-it": "^19.0.4", + "turbo": "^2.5.6", + "typescript": "^5.9.2" + }, + "peerDependencies": { + "react": "*", + "react-native": "*", + "react-native-nitro-modules": "0.33.2" + }, + "react-native-builder-bob": { + "source": "src", + "output": "lib", + "targets": [ + [ + "custom", + { + "script": "nitrogen", + "clean": "nitrogen/" + } + ], + [ + "module", + { + "esm": true + } + ], + [ + "typescript", + { + "project": "tsconfig.build.json" + } + ] + ] + }, + "prettier": { + "quoteProps": "consistent", + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false + }, + "jest": { + "preset": "react-native", + "modulePathIgnorePatterns": [ + "/example/node_modules", + "/lib/" + ] + }, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] + }, + "release-it": { + "git": { + "commitMessage": "chore: release ${version}", + "tagName": "v${version}" + }, + "npm": { + "publish": true + }, + "github": { + "release": true + }, + "plugins": { + "@release-it/conventional-changelog": { + "preset": { + "name": "angular" + } + } + } + }, + "create-react-native-library": { + "type": "nitro-module", + "languages": "kotlin-swift", + "tools": [ + "eslint", + "jest", + "lefthook", + "release-it" + ], + "version": "0.56.0" + } +} diff --git a/native-modules/react-native-perf-memory/src/ReactNativePerfMemory.nitro.ts b/native-modules/react-native-perf-memory/src/ReactNativePerfMemory.nitro.ts new file mode 100644 index 00000000..2a4443d0 --- /dev/null +++ b/native-modules/react-native-perf-memory/src/ReactNativePerfMemory.nitro.ts @@ -0,0 +1,10 @@ +import type { HybridObject } from 'react-native-nitro-modules'; + +export interface MemoryUsage { + rss: number; +} + +export interface ReactNativePerfMemory + extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> { + getMemoryUsage(): Promise; +} diff --git a/native-modules/react-native-perf-memory/src/index.tsx b/native-modules/react-native-perf-memory/src/index.tsx new file mode 100644 index 00000000..a44aac90 --- /dev/null +++ b/native-modules/react-native-perf-memory/src/index.tsx @@ -0,0 +1,8 @@ +import { NitroModules } from 'react-native-nitro-modules'; +import type { ReactNativePerfMemory as ReactNativePerfMemoryType } from './ReactNativePerfMemory.nitro'; + +const ReactNativePerfMemoryHybridObject = + NitroModules.createHybridObject('ReactNativePerfMemory'); + +export const ReactNativePerfMemory = ReactNativePerfMemoryHybridObject; +export type * from './ReactNativePerfMemory.nitro'; diff --git a/native-modules/react-native-perf-memory/tsconfig.build.json b/native-modules/react-native-perf-memory/tsconfig.build.json new file mode 100644 index 00000000..45777014 --- /dev/null +++ b/native-modules/react-native-perf-memory/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "noEmit": false, + "declaration": true, + "declarationMap": true + }, + "exclude": ["**/__tests__/**/*", "**/__fixtures__/**/*", "**/__mocks__/**/*"] +} diff --git a/native-modules/react-native-perf-memory/tsconfig.json b/native-modules/react-native-perf-memory/tsconfig.json new file mode 100644 index 00000000..e6b6cdec --- /dev/null +++ b/native-modules/react-native-perf-memory/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "rootDir": ".", + "paths": { + "react-native-perf-memory": ["./src/index"] + }, + "allowUnreachableCode": false, + "allowUnusedLabels": false, + "customConditions": ["react-native-strict-api"], + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "jsx": "react-jsx", + "lib": ["ESNext"], + "module": "ESNext", + "moduleResolution": "bundler", + "noEmit": true, + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "noImplicitUseStrict": false, + "noStrictGenericChecks": false, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "ESNext", + "verbatimModuleSyntax": true + } +} diff --git a/native-modules/react-native-perf-memory/turbo.json b/native-modules/react-native-perf-memory/turbo.json new file mode 100644 index 00000000..08b9676e --- /dev/null +++ b/native-modules/react-native-perf-memory/turbo.json @@ -0,0 +1,17 @@ +{ + "extends": ["//"], + "tasks": { + "build": { + "outputs": [ + "lib/**", + "nitrogen/**" + ], + "inputs": [ + "src/**", + "android/src/**", + "ios/**", + "cpp/**" + ] + } + } +} diff --git a/native-modules/react-native-splash-screen/.gitignore b/native-modules/react-native-splash-screen/.gitignore new file mode 100644 index 00000000..357a2f9a --- /dev/null +++ b/native-modules/react-native-splash-screen/.gitignore @@ -0,0 +1,89 @@ +# OSX +# +.DS_Store + +# XDE +.expo/ + +# VSCode +.vscode/ +jsconfig.json + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace +**/.xcode.env.local + +# Android/IJ +# +.classpath +.cxx +.gradle +.idea +.project +.settings +local.properties +android.iml + +# Cocoapods +# +example/ios/Pods + +# Ruby +example/vendor/ + +# node.js +# +node_modules/ +npm-debug.log +yarn-debug.log +yarn-error.log + +# BUCK +buck-out/ +\.buckd/ +android/app/libs +android/keystores/debug.keystore + +# Yarn +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +# Expo +.expo/ + +# Turborepo +.turbo/ + +# generated by bob +lib/ + +# React Native Codegen +ios/generated +android/generated + +# React Native Nitro Modules +nitrogen/ + + + diff --git a/native-modules/react-native-splash-screen/LICENSE b/native-modules/react-native-splash-screen/LICENSE new file mode 100644 index 00000000..24ee4114 --- /dev/null +++ b/native-modules/react-native-splash-screen/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 OneKey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/native-modules/react-native-splash-screen/README.md b/native-modules/react-native-splash-screen/README.md new file mode 100644 index 00000000..2d332f90 --- /dev/null +++ b/native-modules/react-native-splash-screen/README.md @@ -0,0 +1,36 @@ +# react-native-splash-screen + +react-native-splash-screen + +## Installation + +```sh +npm install react-native-splash-screen react-native-nitro-modules + +> `react-native-nitro-modules` is required as this library relies on [Nitro Modules](https://nitro.margelo.com/). +``` + +## Usage + +```js +import { ReactNativeSplashScreen } from 'react-native-splash-screen'; + +// ... + +const result = await ReactNativeSplashScreen.hello({ message: 'World' }); +console.log(result); // { success: true, data: 'Hello, World!' } +``` + +## Contributing + +- [Development workflow](CONTRIBUTING.md#development-workflow) +- [Sending a pull request](CONTRIBUTING.md#sending-a-pull-request) +- [Code of conduct](CODE_OF_CONDUCT.md) + +## License + +MIT + +--- + +Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob) diff --git a/native-modules/react-native-splash-screen/ReactNativeSplashScreen.podspec b/native-modules/react-native-splash-screen/ReactNativeSplashScreen.podspec new file mode 100644 index 00000000..f379ef23 --- /dev/null +++ b/native-modules/react-native-splash-screen/ReactNativeSplashScreen.podspec @@ -0,0 +1,30 @@ +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.name = "ReactNativeSplashScreen" + s.version = package["version"] + s.summary = package["description"] + s.homepage = package["homepage"] + s.license = package["license"] + s.authors = package["author"] + + s.platforms = { :ios => min_ios_version_supported } + s.source = { :git => "https://github.com/OneKeyHQ/app-modules/react-native-splash-screen.git", :tag => "#{s.version}" } + + s.source_files = [ + "ios/**/*.{swift}", + "ios/**/*.{m,mm}", + "cpp/**/*.{hpp,cpp}", + ] + + s.dependency 'React-jsi' + s.dependency 'React-callinvoker' + s.dependency 'ReactNativeNativeLogger' + + load 'nitrogen/generated/ios/ReactNativeSplashScreen+autolinking.rb' + add_nitrogen_files(s) + + install_modules_dependencies(s) +end diff --git a/native-modules/react-native-splash-screen/android/CMakeLists.txt b/native-modules/react-native-splash-screen/android/CMakeLists.txt new file mode 100644 index 00000000..d5bafd6e --- /dev/null +++ b/native-modules/react-native-splash-screen/android/CMakeLists.txt @@ -0,0 +1,24 @@ +project(reactnativesplashscreen) +cmake_minimum_required(VERSION 3.9.0) + +set(PACKAGE_NAME reactnativesplashscreen) +set(CMAKE_VERBOSE_MAKEFILE ON) +set(CMAKE_CXX_STANDARD 20) + +# Define C++ library and add all sources +add_library(${PACKAGE_NAME} SHARED src/main/cpp/cpp-adapter.cpp) + +# Add Nitrogen specs :) +include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/reactnativesplashscreen+autolinking.cmake) + +# Set up local includes +include_directories("src/main/cpp" "../cpp") + +find_library(LOG_LIB log) + +# Link all libraries together +target_link_libraries( + ${PACKAGE_NAME} + ${LOG_LIB} + android # <-- Android core +) diff --git a/native-modules/react-native-splash-screen/android/build.gradle b/native-modules/react-native-splash-screen/android/build.gradle new file mode 100644 index 00000000..e496c1f7 --- /dev/null +++ b/native-modules/react-native-splash-screen/android/build.gradle @@ -0,0 +1,130 @@ +buildscript { + ext.getExtOrDefault = {name -> + return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['ReactNativeSplashScreen_' + name] + } + + repositories { + google() + mavenCentral() + } + + dependencies { + classpath "com.android.tools.build:gradle:8.7.2" + // noinspection DifferentKotlinGradleVersion + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}" + } +} + +def reactNativeArchitectures() { + def value = rootProject.getProperties().get("reactNativeArchitectures") + return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] +} + +apply plugin: "com.android.library" +apply plugin: "kotlin-android" +apply from: '../nitrogen/generated/android/reactnativesplashscreen+autolinking.gradle' + +apply plugin: "com.facebook.react" + +def getExtOrIntegerDefault(name) { + return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["ReactNativeSplashScreen_" + name]).toInteger() +} + +android { + namespace "com.margelo.nitro.reactnativesplashscreen" + + compileSdkVersion getExtOrIntegerDefault("compileSdkVersion") + + defaultConfig { + minSdkVersion getExtOrIntegerDefault("minSdkVersion") + targetSdkVersion getExtOrIntegerDefault("targetSdkVersion") + + externalNativeBuild { + cmake { + cppFlags "-frtti -fexceptions -Wall -fstack-protector-all" + arguments "-DANDROID_STL=c++_shared", "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON" + abiFilters (*reactNativeArchitectures()) + + buildTypes { + debug { + cppFlags "-O1 -g" + } + release { + cppFlags "-O2" + } + } + } + } + } + + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } + + packagingOptions { + excludes = [ + "META-INF", + "META-INF/**", + "**/libc++_shared.so", + "**/libfbjni.so", + "**/libjsi.so", + "**/libfolly_json.so", + "**/libfolly_runtime.so", + "**/libglog.so", + "**/libhermes.so", + "**/libhermes-executor-debug.so", + "**/libhermes_executor.so", + "**/libreactnative.so", + "**/libreactnativejni.so", + "**/libturbomodulejsijni.so", + "**/libreact_nativemodule_core.so", + "**/libjscexecutor.so" + ] + } + + buildFeatures { + buildConfig true + prefab true + } + + buildTypes { + release { + minifyEnabled false + } + } + + lintOptions { + disable "GradleCompatible" + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + sourceSets { + main { + java.srcDirs += [ + "generated/java", + "generated/jni" + ] + } + } +} + +repositories { + mavenCentral() + google() +} + +def kotlin_version = getExtOrDefault("kotlinVersion") + +dependencies { + implementation "com.facebook.react:react-android" + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation project(":react-native-nitro-modules") + + implementation project(":onekeyfe_react-native-native-logger") +} diff --git a/native-modules/react-native-splash-screen/android/gradle.properties b/native-modules/react-native-splash-screen/android/gradle.properties new file mode 100644 index 00000000..fdba749b --- /dev/null +++ b/native-modules/react-native-splash-screen/android/gradle.properties @@ -0,0 +1,4 @@ +ReactNativeSplashScreen_kotlinVersion=1.9.25 +ReactNativeSplashScreen_compileSdkVersion=35 +ReactNativeSplashScreen_targetSdkVersion=35 +ReactNativeSplashScreen_minSdkVersion=24 diff --git a/native-modules/react-native-splash-screen/android/src/main/AndroidManifest.xml b/native-modules/react-native-splash-screen/android/src/main/AndroidManifest.xml new file mode 100644 index 00000000..94cbbcfc --- /dev/null +++ b/native-modules/react-native-splash-screen/android/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + diff --git a/native-modules/react-native-splash-screen/android/src/main/cpp/cpp-adapter.cpp b/native-modules/react-native-splash-screen/android/src/main/cpp/cpp-adapter.cpp new file mode 100644 index 00000000..d0104976 --- /dev/null +++ b/native-modules/react-native-splash-screen/android/src/main/cpp/cpp-adapter.cpp @@ -0,0 +1,6 @@ +#include +#include "reactnativesplashscreenOnLoad.hpp" + +extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { + return margelo::nitro::reactnativesplashscreen::initialize(vm); +} diff --git a/native-modules/react-native-splash-screen/android/src/main/java/com/margelo/nitro/reactnativesplashscreen/ReactNativeSplashScreen.kt b/native-modules/react-native-splash-screen/android/src/main/java/com/margelo/nitro/reactnativesplashscreen/ReactNativeSplashScreen.kt new file mode 100644 index 00000000..2ba9f053 --- /dev/null +++ b/native-modules/react-native-splash-screen/android/src/main/java/com/margelo/nitro/reactnativesplashscreen/ReactNativeSplashScreen.kt @@ -0,0 +1,33 @@ +package com.margelo.nitro.reactnativesplashscreen + +import android.os.Build +import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise +import com.margelo.nitro.nativelogger.OneKeyLog + +@DoNotStrip +class ReactNativeSplashScreen : HybridReactNativeSplashScreenSpec() { + + override fun preventAutoHideAsync(): Promise { + return Promise.async { + OneKeyLog.info("SplashScreen", "preventAutoHideAsync OS_VERSION=${Build.VERSION.SDK_INT}") + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + return@async true + } + // For Android < 12, splash screen management is handled here + OneKeyLog.info("SplashScreen", "preventAutoHide for legacy Android") + true + } + } + + override fun hideAsync(): Promise { + return Promise.async { + OneKeyLog.info("SplashScreen", "hideAsync OS_VERSION=${Build.VERSION.SDK_INT}") + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + return@async true + } + OneKeyLog.info("SplashScreen", "hide for legacy Android") + true + } + } +} diff --git a/native-modules/react-native-splash-screen/android/src/main/java/com/margelo/nitro/reactnativesplashscreen/ReactNativeSplashScreenPackage.kt b/native-modules/react-native-splash-screen/android/src/main/java/com/margelo/nitro/reactnativesplashscreen/ReactNativeSplashScreenPackage.kt new file mode 100644 index 00000000..17c78f9e --- /dev/null +++ b/native-modules/react-native-splash-screen/android/src/main/java/com/margelo/nitro/reactnativesplashscreen/ReactNativeSplashScreenPackage.kt @@ -0,0 +1,24 @@ +package com.margelo.nitro.reactnativesplashscreen + +import com.facebook.react.BaseReactPackage +import com.facebook.react.bridge.NativeModule +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.module.model.ReactModuleInfoProvider + +class ReactNativeSplashScreenPackage : BaseReactPackage() { + override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? { + return null + } + + override fun getReactModuleInfoProvider(): ReactModuleInfoProvider { + return ReactModuleInfoProvider { HashMap() } + } + + companion object { + init { + System.loadLibrary("reactnativesplashscreen") + } + } +} + + diff --git a/native-modules/react-native-splash-screen/babel.config.js b/native-modules/react-native-splash-screen/babel.config.js new file mode 100644 index 00000000..f4cb13d5 --- /dev/null +++ b/native-modules/react-native-splash-screen/babel.config.js @@ -0,0 +1,13 @@ +module.exports = { + presets: ['@react-native/babel-preset'], + plugins: [ + [ + 'module-resolver', + { + alias: { + 'react-native-splash-screen': './src/index', + }, + }, + ], + ], +}; diff --git a/native-modules/react-native-splash-screen/eslint.config.mjs b/native-modules/react-native-splash-screen/eslint.config.mjs new file mode 100644 index 00000000..3416cf5c --- /dev/null +++ b/native-modules/react-native-splash-screen/eslint.config.mjs @@ -0,0 +1,5 @@ +import { createEslintConfig } from '@react-native/eslint-config'; + +export default createEslintConfig({ + extends: ['@react-native/eslint-config'], +}); diff --git a/native-modules/react-native-splash-screen/ios/ReactNativeSplashScreen.swift b/native-modules/react-native-splash-screen/ios/ReactNativeSplashScreen.swift new file mode 100644 index 00000000..f6015ccf --- /dev/null +++ b/native-modules/react-native-splash-screen/ios/ReactNativeSplashScreen.swift @@ -0,0 +1,15 @@ +import NitroModules +import ReactNativeNativeLogger + +class ReactNativeSplashScreen: HybridReactNativeSplashScreenSpec { + + func preventAutoHideAsync() throws -> Promise { + OneKeyLog.debug("SplashScreen", "preventAutoHideAsync - iOS uses expo-splash-screen") + return Promise.resolved(withResult: true) + } + + func hideAsync() throws -> Promise { + OneKeyLog.debug("SplashScreen", "hideAsync - iOS uses expo-splash-screen") + return Promise.resolved(withResult: true) + } +} diff --git a/native-modules/react-native-splash-screen/lefthook.yml b/native-modules/react-native-splash-screen/lefthook.yml new file mode 100644 index 00000000..89766b1f --- /dev/null +++ b/native-modules/react-native-splash-screen/lefthook.yml @@ -0,0 +1,10 @@ +pre-commit: + parallel: true + commands: + lint: + glob: "*.{js,ts,tsx}" + run: yarn lint {staged_files} + typecheck: + files: git diff --cached --name-only --diff-filter=ACMRTUXB + glob: "*.{js,ts,tsx}" + run: yarn typecheck diff --git a/native-modules/react-native-splash-screen/nitro.json b/native-modules/react-native-splash-screen/nitro.json new file mode 100644 index 00000000..1729f1e6 --- /dev/null +++ b/native-modules/react-native-splash-screen/nitro.json @@ -0,0 +1,17 @@ +{ + "cxxNamespace": ["reactnativesplashscreen"], + "ios": { + "iosModuleName": "ReactNativeSplashScreen" + }, + "android": { + "androidNamespace": ["reactnativesplashscreen"], + "androidCxxLibName": "reactnativesplashscreen" + }, + "autolinking": { + "ReactNativeSplashScreen": { + "swift": "ReactNativeSplashScreen", + "kotlin": "ReactNativeSplashScreen" + } + }, + "ignorePaths": ["node_modules"] +} diff --git a/native-modules/react-native-splash-screen/package.json b/native-modules/react-native-splash-screen/package.json new file mode 100644 index 00000000..b0089a50 --- /dev/null +++ b/native-modules/react-native-splash-screen/package.json @@ -0,0 +1,169 @@ +{ + "name": "@onekeyfe/react-native-splash-screen", + "version": "1.1.20", + "description": "react-native-splash-screen", + "main": "./lib/module/index.js", + "types": "./lib/typescript/src/index.d.ts", + "exports": { + ".": { + "source": "./src/index.tsx", + "types": "./lib/typescript/src/index.d.ts", + "default": "./lib/module/index.js" + }, + "./package.json": "./package.json" + }, + "files": [ + "src", + "lib", + "android", + "ios", + "cpp", + "nitrogen", + "nitro.json", + "*.podspec", + "react-native.config.js", + "!ios/build", + "!android/build", + "!android/gradle", + "!android/gradlew", + "!android/gradlew.bat", + "!android/local.properties", + "!**/__tests__", + "!**/__fixtures__", + "!**/__mocks__", + "!**/.*" + ], + "scripts": { + "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib", + "prepare": "bob build", + "nitrogen": "nitrogen", + "typecheck": "tsc", + "lint": "eslint \"**/*.{js,ts,tsx}\"", + "test": "jest", + "release": "yarn prepare && npm whoami && npm publish --access public" + }, + "keywords": [ + "react-native", + "ios", + "android" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/OneKeyHQ/app-modules/react-native-splash-screen.git" + }, + "author": "onekeyfe (https://github.com/OneKeyHQ/app-modules)", + "license": "MIT", + "bugs": { + "url": "https://github.com/OneKeyHQ/app-modules/react-native-splash-screen/issues" + }, + "homepage": "https://github.com/OneKeyHQ/app-modules/react-native-splash-screen#readme", + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "devDependencies": { + "@commitlint/config-conventional": "^19.8.1", + "@eslint/compat": "^1.3.2", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "^9.35.0", + "@react-native/babel-preset": "0.83.0", + "@react-native/eslint-config": "0.83.0", + "@release-it/conventional-changelog": "^10.0.1", + "@types/jest": "^29.5.14", + "@types/react": "^19.2.0", + "commitlint": "^19.8.1", + "del-cli": "^6.0.0", + "eslint": "^9.35.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", + "jest": "^29.7.0", + "lefthook": "^2.0.3", + "nitrogen": "0.31.10", + "prettier": "^2.8.8", + "react": "19.2.0", + "react-native": "0.83.0", + "react-native-builder-bob": "^0.40.13", + "react-native-nitro-modules": "0.33.2", + "release-it": "^19.0.4", + "turbo": "^2.5.6", + "typescript": "^5.9.2" + }, + "peerDependencies": { + "react": "*", + "react-native": "*", + "react-native-nitro-modules": "0.33.2" + }, + "react-native-builder-bob": { + "source": "src", + "output": "lib", + "targets": [ + [ + "custom", + { + "script": "nitrogen", + "clean": "nitrogen/" + } + ], + [ + "module", + { + "esm": true + } + ], + [ + "typescript", + { + "project": "tsconfig.build.json" + } + ] + ] + }, + "prettier": { + "quoteProps": "consistent", + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false + }, + "jest": { + "preset": "react-native", + "modulePathIgnorePatterns": [ + "/example/node_modules", + "/lib/" + ] + }, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] + }, + "release-it": { + "git": { + "commitMessage": "chore: release ${version}", + "tagName": "v${version}" + }, + "npm": { + "publish": true + }, + "github": { + "release": true + }, + "plugins": { + "@release-it/conventional-changelog": { + "preset": { + "name": "angular" + } + } + } + }, + "create-react-native-library": { + "type": "nitro-module", + "languages": "kotlin-swift", + "tools": [ + "eslint", + "jest", + "lefthook", + "release-it" + ], + "version": "0.56.0" + } +} diff --git a/native-modules/react-native-splash-screen/src/ReactNativeSplashScreen.nitro.ts b/native-modules/react-native-splash-screen/src/ReactNativeSplashScreen.nitro.ts new file mode 100644 index 00000000..7394f53c --- /dev/null +++ b/native-modules/react-native-splash-screen/src/ReactNativeSplashScreen.nitro.ts @@ -0,0 +1,7 @@ +import type { HybridObject } from 'react-native-nitro-modules'; + +export interface ReactNativeSplashScreen + extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> { + preventAutoHideAsync(): Promise; + hideAsync(): Promise; +} diff --git a/native-modules/react-native-splash-screen/src/index.tsx b/native-modules/react-native-splash-screen/src/index.tsx new file mode 100644 index 00000000..198d31a6 --- /dev/null +++ b/native-modules/react-native-splash-screen/src/index.tsx @@ -0,0 +1,8 @@ +import { NitroModules } from 'react-native-nitro-modules'; +import type { ReactNativeSplashScreen as ReactNativeSplashScreenType } from './ReactNativeSplashScreen.nitro'; + +const ReactNativeSplashScreenHybridObject = + NitroModules.createHybridObject('ReactNativeSplashScreen'); + +export const ReactNativeSplashScreen = ReactNativeSplashScreenHybridObject; +export type * from './ReactNativeSplashScreen.nitro'; diff --git a/native-modules/react-native-splash-screen/tsconfig.build.json b/native-modules/react-native-splash-screen/tsconfig.build.json new file mode 100644 index 00000000..45777014 --- /dev/null +++ b/native-modules/react-native-splash-screen/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "noEmit": false, + "declaration": true, + "declarationMap": true + }, + "exclude": ["**/__tests__/**/*", "**/__fixtures__/**/*", "**/__mocks__/**/*"] +} diff --git a/native-modules/react-native-splash-screen/tsconfig.json b/native-modules/react-native-splash-screen/tsconfig.json new file mode 100644 index 00000000..f533f09c --- /dev/null +++ b/native-modules/react-native-splash-screen/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "rootDir": ".", + "paths": { + "react-native-splash-screen": ["./src/index"] + }, + "allowUnreachableCode": false, + "allowUnusedLabels": false, + "customConditions": ["react-native-strict-api"], + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "jsx": "react-jsx", + "lib": ["ESNext"], + "module": "ESNext", + "moduleResolution": "bundler", + "noEmit": true, + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "noImplicitUseStrict": false, + "noStrictGenericChecks": false, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "ESNext", + "verbatimModuleSyntax": true + } +} diff --git a/native-modules/react-native-splash-screen/turbo.json b/native-modules/react-native-splash-screen/turbo.json new file mode 100644 index 00000000..08b9676e --- /dev/null +++ b/native-modules/react-native-splash-screen/turbo.json @@ -0,0 +1,17 @@ +{ + "extends": ["//"], + "tasks": { + "build": { + "outputs": [ + "lib/**", + "nitrogen/**" + ], + "inputs": [ + "src/**", + "android/src/**", + "ios/**", + "cpp/**" + ] + } + } +} diff --git a/native-modules/react-native-webview-checker/.gitignore b/native-modules/react-native-webview-checker/.gitignore new file mode 100644 index 00000000..357a2f9a --- /dev/null +++ b/native-modules/react-native-webview-checker/.gitignore @@ -0,0 +1,89 @@ +# OSX +# +.DS_Store + +# XDE +.expo/ + +# VSCode +.vscode/ +jsconfig.json + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace +**/.xcode.env.local + +# Android/IJ +# +.classpath +.cxx +.gradle +.idea +.project +.settings +local.properties +android.iml + +# Cocoapods +# +example/ios/Pods + +# Ruby +example/vendor/ + +# node.js +# +node_modules/ +npm-debug.log +yarn-debug.log +yarn-error.log + +# BUCK +buck-out/ +\.buckd/ +android/app/libs +android/keystores/debug.keystore + +# Yarn +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +# Expo +.expo/ + +# Turborepo +.turbo/ + +# generated by bob +lib/ + +# React Native Codegen +ios/generated +android/generated + +# React Native Nitro Modules +nitrogen/ + + + diff --git a/native-modules/react-native-webview-checker/LICENSE b/native-modules/react-native-webview-checker/LICENSE new file mode 100644 index 00000000..24ee4114 --- /dev/null +++ b/native-modules/react-native-webview-checker/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 OneKey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/native-modules/react-native-webview-checker/README.md b/native-modules/react-native-webview-checker/README.md new file mode 100644 index 00000000..98aace9c --- /dev/null +++ b/native-modules/react-native-webview-checker/README.md @@ -0,0 +1,36 @@ +# react-native-webview-checker + +react-native-webview-checker + +## Installation + +```sh +npm install react-native-webview-checker react-native-nitro-modules + +> `react-native-nitro-modules` is required as this library relies on [Nitro Modules](https://nitro.margelo.com/). +``` + +## Usage + +```js +import { ReactNativeWebviewChecker } from 'react-native-webview-checker'; + +// ... + +const result = await ReactNativeWebviewChecker.hello({ message: 'World' }); +console.log(result); // { success: true, data: 'Hello, World!' } +``` + +## Contributing + +- [Development workflow](CONTRIBUTING.md#development-workflow) +- [Sending a pull request](CONTRIBUTING.md#sending-a-pull-request) +- [Code of conduct](CODE_OF_CONDUCT.md) + +## License + +MIT + +--- + +Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob) diff --git a/native-modules/react-native-webview-checker/ReactNativeWebviewChecker.podspec b/native-modules/react-native-webview-checker/ReactNativeWebviewChecker.podspec new file mode 100644 index 00000000..e3b73436 --- /dev/null +++ b/native-modules/react-native-webview-checker/ReactNativeWebviewChecker.podspec @@ -0,0 +1,30 @@ +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +Pod::Spec.new do |s| + s.name = "ReactNativeWebviewChecker" + s.version = package["version"] + s.summary = package["description"] + s.homepage = package["homepage"] + s.license = package["license"] + s.authors = package["author"] + + s.platforms = { :ios => min_ios_version_supported } + s.source = { :git => "https://github.com/OneKeyHQ/app-modules/react-native-webview-checker.git", :tag => "#{s.version}" } + + s.source_files = [ + "ios/**/*.{swift}", + "ios/**/*.{m,mm}", + "cpp/**/*.{hpp,cpp}", + ] + + s.dependency 'React-jsi' + s.dependency 'React-callinvoker' + s.dependency 'ReactNativeNativeLogger' + + load 'nitrogen/generated/ios/ReactNativeWebviewChecker+autolinking.rb' + add_nitrogen_files(s) + + install_modules_dependencies(s) +end diff --git a/native-modules/react-native-webview-checker/android/CMakeLists.txt b/native-modules/react-native-webview-checker/android/CMakeLists.txt new file mode 100644 index 00000000..45e11dcf --- /dev/null +++ b/native-modules/react-native-webview-checker/android/CMakeLists.txt @@ -0,0 +1,24 @@ +project(reactnativewebviewchecker) +cmake_minimum_required(VERSION 3.9.0) + +set(PACKAGE_NAME reactnativewebviewchecker) +set(CMAKE_VERBOSE_MAKEFILE ON) +set(CMAKE_CXX_STANDARD 20) + +# Define C++ library and add all sources +add_library(${PACKAGE_NAME} SHARED src/main/cpp/cpp-adapter.cpp) + +# Add Nitrogen specs :) +include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/reactnativewebviewchecker+autolinking.cmake) + +# Set up local includes +include_directories("src/main/cpp" "../cpp") + +find_library(LOG_LIB log) + +# Link all libraries together +target_link_libraries( + ${PACKAGE_NAME} + ${LOG_LIB} + android # <-- Android core +) diff --git a/native-modules/react-native-webview-checker/android/build.gradle b/native-modules/react-native-webview-checker/android/build.gradle new file mode 100644 index 00000000..60d43cc1 --- /dev/null +++ b/native-modules/react-native-webview-checker/android/build.gradle @@ -0,0 +1,132 @@ +buildscript { + ext.getExtOrDefault = {name -> + return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['ReactNativeWebviewChecker_' + name] + } + + repositories { + google() + mavenCentral() + } + + dependencies { + classpath "com.android.tools.build:gradle:8.7.2" + // noinspection DifferentKotlinGradleVersion + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}" + } +} + +def reactNativeArchitectures() { + def value = rootProject.getProperties().get("reactNativeArchitectures") + return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] +} + +apply plugin: "com.android.library" +apply plugin: "kotlin-android" +apply from: '../nitrogen/generated/android/reactnativewebviewchecker+autolinking.gradle' + +apply plugin: "com.facebook.react" + +def getExtOrIntegerDefault(name) { + return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["ReactNativeWebviewChecker_" + name]).toInteger() +} + +android { + namespace "com.margelo.nitro.reactnativewebviewchecker" + + compileSdkVersion getExtOrIntegerDefault("compileSdkVersion") + + defaultConfig { + minSdkVersion getExtOrIntegerDefault("minSdkVersion") + targetSdkVersion getExtOrIntegerDefault("targetSdkVersion") + + externalNativeBuild { + cmake { + cppFlags "-frtti -fexceptions -Wall -fstack-protector-all" + arguments "-DANDROID_STL=c++_shared", "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON" + abiFilters (*reactNativeArchitectures()) + + buildTypes { + debug { + cppFlags "-O1 -g" + } + release { + cppFlags "-O2" + } + } + } + } + } + + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } + + packagingOptions { + excludes = [ + "META-INF", + "META-INF/**", + "**/libc++_shared.so", + "**/libfbjni.so", + "**/libjsi.so", + "**/libfolly_json.so", + "**/libfolly_runtime.so", + "**/libglog.so", + "**/libhermes.so", + "**/libhermes-executor-debug.so", + "**/libhermes_executor.so", + "**/libreactnative.so", + "**/libreactnativejni.so", + "**/libturbomodulejsijni.so", + "**/libreact_nativemodule_core.so", + "**/libjscexecutor.so" + ] + } + + buildFeatures { + buildConfig true + prefab true + } + + buildTypes { + release { + minifyEnabled false + } + } + + lintOptions { + disable "GradleCompatible" + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + sourceSets { + main { + java.srcDirs += [ + "generated/java", + "generated/jni" + ] + } + } +} + +repositories { + mavenCentral() + google() +} + +def kotlin_version = getExtOrDefault("kotlinVersion") + +dependencies { + implementation "com.facebook.react:react-android" + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation project(":react-native-nitro-modules") + + implementation project(":onekeyfe_react-native-native-logger") + + implementation "com.google.android.gms:play-services-base:18.5.0" +} diff --git a/native-modules/react-native-webview-checker/android/gradle.properties b/native-modules/react-native-webview-checker/android/gradle.properties new file mode 100644 index 00000000..dcf6bfe8 --- /dev/null +++ b/native-modules/react-native-webview-checker/android/gradle.properties @@ -0,0 +1,4 @@ +ReactNativeWebviewChecker_kotlinVersion=1.9.25 +ReactNativeWebviewChecker_compileSdkVersion=35 +ReactNativeWebviewChecker_targetSdkVersion=35 +ReactNativeWebviewChecker_minSdkVersion=24 diff --git a/native-modules/react-native-webview-checker/android/src/main/AndroidManifest.xml b/native-modules/react-native-webview-checker/android/src/main/AndroidManifest.xml new file mode 100644 index 00000000..94cbbcfc --- /dev/null +++ b/native-modules/react-native-webview-checker/android/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + diff --git a/native-modules/react-native-webview-checker/android/src/main/cpp/cpp-adapter.cpp b/native-modules/react-native-webview-checker/android/src/main/cpp/cpp-adapter.cpp new file mode 100644 index 00000000..3cbab2db --- /dev/null +++ b/native-modules/react-native-webview-checker/android/src/main/cpp/cpp-adapter.cpp @@ -0,0 +1,6 @@ +#include +#include "reactnativewebviewcheckerOnLoad.hpp" + +extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { + return margelo::nitro::reactnativewebviewchecker::initialize(vm); +} diff --git a/native-modules/react-native-webview-checker/android/src/main/java/com/margelo/nitro/reactnativewebviewchecker/ReactNativeWebviewChecker.kt b/native-modules/react-native-webview-checker/android/src/main/java/com/margelo/nitro/reactnativewebviewchecker/ReactNativeWebviewChecker.kt new file mode 100644 index 00000000..8e7d81f9 --- /dev/null +++ b/native-modules/react-native-webview-checker/android/src/main/java/com/margelo/nitro/reactnativewebviewchecker/ReactNativeWebviewChecker.kt @@ -0,0 +1,56 @@ +package com.margelo.nitro.reactnativewebviewchecker + +import com.facebook.proguard.annotations.DoNotStrip +import com.margelo.nitro.core.Promise +import com.margelo.nitro.NitroModules +import com.margelo.nitro.nativelogger.OneKeyLog + +@DoNotStrip +class ReactNativeWebviewChecker : HybridReactNativeWebviewCheckerSpec() { + + override fun getCurrentWebViewPackageInfo(): Promise { + return Promise.async { + val context = NitroModules.applicationContext + ?: throw Exception("Application context unavailable") + val pm = context.packageManager + val pInfo = pm.getPackageInfo("com.google.android.webview", 0) + OneKeyLog.info( + "WebviewChecker", + "WebView: ${pInfo.packageName} ${pInfo.versionName} ${pInfo.versionCode}" + ) + WebViewPackageInfo( + packageName = pInfo.packageName, + versionName = pInfo.versionName ?: "", + versionCode = pInfo.versionCode.toDouble() + ) + } + } + + override fun isGooglePlayServicesAvailable(): Promise { + return Promise.async { + val context = NitroModules.applicationContext + ?: throw Exception("Application context unavailable") + try { + val googleApiAvailability = + com.google.android.gms.common.GoogleApiAvailability.getInstance() + val status = googleApiAvailability.isGooglePlayServicesAvailable(context) + val isSuccess = + status == com.google.android.gms.common.ConnectionResult.SUCCESS + OneKeyLog.info( + "WebviewChecker", + "Play Services status=$status isAvailable=$isSuccess" + ) + GooglePlayServicesStatus( + status = status.toDouble(), + isAvailable = isSuccess + ) + } catch (e: Exception) { + OneKeyLog.error( + "WebviewChecker", + "Play Services check failed: ${e.message}" + ) + GooglePlayServicesStatus(status = -1.0, isAvailable = false) + } + } + } +} diff --git a/native-modules/react-native-webview-checker/android/src/main/java/com/margelo/nitro/reactnativewebviewchecker/ReactNativeWebviewCheckerPackage.kt b/native-modules/react-native-webview-checker/android/src/main/java/com/margelo/nitro/reactnativewebviewchecker/ReactNativeWebviewCheckerPackage.kt new file mode 100644 index 00000000..debd0492 --- /dev/null +++ b/native-modules/react-native-webview-checker/android/src/main/java/com/margelo/nitro/reactnativewebviewchecker/ReactNativeWebviewCheckerPackage.kt @@ -0,0 +1,24 @@ +package com.margelo.nitro.reactnativewebviewchecker + +import com.facebook.react.BaseReactPackage +import com.facebook.react.bridge.NativeModule +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.module.model.ReactModuleInfoProvider + +class ReactNativeWebviewCheckerPackage : BaseReactPackage() { + override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? { + return null + } + + override fun getReactModuleInfoProvider(): ReactModuleInfoProvider { + return ReactModuleInfoProvider { HashMap() } + } + + companion object { + init { + System.loadLibrary("reactnativewebviewchecker") + } + } +} + + diff --git a/native-modules/react-native-webview-checker/babel.config.js b/native-modules/react-native-webview-checker/babel.config.js new file mode 100644 index 00000000..6db04f91 --- /dev/null +++ b/native-modules/react-native-webview-checker/babel.config.js @@ -0,0 +1,13 @@ +module.exports = { + presets: ['@react-native/babel-preset'], + plugins: [ + [ + 'module-resolver', + { + alias: { + 'react-native-webview-checker': './src/index', + }, + }, + ], + ], +}; diff --git a/native-modules/react-native-webview-checker/eslint.config.mjs b/native-modules/react-native-webview-checker/eslint.config.mjs new file mode 100644 index 00000000..3416cf5c --- /dev/null +++ b/native-modules/react-native-webview-checker/eslint.config.mjs @@ -0,0 +1,5 @@ +import { createEslintConfig } from '@react-native/eslint-config'; + +export default createEslintConfig({ + extends: ['@react-native/eslint-config'], +}); diff --git a/native-modules/react-native-webview-checker/ios/ReactNativeWebviewChecker.swift b/native-modules/react-native-webview-checker/ios/ReactNativeWebviewChecker.swift new file mode 100644 index 00000000..140b5a11 --- /dev/null +++ b/native-modules/react-native-webview-checker/ios/ReactNativeWebviewChecker.swift @@ -0,0 +1,21 @@ +import NitroModules +import UIKit +import ReactNativeNativeLogger + +class ReactNativeWebviewChecker: HybridReactNativeWebviewCheckerSpec { + + func getCurrentWebViewPackageInfo() throws -> Promise { + return Promise.resolved(withResult: WebViewPackageInfo( + packageName: "com.apple.WebKit", + versionName: UIDevice.current.systemVersion, + versionCode: 0 + )) + } + + func isGooglePlayServicesAvailable() throws -> Promise { + return Promise.resolved(withResult: GooglePlayServicesStatus( + status: -1, + isAvailable: false + )) + } +} diff --git a/native-modules/react-native-webview-checker/lefthook.yml b/native-modules/react-native-webview-checker/lefthook.yml new file mode 100644 index 00000000..89766b1f --- /dev/null +++ b/native-modules/react-native-webview-checker/lefthook.yml @@ -0,0 +1,10 @@ +pre-commit: + parallel: true + commands: + lint: + glob: "*.{js,ts,tsx}" + run: yarn lint {staged_files} + typecheck: + files: git diff --cached --name-only --diff-filter=ACMRTUXB + glob: "*.{js,ts,tsx}" + run: yarn typecheck diff --git a/native-modules/react-native-webview-checker/nitro.json b/native-modules/react-native-webview-checker/nitro.json new file mode 100644 index 00000000..7994f9dd --- /dev/null +++ b/native-modules/react-native-webview-checker/nitro.json @@ -0,0 +1,17 @@ +{ + "cxxNamespace": ["reactnativewebviewchecker"], + "ios": { + "iosModuleName": "ReactNativeWebviewChecker" + }, + "android": { + "androidNamespace": ["reactnativewebviewchecker"], + "androidCxxLibName": "reactnativewebviewchecker" + }, + "autolinking": { + "ReactNativeWebviewChecker": { + "swift": "ReactNativeWebviewChecker", + "kotlin": "ReactNativeWebviewChecker" + } + }, + "ignorePaths": ["node_modules"] +} diff --git a/native-modules/react-native-webview-checker/package.json b/native-modules/react-native-webview-checker/package.json new file mode 100644 index 00000000..6f03f231 --- /dev/null +++ b/native-modules/react-native-webview-checker/package.json @@ -0,0 +1,169 @@ +{ + "name": "@onekeyfe/react-native-webview-checker", + "version": "1.1.20", + "description": "react-native-webview-checker", + "main": "./lib/module/index.js", + "types": "./lib/typescript/src/index.d.ts", + "exports": { + ".": { + "source": "./src/index.tsx", + "types": "./lib/typescript/src/index.d.ts", + "default": "./lib/module/index.js" + }, + "./package.json": "./package.json" + }, + "files": [ + "src", + "lib", + "android", + "ios", + "cpp", + "nitrogen", + "nitro.json", + "*.podspec", + "react-native.config.js", + "!ios/build", + "!android/build", + "!android/gradle", + "!android/gradlew", + "!android/gradlew.bat", + "!android/local.properties", + "!**/__tests__", + "!**/__fixtures__", + "!**/__mocks__", + "!**/.*" + ], + "scripts": { + "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib", + "prepare": "bob build", + "nitrogen": "nitrogen", + "typecheck": "tsc", + "lint": "eslint \"**/*.{js,ts,tsx}\"", + "test": "jest", + "release": "yarn prepare && npm whoami && npm publish --access public" + }, + "keywords": [ + "react-native", + "ios", + "android" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/OneKeyHQ/app-modules/react-native-webview-checker.git" + }, + "author": "onekeyfe (https://github.com/OneKeyHQ/app-modules)", + "license": "MIT", + "bugs": { + "url": "https://github.com/OneKeyHQ/app-modules/react-native-webview-checker/issues" + }, + "homepage": "https://github.com/OneKeyHQ/app-modules/react-native-webview-checker#readme", + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "devDependencies": { + "@commitlint/config-conventional": "^19.8.1", + "@eslint/compat": "^1.3.2", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "^9.35.0", + "@react-native/babel-preset": "0.83.0", + "@react-native/eslint-config": "0.83.0", + "@release-it/conventional-changelog": "^10.0.1", + "@types/jest": "^29.5.14", + "@types/react": "^19.2.0", + "commitlint": "^19.8.1", + "del-cli": "^6.0.0", + "eslint": "^9.35.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", + "jest": "^29.7.0", + "lefthook": "^2.0.3", + "nitrogen": "0.31.10", + "prettier": "^2.8.8", + "react": "19.2.0", + "react-native": "0.83.0", + "react-native-builder-bob": "^0.40.13", + "react-native-nitro-modules": "0.33.2", + "release-it": "^19.0.4", + "turbo": "^2.5.6", + "typescript": "^5.9.2" + }, + "peerDependencies": { + "react": "*", + "react-native": "*", + "react-native-nitro-modules": "0.33.2" + }, + "react-native-builder-bob": { + "source": "src", + "output": "lib", + "targets": [ + [ + "custom", + { + "script": "nitrogen", + "clean": "nitrogen/" + } + ], + [ + "module", + { + "esm": true + } + ], + [ + "typescript", + { + "project": "tsconfig.build.json" + } + ] + ] + }, + "prettier": { + "quoteProps": "consistent", + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false + }, + "jest": { + "preset": "react-native", + "modulePathIgnorePatterns": [ + "/example/node_modules", + "/lib/" + ] + }, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] + }, + "release-it": { + "git": { + "commitMessage": "chore: release ${version}", + "tagName": "v${version}" + }, + "npm": { + "publish": true + }, + "github": { + "release": true + }, + "plugins": { + "@release-it/conventional-changelog": { + "preset": { + "name": "angular" + } + } + } + }, + "create-react-native-library": { + "type": "nitro-module", + "languages": "kotlin-swift", + "tools": [ + "eslint", + "jest", + "lefthook", + "release-it" + ], + "version": "0.56.0" + } +} diff --git a/native-modules/react-native-webview-checker/src/ReactNativeWebviewChecker.nitro.ts b/native-modules/react-native-webview-checker/src/ReactNativeWebviewChecker.nitro.ts new file mode 100644 index 00000000..4f3cb8e9 --- /dev/null +++ b/native-modules/react-native-webview-checker/src/ReactNativeWebviewChecker.nitro.ts @@ -0,0 +1,18 @@ +import type { HybridObject } from 'react-native-nitro-modules'; + +export interface WebViewPackageInfo { + packageName: string; + versionName: string; + versionCode: number; +} + +export interface GooglePlayServicesStatus { + status: number; + isAvailable: boolean; +} + +export interface ReactNativeWebviewChecker + extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> { + getCurrentWebViewPackageInfo(): Promise; + isGooglePlayServicesAvailable(): Promise; +} diff --git a/native-modules/react-native-webview-checker/src/index.tsx b/native-modules/react-native-webview-checker/src/index.tsx new file mode 100644 index 00000000..c812e76a --- /dev/null +++ b/native-modules/react-native-webview-checker/src/index.tsx @@ -0,0 +1,8 @@ +import { NitroModules } from 'react-native-nitro-modules'; +import type { ReactNativeWebviewChecker as ReactNativeWebviewCheckerType } from './ReactNativeWebviewChecker.nitro'; + +const ReactNativeWebviewCheckerHybridObject = + NitroModules.createHybridObject('ReactNativeWebviewChecker'); + +export const ReactNativeWebviewChecker = ReactNativeWebviewCheckerHybridObject; +export type * from './ReactNativeWebviewChecker.nitro'; diff --git a/native-modules/react-native-webview-checker/tsconfig.build.json b/native-modules/react-native-webview-checker/tsconfig.build.json new file mode 100644 index 00000000..45777014 --- /dev/null +++ b/native-modules/react-native-webview-checker/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "noEmit": false, + "declaration": true, + "declarationMap": true + }, + "exclude": ["**/__tests__/**/*", "**/__fixtures__/**/*", "**/__mocks__/**/*"] +} diff --git a/native-modules/react-native-webview-checker/tsconfig.json b/native-modules/react-native-webview-checker/tsconfig.json new file mode 100644 index 00000000..4f0d2732 --- /dev/null +++ b/native-modules/react-native-webview-checker/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "rootDir": ".", + "paths": { + "react-native-webview-checker": ["./src/index"] + }, + "allowUnreachableCode": false, + "allowUnusedLabels": false, + "customConditions": ["react-native-strict-api"], + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "jsx": "react-jsx", + "lib": ["ESNext"], + "module": "ESNext", + "moduleResolution": "bundler", + "noEmit": true, + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "noImplicitUseStrict": false, + "noStrictGenericChecks": false, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "ESNext", + "verbatimModuleSyntax": true + } +} diff --git a/native-modules/react-native-webview-checker/turbo.json b/native-modules/react-native-webview-checker/turbo.json new file mode 100644 index 00000000..08b9676e --- /dev/null +++ b/native-modules/react-native-webview-checker/turbo.json @@ -0,0 +1,17 @@ +{ + "extends": ["//"], + "tasks": { + "build": { + "outputs": [ + "lib/**", + "nitrogen/**" + ], + "inputs": [ + "src/**", + "android/src/**", + "ios/**", + "cpp/**" + ] + } + } +} diff --git a/yarn.lock b/yarn.lock index 9cbb1fc3..2820949a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3096,6 +3096,42 @@ __metadata: languageName: unknown linkType: soft +"@onekeyfe/react-native-perf-memory@workspace:native-modules/react-native-perf-memory": + version: 0.0.0-use.local + resolution: "@onekeyfe/react-native-perf-memory@workspace:native-modules/react-native-perf-memory" + dependencies: + "@commitlint/config-conventional": "npm:^19.8.1" + "@eslint/compat": "npm:^1.3.2" + "@eslint/eslintrc": "npm:^3.3.1" + "@eslint/js": "npm:^9.35.0" + "@react-native/babel-preset": "npm:0.83.0" + "@react-native/eslint-config": "npm:0.83.0" + "@release-it/conventional-changelog": "npm:^10.0.1" + "@types/jest": "npm:^29.5.14" + "@types/react": "npm:^19.2.0" + commitlint: "npm:^19.8.1" + del-cli: "npm:^6.0.0" + eslint: "npm:^9.35.0" + eslint-config-prettier: "npm:^10.1.8" + eslint-plugin-prettier: "npm:^5.5.4" + jest: "npm:^29.7.0" + lefthook: "npm:^2.0.3" + nitrogen: "npm:0.31.10" + prettier: "npm:^2.8.8" + react: "npm:19.2.0" + react-native: "npm:0.83.0" + react-native-builder-bob: "npm:^0.40.13" + react-native-nitro-modules: "npm:0.33.2" + release-it: "npm:^19.0.4" + turbo: "npm:^2.5.6" + typescript: "npm:^5.9.2" + peerDependencies: + react: "*" + react-native: "*" + react-native-nitro-modules: 0.33.2 + languageName: unknown + linkType: soft + "@onekeyfe/react-native-skeleton@workspace:*, @onekeyfe/react-native-skeleton@workspace:native-views/react-native-skeleton": version: 0.0.0-use.local resolution: "@onekeyfe/react-native-skeleton@workspace:native-views/react-native-skeleton" From 9c4275ab064f21eaab5ad9703cf18c32010dc8f2 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sun, 1 Mar 2026 17:21:36 +0800 Subject: [PATCH 18/94] feat: add example test pages for new native modules Add test pages for BundleUpdate, AppUpdate, PerfMemory, SplashScreen, and WebViewChecker modules. Also add LaunchOptions and ExitApp tests to the existing DeviceUtils test page. --- example/react-native/package.json | 5 + .../react-native/pages/AppUpdateTestPage.tsx | 186 ++++++++++++++ .../pages/BundleUpdateTestPage.tsx | 227 ++++++++++++++++++ .../pages/DeviceUtilsTestPage.tsx | 116 ++++++++- .../react-native/pages/PerfMemoryTestPage.tsx | 132 ++++++++++ .../pages/SplashScreenTestPage.tsx | 97 ++++++++ .../pages/WebViewCheckerTestPage.tsx | 113 +++++++++ example/react-native/route.tsx | 47 +++- 8 files changed, 920 insertions(+), 3 deletions(-) create mode 100644 example/react-native/pages/AppUpdateTestPage.tsx create mode 100644 example/react-native/pages/BundleUpdateTestPage.tsx create mode 100644 example/react-native/pages/PerfMemoryTestPage.tsx create mode 100644 example/react-native/pages/SplashScreenTestPage.tsx create mode 100644 example/react-native/pages/WebViewCheckerTestPage.tsx diff --git a/example/react-native/package.json b/example/react-native/package.json index 6c5dc870..a6932387 100644 --- a/example/react-native/package.json +++ b/example/react-native/package.json @@ -19,7 +19,12 @@ "@onekeyfe/react-native-keychain-module": "workspace:*", "@onekeyfe/react-native-lite-card": "workspace:*", "@onekeyfe/react-native-native-logger": "workspace:*", + "@onekeyfe/react-native-perf-memory": "workspace:*", "@onekeyfe/react-native-skeleton": "workspace:*", + "@onekeyfe/react-native-splash-screen": "workspace:*", + "@onekeyfe/react-native-webview-checker": "workspace:*", + "@onekeyfe/react-native-bundle-update": "workspace:*", + "@onekeyfe/react-native-app-update": "workspace:*", "@react-native/new-app-screen": "0.83.0", "fast-base64-decode": "*", "react": "19.2.0", diff --git a/example/react-native/pages/AppUpdateTestPage.tsx b/example/react-native/pages/AppUpdateTestPage.tsx new file mode 100644 index 00000000..d5717e15 --- /dev/null +++ b/example/react-native/pages/AppUpdateTestPage.tsx @@ -0,0 +1,186 @@ +import { useState, useRef, useEffect } from 'react'; +import { View, Text, StyleSheet, Alert } from 'react-native'; +import { TestPageBase, TestButton, TestInput, TestResult } from './TestPageBase'; +import { ReactNativeAppUpdate } from '@onekeyfe/react-native-app-update'; + +interface AppUpdateTestPageProps { + onGoHome: () => void; + safeAreaInsets: any; +} + +export function AppUpdateTestPage({ onGoHome, safeAreaInsets }: AppUpdateTestPageProps) { + const [result, setResult] = useState(null); + const [error, setError] = useState(null); + const [downloadUrl, setDownloadUrl] = useState(''); + const [filePath, setFilePath] = useState(''); + const listenerIdRef = useRef(null); + + useEffect(() => { + return () => { + if (listenerIdRef.current !== null) { + ReactNativeAppUpdate.removeDownloadListener(listenerIdRef.current); + } + }; + }, []); + + const clearResults = () => { + setResult(null); + setError(null); + }; + + const testClearCache = async () => { + clearResults(); + try { + await ReactNativeAppUpdate.clearCache(); + setResult({ cacheCleared: true }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testDownloadAPK = async () => { + clearResults(); + if (!downloadUrl) { + setError('Please enter a download URL'); + return; + } + try { + await ReactNativeAppUpdate.downloadAPK({ + downloadUrl, + filePath: filePath || 'update.apk', + notificationTitle: 'Downloading Update', + fileSize: 0, + }); + setResult({ downloadStarted: true }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testVerifyAPK = async () => { + clearResults(); + if (!downloadUrl || !filePath) { + setError('Please enter both download URL and file path'); + return; + } + try { + await ReactNativeAppUpdate.verifyAPK({ downloadUrl, filePath }); + setResult({ verified: true }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testInstallAPK = async () => { + if (!downloadUrl || !filePath) { + setError('Please enter both download URL and file path'); + return; + } + Alert.alert( + 'Confirm', + 'This will attempt to install the APK. Continue?', + [ + { text: 'Cancel', style: 'cancel' }, + { + text: 'Install', + onPress: async () => { + clearResults(); + try { + await ReactNativeAppUpdate.installAPK({ downloadUrl, filePath }); + setResult({ installTriggered: true }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }, + }, + ], + ); + }; + + const testAddDownloadListener = () => { + clearResults(); + try { + if (listenerIdRef.current !== null) { + Alert.alert('Info', 'Listener already registered'); + return; + } + const id = ReactNativeAppUpdate.addDownloadListener((event) => { + setResult({ + downloadEvent: event, + timestamp: new Date().toLocaleTimeString(), + }); + }); + listenerIdRef.current = id; + setResult({ listenerRegistered: true, listenerId: id }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + return ( + + {/* Download Parameters */} + + APK Download & Install (Android) + + + + + + + + {/* Cache & Events */} + + Cache & Events + + + + + + + + Instructions: + + • This module handles APK downloads and installs (Android only){'\n'} + • On iOS, all operations are no-ops{'\n'} + • Register a download listener to track progress events + + + + ); +} + +const styles = StyleSheet.create({ + section: { + marginBottom: 20, + }, + sectionTitle: { + fontSize: 18, + fontWeight: '600', + color: '#333', + marginBottom: 10, + }, + instructionsContainer: { + backgroundColor: '#fff3cd', + padding: 15, + borderRadius: 8, + marginTop: 20, + borderLeftWidth: 4, + borderLeftColor: '#ffc107', + }, + instructionsTitle: { + fontSize: 16, + fontWeight: '600', + color: '#856404', + marginBottom: 8, + }, + instructionsText: { + fontSize: 14, + color: '#856404', + lineHeight: 20, + }, +}); diff --git a/example/react-native/pages/BundleUpdateTestPage.tsx b/example/react-native/pages/BundleUpdateTestPage.tsx new file mode 100644 index 00000000..07772afe --- /dev/null +++ b/example/react-native/pages/BundleUpdateTestPage.tsx @@ -0,0 +1,227 @@ +import { useState, useRef, useEffect } from 'react'; +import { View, Text, StyleSheet, Alert } from 'react-native'; +import { TestPageBase, TestButton, TestInput, TestResult } from './TestPageBase'; +import { ReactNativeBundleUpdate } from '@onekeyfe/react-native-bundle-update'; + +interface BundleUpdateTestPageProps { + onGoHome: () => void; + safeAreaInsets: any; +} + +export function BundleUpdateTestPage({ onGoHome, safeAreaInsets }: BundleUpdateTestPageProps) { + const [result, setResult] = useState(null); + const [error, setError] = useState(null); + const [appVersion, setAppVersion] = useState(''); + const [bundleVersion, setBundleVersion] = useState(''); + const listenerIdRef = useRef(null); + + useEffect(() => { + return () => { + if (listenerIdRef.current !== null) { + ReactNativeBundleUpdate.removeDownloadListener(listenerIdRef.current); + } + }; + }, []); + + const clearResults = () => { + setResult(null); + setError(null); + }; + + const testGetWebEmbedPath = () => { + clearResults(); + try { + const path = ReactNativeBundleUpdate.getWebEmbedPath(); + setResult({ webEmbedPath: path || '(empty)' }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testGetWebEmbedPathAsync = async () => { + clearResults(); + try { + const path = await ReactNativeBundleUpdate.getWebEmbedPathAsync(); + setResult({ webEmbedPathAsync: path || '(empty)' }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testGetJsBundlePath = async () => { + clearResults(); + try { + const path = await ReactNativeBundleUpdate.getJsBundlePath(); + setResult({ jsBundlePath: path || '(empty)' }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testGetNativeAppVersion = async () => { + clearResults(); + try { + const version = await ReactNativeBundleUpdate.getNativeAppVersion(); + setResult({ nativeAppVersion: version }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testGetFallbackBundleData = async () => { + clearResults(); + try { + const data = await ReactNativeBundleUpdate.getFallbackUpdateBundleData(); + setResult({ fallbackBundleData: data }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testListLocalBundles = async () => { + clearResults(); + try { + const bundles = await ReactNativeBundleUpdate.listLocalBundles(); + setResult({ localBundles: bundles }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testIsBundleExists = async () => { + clearResults(); + if (!appVersion || !bundleVersion) { + setError('Please enter both app version and bundle version'); + return; + } + try { + const exists = await ReactNativeBundleUpdate.isBundleExists(appVersion, bundleVersion); + setResult({ bundleExists: exists, appVersion, bundleVersion }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testVerification = async () => { + clearResults(); + try { + const ok = await ReactNativeBundleUpdate.testVerification(); + setResult({ verificationTest: ok }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testClearBundle = async () => { + clearResults(); + try { + await ReactNativeBundleUpdate.clearBundle(); + setResult({ cleared: true }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testClearAllJSBundleData = async () => { + Alert.alert( + 'Confirm', + 'This will clear ALL JS bundle data. Continue?', + [ + { text: 'Cancel', style: 'cancel' }, + { + text: 'Clear All', + style: 'destructive', + onPress: async () => { + clearResults(); + try { + const r = await ReactNativeBundleUpdate.clearAllJSBundleData(); + setResult({ clearAll: r }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }, + }, + ], + ); + }; + + const testAddDownloadListener = () => { + clearResults(); + try { + if (listenerIdRef.current !== null) { + Alert.alert('Info', 'Listener already registered'); + return; + } + const id = ReactNativeBundleUpdate.addDownloadListener((event) => { + setResult({ + downloadEvent: event, + timestamp: new Date().toLocaleTimeString(), + }); + }); + listenerIdRef.current = id; + setResult({ listenerRegistered: true, listenerId: id }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + return ( + + {/* Path & Version Info */} + + Paths & Info + + + + + + + {/* Bundle Data */} + + Bundle Data + + + + + {/* Bundle Exists Check */} + + Check Bundle Exists + + + + + + {/* Verification & Cleanup */} + + Verification & Cleanup + + + + + + {/* Events */} + + Download Events + + + + + + ); +} + +const styles = StyleSheet.create({ + section: { + marginBottom: 20, + }, + sectionTitle: { + fontSize: 18, + fontWeight: '600', + color: '#333', + marginBottom: 10, + }, +}); diff --git a/example/react-native/pages/DeviceUtilsTestPage.tsx b/example/react-native/pages/DeviceUtilsTestPage.tsx index 64da2e7c..ecf98015 100644 --- a/example/react-native/pages/DeviceUtilsTestPage.tsx +++ b/example/react-native/pages/DeviceUtilsTestPage.tsx @@ -223,6 +223,75 @@ export function DeviceUtilsTestPage({ onGoHome, safeAreaInsets }: DeviceUtilsTes } }; + // LaunchOptionsManager methods + const testGetLaunchOptions = async () => { + clearResults(); + try { + const options = await deviceUtils.getLaunchOptions(); + setResult({ launchOptions: options }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testClearLaunchOptions = async () => { + clearResults(); + try { + const ok = await deviceUtils.clearLaunchOptions(); + setResult({ clearLaunchOptions: ok }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testGetDeviceToken = async () => { + clearResults(); + try { + const token = await deviceUtils.getDeviceToken(); + setResult({ deviceToken: token || '(empty)' }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testRegisterDeviceToken = async () => { + clearResults(); + try { + const ok = await deviceUtils.registerDeviceToken(); + setResult({ registerDeviceToken: ok }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testGetStartupTime = async () => { + clearResults(); + try { + const time = await deviceUtils.getStartupTime(); + setResult({ startupTime: time, startupTimeMs: `${time} ms` }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + // ExitModule + const testExitApp = () => { + Alert.alert( + 'Confirm', + 'This will terminate the app. Continue?', + [ + { text: 'Cancel', style: 'cancel' }, + { + text: 'Exit', + style: 'destructive', + onPress: () => { + deviceUtils.exitApp(); + }, + }, + ], + ); + }; + return ( + {/* Launch Options */} + + Launch Options + + + + + + + + + + + + + {/* Exit App */} + + Exit App + + + + {/* Results */} - + {/* Instructions */} Instructions: @@ -392,7 +501,10 @@ export function DeviceUtilsTestPage({ onGoHome, safeAreaInsets }: DeviceUtilsTes • Dual Screen: Works best on Surface Duo or devices with external displays{'\n'} • Spanning: Try rotating device or connecting external display{'\n'} • Callback: Register once, then test spanning changes{'\n'} - • Background: Changes system UI colors (status bar, navigation bar) + • Background: Changes system UI colors (status bar, navigation bar){'\n'} + • Launch Options: Shows how the app was launched (notification, deep link, etc.){'\n'} + • Startup Time: Time in ms from native app start{'\n'} + • Exit App: Terminates the app process (with confirmation) diff --git a/example/react-native/pages/PerfMemoryTestPage.tsx b/example/react-native/pages/PerfMemoryTestPage.tsx new file mode 100644 index 00000000..2f6828d2 --- /dev/null +++ b/example/react-native/pages/PerfMemoryTestPage.tsx @@ -0,0 +1,132 @@ +import { useState, useRef, useEffect } from 'react'; +import { View, Text, StyleSheet } from 'react-native'; +import { TestPageBase, TestButton, TestResult } from './TestPageBase'; +import { ReactNativePerfMemory } from '@onekeyfe/react-native-perf-memory'; + +interface PerfMemoryTestPageProps { + onGoHome: () => void; + safeAreaInsets: any; +} + +export function PerfMemoryTestPage({ onGoHome, safeAreaInsets }: PerfMemoryTestPageProps) { + const [result, setResult] = useState(null); + const [error, setError] = useState(null); + const [isPolling, setIsPolling] = useState(false); + const intervalRef = useRef | null>(null); + + useEffect(() => { + return () => { + if (intervalRef.current) { + clearInterval(intervalRef.current); + } + }; + }, []); + + const clearResults = () => { + setResult(null); + setError(null); + }; + + const testGetMemoryUsage = async () => { + clearResults(); + try { + const memory = await ReactNativePerfMemory.getMemoryUsage(); + setResult({ + rss: memory.rss, + rssMB: `${(memory.rss / 1024 / 1024).toFixed(2)} MB`, + }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const togglePolling = () => { + if (isPolling) { + if (intervalRef.current) { + clearInterval(intervalRef.current); + intervalRef.current = null; + } + setIsPolling(false); + } else { + setIsPolling(true); + const poll = async () => { + try { + const memory = await ReactNativePerfMemory.getMemoryUsage(); + setResult({ + rss: memory.rss, + rssMB: `${(memory.rss / 1024 / 1024).toFixed(2)} MB`, + timestamp: new Date().toLocaleTimeString(), + }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + void poll(); + intervalRef.current = setInterval(() => void poll(), 1000); + } + }; + + return ( + + + Memory Usage + + + + + + + + + + Instructions: + + • Get Memory Usage: reads the process RSS (Resident Set Size){'\n'} + • Polling: continuously reads memory every second{'\n'} + • RSS is reported in bytes and converted to MB + + + + ); +} + +const styles = StyleSheet.create({ + section: { + marginBottom: 20, + }, + sectionTitle: { + fontSize: 18, + fontWeight: '600', + color: '#333', + marginBottom: 10, + }, + instructionsContainer: { + backgroundColor: '#fff3cd', + padding: 15, + borderRadius: 8, + marginTop: 20, + borderLeftWidth: 4, + borderLeftColor: '#ffc107', + }, + instructionsTitle: { + fontSize: 16, + fontWeight: '600', + color: '#856404', + marginBottom: 8, + }, + instructionsText: { + fontSize: 14, + color: '#856404', + lineHeight: 20, + }, +}); diff --git a/example/react-native/pages/SplashScreenTestPage.tsx b/example/react-native/pages/SplashScreenTestPage.tsx new file mode 100644 index 00000000..8fc78523 --- /dev/null +++ b/example/react-native/pages/SplashScreenTestPage.tsx @@ -0,0 +1,97 @@ +import { useState } from 'react'; +import { View, Text, StyleSheet } from 'react-native'; +import { TestPageBase, TestButton, TestResult } from './TestPageBase'; +import { ReactNativeSplashScreen } from '@onekeyfe/react-native-splash-screen'; + +interface SplashScreenTestPageProps { + onGoHome: () => void; + safeAreaInsets: any; +} + +export function SplashScreenTestPage({ onGoHome, safeAreaInsets }: SplashScreenTestPageProps) { + const [result, setResult] = useState(null); + const [error, setError] = useState(null); + + const clearResults = () => { + setResult(null); + setError(null); + }; + + const testPreventAutoHide = async () => { + clearResults(); + try { + const ok = await ReactNativeSplashScreen.preventAutoHideAsync(); + setResult({ preventAutoHide: ok }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testHide = async () => { + clearResults(); + try { + const ok = await ReactNativeSplashScreen.hideAsync(); + setResult({ hide: ok }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + return ( + + + Legacy Splash Screen (Android < 12) + + + + + + + + + Instructions: + + • preventAutoHideAsync: keeps the splash screen visible{'\n'} + • hideAsync: hides the splash screen{'\n'} + • Only active on Android < 12 (older devices){'\n'} + • On iOS, both methods return true (no-op) + + + + ); +} + +const styles = StyleSheet.create({ + section: { + marginBottom: 20, + }, + sectionTitle: { + fontSize: 18, + fontWeight: '600', + color: '#333', + marginBottom: 10, + }, + instructionsContainer: { + backgroundColor: '#fff3cd', + padding: 15, + borderRadius: 8, + marginTop: 20, + borderLeftWidth: 4, + borderLeftColor: '#ffc107', + }, + instructionsTitle: { + fontSize: 16, + fontWeight: '600', + color: '#856404', + marginBottom: 8, + }, + instructionsText: { + fontSize: 14, + color: '#856404', + lineHeight: 20, + }, +}); diff --git a/example/react-native/pages/WebViewCheckerTestPage.tsx b/example/react-native/pages/WebViewCheckerTestPage.tsx new file mode 100644 index 00000000..aa2df866 --- /dev/null +++ b/example/react-native/pages/WebViewCheckerTestPage.tsx @@ -0,0 +1,113 @@ +import { useState } from 'react'; +import { View, Text, StyleSheet } from 'react-native'; +import { TestPageBase, TestButton, TestResult } from './TestPageBase'; +import { ReactNativeWebviewChecker } from '@onekeyfe/react-native-webview-checker'; + +interface WebViewCheckerTestPageProps { + onGoHome: () => void; + safeAreaInsets: any; +} + +export function WebViewCheckerTestPage({ onGoHome, safeAreaInsets }: WebViewCheckerTestPageProps) { + const [result, setResult] = useState(null); + const [error, setError] = useState(null); + + const clearResults = () => { + setResult(null); + setError(null); + }; + + const testGetWebViewPackageInfo = async () => { + clearResults(); + try { + const info = await ReactNativeWebviewChecker.getCurrentWebViewPackageInfo(); + setResult({ webViewPackageInfo: info }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testIsGooglePlayServicesAvailable = async () => { + clearResults(); + try { + const status = await ReactNativeWebviewChecker.isGooglePlayServicesAvailable(); + setResult({ googlePlayServices: status }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + const testAll = async () => { + clearResults(); + try { + const [webViewInfo, gpsStatus] = await Promise.all([ + ReactNativeWebviewChecker.getCurrentWebViewPackageInfo(), + ReactNativeWebviewChecker.isGooglePlayServicesAvailable(), + ]); + setResult({ + webViewPackageInfo: webViewInfo, + googlePlayServices: gpsStatus, + }); + } catch (err) { + setError(err instanceof Error ? err.message : 'Unknown error'); + } + }; + + return ( + + + WebView Info (Android) + + + + + + + + + + Instructions: + + • WebView Package Info: shows installed WebView version (Android){'\n'} + • Google Play Services: checks availability status{'\n'} + • On iOS, these return stub/empty values + + + + ); +} + +const styles = StyleSheet.create({ + section: { + marginBottom: 20, + }, + sectionTitle: { + fontSize: 18, + fontWeight: '600', + color: '#333', + marginBottom: 10, + }, + instructionsContainer: { + backgroundColor: '#fff3cd', + padding: 15, + borderRadius: 8, + marginTop: 20, + borderLeftWidth: 4, + borderLeftColor: '#ffc107', + }, + instructionsTitle: { + fontSize: 16, + fontWeight: '600', + color: '#856404', + marginBottom: 8, + }, + instructionsText: { + fontSize: 14, + color: '#856404', + lineHeight: 20, + }, +}); diff --git a/example/react-native/route.tsx b/example/react-native/route.tsx index 28c627de..f40ea3f2 100644 --- a/example/react-native/route.tsx +++ b/example/react-native/route.tsx @@ -9,24 +9,39 @@ import { GetRandomValuesTestPage } from './pages/GetRandomValuesTestPage'; import { DeviceUtilsTestPage } from './pages/DeviceUtilsTestPage'; import { SkeletonTestPage } from './pages/SkeletonTestPage'; import { NativeLoggerTestPage } from './pages/NativeLoggerTestPage'; +import { PerfMemoryTestPage } from './pages/PerfMemoryTestPage'; +import { BundleUpdateTestPage } from './pages/BundleUpdateTestPage'; +import { AppUpdateTestPage } from './pages/AppUpdateTestPage'; +import { SplashScreenTestPage } from './pages/SplashScreenTestPage'; +import { WebViewCheckerTestPage } from './pages/WebViewCheckerTestPage'; export type RouteScreen = | 'home' + | 'app-update' | 'background-thread' | 'biometric-auth' + | 'bundle-update' | 'cloud-kit' | 'keychain' | 'lite-card' | 'get-random-values' | 'device-utils' | 'native-logger' - | 'skeleton'; + | 'perf-memory' + | 'skeleton' + | 'splash-screen' + | 'webview-checker'; interface RouterProps { safeAreaInsets: any; } const modules = [ + { + id: 'app-update' as RouteScreen, + name: 'App Update', + description: 'APK download, verification, and installation (Android)', + }, { id: 'background-thread' as RouteScreen, name: 'Background Thread', @@ -37,6 +52,11 @@ const modules = [ name: 'Biometric Auth Changed', description: 'Check if biometric authentication has changed', }, + { + id: 'bundle-update' as RouteScreen, + name: 'Bundle Update', + description: 'JS bundle download, verification, install, and path management', + }, { id: 'cloud-kit' as RouteScreen, name: 'CloudKit Module', @@ -67,11 +87,26 @@ const modules = [ name: 'Native Logger', description: 'File-based logging with log directory viewer', }, + { + id: 'perf-memory' as RouteScreen, + name: 'Perf Memory', + description: 'Read process memory usage (RSS) for performance monitoring', + }, { id: 'skeleton' as RouteScreen, name: 'Skeleton View', description: 'Animated skeleton loading components for better UX', }, + { + id: 'splash-screen' as RouteScreen, + name: 'Splash Screen', + description: 'Legacy splash screen for Android < 12', + }, + { + id: 'webview-checker' as RouteScreen, + name: 'WebView Checker', + description: 'Check WebView package info and Google Play Services (Android)', + }, ]; export function Router({ safeAreaInsets }: RouterProps) { @@ -140,10 +175,14 @@ export function Router({ safeAreaInsets }: RouterProps) { }; switch (currentScreen) { + case 'app-update': + return ; case 'background-thread': return ; case 'biometric-auth': return ; + case 'bundle-update': + return ; case 'cloud-kit': return ; case 'device-utils': @@ -156,8 +195,14 @@ export function Router({ safeAreaInsets }: RouterProps) { return ; case 'native-logger': return ; + case 'perf-memory': + return ; case 'skeleton': return ; + case 'splash-screen': + return ; + case 'webview-checker': + return ; default: return renderHomeScreen(); } From 46f1a65e789e6b86bf8039ed36156eef7d6a7a93 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sun, 1 Mar 2026 19:11:26 +0800 Subject: [PATCH 19/94] fix: critical security and reliability fixes for bundle-update and app-update - Use custom urlSession instead of URLSession.shared to prevent HTTPS bypass via HTTP redirects (iOS bundle-update) - Add HTTPS redirect detection after download completes (iOS bundle-update) - Enforce TLS 1.2 minimum on URLSession configuration (iOS bundle-update) - Use defer to guarantee isDownloading reset on all error paths (iOS bundle-update) - Wrap downloadAPK in try/finally to guarantee isDownloading reset (Android app-update) - Make verifyASC throw instead of silently succeeding without GPG verification (Android app-update) - Fix response.body!! force-unwrap crash in downloadASC (Android app-update) - Add readTimeout to OkHttpClient to prevent indefinite hangs (Android app-update) - Make testVerification return false instead of true when GPG is unimplemented (both platforms) - Remove dead downloadThread field and unused MessageDigest import (Android app-update) Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- .../ReactNativeAppUpdate.kt | 179 +++++++++--------- .../ReactNativeBundleUpdate.kt | 7 +- .../ios/ReactNativeBundleUpdate.swift | 28 ++- 3 files changed, 113 insertions(+), 101 deletions(-) diff --git a/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt b/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt index 436d7efb..dd4bc6b5 100644 --- a/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt +++ b/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt @@ -24,7 +24,6 @@ import java.io.File import java.io.FileInputStream import java.io.FileOutputStream import java.io.InputStreamReader -import java.security.MessageDigest import java.util.concurrent.CopyOnWriteArrayList import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicBoolean @@ -46,7 +45,7 @@ class ReactNativeAppUpdate : HybridReactNativeAppUpdateSpec() { private val listeners = CopyOnWriteArrayList() private val nextListenerId = AtomicLong(1) private val isDownloading = AtomicBoolean(false) - private var downloadThread: Thread? = null + // downloadThread removed: downloads use coroutine-based Promise.async, not raw threads private fun sendEvent(type: String, progress: Int = 0, message: String = "") { val event = DownloadEvent(type = type, progress = progress.toDouble(), message = message) @@ -81,97 +80,100 @@ class ReactNativeAppUpdate : HybridReactNativeAppUpdateSpec() { return Promise.async { if (isDownloading.getAndSet(true)) return@async - val url = params.downloadUrl - val filePath = params.filePath - val notificationTitle = params.notificationTitle - val fileSize = params.fileSize.toLong() - - val context = NitroModules.applicationContext - ?: throw Exception("Application context unavailable") - - val notifyManager = NotificationManagerCompat.from(context) - val builder = NotificationCompat.Builder(context, CHANNEL_ID) - .setContentTitle(notificationTitle) - .setContentText("") - .setOngoing(true) - .setPriority(NotificationCompat.PRIORITY_LOW) - .setSmallIcon(android.R.drawable.stat_sys_download) - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - val channel = NotificationChannel( - CHANNEL_ID, "updateApp", NotificationManager.IMPORTANCE_DEFAULT - ) - notifyManager.createNotificationChannel(channel) - } - - val downloadedFile = buildFile(filePath) - if (downloadedFile.exists()) downloadedFile.delete() - - val client = OkHttpClient.Builder() - .connectTimeout(10, TimeUnit.SECONDS) - .build() - val request = Request.Builder().url(url).build() - val response = client.newCall(request).execute() + try { + val url = params.downloadUrl + val filePath = params.filePath + val notificationTitle = params.notificationTitle + val fileSize = params.fileSize.toLong() + + val context = NitroModules.applicationContext + ?: throw Exception("Application context unavailable") + + val notifyManager = NotificationManagerCompat.from(context) + val builder = NotificationCompat.Builder(context, CHANNEL_ID) + .setContentTitle(notificationTitle) + .setContentText("") + .setOngoing(true) + .setPriority(NotificationCompat.PRIORITY_LOW) + .setSmallIcon(android.R.drawable.stat_sys_download) + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + val channel = NotificationChannel( + CHANNEL_ID, "updateApp", NotificationManager.IMPORTANCE_DEFAULT + ) + notifyManager.createNotificationChannel(channel) + } - if (!response.isSuccessful) { - isDownloading.set(false) - sendEvent("error", message = response.code.toString()) - throw Exception(response.code.toString()) - } + val downloadedFile = buildFile(filePath) + if (downloadedFile.exists()) downloadedFile.delete() - val body = response.body ?: throw Exception("Empty response body") - val contentLength = if (fileSize > 0) fileSize else body.contentLength() - val source = body.source() - val sink = downloadedFile.sink().buffer() - val sinkBuffer = sink.buffer + val client = OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.SECONDS) + .readTimeout(60, TimeUnit.SECONDS) + .build() + val request = Request.Builder().url(url).build() + val response = client.newCall(request).execute() - var totalBytesRead = 0L - val bufferSize = 8 * 1024L - sendEvent("start") - var prevProgress = 0 + if (!response.isSuccessful) { + sendEvent("error", message = response.code.toString()) + throw Exception(response.code.toString()) + } - try { - while (true) { - val bytesRead = source.read(sinkBuffer, bufferSize) - if (bytesRead == -1L) break - sink.emit() - totalBytesRead += bytesRead - if (contentLength > 0) { - val progress = ((totalBytesRead * 100) / contentLength).toInt() - if (prevProgress != progress) { - sendEvent("downloading", progress = progress) - OneKeyLog.info("AppUpdate", "download progress: $progress%") - builder.setProgress(100, progress, false) - if (ActivityCompat.checkSelfPermission( - context, android.Manifest.permission.POST_NOTIFICATIONS - ) == PackageManager.PERMISSION_GRANTED - ) { - notifyManager.notify(NOTIFICATION_ID, builder.build()) + val body = response.body ?: throw Exception("Empty response body") + val contentLength = if (fileSize > 0) fileSize else body.contentLength() + val source = body.source() + val sink = downloadedFile.sink().buffer() + val sinkBuffer = sink.buffer + + var totalBytesRead = 0L + val bufferSize = 8 * 1024L + sendEvent("start") + var prevProgress = 0 + + try { + while (true) { + val bytesRead = source.read(sinkBuffer, bufferSize) + if (bytesRead == -1L) break + sink.emit() + totalBytesRead += bytesRead + if (contentLength > 0) { + val progress = ((totalBytesRead * 100) / contentLength).toInt() + if (prevProgress != progress) { + sendEvent("downloading", progress = progress) + OneKeyLog.info("AppUpdate", "download progress: $progress%") + builder.setProgress(100, progress, false) + if (ActivityCompat.checkSelfPermission( + context, android.Manifest.permission.POST_NOTIFICATIONS + ) == PackageManager.PERMISSION_GRANTED + ) { + notifyManager.notify(NOTIFICATION_ID, builder.build()) + } + prevProgress = progress } - prevProgress = progress } } + } finally { + sink.flush() + sink.close() + source.close() } - } finally { - sink.flush() - sink.close() - source.close() - } - - OneKeyLog.info("AppUpdate", "Download completed") - sendEvent("downloaded") - isDownloading.set(false) - notifyManager.cancel(NOTIFICATION_ID) - builder.setContentText("") - .setProgress(0, 0, false) - .setOngoing(false) - .setAutoCancel(true) - if (ActivityCompat.checkSelfPermission( - context, android.Manifest.permission.POST_NOTIFICATIONS - ) == PackageManager.PERMISSION_GRANTED - ) { - notifyManager.notify(NOTIFICATION_ID, builder.build()) + OneKeyLog.info("AppUpdate", "Download completed") + sendEvent("downloaded") + + notifyManager.cancel(NOTIFICATION_ID) + builder.setContentText("") + .setProgress(0, 0, false) + .setOngoing(false) + .setAutoCancel(true) + if (ActivityCompat.checkSelfPermission( + context, android.Manifest.permission.POST_NOTIFICATIONS + ) == PackageManager.PERMISSION_GRANTED + ) { + notifyManager.notify(NOTIFICATION_ID, builder.build()) + } + } finally { + isDownloading.set(false) } } } @@ -192,7 +194,8 @@ class ReactNativeAppUpdate : HybridReactNativeAppUpdateSpec() { } val content = StringBuilder() - BufferedReader(InputStreamReader(response.body!!.byteStream())).use { reader -> + val body = response.body ?: throw Exception("Empty ASC response body") + BufferedReader(InputStreamReader(body.byteStream())).use { reader -> var line: String? while (reader.readLine().also { line = it } != null) { content.append(line).append("\n") @@ -214,8 +217,9 @@ class ReactNativeAppUpdate : HybridReactNativeAppUpdateSpec() { override fun verifyASC(params: AppUpdateFileParams): Promise { return Promise.async { - // TODO: Integrate Gopenpgp for GPG signature verification - OneKeyLog.info("AppUpdate", "verifyASC: GPG verification pending integration") + // GPG signature verification is not yet implemented. + // Reject to prevent silently accepting unverified APKs. + throw Exception("GPG signature verification is not yet implemented. Cannot verify ASC for: ${params.filePath}") } } @@ -264,7 +268,6 @@ class ReactNativeAppUpdate : HybridReactNativeAppUpdateSpec() { override fun clearCache(): Promise { return Promise.async { - downloadThread?.interrupt() isDownloading.set(false) } } diff --git a/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt b/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt index 650d35ff..19c00e95 100644 --- a/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt +++ b/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt @@ -778,9 +778,10 @@ class ReactNativeBundleUpdate : HybridReactNativeBundleUpdateSpec() { override fun testVerification(): Promise { return Promise.async { - // TODO: Integrate Gopenpgp for full GPG verification testing - OneKeyLog.info("BundleUpdate", "testVerification: GPG verification pending integration") - true + // GPG verification is not yet implemented -- return false to indicate + // verification cannot be performed, preventing callers from assuming security. + OneKeyLog.warn("BundleUpdate", "testVerification: GPG verification not yet implemented, returning false") + false } } diff --git a/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift b/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift index 5167b051..6dc16dc8 100644 --- a/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift +++ b/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift @@ -292,6 +292,7 @@ class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec { init() { let config = URLSessionConfiguration.default + config.tlsMinimumSupportedProtocolVersion = .TLSv12 urlSession = URLSession(configuration: config) } @@ -325,6 +326,7 @@ class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec { throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Already downloading"]) } self.isDownloading = true + defer { self.isDownloading = false } let appVersion = params.latestVersion let bundleVersion = params.bundleVersion @@ -332,7 +334,6 @@ class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec { let sha256 = params.sha256 guard downloadUrl.hasPrefix("https://") else { - self.isDownloading = false throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Bundle download URL must use HTTPS"]) } @@ -352,7 +353,6 @@ class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec { // Check if file already exists and is valid if FileManager.default.fileExists(atPath: filePath) { if self.verifyBundleSHA256(filePath, sha256: sha256) { - self.isDownloading = false DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { [weak self] in self?.sendEvent(type: "update/complete") } @@ -364,17 +364,26 @@ class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec { // Download the file guard let url = URL(string: downloadUrl) else { - self.isDownloading = false throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Invalid URL"]) } + guard let session = self.urlSession else { + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "URLSession not initialized"]) + } + self.sendEvent(type: "update/start") let request = URLRequest(url: url) - let (tempURL, response) = try await URLSession.shared.download(for: request) + let (tempURL, response) = try await session.download(for: request) + + // Verify HTTPS was maintained (no HTTP redirect) + if let httpResponse = response as? HTTPURLResponse, + let responseUrl = httpResponse.url, + responseUrl.scheme?.lowercased() != "https" { + throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Download was redirected to non-HTTPS URL"]) + } guard let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200 else { - self.isDownloading = false self.sendEvent(type: "update/error", message: "HTTP error") throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Download failed"]) } @@ -392,14 +401,12 @@ class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec { // Verify SHA256 if !self.verifyBundleSHA256(filePath, sha256: sha256) { try? FileManager.default.removeItem(atPath: filePath) - self.isDownloading = false self.sendEvent(type: "update/error", message: "Bundle signature verification failed") throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Bundle signature verification failed"]) } self.sendEvent(type: "update/complete") OneKeyLog.info("BundleUpdate", "Download completed") - self.isDownloading = false return result } } @@ -657,9 +664,10 @@ class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec { func testVerification() throws -> Promise { return Promise.async { - // TODO: Integrate Gopenpgp for full GPG verification testing - OneKeyLog.info("BundleUpdate", "testVerification: GPG verification pending integration") - return true + // GPG verification is not yet implemented -- return false to indicate + // verification cannot be performed, preventing callers from assuming security. + OneKeyLog.warn("BundleUpdate", "testVerification: GPG verification not yet implemented, returning false") + return false } } From 5f0a223eed2a2a279691ae26dc33ffed01cb7a98 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sun, 1 Mar 2026 21:04:13 +0800 Subject: [PATCH 20/94] feat: implement GPG signature verification for bundle-update and app-update Port GPG verification from app-monorepo desktop implementation to native modules: - iOS bundle-update: Gopenpgp framework integration via dynamic ObjC calls with graceful fallback - Android bundle-update: BouncyCastle bcpg for PGP cleartext signature verification - Android app-update: Full verifyASC implementation with SHA256 hash comparison - Embed OneKey developer GPG public key for signature validation - Add real test signatures from app-monorepo for testVerification() Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- .../android/build.gradle | 3 + .../ReactNativeAppUpdate.kt | 146 ++++++++++- .../android/build.gradle | 3 + .../ReactNativeBundleUpdate.kt | 194 ++++++++++++++- .../ios/ReactNativeBundleUpdate.swift | 234 +++++++++++++++++- 5 files changed, 563 insertions(+), 17 deletions(-) diff --git a/native-modules/react-native-app-update/android/build.gradle b/native-modules/react-native-app-update/android/build.gradle index 63791f86..1cc9aa25 100644 --- a/native-modules/react-native-app-update/android/build.gradle +++ b/native-modules/react-native-app-update/android/build.gradle @@ -131,4 +131,7 @@ dependencies { implementation "com.squareup.okhttp3:okhttp:4.12.0" implementation "com.squareup.okio:okio:3.9.0" implementation "androidx.core:core-ktx:1.15.0" + + // BouncyCastle for GPG/PGP signature verification + implementation "org.bouncycastle:bcpg-jdk15to18:1.78.1" } diff --git a/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt b/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt index dd4bc6b5..dd71f04d 100644 --- a/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt +++ b/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt @@ -24,10 +24,71 @@ import java.io.File import java.io.FileInputStream import java.io.FileOutputStream import java.io.InputStreamReader +import java.security.MessageDigest import java.util.concurrent.CopyOnWriteArrayList import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicLong +import org.bouncycastle.openpgp.PGPPublicKeyRingCollection +import org.bouncycastle.openpgp.PGPSignatureList +import org.bouncycastle.openpgp.PGPUtil +import org.bouncycastle.openpgp.jcajce.JcaPGPObjectFactory +import org.bouncycastle.openpgp.operator.jcajce.JcaKeyFingerprintCalculator +import org.bouncycastle.openpgp.operator.jcajce.JcaPGPContentVerifierBuilderProvider + +// OneKey GPG public key for signature verification +private const val GPG_PUBLIC_KEY = """-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +P2Q5dClenjjjVA== +=F0np +-----END PGP PUBLIC KEY BLOCK-----""" private data class Listener( val id: Double, @@ -217,9 +278,88 @@ class ReactNativeAppUpdate : HybridReactNativeAppUpdateSpec() { override fun verifyASC(params: AppUpdateFileParams): Promise { return Promise.async { - // GPG signature verification is not yet implemented. - // Reject to prevent silently accepting unverified APKs. - throw Exception("GPG signature verification is not yet implemented. Cannot verify ASC for: ${params.filePath}") + val filePath = params.filePath + val ascFilePath = "$filePath.SHA256SUMS.asc" + val ascFile = buildFile(ascFilePath) + if (!ascFile.exists()) throw Exception("ASC file not found: $ascFilePath") + + val ascContent = ascFile.readText() + if (!ascContent.contains("-----BEGIN PGP SIGNED MESSAGE-----")) { + throw Exception("ASC file does not contain a PGP signed message") + } + + // Parse the cleartext signed message + val lines = ascContent.lines() + val hashHeaderIdx = lines.indexOfFirst { it.startsWith("Hash:") } + val sigStartIdx = lines.indexOfFirst { it == "-----BEGIN PGP SIGNATURE-----" } + val sigEndIdx = lines.indexOfFirst { it == "-----END PGP SIGNATURE-----" } + + if (hashHeaderIdx < 0 || sigStartIdx < 0 || sigEndIdx < 0) { + throw Exception("Invalid PGP cleartext signed message format") + } + + val bodyStartIdx = hashHeaderIdx + 2 + val bodyLines = lines.subList(bodyStartIdx, sigStartIdx) + val cleartextBody = bodyLines.joinToString("\r\n").trimEnd() + + val sigBlock = lines.subList(sigStartIdx, sigEndIdx + 1).joinToString("\n") + + // Parse signature + val sigInputStream = PGPUtil.getDecoderStream(sigBlock.byteInputStream()) + val sigFactory = JcaPGPObjectFactory(sigInputStream) + val signatureList = sigFactory.nextObject() + + if (signatureList !is PGPSignatureList || signatureList.isEmpty) { + throw Exception("No PGP signature found in ASC file") + } + + val pgpSignature = signatureList[0] + val keyId = pgpSignature.keyID + + // Parse public key + val pubKeyStream = PGPUtil.getDecoderStream(GPG_PUBLIC_KEY.byteInputStream()) + val pgpPubKeyRingCollection = PGPPublicKeyRingCollection(pubKeyStream, JcaKeyFingerprintCalculator()) + val publicKey = pgpPubKeyRingCollection.getPublicKey(keyId) + ?: throw Exception("Public key not found for keyId: ${java.lang.Long.toHexString(keyId)}") + + // Verify signature + pgpSignature.init(JcaPGPContentVerifierBuilderProvider().setProvider("BC"), publicKey) + + val unescapedLines = cleartextBody.lines().map { line -> + if (line.startsWith("- ")) line.substring(2) else line + } + val dataToVerify = unescapedLines.joinToString("\r\n").toByteArray(Charsets.UTF_8) + pgpSignature.update(dataToVerify) + + if (!pgpSignature.verify()) { + throw Exception("GPG signature verification failed for ASC file") + } + + // Extract SHA256 from cleartext (format: " \n" or just "") + val sha256 = cleartextBody.trim().split("\\s+".toRegex())[0] + if (sha256.length != 64) { + throw Exception("Invalid SHA256 hash in ASC file: $sha256") + } + + // Verify APK file SHA256 + val apkFile = buildFile(filePath) + if (!apkFile.exists()) throw Exception("APK file not found: $filePath") + + val digest = MessageDigest.getInstance("SHA-256") + BufferedInputStream(FileInputStream(apkFile)).use { bis -> + val buffer = ByteArray(8192) + var count: Int + while (bis.read(buffer).also { count = it } > 0) { + digest.update(buffer, 0, count) + } + } + val fileSha256 = bytesToHex(digest.digest()) + + if (fileSha256 != sha256) { + throw Exception("SHA256 mismatch: expected $sha256, got $fileSha256") + } + + OneKeyLog.info("AppUpdate", "GPG signature and SHA256 verification passed for APK") } } diff --git a/native-modules/react-native-bundle-update/android/build.gradle b/native-modules/react-native-bundle-update/android/build.gradle index ba417dd0..03ac8ca5 100644 --- a/native-modules/react-native-bundle-update/android/build.gradle +++ b/native-modules/react-native-bundle-update/android/build.gradle @@ -129,4 +129,7 @@ dependencies { implementation project(":onekeyfe_react-native-native-logger") implementation "com.squareup.okhttp3:okhttp:4.12.0" + + // BouncyCastle for GPG/PGP signature verification + implementation "org.bouncycastle:bcpg-jdk15to18:1.78.1" } diff --git a/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt b/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt index 19c00e95..e92c8d8a 100644 --- a/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt +++ b/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt @@ -21,6 +21,11 @@ import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicLong import java.util.zip.ZipEntry import java.util.zip.ZipInputStream +import org.bouncycastle.openpgp.PGPPublicKeyRingCollection +import org.bouncycastle.openpgp.PGPUtil +import org.bouncycastle.openpgp.jcajce.JcaPGPObjectFactory +import org.bouncycastle.openpgp.operator.jcajce.JcaKeyFingerprintCalculator +import org.bouncycastle.openpgp.operator.jcajce.JcaPGPContentVerifierBuilderProvider import org.json.JSONArray import org.json.JSONObject @@ -29,6 +34,60 @@ private data class BundleListener( val callback: (BundleDownloadEvent) -> Unit ) +// OneKey GPG public key for signature verification +private const val GPG_PUBLIC_KEY = """-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +P2Q5dClenjjjVA== +=F0np +-----END PGP PUBLIC KEY BLOCK-----""" + // Public static store for CustomReactNativeHost access (called before JS starts) object BundleUpdateStoreAndroid { private const val PREFS_NAME = "BundleUpdatePrefs" @@ -146,16 +205,115 @@ object BundleUpdateStoreAndroid { fun readMetadataFileSha256(signature: String?): String? { if (signature.isNullOrEmpty()) return null + + // Try GPG cleartext signature verification first + val gpgResult = verifyGPGAndExtractSha256(signature) + if (gpgResult != null) return gpgResult + + // Fallback: try plain JSON parse (for backward compat with non-signed content) return try { val json = JSONObject(signature) val sha256 = json.optString("sha256", "") - if (sha256.isEmpty()) null else sha256 + if (sha256.isEmpty()) { + null + } else { + OneKeyLog.warn("BundleUpdate", "readMetadataFileSha256: Fell back to plain JSON parse (no GPG verification)") + sha256 + } } catch (e: Exception) { OneKeyLog.debug("BundleUpdate", "readMetadataFileSha256: Error extracting SHA256: ${e.message}") null } } + /** + * Verify a PGP cleartext-signed message using BouncyCastle and extract the sha256. + * Returns null if verification fails or the signature is not a PGP cleartext message. + */ + fun verifyGPGAndExtractSha256(signature: String): String? { + if (!signature.contains("-----BEGIN PGP SIGNED MESSAGE-----")) return null + + return try { + // Parse the cleartext signed message + val inputStream = signature.byteInputStream() + val pgpFactory = JcaPGPObjectFactory(PGPUtil.getDecoderStream(inputStream)) + + // Parse the public key + val pubKeyStream = PGPUtil.getDecoderStream(GPG_PUBLIC_KEY.byteInputStream()) + val pgpPubKeyRingCollection = PGPPublicKeyRingCollection(pubKeyStream, JcaKeyFingerprintCalculator()) + + // Extract cleartext and signature from the PGP signed message manually + // BouncyCastle's cleartext handling requires manual parsing + val lines = signature.lines() + val hashHeaderIdx = lines.indexOfFirst { it.startsWith("Hash:") } + val sigStartIdx = lines.indexOfFirst { it == "-----BEGIN PGP SIGNATURE-----" } + val sigEndIdx = lines.indexOfFirst { it == "-----END PGP SIGNATURE-----" } + + if (hashHeaderIdx < 0 || sigStartIdx < 0 || sigEndIdx < 0) { + OneKeyLog.error("BundleUpdate", "Invalid PGP cleartext signed message format") + return null + } + + // The cleartext body is between the Hash header blank line and the PGP SIGNATURE block + val bodyStartIdx = hashHeaderIdx + 2 // skip Hash: line and the blank line after it + val bodyLines = lines.subList(bodyStartIdx, sigStartIdx) + // Remove trailing empty line that PGP adds + val cleartextBody = bodyLines.joinToString("\r\n").trimEnd() + + // The signature block + val sigBlock = lines.subList(sigStartIdx, sigEndIdx + 1).joinToString("\n") + + // Decode the signature + val sigInputStream = PGPUtil.getDecoderStream(sigBlock.byteInputStream()) + val sigFactory = JcaPGPObjectFactory(sigInputStream) + val signatureList = sigFactory.nextObject() + + if (signatureList !is org.bouncycastle.openpgp.PGPSignatureList || signatureList.isEmpty) { + OneKeyLog.error("BundleUpdate", "No PGP signature found in message") + return null + } + + val pgpSignature = signatureList[0] + val keyId = pgpSignature.keyID + + // Find the public key + val publicKey = pgpPubKeyRingCollection.getPublicKey(keyId) + if (publicKey == null) { + OneKeyLog.error("BundleUpdate", "Public key not found for keyId: ${java.lang.Long.toHexString(keyId)}") + return null + } + + // Verify the signature + pgpSignature.init(JcaPGPContentVerifierBuilderProvider().setProvider("BC"), publicKey) + + // Dash-unescape the cleartext per RFC 4880 Section 7.1 + val unescapedLines = cleartextBody.lines().map { line -> + if (line.startsWith("- ")) line.substring(2) else line + } + val dataToVerify = unescapedLines.joinToString("\r\n").toByteArray(Charsets.UTF_8) + pgpSignature.update(dataToVerify) + + if (!pgpSignature.verify()) { + OneKeyLog.error("BundleUpdate", "GPG signature verification failed") + return null + } + + // Signature verified, parse the cleartext JSON + val json = JSONObject(cleartextBody.trim()) + val sha256 = json.optString("sha256", "") + if (sha256.isEmpty()) { + OneKeyLog.error("BundleUpdate", "No sha256 field in signed cleartext JSON") + return null + } + + OneKeyLog.info("BundleUpdate", "GPG verification succeeded, sha256: $sha256") + sha256 + } catch (e: Exception) { + OneKeyLog.error("BundleUpdate", "GPG verification error: ${e.message}") + null + } + } + fun validateMetadataFileSha256(context: Context, currentBundleVersion: String, signature: String?): Boolean { val metadataFilePath = getMetadataFilePath(context, currentBundleVersion) ?: run { OneKeyLog.debug("BundleUpdate", "metadataFilePath is null") @@ -778,10 +936,36 @@ class ReactNativeBundleUpdate : HybridReactNativeBundleUpdateSpec() { override fun testVerification(): Promise { return Promise.async { - // GPG verification is not yet implemented -- return false to indicate - // verification cannot be performed, preventing callers from assuming security. - OneKeyLog.warn("BundleUpdate", "testVerification: GPG verification not yet implemented, returning false") - false + val testSignature = """-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +{ + "fileName": "metadata.json", + "sha256": "2ada9c871104fc40649fa3de67a7d8e33faadc18e9abd587e8bb85be0a003eba", + "size": 158590, + "generatedAt": "2025-09-19T07:49:13.000Z" +} +-----BEGIN PGP SIGNATURE----- + +iQJCBAEBCAAsFiEE62iuVE8f3YzSZGJPs2mmepC/OHsFAmjNJ1IOHGRldkBvbmVr +ZXkuc28ACgkQs2mmepC/OHs6Rw/9FKHl5aNsE7V0IsFf/l+h16BYKFwVsL69alMk +CFLna8oUn0+tyECF6wKBKw5pHo5YR27o2pJfYbAER6dygDF6WTZ1lZdf5QcBMjGA +LCeXC0hzUBzSSOH4bKBTa3fHp//HdSV1F2OnkymbXqYN7WXvuQPLZ0nV6aU88hCk +HgFifcvkXAnWKoosUtj0Bban/YBRyvmQ5C2akxUPEkr4Yck1QXwzJeNRd7wMXHjH +JFK6lJcuABiB8wpJDXJkFzKs29pvHIK2B2vdOjU2rQzKOUwaKHofDi5C4+JitT2b +2pSeYP3PAxXYw6XDOmKTOiC7fPnfLjtcPjNYNFCezVKZT6LKvZW9obnW8Q9LNJ4W +okMPgHObkabv3OqUaTA9QNVfI/X9nvggzlPnaKDUrDWTf7n3vlrdexugkLtV/tJA +uguPlI5hY7Ue5OW7ckWP46hfmq1+UaIdeUY7dEO+rPZDz6KcArpaRwBiLPBhneIr +/X3KuMzS272YbPbavgCZGN9xJR5kZsEQE5HhPCbr6Nf0qDnh+X8mg0tAB/U6F+ZE +o90sJL1ssIaYvST+VWVaGRr4V5nMDcgHzWSF9Q/wm22zxe4alDaBdvOlUseW0iaM +n2DMz6gqk326W6SFynYtvuiXo7wG4Cmn3SuIU8xfv9rJqunpZGYchMd7nZektmEJ +91Js0rQ= +=A/Ii +-----END PGP SIGNATURE-----""" + val result = BundleUpdateStoreAndroid.verifyGPGAndExtractSha256(testSignature) + val isValid = result == "2ada9c871104fc40649fa3de67a7d8e33faadc18e9abd587e8bb85be0a003eba" + OneKeyLog.info("BundleUpdate", "testVerification: GPG verification result: $isValid") + isValid } } diff --git a/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift b/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift index 6dc16dc8..6f71c457 100644 --- a/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift +++ b/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift @@ -3,6 +3,62 @@ import ReactNativeNativeLogger import Foundation import CommonCrypto +// OneKey GPG public key for signature verification +private let GPG_PUBLIC_KEY = """ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +P2Q5dClenjjjVA== +=F0np +-----END PGP PUBLIC KEY BLOCK----- +""" + // Public static store for AppDelegate access (called before JS starts) public class BundleUpdateStore { private static let bundlePrefsKey = "currentBundleVersion" @@ -97,22 +153,154 @@ public class BundleUpdateStore { } public static func readMetadataFileSha256(_ signature: String) -> String? { - // Extract sha256 from GPG signed content - // TODO: Integrate Gopenpgp for full GPG verification guard !signature.isEmpty else { return nil } - // Try to parse the signature content as JSON to get sha256 - // The signature contains a JSON object with a "sha256" field + // Try GPG cleartext signature verification first + if let sha256 = verifyGPGAndExtractSha256(signature) { + return sha256 + } + + // Fallback: try plain JSON parse (for backward compat with non-signed content) guard let data = signature.data(using: .utf8), let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any], let sha256 = json["sha256"] as? String else { - // If direct JSON parse fails, try extracting from GPG signed content OneKeyLog.debug("BundleUpdate", "Could not parse signature as JSON directly") return nil } + OneKeyLog.warn("BundleUpdate", "readMetadataFileSha256: Fell back to plain JSON parse (no GPG verification)") return sha256 } + /// Verify a PGP cleartext-signed message and extract the sha256 from the signed JSON body. + /// Uses Gopenpgp framework (must be linked by the host app). + /// Returns nil if verification fails or Gopenpgp is not available. + public static func verifyGPGAndExtractSha256(_ signature: String) -> String? { + // Check if this looks like a PGP signed message + guard signature.contains("-----BEGIN PGP SIGNED MESSAGE-----") else { + return nil + } + + guard let CryptoPGPClass = NSClassFromString("CryptoPGPHandle") as? NSObject.Type else { + OneKeyLog.warn("BundleUpdate", "Gopenpgp framework not available, skipping GPG verification") + return nil + } + + do { + // 1. Load public key: CryptoNewKeyFromArmored(armoredKey) + guard let newKeyFromArmored = NSClassFromString("CryptoKey")?.perform( + NSSelectorFromString("alloc") + )?.takeUnretainedValue() else { + OneKeyLog.error("BundleUpdate", "Failed to create CryptoKey") + return nil + } + + let publicKey = (newKeyFromArmored as AnyObject).perform( + NSSelectorFromString("initFromArmored:"), + with: GPG_PUBLIC_KEY + )?.takeUnretainedValue() + + guard let pubKey = publicKey else { + OneKeyLog.error("BundleUpdate", "Failed to parse GPG public key") + return nil + } + + // 2. Get PGP handle: CryptoPGP() + let pgpHandle = (NSClassFromString("CryptoPGPHandle") as AnyObject).perform( + NSSelectorFromString("alloc") + )?.takeUnretainedValue() + guard let pgp = (pgpHandle as AnyObject).perform(NSSelectorFromString("init"))?.takeUnretainedValue() else { + OneKeyLog.error("BundleUpdate", "Failed to create PGPHandle") + return nil + } + + // 3. Build verify handle: pgp.verify().verificationKey(pubKey).new() + guard let verifyBuilder = (pgp as AnyObject).perform(NSSelectorFromString("verify"))?.takeUnretainedValue() else { + OneKeyLog.error("BundleUpdate", "Failed to get verify builder") + return nil + } + guard let builderWithKey = (verifyBuilder as AnyObject).perform( + NSSelectorFromString("verificationKey:"), + with: pubKey + )?.takeUnretainedValue() else { + OneKeyLog.error("BundleUpdate", "Failed to set verification key") + return nil + } + + var newError: NSError? + let verifyHandle = (builderWithKey as AnyObject).perform( + NSSelectorFromString("new:"), + with: &newError + )?.takeUnretainedValue() + + if let error = newError { + OneKeyLog.error("BundleUpdate", "Failed to create verify handle: \(error)") + return nil + } + guard let handle = verifyHandle else { + OneKeyLog.error("BundleUpdate", "Verify handle is nil") + return nil + } + + // 4. Verify cleartext: handle.verifyCleartext(signatureData) + guard let signatureData = signature.data(using: .utf8) else { + return nil + } + + var verifyError: NSError? + let result = (handle as AnyObject).perform( + NSSelectorFromString("verifyCleartext:error:"), + with: signatureData, + with: &verifyError + )?.takeUnretainedValue() + + if let error = verifyError { + OneKeyLog.error("BundleUpdate", "GPG verification error: \(error)") + return nil + } + guard let cleartextResult = result else { + OneKeyLog.error("BundleUpdate", "GPG verification returned nil result") + return nil + } + + // 5. Check signature: hasSignatureError() + let hasError = (cleartextResult as AnyObject).perform(NSSelectorFromString("hasSignatureError")) + // hasSignatureError returns BOOL -- if non-nil perform result, check it + // For Gopenpgp, signature error is checked via signatureError() + var sigError: NSError? + (cleartextResult as AnyObject).perform( + NSSelectorFromString("signatureError:"), + with: &sigError + ) + if let sigErr = sigError { + OneKeyLog.error("BundleUpdate", "GPG signature invalid: \(sigErr)") + return nil + } + + // 6. Get cleartext + guard let cleartextData = (cleartextResult as AnyObject).perform( + NSSelectorFromString("cleartext") + )?.takeUnretainedValue() as? Data else { + OneKeyLog.error("BundleUpdate", "Failed to extract cleartext from GPG result") + return nil + } + + guard let text = String(data: cleartextData, encoding: .utf8) else { + return nil + } + + // 7. Parse JSON and extract sha256 + guard let jsonData = text.data(using: .utf8), + let json = try? JSONSerialization.jsonObject(with: jsonData) as? [String: Any], + let sha256 = json["sha256"] as? String else { + OneKeyLog.error("BundleUpdate", "Failed to parse cleartext JSON") + return nil + } + + OneKeyLog.info("BundleUpdate", "GPG verification succeeded, sha256: \(sha256)") + return sha256 + } + } + public static func validateMetadataFileSha256(_ currentBundleVersion: String, signature: String) -> Bool { guard let metadataFilePath = getMetadataFilePath(currentBundleVersion) else { OneKeyLog.debug("BundleUpdate", "metadataFilePath is null") @@ -664,10 +852,38 @@ class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec { func testVerification() throws -> Promise { return Promise.async { - // GPG verification is not yet implemented -- return false to indicate - // verification cannot be performed, preventing callers from assuming security. - OneKeyLog.warn("BundleUpdate", "testVerification: GPG verification not yet implemented, returning false") - return false + let testSignature = """ + -----BEGIN PGP SIGNED MESSAGE----- + Hash: SHA256 + + { + "fileName": "metadata.json", + "sha256": "2ada9c871104fc40649fa3de67a7d8e33faadc18e9abd587e8bb85be0a003eba", + "size": 158590, + "generatedAt": "2025-09-19T07:49:13.000Z" + } + -----BEGIN PGP SIGNATURE----- + + iQJCBAEBCAAsFiEE62iuVE8f3YzSZGJPs2mmepC/OHsFAmjNJ1IOHGRldkBvbmVr + ZXkuc28ACgkQs2mmepC/OHs6Rw/9FKHl5aNsE7V0IsFf/l+h16BYKFwVsL69alMk + CFLna8oUn0+tyECF6wKBKw5pHo5YR27o2pJfYbAER6dygDF6WTZ1lZdf5QcBMjGA + LCeXC0hzUBzSSOH4bKBTa3fHp//HdSV1F2OnkymbXqYN7WXvuQPLZ0nV6aU88hCk + HgFifcvkXAnWKoosUtj0Bban/YBRyvmQ5C2akxUPEkr4Yck1QXwzJeNRd7wMXHjH + JFK6lJcuABiB8wpJDXJkFzKs29pvHIK2B2vdOjU2rQzKOUwaKHofDi5C4+JitT2b + 2pSeYP3PAxXYw6XDOmKTOiC7fPnfLjtcPjNYNFCezVKZT6LKvZW9obnW8Q9LNJ4W + okMPgHObkabv3OqUaTA9QNVfI/X9nvggzlPnaKDUrDWTf7n3vlrdexugkLtV/tJA + uguPlI5hY7Ue5OW7ckWP46hfmq1+UaIdeUY7dEO+rPZDz6KcArpaRwBiLPBhneIr + /X3KuMzS272YbPbavgCZGN9xJR5kZsEQE5HhPCbr6Nf0qDnh+X8mg0tAB/U6F+ZE + o90sJL1ssIaYvST+VWVaGRr4V5nMDcgHzWSF9Q/wm22zxe4alDaBdvOlUseW0iaM + n2DMz6gqk326W6SFynYtvuiXo7wG4Cmn3SuIU8xfv9rJqunpZGYchMd7nZektmEJ + 91Js0rQ= + =A/Ii + -----END PGP SIGNATURE----- + """ + let result = BundleUpdateStore.verifyGPGAndExtractSha256(testSignature) + let isValid = result == "2ada9c871104fc40649fa3de67a7d8e33faadc18e9abd587e8bb85be0a003eba" + OneKeyLog.info("BundleUpdate", "testVerification: GPG verification result: \(isValid)") + return isValid } } From b2c54f8c6fab63702363d25748780e92c6492409 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sun, 1 Mar 2026 21:19:13 +0800 Subject: [PATCH 21/94] fix: high severity issues across native modules - native-logger: replace thread-unsafe SimpleDateFormat with DateTimeFormatter (Android), add NSLock around DateFormatter calls (iOS) - native-logger: add android.util.Log fallback when file logger is unavailable (Android) - bundle-update: add DispatchQueue for thread-safe access to listeners/isDownloading (iOS) - app-update: validate file paths against app directories to prevent path traversal (Android) - webview-checker: use WebView.getCurrentWebViewPackage() API 26+ with fallback candidates (Android) - device-utils: replace exit(0) with UIApplication suspend to avoid App Store rejection (iOS) - bundle-update: add symlink detection after zip extraction (Android) Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- .../margelo/nitro/nativelogger/OneKeyLog.kt | 33 +++++++++--- .../native-logger/ios/OneKeyLog.swift | 23 +++++++-- .../ReactNativeAppUpdate.kt | 19 ++++++- .../ReactNativeBundleUpdate.kt | 6 +++ .../ios/ReactNativeBundleUpdate.swift | 29 +++++++---- .../ios/ReactNativeDeviceUtils.swift | 6 ++- .../ReactNativeWebviewChecker.kt | 51 +++++++++++++++---- 7 files changed, 135 insertions(+), 32 deletions(-) diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt index 511d535e..69ad0776 100644 --- a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt @@ -12,8 +12,8 @@ import ch.qos.logback.core.util.FileSize import com.margelo.nitro.NitroModules import java.io.File import java.nio.charset.Charset -import java.text.SimpleDateFormat -import java.util.Date +import java.time.LocalTime +import java.time.format.DateTimeFormatter import java.util.Locale object OneKeyLog { @@ -111,7 +111,8 @@ object OneKeyLog { } } - private val timeFormatter = SimpleDateFormat("HH:mm:ss", Locale.US) + // DateTimeFormatter is immutable and thread-safe (unlike SimpleDateFormat) + private val timeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss", Locale.US) private fun truncate(message: String): String { return if (message.length > MAX_MESSAGE_LENGTH) { @@ -125,19 +126,35 @@ object OneKeyLog { if (tag == "JS") { return truncate(message) } - val time = timeFormatter.format(Date()) + val time = LocalTime.now().format(timeFormatter) return truncate("$time | $level : [$tag] $message") } + private fun log(tag: String, level: String, message: String, androidLogLevel: Int) { + val formatted = formatMessage(tag, level, message) + val l = logger + if (l != null) { + when (androidLogLevel) { + android.util.Log.DEBUG -> l.debug(formatted) + android.util.Log.INFO -> l.info(formatted) + android.util.Log.WARN -> l.warn(formatted) + android.util.Log.ERROR -> l.error(formatted) + } + } else { + // Fallback to android.util.Log when file logger is unavailable + android.util.Log.println(androidLogLevel, "OneKey/$tag", message) + } + } + @JvmStatic - fun debug(tag: String, message: String) { logger?.debug(formatMessage(tag, "DEBUG", message)) } + fun debug(tag: String, message: String) { log(tag, "DEBUG", message, android.util.Log.DEBUG) } @JvmStatic - fun info(tag: String, message: String) { logger?.info(formatMessage(tag, "INFO", message)) } + fun info(tag: String, message: String) { log(tag, "INFO", message, android.util.Log.INFO) } @JvmStatic - fun warn(tag: String, message: String) { logger?.warn(formatMessage(tag, "WARN", message)) } + fun warn(tag: String, message: String) { log(tag, "WARN", message, android.util.Log.WARN) } @JvmStatic - fun error(tag: String, message: String) { logger?.error(formatMessage(tag, "ERROR", message)) } + fun error(tag: String, message: String) { log(tag, "ERROR", message, android.util.Log.ERROR) } } diff --git a/native-modules/native-logger/ios/OneKeyLog.swift b/native-modules/native-logger/ios/OneKeyLog.swift index b28896cc..bd01af41 100644 --- a/native-modules/native-logger/ios/OneKeyLog.swift +++ b/native-modules/native-logger/ios/OneKeyLog.swift @@ -5,13 +5,20 @@ private let ddLogLevel: DDLogLevel = .debug private class OneKeyLogFileManager: DDLogFileManagerDefault { private static let logPrefix = "app" private static let latestFileName = "\(logPrefix)-latest.log" - private static let dateFormatter: DateFormatter = { + private static let dateFormatterLock = NSLock() + private static let _dateFormatter: DateFormatter = { let fmt = DateFormatter() fmt.dateFormat = "yyyy-MM-dd" fmt.locale = Locale(identifier: "en_US_POSIX") return fmt }() + private static func formattedDate(_ date: Date) -> String { + dateFormatterLock.lock() + defer { dateFormatterLock.unlock() } + return _dateFormatter.string(from: date) + } + /// Always write to app-latest.log (matches Android behavior) override var newLogFileName: String { return Self.latestFileName @@ -25,7 +32,7 @@ private class OneKeyLogFileManager: DDLogFileManagerDefault { override func didArchiveLogFile(atPath logFilePath: String, wasRolled: Bool) { if wasRolled { let dir = (logFilePath as NSString).deletingLastPathComponent - let dateStr = Self.dateFormatter.string(from: Date()) + let dateStr = Self.formattedDate(Date()) let fm = FileManager.default // Find next available index, retry on move failure to handle TOCTOU race @@ -86,13 +93,21 @@ private class OneKeyLogFileManager: DDLogFileManagerDefault { return true }() - private static let timeFormatter: DateFormatter = { + // Use a lock to protect DateFormatter (not thread-safe per Apple docs) + private static let timeFormatterLock = NSLock() + private static let _timeFormatter: DateFormatter = { let fmt = DateFormatter() fmt.dateFormat = "HH:mm:ss" fmt.locale = Locale(identifier: "en_US_POSIX") return fmt }() + private static func formattedTime(_ date: Date) -> String { + timeFormatterLock.lock() + defer { timeFormatterLock.unlock() } + return _timeFormatter.string(from: date) + } + private static func truncate(_ message: String) -> String { if message.count > maxMessageLength { return String(message.prefix(maxMessageLength)) + "...(truncated)" @@ -104,7 +119,7 @@ private class OneKeyLogFileManager: DDLogFileManagerDefault { if tag == "JS" { return truncate(message) } - let time = timeFormatter.string(from: Date()) + let time = formattedTime(Date()) return truncate("\(time) | \(level) : [\(tag)] \(message)") } diff --git a/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt b/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt index dd71f04d..9b57af54 100644 --- a/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt +++ b/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt @@ -130,7 +130,24 @@ class ReactNativeAppUpdate : HybridReactNativeAppUpdateSpec() { } private fun buildFile(path: String): File { - return File(path.replace("file:///", "/")) + val file = File(path.replace("file:///", "/")) + // Validate the resolved path is within the app's cache or files directory + val context = NitroModules.applicationContext + if (context != null) { + val canonicalPath = file.canonicalPath + val cacheDir = context.cacheDir.canonicalPath + val filesDir = context.filesDir.canonicalPath + val externalCacheDir = context.externalCacheDir?.canonicalPath + val externalFilesDir = context.getExternalFilesDir(null)?.canonicalPath + val allowed = canonicalPath.startsWith(cacheDir) || + canonicalPath.startsWith(filesDir) || + (externalCacheDir != null && canonicalPath.startsWith(externalCacheDir)) || + (externalFilesDir != null && canonicalPath.startsWith(externalFilesDir)) + if (!allowed) { + throw SecurityException("Path traversal blocked: $canonicalPath is outside allowed directories") + } + } + return file } private fun bytesToHex(bytes: ByteArray): String { diff --git a/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt b/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt index e92c8d8a..b83d931e 100644 --- a/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt +++ b/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt @@ -13,6 +13,7 @@ import java.io.BufferedInputStream import java.io.File import java.io.FileInputStream import java.io.FileOutputStream +import java.nio.file.Files import java.nio.file.Path import java.nio.file.Paths import java.security.MessageDigest @@ -528,6 +529,11 @@ object BundleUpdateStoreAndroid { fos.write(buffer, 0, length) } } + // Validate no symlink was created (zip slip via symlink attack) + if (Files.isSymbolicLink(outFile.toPath())) { + outFile.delete() + throw java.io.IOException("Symlink detected in zip entry: ${entry.name}") + } } else { outFile.mkdirs() } diff --git a/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift b/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift index 6f71c457..0cf93ad9 100644 --- a/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift +++ b/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift @@ -470,6 +470,8 @@ private struct BundleListener { class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec { + // Serial queue protects mutable state (listeners, nextListenerId, isDownloading) + private let stateQueue = DispatchQueue(label: "so.onekey.bundleupdate.state") private var listeners: [BundleListener] = [] private var nextListenerId: Double = 1 private var isDownloading = false @@ -486,7 +488,8 @@ class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec { private func sendEvent(type: String, progress: Int = 0, message: String = "") { let event = BundleDownloadEvent(type: type, progress: Double(progress), message: message) - for listener in listeners { + let currentListeners = stateQueue.sync { self.listeners } + for listener in currentListeners { do { listener.callback(event) } catch { @@ -496,25 +499,33 @@ class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec { } func addDownloadListener(callback: @escaping (BundleDownloadEvent) -> Void) throws -> Double { - let id = nextListenerId - nextListenerId += 1 - listeners.append(BundleListener(id: id, callback: callback)) - return id + return stateQueue.sync { + let id = nextListenerId + nextListenerId += 1 + listeners.append(BundleListener(id: id, callback: callback)) + return id + } } func removeDownloadListener(id: Double) throws { - listeners.removeAll { $0.id == id } + stateQueue.sync { + listeners.removeAll { $0.id == id } + } } func downloadBundle(params: BundleDownloadParams) throws -> Promise { return Promise.async { [weak self] in guard let self = self else { throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Module deallocated"]) } - guard !self.isDownloading else { + let alreadyDownloading = self.stateQueue.sync { () -> Bool in + if self.isDownloading { return true } + self.isDownloading = true + return false + } + guard !alreadyDownloading else { throw NSError(domain: "BundleUpdate", code: -1, userInfo: [NSLocalizedDescriptionKey: "Already downloading"]) } - self.isDownloading = true - defer { self.isDownloading = false } + defer { self.stateQueue.sync { self.isDownloading = false } } let appVersion = params.latestVersion let bundleVersion = params.bundleVersion diff --git a/native-modules/react-native-device-utils/ios/ReactNativeDeviceUtils.swift b/native-modules/react-native-device-utils/ios/ReactNativeDeviceUtils.swift index 01f5e95e..0b5ec6d3 100644 --- a/native-modules/react-native-device-utils/ios/ReactNativeDeviceUtils.swift +++ b/native-modules/react-native-device-utils/ios/ReactNativeDeviceUtils.swift @@ -162,6 +162,10 @@ class ReactNativeDeviceUtils: HybridReactNativeDeviceUtilsSpec { func exitApp() throws { OneKeyLog.info("DeviceUtils", "exitApp called") - exit(0) + // Avoid exit(0) which Apple explicitly prohibits and causes App Store rejection. + // Use suspend selector as a graceful alternative. + DispatchQueue.main.async { + UIApplication.shared.perform(NSSelectorFromString("suspend")) + } } } diff --git a/native-modules/react-native-webview-checker/android/src/main/java/com/margelo/nitro/reactnativewebviewchecker/ReactNativeWebviewChecker.kt b/native-modules/react-native-webview-checker/android/src/main/java/com/margelo/nitro/reactnativewebviewchecker/ReactNativeWebviewChecker.kt index 8e7d81f9..0bc30c0e 100644 --- a/native-modules/react-native-webview-checker/android/src/main/java/com/margelo/nitro/reactnativewebviewchecker/ReactNativeWebviewChecker.kt +++ b/native-modules/react-native-webview-checker/android/src/main/java/com/margelo/nitro/reactnativewebviewchecker/ReactNativeWebviewChecker.kt @@ -1,5 +1,7 @@ package com.margelo.nitro.reactnativewebviewchecker +import android.os.Build +import android.webkit.WebView import com.facebook.proguard.annotations.DoNotStrip import com.margelo.nitro.core.Promise import com.margelo.nitro.NitroModules @@ -12,17 +14,48 @@ class ReactNativeWebviewChecker : HybridReactNativeWebviewCheckerSpec() { return Promise.async { val context = NitroModules.applicationContext ?: throw Exception("Application context unavailable") + + // Use WebView.getCurrentWebViewPackage() (API 26+) to dynamically detect + // the actual WebView provider (could be Chrome, standalone WebView, etc.) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + val webViewPackage = WebView.getCurrentWebViewPackage() + if (webViewPackage != null) { + OneKeyLog.info( + "WebviewChecker", + "WebView: ${webViewPackage.packageName} ${webViewPackage.versionName} ${webViewPackage.versionCode}" + ) + return@async WebViewPackageInfo( + packageName = webViewPackage.packageName, + versionName = webViewPackage.versionName ?: "", + versionCode = webViewPackage.versionCode.toLong().toDouble() + ) + } + } + + // Fallback for API < 26: try common WebView package names val pm = context.packageManager - val pInfo = pm.getPackageInfo("com.google.android.webview", 0) - OneKeyLog.info( - "WebviewChecker", - "WebView: ${pInfo.packageName} ${pInfo.versionName} ${pInfo.versionCode}" - ) - WebViewPackageInfo( - packageName = pInfo.packageName, - versionName = pInfo.versionName ?: "", - versionCode = pInfo.versionCode.toDouble() + val candidates = listOf( + "com.google.android.webview", + "com.android.webview", + "com.android.chrome" ) + for (candidate in candidates) { + try { + val pInfo = pm.getPackageInfo(candidate, 0) + OneKeyLog.info( + "WebviewChecker", + "WebView (fallback): ${pInfo.packageName} ${pInfo.versionName} ${pInfo.versionCode}" + ) + return@async WebViewPackageInfo( + packageName = pInfo.packageName, + versionName = pInfo.versionName ?: "", + versionCode = pInfo.versionCode.toDouble() + ) + } catch (_: Exception) { + // Try next candidate + } + } + throw Exception("No WebView package found") } } From a29cd15ef8a396fe34a177199225a126ffb39334 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sun, 1 Mar 2026 21:30:26 +0800 Subject: [PATCH 22/94] fix: medium severity issues across native modules - Fix Base64 encoding inconsistency between iOS/Android in get-random-values - Fix UTF-8 truncation at buffer boundaries in bundle-update readFileContent - Fix dead downloadTask property in iOS bundle-update, use session invalidation - Fix non-atomic write in bundle-update writeFallbackUpdateBundleDataFile - Fix clearCache not actually clearing cached files in app-update - Downgrade CloudKit recordID logging from info to debug level - Add ProGuard consumer rules for logback-android in native-logger - Flush log buffers before getLogFilePaths on both platforms Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- .../native-logger/android/build.gradle | 1 + .../native-logger/android/consumer-rules.pro | 5 +++++ .../nitro/nativelogger/NativeLogger.kt | 2 ++ .../margelo/nitro/nativelogger/OneKeyLog.kt | 20 +++++++++++++++++++ .../native-logger/ios/NativeLogger.swift | 3 +++ .../ReactNativeAppUpdate.kt | 12 +++++++++++ .../ReactNativeBundleUpdate.kt | 19 +++++++++--------- .../ios/ReactNativeBundleUpdate.swift | 14 ++++++++----- .../ios/CloudKitModule.swift | 6 +++--- .../ios/ReactNativeGetRandomValues.swift | 2 +- 10 files changed, 65 insertions(+), 19 deletions(-) create mode 100644 native-modules/native-logger/android/consumer-rules.pro diff --git a/native-modules/native-logger/android/build.gradle b/native-modules/native-logger/android/build.gradle index 799e2ee8..6f81ee07 100644 --- a/native-modules/native-logger/android/build.gradle +++ b/native-modules/native-logger/android/build.gradle @@ -92,6 +92,7 @@ android { buildTypes { release { minifyEnabled false + consumerProguardFiles 'consumer-rules.pro' } } diff --git a/native-modules/native-logger/android/consumer-rules.pro b/native-modules/native-logger/android/consumer-rules.pro new file mode 100644 index 00000000..f2bae43b --- /dev/null +++ b/native-modules/native-logger/android/consumer-rules.pro @@ -0,0 +1,5 @@ +# Logback-android: keep classes required by logback XML configuration +-keep class ch.qos.logback.** { *; } +-keep class org.slf4j.** { *; } +-dontwarn ch.qos.logback.** +-dontwarn org.slf4j.** diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt index a6c3b9dc..d744311e 100644 --- a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/NativeLogger.kt @@ -19,6 +19,8 @@ class NativeLogger : HybridNativeLoggerSpec() { override fun getLogFilePaths(): Promise> { return Promise.async { + // Flush buffered log data so the active file reflects all written logs + OneKeyLog.flush() val dir = OneKeyLog.logsDirectory if (dir.isEmpty()) return@async arrayOf() val files = File(dir).listFiles { _, name -> name.endsWith(".log") } diff --git a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt index 69ad0776..82eae1da 100644 --- a/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt +++ b/native-modules/native-logger/android/src/main/java/com/margelo/nitro/nativelogger/OneKeyLog.kt @@ -146,6 +146,26 @@ object OneKeyLog { } } + /** + * Flush all buffered log data to disk. + * Call before reading log files to ensure the active file is up-to-date. + */ + @JvmStatic + fun flush() { + val loggerContext = LoggerFactory.getILoggerFactory() + if (loggerContext is LoggerContext) { + val appender = loggerContext.getLogger("OneKey") + ?.getAppender(APPENDER_NAME) + if (appender is RollingFileAppender<*>) { + try { + appender.outputStream?.flush() + } catch (_: Exception) { + // Ignore flush errors + } + } + } + } + @JvmStatic fun debug(tag: String, message: String) { log(tag, "DEBUG", message, android.util.Log.DEBUG) } diff --git a/native-modules/native-logger/ios/NativeLogger.swift b/native-modules/native-logger/ios/NativeLogger.swift index 045d8c50..d35278d9 100644 --- a/native-modules/native-logger/ios/NativeLogger.swift +++ b/native-modules/native-logger/ios/NativeLogger.swift @@ -1,4 +1,5 @@ import NitroModules +import CocoaLumberjack class NativeLogger: HybridNativeLoggerSpec { @@ -14,6 +15,8 @@ class NativeLogger: HybridNativeLoggerSpec { func getLogFilePaths() throws -> Promise<[String]> { return Promise.async { + // Flush buffered log data so the active file reflects all written logs + DDLog.flushLog() let dir = OneKeyLog.logsDirectory let fm = FileManager.default let files: [String] diff --git a/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt b/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt index 9b57af54..49eff462 100644 --- a/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt +++ b/native-modules/react-native-app-update/android/src/main/java/com/margelo/nitro/reactnativeappupdate/ReactNativeAppUpdate.kt @@ -426,6 +426,18 @@ class ReactNativeAppUpdate : HybridReactNativeAppUpdateSpec() { override fun clearCache(): Promise { return Promise.async { isDownloading.set(false) + // Clean up downloaded APK and ASC files from cache directory + val context = NitroModules.applicationContext + if (context != null) { + val cacheDir = context.cacheDir + cacheDir.listFiles()?.filter { file -> + file.name.endsWith(".apk") || file.name.endsWith(".asc") + }?.forEach { file -> + if (file.delete()) { + OneKeyLog.debug("AppUpdate", "Cleared cached file: ${file.name}") + } + } + } } } } diff --git a/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt b/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt index b83d931e..ff2c6d73 100644 --- a/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt +++ b/native-modules/react-native-bundle-update/android/src/main/java/com/margelo/nitro/reactnativebundleupdate/ReactNativeBundleUpdate.kt @@ -375,15 +375,7 @@ object BundleUpdateStoreAndroid { } fun readFileContent(file: File): String { - val sb = StringBuilder() - BufferedInputStream(FileInputStream(file)).use { bis -> - val buffer = ByteArray(1024) - var bytesRead: Int - while (bis.read(buffer).also { bytesRead = it } != -1) { - sb.append(String(buffer, 0, bytesRead, Charsets.UTF_8)) - } - } - return sb.toString() + return file.readText(Charsets.UTF_8) } fun getFallbackUpdateBundleDataFile(context: Context): File { @@ -429,8 +421,15 @@ object BundleUpdateStoreAndroid { arr.put(obj) } try { - FileOutputStream(file).use { fos -> + // Atomic write: write to temp file then rename to avoid partial writes + val tmpFile = File(file.parent, "${file.name}.tmp") + FileOutputStream(tmpFile).use { fos -> fos.write(arr.toString().toByteArray(Charsets.UTF_8)) + fos.fd.sync() + } + if (!tmpFile.renameTo(file)) { + tmpFile.delete() + throw Exception("Failed to rename temp file to ${file.name}") } } catch (e: Exception) { OneKeyLog.error("BundleUpdate", "writeFallbackUpdateBundleDataFile: ${e.message}") diff --git a/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift b/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift index 0cf93ad9..f5a26b9e 100644 --- a/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift +++ b/native-modules/react-native-bundle-update/ios/ReactNativeBundleUpdate.swift @@ -475,15 +475,18 @@ class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec { private var listeners: [BundleListener] = [] private var nextListenerId: Double = 1 private var isDownloading = false - private var downloadTask: URLSessionDownloadTask? private var urlSession: URLSession? private var downloadFilePath: String? private var downloadSha256: String? - init() { + private func createURLSession() -> URLSession { let config = URLSessionConfiguration.default config.tlsMinimumSupportedProtocolVersion = .TLSv12 - urlSession = URLSession(configuration: config) + return URLSession(configuration: config) + } + + init() { + urlSession = createURLSession() } private func sendEvent(type: String, progress: Int = 0, message: String = "") { @@ -790,8 +793,9 @@ class ReactNativeBundleUpdate: HybridReactNativeBundleUpdateSpec { if FileManager.default.fileExists(atPath: downloadDir) { try FileManager.default.removeItem(atPath: downloadDir) } - self?.downloadTask?.cancel() - self?.downloadTask = nil + // Cancel all in-flight downloads by invalidating the session + self?.urlSession?.invalidateAndCancel() + self?.urlSession = self?.createURLSession() self?.isDownloading = false } } diff --git a/native-modules/react-native-cloud-kit-module/ios/CloudKitModule.swift b/native-modules/react-native-cloud-kit-module/ios/CloudKitModule.swift index 6d02e2c3..b0ea0bd5 100644 --- a/native-modules/react-native-cloud-kit-module/ios/CloudKitModule.swift +++ b/native-modules/react-native-cloud-kit-module/ios/CloudKitModule.swift @@ -54,7 +54,7 @@ class CloudKitModule: HybridCloudKitModuleSpec { public func saveRecord(params: SaveRecordParams) throws -> Promise { return Promise.async { - OneKeyLog.info("CloudKit", "Saving record: \(params.recordID), type: \(params.recordType)") + OneKeyLog.debug("CloudKit", "Saving record: \(params.recordID), type: \(params.recordType)") let ckRecordID = CKRecord.ID(recordName: params.recordID) let recordToSave: CKRecord do { @@ -69,7 +69,7 @@ class CloudKitModule: HybridCloudKitModuleSpec { recordToSave[CloudKitConstants.recordDataField] = params.data as CKRecordValue recordToSave[CloudKitConstants.recordMetaField] = params.meta as CKRecordValue let savedRecord = try await self.database.save(recordToSave) - OneKeyLog.info("CloudKit", "Record saved: \(savedRecord.recordID.recordName)") + OneKeyLog.debug("CloudKit", "Record saved: \(savedRecord.recordID.recordName)") let createdAt = Int64((savedRecord.creationDate?.timeIntervalSince1970 ?? 0) * 1000) let result = SaveRecordResult( recordID: savedRecord.recordID.recordName, @@ -117,7 +117,7 @@ class CloudKitModule: HybridCloudKitModuleSpec { do { _ = try await self.database.deleteRecord(withID: ckRecordID) - OneKeyLog.info("CloudKit", "Record deleted: \(params.recordID)") + OneKeyLog.debug("CloudKit", "Record deleted: \(params.recordID)") return Void() } catch let error as CKError where error.code == .unknownItem { OneKeyLog.debug("CloudKit", "Record not found for delete (OK): \(params.recordID)") diff --git a/native-modules/react-native-get-random-values/ios/ReactNativeGetRandomValues.swift b/native-modules/react-native-get-random-values/ios/ReactNativeGetRandomValues.swift index 7e4a58b5..3a6dbe29 100644 --- a/native-modules/react-native-get-random-values/ios/ReactNativeGetRandomValues.swift +++ b/native-modules/react-native-get-random-values/ios/ReactNativeGetRandomValues.swift @@ -13,6 +13,6 @@ class ReactNativeGetRandomValues: HybridReactNativeGetRandomValuesSpec { OneKeyLog.error("RandomValues", "SecRandomCopyBytes failed with status: \(result)") throw NSError(domain: "ReactNativeGetRandomValues", code: Int(result), userInfo: nil) } - return data.base64EncodedString(options: .lineLength64Characters) + return data.base64EncodedString(options: []) } } From 4b2ea1f5fdec9db6d9367f29bb6b60383bf902b7 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Sun, 1 Mar 2026 21:54:19 +0800 Subject: [PATCH 23/94] feat: vendor Gopenpgp xcframework into bundle-update module Integrate Gopenpgp v3.3.0 xcframework directly into app-modules so app-monorepo no longer needs to separately import the GPG framework. Replace dynamic ObjC runtime calls (NSClassFromString/NSSelectorFromString) with direct typed Gopenpgp API imports for type safety and clarity. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- .../ReactNativeBundleUpdate.podspec | 2 + .../Gopenpgp.xcframework/Info.plist | 52 + .../ios-arm64/Gopenpgp.framework/Gopenpgp | Bin 0 -> 10566024 bytes .../Gopenpgp.framework/Headers/Armor.objc.h | 96 + .../Headers/Constants.objc.h | 197 ++ .../Gopenpgp.framework/Headers/Crypto.objc.h | 1963 +++++++++++++++++ .../Gopenpgp.framework/Headers/Gopenpgp.h | 23 + .../Gopenpgp.framework/Headers/Mime.objc.h | 59 + .../Gopenpgp.framework/Headers/Mobile.objc.h | 252 +++ .../Gopenpgp.framework/Headers/Profile.objc.h | 107 + .../Headers/Universe.objc.h | 29 + .../Gopenpgp.framework/Headers/ref.h | 35 + .../ios-arm64/Gopenpgp.framework/Info.plist | 20 + .../Modules/module.modulemap | 13 + .../Gopenpgp.framework/Gopenpgp | Bin 0 -> 20747056 bytes .../Gopenpgp.framework/Headers/Armor.objc.h | 96 + .../Headers/Constants.objc.h | 197 ++ .../Gopenpgp.framework/Headers/Crypto.objc.h | 1963 +++++++++++++++++ .../Gopenpgp.framework/Headers/Gopenpgp.h | 23 + .../Gopenpgp.framework/Headers/Mime.objc.h | 59 + .../Gopenpgp.framework/Headers/Mobile.objc.h | 252 +++ .../Gopenpgp.framework/Headers/Profile.objc.h | 107 + .../Headers/Universe.objc.h | 29 + .../Gopenpgp.framework/Headers/ref.h | 35 + .../Gopenpgp.framework/Info.plist | 20 + .../Modules/module.modulemap | 13 + .../ios/ReactNativeBundleUpdate.swift | 167 +- 27 files changed, 5700 insertions(+), 109 deletions(-) create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/Info.plist create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64/Gopenpgp.framework/Gopenpgp create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64/Gopenpgp.framework/Headers/Armor.objc.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64/Gopenpgp.framework/Headers/Constants.objc.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64/Gopenpgp.framework/Headers/Crypto.objc.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64/Gopenpgp.framework/Headers/Gopenpgp.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64/Gopenpgp.framework/Headers/Mime.objc.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64/Gopenpgp.framework/Headers/Mobile.objc.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64/Gopenpgp.framework/Headers/Profile.objc.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64/Gopenpgp.framework/Headers/Universe.objc.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64/Gopenpgp.framework/Headers/ref.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64/Gopenpgp.framework/Info.plist create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64/Gopenpgp.framework/Modules/module.modulemap create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64_x86_64-simulator/Gopenpgp.framework/Gopenpgp create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64_x86_64-simulator/Gopenpgp.framework/Headers/Armor.objc.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64_x86_64-simulator/Gopenpgp.framework/Headers/Constants.objc.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64_x86_64-simulator/Gopenpgp.framework/Headers/Crypto.objc.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64_x86_64-simulator/Gopenpgp.framework/Headers/Gopenpgp.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64_x86_64-simulator/Gopenpgp.framework/Headers/Mime.objc.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64_x86_64-simulator/Gopenpgp.framework/Headers/Mobile.objc.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64_x86_64-simulator/Gopenpgp.framework/Headers/Profile.objc.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64_x86_64-simulator/Gopenpgp.framework/Headers/Universe.objc.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64_x86_64-simulator/Gopenpgp.framework/Headers/ref.h create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64_x86_64-simulator/Gopenpgp.framework/Info.plist create mode 100644 native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64_x86_64-simulator/Gopenpgp.framework/Modules/module.modulemap diff --git a/native-modules/react-native-bundle-update/ReactNativeBundleUpdate.podspec b/native-modules/react-native-bundle-update/ReactNativeBundleUpdate.podspec index eda21e20..47dd8519 100644 --- a/native-modules/react-native-bundle-update/ReactNativeBundleUpdate.podspec +++ b/native-modules/react-native-bundle-update/ReactNativeBundleUpdate.podspec @@ -19,6 +19,8 @@ Pod::Spec.new do |s| "cpp/**/*.{hpp,cpp}", ] + s.vendored_frameworks = 'ios/Frameworks/Gopenpgp.xcframework' + s.dependency 'React-jsi' s.dependency 'React-callinvoker' s.dependency 'ReactNativeNativeLogger' diff --git a/native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/Info.plist b/native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/Info.plist new file mode 100644 index 00000000..389e49cf --- /dev/null +++ b/native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/Info.plist @@ -0,0 +1,52 @@ + + + + + AvailableLibraries + + + BinaryPath + Gopenpgp.framework/Gopenpgp + LibraryIdentifier + ios-arm64_x86_64-simulator + LibraryPath + Gopenpgp.framework + SupportedArchitectures + + arm64 + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + MinimumOSVersion + 15.5 + + + BinaryPath + Gopenpgp.framework/Gopenpgp + LibraryIdentifier + ios-arm64 + LibraryPath + Gopenpgp.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + MinimumOSVersion + 15.5 + + + CFBundlePackageType + XFWK + RCTNewArchEnabled + + XCFrameworkFormatVersion + 1.0 + MinimumOSVersion + 15.5 + + diff --git a/native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64/Gopenpgp.framework/Gopenpgp b/native-modules/react-native-bundle-update/ios/Frameworks/Gopenpgp.xcframework/ios-arm64/Gopenpgp.framework/Gopenpgp new file mode 100644 index 0000000000000000000000000000000000000000..9de3a1a9e048846e92d843b127e89866ba46eaaa GIT binary patch literal 10566024 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�qk3p8iqq?)tfun?H3+(KYh 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%0A-g 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

RCD{_*R@ax&uAiOqGM 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 z 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

tS$m3;n8*@qq=A(1jN5t#2S>Sc%r?qjT@CWsG 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 kceO&PR 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

_uaB`^+v<&-NNCD+>7(?7=DB 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
CPkF!@Tj{ejB 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�z?!$sk~|On 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%0A?IAs@N7t8jSAI90m z)}I@;i>-`MOqyc!GUpoWC)>sH>5d@dv~PSfcKRCTE>}K%hJJFNIhp8UG-NOTIyUrF z_VQ#o^6SNoU(VQMi|S7_9rgh^`LZ0_G9SOXnDKBNxwB8TPH6OsIoDirKr!T3&VyeU zS{qgL*C0EUSQ+u@5oou>#K)D4_F@N$kB$?2I|2_Weq8b1=GlDB^8(|y*L{HEp;E=4 zn>fAF(N5%wi^o$uuB-3j&r7hApPyml&x`5L#6O8=i7{1Ky;DEURn{gep6FMhZrSgGoo3HGvp)-=kpB%Dd^Oe8hqO5;d{^YRDDt}EbEU!+>mfwNTc;U8) zJ$r>6|iW2m}O5#Zr6zh2k^;61i+04Kke;W+ot_ z26d`ds;M&rc)^;Co`PrWIdx9iJNFQ&jkTx5TmIkQdf&D8o6Qbj+nJto{_^>Rcfaqu z-nE|ftmn3#^{i*H7gBpARo9!$Z*3j=<}J#pj_c`53BIJ4sUrrRs=bx6L!IDJ*@W1Z z#E!f1yo!VM$Bru=TJ-Mj`#f*|1!?5lJYY(dZxv~t{ZX1{ChitEuN>(evh}hN-;Lfs zgLjHQu7|(F#Ni6hvZ>wp<8Wv<6UyFJ^cD$gnTHa>a%};lD6E#O^B@W~ZXpZT=0}sOqQcQeGRyR_sEKTYM9z@l1iY&vc}m zD~ioltcYy1f|R&&_1ng7;}=WBcKFBf_Z^qr#yAPrdl}QS#buW;N3e0(@@>6I{tP$g z$w!FCo{)_7&|U)Jq8B-@F;G4gzfMx@N9ugw-zFZ!?&<%{VnK#{I>5@GlA_`A-5)Wv4A`2u>(#3<^syRD*#r{3xL2Azb-Nu8Q)E>dJ*w?QR6P?b!-U8i?6c18B zE)@KY3#PFDZ7x1Z#Vt=iy2JRaB}Y^3)-btF)>B{D^KWl1asAurY~m?Cn|MCoyzrAv z#wXt7Oir7ZeY<$OmgYWs#^zj~ZeQ_k86+G5HKb4ubZuaOU;y0#K{(*2)qQ6at z(tk6>7gKT}-*noTl8e&Elsu4`Y(r~;od^HQv{B%MS1B)!$EWL-`eI42^YX3#zf*I6 ztg-2+R2FO9PkZ1_wuBg_1E3l zDV?+F7dobi`RW|vkhSmsLB}D#L1tSf`3-tlvzg&!Me*gfY45t?T-sS{l<#U2cIOb+ zUf_{ETJreTo&Bt<9w*j7wx)6+^kVz;0fW1q?b<)a=A_Md9x{Wv1cTaDTfNvloLMla zwp8Z^{2-Z5fIYU#U!nc!8T&it@Xb8F;aiQr_O^D{RFpmm4q{wm%0ot()b&~Uy><5X zo>AU)g zQeEIaoh~r%>DzE!Ab&z?PFZ(NPU~8RE{G{{ul8R0!;6hhTJ0A!I6DF@TADT1RQ=Gz<N$nUqn89T~|5lhMp!C2fk>3+TmRK)j#g2JG`! zR^B@6Exvg?C$fF$#gNHGX3L%oQdBIW9 zlhpB<%t&dOlh=>&zJN24uDpr1%beW)PXk92*R9O6zq;b9vkHP^S8YOnoeYiNe=v}{ zYKi$BdGa%~b0g~jWzN|CvF4kx{acxz-@4+~SqJG)4do7g;I92DZdAHhIpvDEF3_3+ z%M#7__rAX3>y*!5#r)N@(L{S%FFpycNIw;fat3z8vudk}wv<~zZ9K;M#AEp54&t+O z%h$U5d(I=@4EZf@WZh2X6-Sy{z6773V3FOz9Dcz~&giyZgmT-y`oX>1j`BO#$&EG< zH#mbBD%nrH_$7LZ$v-CBrpYP2IWVT}De_;w6UuM9>w_KJzCtWzZE$@5nkO4~HU)C~ z9dJ5;9EmX=ZmzQNu8u=L%N}V*A9u(OB7UpuW@wD{h@N6>A?Aa9O_9t2=E`9EJ2{*;eujkT!XDHmZ^n?0s zNBHeHVd6bT^>=^=jrDb0=Q6JQ7}qZH;5K~Fux&ARbd!_Wzwz-qcWQkn0-al0Xotro zi#b0lF?M#`ssq8O;7~3d+|S8T%+qx0pWr*MMsc&#IeTkDWZi#*t^~LJXZ1rL zwBpwf1&;GI8{@)Ss>uOVGyblfmvCm;Bk1K=R_&7(PIy$g8jVbjLBIAne)Ig=Pub_m z@*$qPaTo>r+o`7$nTP-X-hJrpZobEcW3J=u=X-aZgE3QiTQ9JCYhWI2ou$vpziIo6 zZM%+hj@DT_&-Q;MF{6I_NIqGu&m3e2ednaZl`im{az2Z6iWmRuxIQz;iPNY=1=i|tUt<0;G=Y9jf3!ss1bcxoq3wRcw z-YvXW**(1P27j4e8R7O$C-*9~TL4`#hGwpFHh4{L6L@>1m@&=QRk!wjXl|^Su^X8W z+gPw$SufJFW^~6v=Ce6mi6vWGl5yxuqp~BVmv9xI;qUv}%JExwmi$rVHO2j3N_ zkU!MFXW;^KpWL&cdE)P4zd|i>R&PpIJQ3ab7%^ z`x}hk6o16?=s?AB{hYP1^FH{?ZC~K`<<5DD{S8CZe?4>Nk`;eo_BS-b2a4m;-iF?U z{u>8Pezg4!7B=DmOgz_m>J?A;W3*D&X*8E+{qMASw`l5I_CAapw^Fym?!gX|6Ya<{QAx0tH^W?9LjK>B8PJ682Sc3CUhS3 zd+%e+M{1BU%BA?fo6Z{vCofo>bhzi-1O}5h@$dh0^?mZZ7wR)}^9>hq<|wjW^~*mH z=lA*WD0xeDMxTj4uV1lvR_Ad?XM39ahTK4OFJ});ee;gjHm+E9N;bFe-7*1k777+?YuY}@m;PTpTIGGho@_1`y(ar(`+;A?+JxpR+_*T3 zv>ftqIFgUV!lx^;y5$A0e6d%DclF!v5I?DSJ}2Lj&o}k)_);{Vp{;A(xzA(w0k7A4XVb^+%3-|DRWB=mWa|3f6bAJ2F?B)D$+=RrM zg|&gw*^8QAPW5aT*+fG_;pU;C4E{3t%WCezN7BW5gk3A|#s@5)N;iHU8>7^N|D%f- z1#A0t5v$NW$9IoE$eo9N>q*xR3?yRN1)J<;GVt3ukj=gNz$)laYK(6~u(muZal;)?F4j!}k+!QeQ zT#3Kt!*QQT;Iq9JSl831Zx~u~*XDr9+Vx%F$Mg$4w1clW{qw`${S6a)VEB$T^Ojo# z_j=!1-u#v=s`Vj!Zo|Hffp=S1JoI(&88CB>cS6C&U5=Cc!CU`N^9MD~QMIr9fheK+vCf*r@Uy?M=NgsSZipf4b}TAevi~%$12t- zc)w|e`c51Oen6cEsIe%{CNBc}ujb%?QOtvK7+=FPog;VT{o4DEIJMh*h-c__GNZM; zuVHS|A=n z`%m(6Ams8(A3n?v$K@yZB__I>6Dn=Ljd8f$j3Y7S>Bn;ej z-|vjjR(v7j$omcOROh55p7foqm%e>YIXr|{%e%VQcuQ{Uc?0;G3h#m&{h9II#Mss` ze!`V}2GT38Zv4FAN6AI$6X_lQ^B8r~$5O@rC1^TJ{brp9KCJZU+UkGBSq)pCg7)H! zi`MgWzIPEc5NC}1V`BTpn0~GU+@cp;I_9_frG5z4S_>2|HhAlmqSG3EL!Z&N=9@yw z>wYQii1w@b_AvWQ+rg*e=ZXy92lp4k_hoaP0p3GL1^c0``~bKrf)^$SU3xx5+?xlR z8CU5;V97UecHrE`QM&l@&Nx?`&^TZSUF^y>$*XaZ!DrI&zd4VTbp*fv#mFmY-eC;u zfwc}e-TKcgU*1epf5N_DZNqQhbU>%=qF3~obe&|P_UmaKN_bR$X`S63zZsl=F*4Wz zU1nUw-x$uSu8F4Zl}iicGjXGWaI)U-5J&4gY3xPI?wOm9tGAzg}W6w7>lXYX-c$ zW!`(vInU_d@N3t9sPR{x7`x6(Os1g^%?EAyZt8!*tKSdbRO)|$`UT&M)Zflp^n;9< z;L+LZ?bLfe*Dl975TqZj{b$cgbM37~z;gegjXP_}wNL&UBmdN=PU>g?ukAvSIxJ_bbD;MNZamPJ;XUQ?RcOF(g}{b z=MfKZ1F;-mAf^@C?1whHB)5zp+) z%G6GA*6h~x3TI8Vt~1;`68i2Fl&^itSrdmpHXi&GA+9*Y`D!Y^ zn0oZR)&fUM1jkCTJ z?Hy#?@Xar1FyovttZwOcjkW65SZ`&`xQ4Um?O3Z0jkU@VyZpo<@N<~49?oCs$Jvkf zI(RqTH_8(%99tQy-$%gb5$Dv?y_{j%$NK{Esx2NGS|B(wf#cfHsizBABi{?GK_|1V z3taBgm3hO9#IVPmjHqM?JhDJ-iXOCHYuo59j=+bEFJl6puXJP0Pp4bqKb3x58^Xrf z_|H_dw*Cll#oAZ!P`LTT_cD@phCi-WdkY?#%lm7Zjns!td{=a_E4N z)gL(R^~c;yY^?z6DS03((Uh z^3y>##-_kNILN$pF}#<7y|9m%nFseZ93#GC)nWR{H?I9W+WJ8XsMDpRq};Qz($!&_ z2gpY26dowsSr#bOT&0|G5eyyDL()f{P1=dh5&ZJ&NY_`x6QU8t!036Z&bM}G2fShS zS*RWOtAV(k4zs7mv!m&&+S@%I*~t6U@AjVO97tC_GK%uT6W_FB^L8NjR8L(t&&$e7 zt23OdI(WY{S2nJzQ?%Z?6nji;<|6>n$l8@zm`IoVjByjp4IV=4X+?9fHf$tB1#$&dEw)Q9}x=*6K`^yeN@^n`v5p?lD)%k;jfA39oR?9nIo(KckFdL+84@d z)3_|fKd_uR!;}wd?_)l=z23==iWbqQEf0C~EX|Xa^WAi4a49~8rOYi%ozT*9<{&GW zXOQ!WI&Fu<>Va$KVwHny`I0$c~3!L=%(YarrZ(W2j)qZp$Ot=mmJ7f$Kr|q}r3kk}Zpo zCmZ=wd6!PD{7BC2{j{n4bOt#7OTd?+|4sZ9vP>`?f+nQvRKFiTx<3>B_tB1tZ|WeX zpE&zHzCBgiZ^ifIlQDLV*$b$;Onu-w!1E$}CWY@eZPA*5%IcqmH^;!6To2-v2ix#9 znRk4B)%QW@IAC}?xL@_!`rP=j;rmO5hC-~pxa%-M`tOd5d;X@iN3>oN14r%5CnJna zd2$@gJ|6M2{D*o!hqkR8zXlkLPaV5K-QusY2wS2ZTy+pLX?38BZ!b<5-bjoiwwB_@ zEd1{J*hL9nZ;<*!v=?F@+G6O*wh?~+_>XFGBQ4CK21h|VHAW5=XdTGVk^D3AVY%(P zcI7Qj#c^L2mow3I8qOt?psGDzUq54*{0^2p{J7f@^vqwju>rY6Xh>@ z$2})70RwPK{^|K4>Q_#+(EG{nw=lL^*Sm{)%h1cF9_}~rT=ni2OmDirDdAu-_i~mW*)rGYTzlq7|2mLA!Ywh{T z=hET*(6N1e3qb_q^1a*n#U!e}OhmJZ#i?8sly`RCpxJA%!yw4%rnFb zlHbZRWA?nG&mqkn@tVkB`*P$w{$#DqcYUM0wD)G#Jv7%}WPD2b`tCvI;+kIy2AwrJ z^r*WB=@y2&(_6>OFg`Z>F*V4AyQSK^}Q`W-n z@`c@@rqn+;)@Sdf;#lTpL4Kic0 zyu-?U<5y4D9uH3ph1 z%YTC{Y2xZd^X>TfV)L+neR%9zUtX#@wMS0tXNrZH#yl}&<+NEC+!N$SJ1&~XXWs<9 z@4>bbocikm)_uS#*bc&zg0&V{$)nP!9AtXl1*}@ji8Bs8z|HT+)>PU%6FmR%-wB=-__YL&;1WJ1D+E`%@x1gL#&a^`*;V@y z$FkNpmL9I`Sn5o{IOCx89QjSPk5_&~>6LW+7cuip*Ov$FxPC#dMa+#vOTW!CD_7j} z5j~mc$woWZcGqBCe~)W(+w}&m&E}Z-xcl7wt@R7Rl{{+{gJ^oG?dU1t3=)PE~Brt%ud2kl_H#I%>!>nm%9SL!^B zTJ%%^o`@sYWS<>oOr)2VQm6Pw^ESPcKX)0=f zyt$Tnb1m_UwVBPu;f$#KmdNXYyJ+WO;s!dOcXJ%uF?H8x-55ICAI*mZi}ATj24j1@ zNQ{Q;w8@We+F1ZCIqHMaN8TQ34Ds{Ej0Y7^%+-w@1s9u_~h@#?&v}`NycR% zrjdtGo_9?2UHw*|@Y63*qxdHYtv;0C_{K z+k(B!<2r$16M2QD6S~AfYq6pIszdcX zOFhzWia}7!fauykrn*nA8M*I@sx;4fpv60=S!x>^Jd@8{Vv+GV$0*t&ox1Gy&F3sk4ovnEaf{&vU9_4!S6f^EnLVmd=@ z^F({(2+PE8BRL>FZQ=2Mb1tx+OBu;Nzuar`jfou(;x&f(A7n?!2cfaGzBSnr!h_;F z;sw|c%*8s2xiW5gz6XDFyf`v=m_3k+MKrScv&Pr8qndr6T8oRheyIdb_plfLG@QaS z0oG#Vi(HIPdV^xW;0gKFC2Q4|?u$c?d8V}+Vrd5z9~WW`D2%__j*;+_w2eK#-E`yv zFbi%M-|q8t&)R|6%l&p{m{yF z>hpgqKW-d7C!a|i{#C5VQmu15?5x?Kd+0I5Is)@cvxXUBO=I{Nx-jZHYg2TKKH*`} z)^gu^MaS`r>Bi@||cf!god%LWkAp zVDU7JTAJvSXQ_Nw03JH!3-ZcOVJ)H)9L!xB zCpu)c90O zPvxac@|>&uFbgihk@_r>OU#moEA>b1F9X&taPkS@Yww^g`_kr~u`jT1T60FKqR{CE9)3m(?(yE^h(cb6N#AY35#4K6HBUL-b6<&i}T ziiqQvti(6mR?k{!J+b`CnWHs`)c({3PCea@93jtee=qV_zWWNtX{(?PVhG&$C}dy_ z-)GRKeEuC851;)dI$s98f|t*A(Kq#5_!PbC{z29xrZFZ(qn*JAS)-VS zjl3HfdOvG~dyu2hIdn|kYG4tr`8eOT5!`iSSAM!YUBJ$*>>Og7Im+sk%j9>DZmCtVdG2l(d-}EOTzYc#y`Q`sMoqkWy$S^(P!9!nM z`z*uLBkptIUpTh=9YjyM7hcRfq=qwb{qvBTNa=`k^UuI=@EvE3qj%gNA_s(c?Vx<({62_J zypSt6OVC^q`x}tI37Z3&NziGCa?m^bw)}R8iz7o1UO!XEbaxi9eWDj|uGoUq_sV~( z_=Nkt{8N*OftDQB9tPvXK{nWT70QEI%=6hsmnGm9PYZ6zh{c|r)rGy*Jv(V<>0U9- zdL}smE{xnDMtqPQL4%UD8Ffx+NkT4+Jm#+4IKz9duNLklz-?l^e7kb?tOdMtO60%g=sZ&h^>Wz~TB6 zy!}5q+bVVckLoy#%nKtc>(Q@GtYb;XGv36u!CR{sx8=mDqhC{L0DItxL#!{vS4n3C z`hQg9@;p4(7RHwwTaG?PR}`a@!^FupLF>kDf<}}}8Q;QD#bbBl2XgnBMYbPtGNRqc z8R?WbFzEV{xkjFRk!vaph2c|Ahb4D_LB6Cptd&R}O-1%}QTKzi!CDQvZ}YYu;OPaP zgV-^J*rJ_2n7Xka6)*k(x=wzQK42;#KBXiO*e!@MXj|5^Po9HLEDyP~ z>%lLYhPGu7Xzpp`qsDKZ3!AkM{NJRjC*8B5p;67QKi~DOSv)F6G`7%D-;F#eM+Ua< z4W`5kx^wMx^$KsI8R5|2VWhs%5Ao}8*pquRG!FV+Ij5wvlv{1)$|an?>gtmlpiOt( zNBNsv{@!D>mOq?q8V{%s07x~I{c9_L; zkEah;dVSIQz54QFS6(G-6Td7w>WjZF!RL0GzXm=xdWCk3d>rkLrQrqS^Wv*r-Le$j z@_=u?w3Jvn&6lcYA!odA+QGT(mH>U#n8x5GjcYabw`}4?bKSZ$r`SYYb0Y40&8HVd zoI&LbR2_<6T;i2oLfIwgg?8$)egplU%r{Ha;L|P+0oRrHisyLQ?8Qp%myypzGG+?$5c?&%^~ev04(suBnAWwH;}clwAm{ikd96K<-N4udOq-}%YmNa>SA?A;m_XwWo%yEu zNjKwZ=m8lgSXIYjVBNrXP3Syyn~AB|1P;jS4xGuDQ^(1|zvkt>$KG_u(u@749o40_ z+C8~o{i*K!!{sZN2Q&JaM4!fkuAQ391=l$Nn1NS5h6MisxAweP{*#?5e7k$WB2Q{B zn3W~Mqvi*G`ud8Gw*2&UPWI^Gvmp9F)`6$#YJnpvCWDLx#!Qk*ZmCc`7`fX zcL-INmrmgiUrTEZexTwU=gQDhp7Cd&ZNhFWzJl-g(|6?FT~JIcc$h!kZ$N$)&*h#! z^Pc;3bQK{#=SXzLJ`ndEbYtj?>k|5*ajgq`@8Dnaj_VToq<6bn|1xz>@!oM=LjUyc zkfr0xy?0!f&R2>2R5V5#BWLbG1BrE-iT1QdLMneXwAR8y=U-) zx2a?BaMP}11>-QU^#&h~zf;rAHtcdpa27`iHBEqM!k zHuWZ_@!(ej11pews$V)%>jV1jUn8@5Rn=aX>__|yT65BxQWy4*Lp?PS*#ojIUAx-A zMq6F%yW4|Z630hE-=FG2$L`~PpA%?oN7riqG(Hz%VIqUFlQo}=Gr!b*IvCvjU9`h| zK=Ux=?9pE4jo3OBP5}GF^_i)C6Mq7%?Q`I3$#B{;`(&xRsL*L#cBwlTzaM%~ewL2V zUnJsh?7E=MRo=yX&Gn6GP8!<3Z_J^ePAhbdUbAA_DeI%~f8)w^*I&UnVz>C#UsL4! zw>{FZ}^^V{#T+ZPe1)&`!68Se+6fd`<0S|_|J2JDtj)J{y!TgI=$7BTj5 zcss<{O<@eDLO=VUCDAs%n3k!~P~sl?nhG5y?xC@%#KP+y|5A%&W+AXxK6m3mWY4+% zmhU@`tePCT=2Qi^o0A{eu6BZ#vL=Mhk0-Ud|O$Y z_;6fuy-++V`NdqVbnaN~WrPRd$1wEFdDYP{ICb?Sv4QL>!uB4}8bt^EqHi-8?{3<9 z2|grl1Aot!Z4cn$B(&wG6H&Ynq*@ekE`d?A}xdHn%$M}nuspYWCVLUr{p2T+^! z*zsY;Q*G`MJwWSSqnSgD<1f$1G*d?bWh6)1y?SgNHBJ`(7kn`I#EO7vF89bf;_1H0 zzK$U0h6M(+N3H{&h);LO%>wPvMw~Y4I={I+#@s4KTOGD7XfBSe?>GVC5}h{9Pb2Tw zZF4Bw!5p;OacCpZCOFiF#!r2Gfwd9wh1#n(XCZ`4yi6zUinbH;5X$OX*^%nE8+YMf zuXfiN{4}*V>vUSSbltA@6Sk&ZyU_ZZPkxL*-|}@BLh}AI`o;P)p##4^Q@+ZM+o7A= zoWWm(0*&v`?yfYsw}@qLq`DpPXrwtlI@BD$O+3s#o7?3(3%ar!|BIPladmyKT1U7e zAxrgrVqY!a%NJ$#E#EA92t?z=Gqrp9iDC<>y8l~o3%&uiI%YN3A=hK;ot8ReaIBUqvNyJgD>9e9^Ea7M}d!*Xo@~quHN0dPcaer6iC!za)?`sw9v#zuw6iUB9$G?`6u? zI~k+jIPvYO_a^@1*Lo=5qw?7*pF#OBA;&3Vm~?{UJT*H8M(s!8<^eC-J3 zkEr|@l@C)si}D%sk5K-|)pzD?rTh^mYxEoc^Sf2gUiHk^_EDa5wMWm$RrxH+XHq^q ze;?)d&1lFI?Brk={ob!ORPFlSKPBPMKQsIbU;Iwhd%t)%3ID{i!2jHqs!5p#lJH-2 zX833C-d^>_!v~Y_7oHjZNt5oYnsoVNN%*In8UFWv^>h}f5w^Ne`D*8Pb6@E z>6u}F=RL%?JAxXNGhr`4lU97YYEt$y$^L-f`S3xr_f0cpd-!I*u79>UPy8@@ezfY1HXlC#<9v8w ztM|=T${yjHZMt4}XP$Us;jg|^^~RO|nCurcJ|BMQ^S)6Z_VJDSvG4MRJn_Y|qc>K) z_o9!lp_8-qXZ^N~RlBa+o$L?zK5Kt|{5Msz^Pf$Q5&U|#{!CieRJH!ye@ONRnm=2A z-uQ>_R?WWpfh3(6_SZ>V~9=RYO;1OJ|_KhOT{#;S#n zJe=$gd~mk@JX`p;RqL-lkn9g~^lbf^RJ)_e+wr$zY??q;oP| z{V}D%=ri%juIv7`>W#mCDhY2w-=u-}SKqCAV|{ZHUZV@r!#n9KTdUUp#79R7Iej|3 zlm7CrtKR#`)5GY;)sd&e`^JC2r)quPz9hVi%}DrNI8)-f?Bz}#& z9|6Bj_f#!>XKxZ-_-90T|9M;0uD|lx6b5JM;Wc(qX!^`u*MYkRpFS{SoiS7RGd9tR z`n>2JetI_8SC`$F5Ldzs$KC^ z8zMct&))NQRquUpFo|cwOC!Mh!)Vp6#~)A9h2j15@V@u*Jynx_<+B~kSf__~(!c&q z)vgzPa?j9adU$s&!DguT*$l|y5%GHk_RC?PyEV6$+P|w> z_|VfyIySVK9^Um|+*$SBm-Z#`Yj|k{{C;g`)f->+*#U-*)5BZujKO{$i_Lu=cKW!{ zMfmIv1_S+vn}!w;x6Pa&P?FAH;qK>8o-b_YB8u75+{E?08ef3x-yGrj9xoT|Y2~xr zc#PENhg0ft=SUT&1f%u8{KPlkvHq2nX1!+k`frSRzJ*)s(8d>8Sa&S!?0MV7(uS7* zo%M^l?RaaIDQki~zV@h3@h^#gw*9T&9q#X=K*IlI@;u|~+T+FE3n%hP$Jw{0xcdU) zKlM(&SH3g2T^w@fwoAP0V%G8w`_}Y@H`W3ZXV+GH<@8MN@GF@sv8d)+bcZ^s&rw@$j)+b#>Lp zx0v8|K0LTe!n#PaqoR4ie>5Gr;RaakpY?Hh5D|eoike9!gxm9&mBr#W7GA{Xh zq&3g#tmGVO$++b2r4y3BZz*tpS9|kAJAbtI%r{M6m!!P6^HR#S9P;g96`u5MA?x`1 zZRf2Y*XQEV;`d|xxqF^JrWcn_{{O@u{`fBI%e(x&H1RH*-2J#Ov$yTTaTg@=7b@OE zv7e)fcgt{y_vZJ*#1U;IrY(YBBF9;Cf%X>S_s-AQ{d-f_*YeYDr{S$AKH z_G_tr#a+%||3}t}8MCzCWh&=j^sqOkXG}(P#gvzJs-Hu|SY>^tX=m@m$o8Jtx+jUn zALz;5vh%n@E+BHoXm4WABJDpvJx7}MQgso3)w8I)l)Pj6buNVVRVjCw_HHPSxPmqm z+qMlnDhB4^wM$MB^Ln7q>s!wFLq9!1->whjv~g}s<9_-!pT5ncZ`UH69_f`AH?h^VrYQ-h9RIcRxp{GxTa@yvP&54el+G_f{C=eL< zGX1^blacN7kHqto@-E?TCTEgAe{DPTVROjHN4p8!xczZ+t#lA$r?@wp&)Mu*R(s%B<%!R8 z&n1{nJ(uuDj9npnoZ6a5*>WTZ}RCV9Mz4Aqk z)Te*u9pw`LO#IjL9{;ls%byP{UPB*T9ISQ*BGALZ%gONyKBy$&bJzaJ zKuWBso#V9+i_i1&H!gDP-b!4Y_P&b7l)G!FHmfv(_cF+Cw4h4{Y}K2Pq>a4xa*rk`A#$IKh2wHk6a$aoe!@&G{tGjnBlY#i`wGK z8M}YR#hD-9@vOgi@}uB8PT$3Q)B(+`=eHYku6`L>;at4VzYYRt3LkJbUguv|@H{g3 zUp#)W`EFk>PERixawfx^!}btuN{(Gm-WcuGBiKFP}@Q!ij&UuR}1Y{<#(Ux7|sOuaqGy{uTcGzQ&1bWvn`GcmT3L7zr9D*x>B>{BO4Ykx6U z$#coyxO52euN(gEK|b}t*TH+8#*8}R8nd_`4X%+poq7D8K)Feh1I}POa-$2mps^CY z#*rCj|10uCa=ZHyaDp5YjD5(ogR~oBKjsPI`TNm-s{$Eq{h`rqmw+2$TiPyhMo0I; z+b4jjA71NmGNV1{B*j`z|6udB9Qs@`-f7%G9CBG8yT6aP*L?8%&KI1)U1{Q5=Y2q) zOLD!;>zfzt0cYLBJ@zm@z35fOaiEud658*seeqe;uQSd%8Dr_wkh_RxtDC*f4euU+F&{L@GA!2vQvC!7X*f+nwm3Z{5=r!CEyAho#y#!Ay-r4P!;LA3@ z)3u%M*+-FA|Ki)<{qhx(Rm1lKbk0M!A*YHy%lPI;-j4qVa%m%*vysg?$mUV#g3;)L zG3bJ^=z{am1wX&UX&E;q((=}HrzLkrq~#aIPRsa9BP|03PD@_r+|oSGH+qe|CV5LA zeEaLc?C6f*xYivNJM#W2I41goV0P>4Ro~A03D18S%!__KnBTf%iQb(beLZ-7>+83C zJMW7RHXQrnrQdt|R4^wxF_hanan5)0J{cMt{lidB>z8icnfK?Roaj$N6QZYr6I&}z!?cS(RYFM=1`u|MU)x5HsrM2$+*8B%xo2n{l_e)<=fD} zm7xpV`_bG(55VN!kK-QN_<`fy=W!36>ILti_fucvHz=xzse_Kv*=$L}EL{%Ufh<=dA>S`GxqMi0>T zpM2J7`Kv4FzjMB6=TENUepaOAe0x8e`>P`@w?l7&bQ4=&c{Z}+kcRGNgI2y7IBSo zm26Y~5AB7|qrdr)@|N=#l($^4qP%6o)#WV{Zz^y3vdU7P!E)@oU_c>Xnbem8ib!Nor3Liag1PCTby!vAZ5^y6ZlQ~tjo7d2i9+%qP^{YYb?=fb@m z6XE_s501ohZ%p+3T*pLX^|LHjmy2gc`b!REZJR6%x?~3!wp3^{{s7TBzQ-9z6^Q199g&m`L`08_hsbVDrDPN zkY~3d!(Qe6f93s;c~Ab}7VYJH06q=Fr$>?9jUk{*fE6}%r3!=|B6AW!12u?&tU(ovcl5az2 z7r1l=Z4Wx*qwfaLv2%9jeG6UF>0I1ee^WiY5JoRU=QTU?eugY~Arx+{XU|SXATOE) zFZ4t<=WPpQMYFM;vj2Ds`vbD04>?(_J=L4@hy{;c7szhSUbZFg5_sW=GrIK%vDA+S zGNUDdF|8$kyftrCASZeYI`K&Loq2chd}|=5wPe{=_%0lM5Iv>x#Jfl5251*}63;2G z=j@wkEe&NyrNh+MyXfl{wFxYr(R2FxDt)~>a9;ERWJwD)n&}Vy{B`icXjd?&b>B@5 zd7p*1*TFBB)qI!dznA^YeHGA`yvhWJtO+xL#}*SfPC0V-){mZZJ}J`^6%zlfa^CoE4ve2aw0Tgf9(us;1T$z><(w38NUO5F*6q*A9k0@gD=F`S1+RUcS654#6ejTM>Z`05F=w}9fn#SKe{+9BWL7%4aH;=!i z{5kdeDvRnLtgNVisIsR1fy%c&Rk-@DPZh0x>{F9hzxt`-)pw=z@9gbOr@iU4H=XvT z)82I2n@)SvX>a;%2Qr}C)c>Her~YaB`V4(-0mnb2@6T4=)$k9Mk2U;b<*U^7R>Q%{+*unc$FJQ` zSv6}@<;`n1RqmM8Q2AGD8!BI)wYl;qYd2R;EZti9$#q*Rzf>BnT(~Y;`8TC^SN`p~ zyDNWIdQau?b@x;{e|W4i{LN#PGyd?k%1gibTIEfJ$3MT}4_~ir_~z@C&42il%E!L> zlgb4=3(o#&W#;;yR?eLLM&%!@f1~nGdA4cx&nh>s|5@cDvyWGPZ~gJgKjT^M#f7Us zb8*q?s*5MDzWw6j)t47GeSXKqQ&u0ic(T2Qk3O9eAm zuP?Y{^(>zKO~IwB|FPiHtAAGT2djq)E?a%IzWs!FhrRNFVEi=i8rZ{pJC5C}wFUXWweFzb%1NyA zsQhxHnDbCNsjGo2^WIjS&r;!p_7_mkCCrP<$q|K*{;1?i;T?-!drR})5%wQ@`N`B3 z^UwO5UpD*KPe0#He&_HM`6ZlzliH_Fo4uU%*@15*j;|>rrhV#nJo%E7+^5c7iR3;&b(s?$Do{8YpCspDga<71MKTIZyjT$$9>1FqDj&b(B6H)u_OJVx>@SU(NG?~wmS z`Jpy3-`9Th2iT9^O?`*?E=HX}p34ueGu7ow2~)@Ed%s=(x%RDJ!`TGa^38GjdL!#h zIuofFe{CE;n(~&*M<$s9`~4hHNazYaH}qzd8~e_ zt~u0?Z`a^@xL?=H*N*=s4xWWW{l)QpS)Yu?$G$7@*^8;V>1&=ovh;I3cAtN}g8j(& zp39rFr&J8vldYUVozOuLI2VEEPeT`r==+bjikJZs1AE_hwu zusPY#Tom^ ztAX$j?+s@B@MuP4`>VhD*7m&2$oAVuy?S5%hZV221x7!@{P2fA4;AdxoNsAx^dk-2 zbMDs8Td;lFLu0@(ey|+;*7SWe^j#Ct*{>llN9P^eX9CA1z)^yY^m*Q4TRpNYknzJ4 z)Nw7g7CGb^Pasz=2Bx8*U~|V_Hz&P(-^%&Y4Xr9)N++~Cj7~lauTfTXX!1fpuRYLe zFMOo>zRdX*{n!>Kq3L>O^dsyo@!-yk%BFdfzdp$+@R05=dPml-yYF~u*WYvf9@igp zZM-9USN$D7+Vy>|`?&r$uK&XI2=8wRI|mMsvr~0V3!e8#y)(|>Z8dxD^=x%8_mQ_~ zkGazie?i}K-x+!;OT5f}iwxF(lrz^)575VH^Pb=4nP3=6mfi{vu$D78g>fo^UasMH z1-~s`?j-l%E$}UQ{I+j)vfk|_H)oNP{VqKDQ*ueR6+5AAI`cO(khzU@glwQ)|g z;U9CeMkV|Fp>Xqw?`1T<$$Zx@U)ue4`a^Rma}8x8gZ4a63;*?Iyv__iu|o?A%F%c9 zW9++4$4(9%eEVe9p|{naUY@1)XA*d?37siU;oraCFL>h$tmdEXzq{Wod48{abi#8u zQeGMkk?R9_)sC#_2}Zc!_HUi! zEO=+msH1=TZdr3v&}sbOy|U&HiiumfIl%cyfx$Ox1B3nR1A`~N5g6>dJuujNTVSwf zRbcQ&`~ZJn?lk_q%!RksIj?^e{IL;wdmdRD`$AywS> zVq4tz<%3!Hp0im??hR$n)HwG}ysj-LHn()^DCeqz49?}nS3MMV&o^a_>uAp%-+WE$ zT8hOnYrlo~61b1gE+_v_`CtcjP$#%H?SN~wqk7+|38sa6=o`pJcqQBUr|nyYj=$YI z6n~pMF5C1?&qCf|FZL|Gcze$xe#38)qdnLLJ|E4-%JiILVHxP39 zw+|ocJE1iEdjmWNzxBX-C*aw!<;>-f`5l}WaT0y=Cj6}DeeiNGJgRd2@OKA%-wyA_ z`QA^?JOurW#pWz3jfc4j*7xeVTi&ikPAzEF;# z^PEp!-*y5z|MDlCtIDAB8St{`y_xY2!;|&Ud8bF`ozO%lbUws=C$gjq8KJpjJ@#(r zY*$vjGiL<)zMXHN?+oa>0s8KOzWLVBx9kGtZm);FJE3*ylTPTo6Z&QzJs6|TIJDXh zA9X&Zv0c*IU4kIM&-!z+uazX#ZIsoVaR zzd+B1m|I7XdA-crUY_e5J;8iIv`hRz|0cf6!KYgmK;AJwbNfIa#cRkD!6m#m(FXH| ztLi8p`z-zP`gunCLOd99c`$Yv-|(Hm9X#3zTt-e=JR&zt|Ka_FU)1+KaGa*IZQO%k zO#gl?eCw{||1Nm-0#EN+d!>Z&@#}lR5%cuD@S^zn_ypuLy3N|Z7EYB7P^Jhu#?{>y zZuf&+R&xkRH~y4j)oq7d_A<`JB+Xx>d8?Zy(z)+-*z9GSU*>R3WK zwPj$#t{({&={MWvVzr6gFMmjY`HH?(dwNzxdv3k7O`En~T+Q>vl=ItK)^76WC$sp= zG4|4M|Cri(?zD3W66-9U9e3t=gU;=wp2R=f-d1?Pzdl6)LsMLL?9sk_`rx0}SlAW2 zn5ax2A+NRG)eJwU8-EXvXB>O!GPS1|xa3&5x%1_>&-BJxzl*_Xn7QK=aIZ7>RKLbq zF*~*o{_f zk+)d$+sVMDJj+YDHaWrm!^pCt%OmTS@W(j_tKwe%e9c$oPx8}(^t`2q7_qo-q`)^2 z3K;vl&*Ur2Ps~9rExdzYYFC=LHH&NOx00>ne#5*Tn=fN+(b^c_3a7HcUJ5x+>Al^P zqudUA@bh#zk#%}r&As$ZJ2~&WzUQp#K!0K{ChR5m+ax`3zRVS>oAq-;BdS+2#jOkf z(Dx$i{*}J!-sX{zT+_X1(8B)^apk?lUS|>ysW?ZiYpGrrho3(sJIvyb30qozdU=NU zDVe`R->V(9SC;P#teo!Vdlrlp`H|9!i)vrvoVG@lk(^7E<=onrr~1lHJVV)woPm-l zzOomcp)4?Lo$Mf1uV_r9v}lFf zuK34}fe&A&HuS{$lam?RHDbqi^j59<%x2Kfp7+&Vk2b8%jrOX?{%j`y0$5y43d2M(Z z;R;@8sYW)%fLDAa{OI>cw66DV8T2u5#Fu+`X)|@7hL;HIrLme6IGEq74vV|r1PFu2jPb%0ynTN- z-s-4_eJ;ak?vdeTs#WIZlro;b$Kt=RdgHO!7gEaX8eUICWo}3*bKmeXUVqO>Pm5D{ z%$0p!J|XYSrI>g2PAsd|_*X^C26rPom)&aR<_~=FHUpcy^9s#*>BIL&b<|)JGM9;K z4$pY?@;8bx>-(binZUb?(1SI^1z>A;!T09OA`^={YJW5HjIz(Lj>p=^wDHbUeatO; zX9r4q$^xaGbI=FOK{hiF=*H*bc)DKau(Q^1G)Db#U;UkPs2^Ludmd$3Cs9AOcdH0H zO#RY3#lqWfRK9~bN}cGnjB`YFX2R_9(m7nqSn~`>$K(I&rkz8a$zZ=zUu;`yWA_+* zh3HDvq3;bnb5$9wQQnOmv03echcYLtznR$ZUf|AJw|uSE=yJFhu4aBRGPp2MS2}84 z_1Yn4)T(0IpZ+Q8#Wqlzrf>3FnfPIMp3$j$`qe|*_(DqeqU+R->Q|l9i_ZML&Jv7+ zZ^4>n=6sPs{M5v-XZ7Do`-<7`p`M;8!~3ss)OgzS)8wb=#4hNWP1{#tua4Q$-}5x* z*aF*l@Y{PyvL5V1&P68%+BbHpOSqH|$p5|IGWqxEn>i;3J4@wUT6g!nIo_PX|IGhe z~gYnQJrSvzIzjJ4C()(c+7Mf25@*k+5kHbW~j)-GME{SptehfH?yL#$o)fRmWU z5Zcxr5O)l047b)N-QS|KVLqAy2O7KB_3LO)mG#XRFy5YBV(ral{1X22C*;c&Oj;K# zHZW!OH?t-_eeEqkKV@z4+G%Sy(Fg616U`~csMg8o{|bFrUziOeX&UpsZJU{JlEqJF)*p7N7vw|MQcwUc>Y4BYN{?2#wkF>>>)xzAi2rq(4{qPDdM za}n1*)-7z?8lxFr-~I4yrA)FfBlq3yPey+;Jen+jdf#J=)tUQaYkH2r4BUoDb z-96X&RKFc9F7jv*UP;b3jlUt8k1s)wIs?bjBe4kS=uv02O*a&pq>0pV)cT9)Qh3!k zYTa1$W5;otX(QBMLOJ#%488{)YurV{&!y0?#?dVg%|Xw}^2^q8Rsl4exk_zl95n_b z(cZa@&u@?Kbn{L3{G;Lc7JusuHu0<0*N-zNU=fzkdY32ap!0{EaNE$2c<%8>3H-Pm z9-Lut%f2th(Up6}M((Ykd_j&gFp9B5wzUnRBQIh8#y5=x)SFx{b!pj-$zzpTqdfMt4m|zDiy!0oRIiNUcluoFDfyks33Q$jD*FJ*)rZDYcQ+zmoCHrp`&! zIfFX;=+DfxE7$hpUsHT!Q(*L}8MN`NX(PFxCQ%>u#Spr8?BLK@>sdiP|CCbCa5_lV z?|+^u>(j~kt<)>|J}}3%pQQUg9G5&_AbztmI5gcs=Z4#II14pr@cQV?4=V1vA!Agu zA$x0dYj{-j%YksTposAW&jl|#15sk0urbYEx)bPC)nU#>!2S}>oIqso0r2%8IGuri zTRwNLjlI}X*XbUe&b6@@TdSwoo$JdE&>ppHzSZ~fo3R_v`yJ?LW9wkwbj!}L<*|!K zERPLf;yADaY(KIfJ*nUvb}^;mqiA&;OH!|3~fp z2zu{BwoEU2X{XjZ+-uh1XTDx@~v=VTpy1LMxZhfwg zO>4Nw>!aF>+D#q)I<=G5=?{p%bWlgQ^#LLXD{C3{2i;dz6jQ2(v;u^YU} zpXGrW1A(|-Oz zo+o^0(r@?{6YF2Y-Wi_pm1W*F>^*YGfA6nHej5BRE$F4s#f#ysN$5=YNiv9UcIa7A z2>#`{{M>q1Jeu`hs|}Tz zGR_$+q%FZIfBIC`aQy9t$ph{Bnufz5ohrXuVD02*%Atia_IYoE7K|@~cMExE`wncw zeEO+=DSzMOPx0e#*gIs;uzTNn6VG>~#t{1Jv9RnBo|s#=PhcF7ZHaN&%fU#F%CQ*HV(99#(}m!$~gFCqwELizt&$4Edb9~7Tr<)TIa5Nwuhho$G3^i zY&`}2>)HR}YUShA{03i%e^$S|3~&1NYdLml#W?x`jYP8e4gIu3D}1;^xnHm)j9=G< z$JM3kcLX_D?)hQFqqbe~vKqDR^%?n+TwfW2kA@aGr4j1ZSgL)^DJy6jT61&30E=KS z>)18eD|{oL3qIb`3u!k34LeTR>l*KB>u(3YoI98wqxEB=y-V4 z%JRbZo3{Anjg^1%@e3s6A27TC3?s?EM}53Pdr5hOE#i-#P`t0;l3tW;sJKb#H=8fS zg~N^Ejgk8xK045>If#`FtgY~@oM+g>zBVm?UY}xLdARw_@Q%!Pkom&1SI=*Sceih@ zf5-MGH9oxW-x*&eM!qKFneF&2WsR_2XF-Pw_q*dDxyd+qx++F~3%&D?m!&gHSHhd2 zwX=-l|70BP`2BAOPs;o_Mji{>Puo9Y+FG>sD%&l%w)mMP*bmH2jP2&e1sCi`N#{$R z$j&eF*>=ITi=XL$7ZvyA=fSz`)eWy*`V8@NGdC7q(;A);if&w6^o-@r(d_qAzCf*~ zG-0dE$4|HsTcw@ylfxCQ@A9q!8%4H?#?R85_~&JwX)J3a&Vc6Hos8ow+DBhLH5)&M z?&U*NtdC+ku3^7n1N#m4vA=NY+GWo$FP*8qhYu89+giZ9y{)x46Im=(^W3*LlA`71=(G-!D+6 z0vn;G&^ao5?o#G|g7XOd?*k7fv4#4v1!~!A(FPtKE;;;g$$$RQ&XWJ!x^oq=x5D8n zXX2In8zQI7Gbi`T{ntdEDfv&W7p`)$uiQU1vbN+;^xL^|e;`s?^2e#=sH1+G5t^ayo{nz;FFHhF5HlV-6Kg&N`Q}}s^JS+w82i9z%f3eq`QrTu&UyFy7 zmyI<}`2)SUih^8cARGA;=UF@N?Q=hm+jlga;O!)B)wTQ#oCzok&q|XoBI#e(nZIQY z@i?q$6Wax?g_z3**E~=DvZn0Nn&;UU&{P*%vyr*K){&$1ha8`!4NmZ==nvTMJwiO? z^Z3~hI)OFM0q>@X?4t~YW`-tiIVO4xUZA>N+qN3o72mZd{FfD{ggeo<+ZXG%Onq+s zo9^?bL%@VAC?ifMijFxWOu#Id$Tc*x*12$CGHZ#PS6@1XKGf3(!A|V2fn9qBQsG}h z&NM&#?Zg%Mb;sFZAE|swpJMb0|5q8~9>tGy#y-(!f1lX1xPW-Y#JD8JBc<=eZY>BC z%VftdQ7+B6-4A~K{dULgTfd{epBqj-DsFAuUEPWrkIsg-6M!bgD_X+{{Md^F@%>Ks zKKab0(FCt)FSm5Ce{CE2rTk_e^V`S#CRy__zx{6c&ChGoJ>BNlZ(4`-`zLICvb6`} z_&($#A@;cc6?9rLa#X$+_VbbtAkbFv{w7>}!KirrImbC5A4UbX6~2{w_o3$$mmXpd zr0nS0S>#tjk5A#=zTdlc=_zDpzP+y{hRQ*<)?VQZ9HMM3Yu9yLHD4lEL{xFUvH|?I zrexmm`{6!rKMqpYPvoOd*Z(16?S_cSbLV#07+$Ph5piC^NdfW8ZL&4)ic%E^eMZ=Tb6B59%JJe^ zo5I29;xIll#-YFo4m^UN-LHQwKGM!VP5z9eKSA_ha?#;aQ@o|@{~9NYwF~_G#Qt1Q zywDVMM;B{H2eE@DgOdhgo~@np0_!6$u2?p!9vet;ep)Zm9E`Cf*F})L5cS&%8CSb5 zv54`%5#6luwsk0OOm;>Ob8XS0@UQjVebCWCkEXQG7QgMi*nf=~>s*?$_u8MeweZEA zqr#DO*jxis$%oC_-2R-fvu+!?u*ieEt*p^mvm08-!KNdJ_Wu8my?23+v%K$o-|LytTp8wPKDer6;-dJ$aeaFZ_F*S*nty_0)l=W+LacmQ3rEXvF+p%NB zY_A&Xh()2_=riO=_Jh08rr4&7`Td#C#E!uOR}F0}{I1xOp40QyjAupJmZMFf+B@5S zEZtsljAB}Tif4g2dhht(#7lPXd+|H=UMY|0{nC3i`;vZ+r)|HOZzfu+|2^Y}*Yo=E zDD|!1n^s@6m!KWri0^O6`*8G~`~3$3K285#{w$7FzAxzg-ka&c-jAZ_D=^ zsjb*;JxA?*_xpJNlzUHC`JHqnAGv7UfpPV_{^xu^|H}1GeEt{Tzk}aI{i{#Q=gr1O zaD4v90eP~nRGuid(|&yvxpfU_eKbM*;r!{%xn^K6+iUu3$!+cBYWlA1o{DHtjwBSD za=ILT?Fr?H$z3Vbk5!#h(Kz%!Yin7^)V+BUIi(nG`FFL>lxI)CcTGLs*%Z2Wd0nXQ zk{{i7tfKP{YWl~b*v);iqmVUcxAEL@o*zN)P9mqmb?n2f(%!|goqN5Cfg$9|Xk^n% z3qutHCn7Zihu_)0y{4==cbGk-${&;Ml_q{<>P$Dv?+-ta-{54a;GsG=rfzhj%{>`H z4k>>|GI2=ncs0nbLfx4(&kZi7mQNM?T6wp(E@Ws){`?N&Ov-Wb*PuuBS^Jv4!kDzL z>Hh{#i9CsxY*&4LbM!aMr(ZM3_d#GZxI4BnG? z&k|oFm(tqCuVM3MW^q0PIRNAg>`Wp@MHjE5d&pnZ!*{K}^Z9-q?{6W`mOci`-`To- z9-l=c32*?AV>?R z%RV|Sq`>P3(ZV*?>L4wQV7Gr1T9^*~eHQ7Js|_7R&HO1<#|=9*g?7 z?HYIoa%dQQRs6`(>m|q^?YXKr$KFcTPMzD5YC|6IPP&8leuP|ohkOGslnb4MpW$8Q zbqpihD(+cuE=dijR2#g~0k4qPp`4Z}=!L3{RdM0JrEXRmXCPEk`>`rs;ZbV?xpMvw zRW}-*g8!26SqeT&!)F=zOtM1l9ANEXPhm8cbmcna`V!2h+1?Nnhz7%tBLms7Buev#(p_A)U zuhyIsu$DUhCvT%x8g)zC$RAt!%?BT69X0hmGOUG??OJ?b`DdbN8W z3i8W+S6+}^OKR`A^IR=>9c3-lISr@q%P%BXtc~_sSTAeqYWljWW6^GMqpSH%{d8bo zBzRvkz|6y}qke6sNUdEXG(YB=WL|ovUTc;w154%GP0+PluhwB-1no1$_Or$B>K)Wz$Q~V1MXrAl0SI zyw=R#vPj=S>>AZuxQ<$ODPS+09>Nwm&h-YaH=t9f4#nYjwo%)vqHl~fDfMSt!Dl49 z2fa!&M?K*H?2F_ExUbGvX2^)N6awa(q_cWrDx1D>h(&k`T{odlF9GknG-?c7w z!v}YhQ?-WttKGaW9G7z*(=+%+(UH0~gJZQj9>?0h;&ANi0X~ie0|N(Rvy8{LJ1^xI zz2$KZ@!K+B=G&@grB75q4;kno<>_3H@W3dc=0{S(0B4QMb3 zk0!?T6mYnJxYt}WrZvu%KdUv?!AIwwh;E;O_Fo4+Z9aU)fX^tj|0?iF0Uy=#5PXv2 zPXi<6X$np@PAhEbd=b`7LcSpm(qZkGg&)d{e^yx1zOE@ba4+HI+ zx}c}O)ZgBoH_Zoz{tNseA~fRHO9(%{`lzaUfIAi zUyALzhHK$)|CJ+P3)!b1&1x4)OmPedmdg{_ahgt z*md*}bi38_`WpDn^`-g6!DFOz?h^Uw)R%BHo4wLSw1;n`=sP+@evQlfO@jAgzHL^x zm#0nqMrqEf2;y3KTz5*&0k~$@>UTB| zupZJbG>BYjtcnb%A3fU(&U?Xm(X*VN5drV3JnOSf&Fksk3vLGMd-^wTi(JqMe)OCC zY=&+bUxfbg_jT<7PmRE|8Jc&$7t#78a!B!dN6+hwf3c9?r`*mmN6X6hyruenro9Vnd-|+3|90?pF?dt`zQ6`9;tBS;y7SVselH`Q9?Z|y{sz74d^B6$IlgTWy&v3} zytfe72I39|w@t_=XzRP=g~%S!`fY23#$J;D$zCl|<_`dgViEKzh zi^uV8zX2^?Tpo))GwaKb?4KUq&?6t0`Z+{Dhg$gypBs7&e{tm}uW|JMDzaGgFM9t9 zbG2u*)$c<-&q7Db?xF3WpT(m4y^5}(2X;R$K9Y}RsEk^U@RxLD>C8?~Ni2otflU$| z8=7C*)8B$mCBon8Sh(*3V7MxReZzTl4z7AGOfCL!h*}l?yV7sdTFcRuWh0rmgnr|` zo_Ei=-`(@tzazd3L%W*0L7Nobdfo!B_sk zL%uKEJUB)nrRJoZwUJUtM+JUjz644qaK7#Si*(eW{N$XF0*& z{b~4Cx_{(_Ui@s4?DydB&}_wput)eTImmM+k9rMqWQaJ|e)ymVy}zTg{al(cB$;b) z9aQ`3&%xs$zq|QQ7EcrXIh$>awJ?!Jrugfw+Dl-+Bp>jisXi~7-r+?DcX`pF$Gj-M zsZEM0Di)C-&XQb<-q=N5koD+j#8rmA0B;g+DO!gDzBM;S)k8}8`{@7c|H9*a(3~|| z&E7@{?9j2j0q?Q7w>*t zHhA~Tkqy1zOETX4c29UigwJ}GKBL`V=1L5p* z;DfwJ;`f{Z0q*A#zi-D*ZqwMXtvfo`*s(EA<>T40;b)p?Y>eOdpgw49_-&o;BKvX= zb0{5OkX}oFvunAHZQIY5PA8(l|HG$2(Vz3DFEBE|GlidAFp^x7|2UubyV&ZP_2}dy%w77O{45FX2itV_ z^*(>&>;yvxCHh@YKo;?iCz`VPoFS7ZZs_BXt^f$VI%W5#Q67ihH_8eMLe7sZG^RA zkom~puC*jcAL5s<12@IO_pS*6Km3EpB#TRX4zZ&v>=W&uy-GNJf4Z{oxix4aTt5u1 zEx+6PnAMzl{ob@st-Gz4TrJ-81+8x7d;A>@R9w>0oO=MF^L{#rhwbclRecxCE$ z6=Rv2y%SipVN*T@FHXhRb9x^8Lu9M7-kwG#ycvp^TK#`Wt^Tu(&C$P~*Bo6$4gHP3 z5j&>Z{oP@FysW)V;hEV^blO?O1vZ9f4E)#7jDa6Ver@2&_x^bMPHOdcho@!NzqI3V zonvr-{TQiMFLwsMOHivn$@#ANdhEa;c`LYpH`DNg#&G85Snde4Rxf)E|4BWu0gZ7R zKKURHe_r~Th;|M@J4t8;pJx{S;=C*Bi@=w2#hZ-rX?Sz5;mwHUO=!&VCVF1~(>{-h zH=hPqb1N-xO3vF_;G29Osl|vZ=R~`>?N#}G+22R;m`SkMWnDPtfV`s3wj=(!3 zW3f&6srOYQ-65&m>ekaAV@jDBwl)ns4&BjTX`bL-ZvTe1LKWig};j0yYo&;>tEzxzYsv#QN;RmhuF0d9wp4Z~+*n|^0e@6p5F)Pcj;gr^gmj~@4? zcFFHlfjpnWdOH=G{=vo6D-Ot}PUwCcbYJDmruopmWRlKGlizR{S~zX!Y6@pM*J0mn zqJCus=SfY4UUVAtyv;uu*DmvitP(}76I-_Xat%3OUuB!0$ zM&)Fn1DJh6705rmGnIGi(W@5H|H+Ne!+Pjp7tdXI8#xw#K#s*Max8u=UIEUBzg5Vw z$m|7w&mxDO2Zt}Rc6^e}8pF}#yl^yiX*im`A{-rD6pjup4o8RULz_&k zM(|%jzm5jnxH4n0=*W6#VOI$)Y=jp27%wBz0f;l1 zp{ad8yeM{TDmrQX7rhM+q94`sS$m!2OFYfl7E|HN;JWhzY)?~mVW*slOdYu5ogLdBLKfDCre?$6{OaRPp}OoIaFFoNFf;2G za}_Rwa}3hC=2i9F@@O^i8}q8VI@zZsxssvg=`d?;iZwTko|<|>IhBI3)#>TyYOTu| z_~>=$p&nYji*aV?Z*jqLYA*%xS+yoy}1mo@1LyB_zPhaJH4iC)@&03JpjLU*$S>q^=fVLh#)jcVFx z3RPvlA0-bO8S(~x^O`|;nR^RvAQu|{4zQV34S(yo1xxY$z}L&TzW_Wog|I3A8MQEJ zFJp8!TMufOK1NO371_JzP}`@QvE9oU(W{2xjp3i+=ffr$#U>eUoP|yDYw=;9j(>_S zdwqnlPe8{*v}eT2S zx`OUy7D>;k=zIM__UVZxp<73jsvjnr9ENXv3lR-KwqOoph;$HB?+Waq|E79_E|6Fux&vY?o#vCd)XU0^q zcGt0XJAEqYuhr~9&PlJ5on`E;S}#{Ukxr$vEBv-Z$G^w?)Ycm0pVlC){bjyPnoFCy z$C_&Dw3i{5r1$Hd&X_bjw}gBuXqIy$O+KdlN#*!0>N&$B{LL-!TzS?L&q34H?_O>6 zg2Zmicj7O}@y@F)U#S*ZaK5VRX3xB-E4nXUNWeEq_~#*i4zk73bFNPFn`E}GYXWm| z^H{??#1k5S=am{8vJx2(?AOU@XW#ew?F8-nUfSt}#(Uu-(f*z4lXgylM}yC9JGX6@ zF}Duv2cNfZ=R7FI>A(K&SGFIVf6_DW7@4 zyW6Eh6GzXNqKdFA_~hvLo1n z*Fn$h86UWWGi`JZs`86JMgNid-EpRNkk#Jp(;$V{Y}-r;Csus`opIt!kX?Q#W~S^LakR^W9!Ww!@s! z>ScSNCwG>V+7_>6IxHP+W&ZnV=MejY)!uxrTm89@;7^{YJ<-ub?MarX{W0eA9C1~_ zQSrFoyd!_mY-F9}lVp=V~V=HTQH$2b|uC{cpT>{TWg&%9XD3)A|mr{D1jJ`wA zV+eYTFxKAuSVP%fbnhmwG8^F<9P1^FTjLeY+3}K>Xk;!t%+-zeVxE&M8HP@kpSa(r zxu>8xn8(E3q&PvifG)eg2sRe;2le@&TuQ=C=6s>;52qx~V4qqouX+ zsmPDh$QkMOva@v#Vp4!lB;}ivqGW;mz|IE}p&j|3pYpwP$RFt? z8TMJtBd@R?eXsnRTOUW~%_i`bC6^+5TICCs{1M$Nzt87?@FG7|3Vl3%vz15knU?y? zG*0>Yt(;Pxi1R<)bWXlO#Zh!mbXF>dTuzBSJKa4ao}E00q<#W_)Rn$J%H$WDeA?pu zRI;mtV|>(Ry;|*G(R*chY01Rac;pOwb)z+k zX%*j)POGc*d;M3^50ZUf32}Y zL$X7;x9)Olhw6R?+YKFJLo4g~NE>?surUihlIh5k8P-R#E8rvP1xDBa`UE~FN%93 z$FLRQqc<4iFnCbRPWI&(pA&ievdY?*(EjjZ-h0K`mwG*gI?LhIuQPc zRF?;x`Z`b-c<+8c9jMIM+w$LiY+5=5ExiUU4M0n8LQBV>rN4oe);4V+a3#Z^LT|4|b}V4;{5O5g&u!M&YxOK7QMQOz`<{IWo}dYRZ+V!k1cM_J1jE z84KZ`+zY&(1zyhsuNQ&Ww}96xz^e^--5Sdc-%{L1l0MS+@<%^|Yr!df4Y9V6*Ot?M zzsdG{3hpL;;`{7|*%xZoDB8fskxjEUrf8=H+X@*wkmmVS_+M7ze__oT2)%Rv_7wd# zdm$6oMCSLWd>ciwc{To+Ih9-W)(K7qeW})Sb8%)RCFwzKP|s$P_HQH zX4BElW?0>fIp%dU^rcLsH7a3cJ{Wt`j>FssFS-_V&C0y4DLCo3;B)@>3G`{Fi`%Pcymb9ph2JZvpQ_f@d((>b zQ^}?R41TftsnHRUOw!wGBNr49w>e)0Ljujs7=3uct+i3ktBbe$Er8J(5uR9|QPP2?hW&ewjx zx-%6SXyhF@K7A?jZXQ>3R%b^Qc)bF7S83%PILgaA3fMOawfXobHBwlwVxwDAAgK|fDz76 zkZn+gZ6JSB1-v4A#oGP{t96E)bZ_#W?D^k@HZ&iTL&cf)P2{I(?`mQNbK2N!a(Q~7 zOB)j}_Iv2Pw>u^|r@W1ELi2O#V)2IQ&GDb@t=hSIniv0Bx@zaDnO;0udp$L6m&SkA zSiN&qE%!UBcXsGLa87bwdy?^SW}NYHrgYx>74Xol+`p}m>ye}n!9lX5fjTej|F&~u zOpGl*w*=>M>-`@y@5#oSZbP@6uJ>&W&aA7gwMLIi00)gH1$=_{4cvVHj^U|E_9x$0 zLJ!p+k{(2R$wkOKWV+_L&d@@2_9)(SgRP))UwDX(e@Ab1vqgb3!vkZJ=Ae-8c!qi#KU2&+i>Rzr**I-#-h#UvK$e z{0`q6eiw~j!MpUITx93qbYUZ>=&yJTJ|9mqj^wS)xe$CDd?y6FjGu!!`7knP(5IQ_ zU>CkgbP1k+RNoaJ&^;3$C}T}$T;-gdQN|e>S_htpRpoQil#4iwzN30PdS7`Mvsnwi zLOrBQYQ5audN&p5sqv!p&hH(puUd z12)Rr(fwt_V&sFI1FUM$>9p@eXX_-WV=%rS`O2Lh%H}lzk%Kz zv_DLq1p7;3z%H>KKHf-tJyx-^=Ca%3byxjC{KOSC@so>d<2CrpPjq;>6W9Z#esI|n zvU`V-P2y7*SJ3{((e=>Kl;+&R^5)#7)y=ufpryO;nI$(G`*W6Psva0up$E&)R*zlM ziXSq9{k@93NNQE%Hz_xMldZ(_+JN0=V5R)kp_{#2w$-EWn&LWFtnEWLQ%@S6KLNdJ zojS3?u2t+&)zpQ}43f*gXsl$)>` zeoDYM!FR2kw)Uiv7ruY^S@r^7zi!?V`LYR+?W<=_Q?OSqhSx-Iw7c?l^6f5x{|=L5 z-NrqgCn)_3KV8(-_DTb57yB0<4tJv~GG0^HOKSwNtPs`_K-t|@&P0wTu8VlbQSIshy2rvs#+e|gij@`CLK26$q1Du^ehNuSUAT*~u z_au36=T{ZSaTHHh`$e^XKEOsczR_o!qnAwat{Mhk#!p6mjq$tU12gyLfqU*LuSa&g z@_LkO~PU9nsSzTtaTzEkDvR{{(9 zXz%xbPnqAt{2tzyfzL)}$D-JW*XZ2h5p;kNY?Rl%+1D)OJ#+6;?%moPonJnE@d)!g zL4Q@$Oi=rhv&umnl|I=ZmCUQ+zh?$hvdGF$O^F2(1$0-xv2 z_&jgH=XonW&nxhGB6Ek~rQyn!=x`13OTH@(E1y+9*Am~kxsRP;Vwm5WJlAqu3=@2u zM)se6tYCYKo}>qe29(!!5O^!^{y6oaUf{FVr6v3>-%&gAu3)Pd`{go`7UT`|&e%t5 zskt|entL;;xpy8l_wZGhu8~^XB%|9|`x1PYAkz1$MA1(9EJK?_F4Td{FI~nsLcxG{c+Z#7m!O@e?JU;l*YGB zY`YPqQr==cifwf^@MB*=_D4TMS*?@)76)8C&X; zDW!`TI*4dMe#BoG4FF3+13w;nISBJ#2JWT*NVnHjb&3;vTcbU~H#pQi#pGvuu9lil z7d#URQD>nQ+Ch%vSBN&v@;?8h_yQl)Dq=6v8U7HNRQfLS8Ykx_x>qkBxqJ~F?2Qk~ zEcV0yExvNz$=BnJo7#VcdeO-X6x;XCuEQp644zkkovHIG(&)B2uVOVgYXf(E=-6}E zw|Sjs&w79tOdapN)OgNa5WK5 zCV#FNMzR6$)th<|?f0y{r<4w)n}+@@a8AU8p9}Rj^0Ylc9hepHjA&c`oW1%_^j(bK zJS~*a$mIAe;l+QVZ(mooGT@g+-_x+Mg0g#BEH@E-uR{(8&)04Gb8mxe_ZDoImQRMz z|HBLGy-%AuO(EE#fjyG5?`glsu8npM4S(((5zFu=Uz;D>@a19Uzc>D4!*|%=N$Lis zZV9X__r*Z2`>6}Vr zM_#6IhE|ZStV}7M|A&<`lRx*r$@)?X^SmAG^QG@w`-SOGlhDFA{b}5|it(GLg%TQ> z9G^eO`r?oEpXeK3-p{K)eaQ9Y!P52ROQ8)t}D%A=LoAVJSU1Po!nski`@xIob z53|Pnt-r=N{cf3wM-=Rr$aKXaLJM~*HYOi;9s4`(S#wXQO!sy6UMOo~5yS|duA(j? z`t}{4`SLN&LcUQsF$7p6U0GI|D_wb33uFJ;b{F z&&I~aZr9c54fei`ukoylvze>&wczXV@8_TEKj7!Q;g2`J>0QOp)E+jb?>A{aC%?7R zhm_;(@c#zu@q5#X>w_v@J~kGKGd5}vdS7cnuSwxYPc# z8}k+meu_~IM!auVa$f1P5$_sk{oB;~h-&Km89fnywU5tO|0?_zL-@j!)6MUX>hs0m z4}Sph%HJ;O~3md6TO{TSIFZH~uR5OGof&!N1w>^Io+3UlM0Ki;|+W12TXWEFFtbk6K z?X$Bi|?Yh zYTng5$rEG5SJ;0r*IPN-%6sHVk71iNaG%-+xtnfF=(AJeV_UE z@|*j4MXGXdT~slCfid0Ur~8GrpEV@E}--zXlgU|L+~;32H7ASDxP%{`>RxENoPYi`Jf!re@mO98RgHpx#gLhUuv}O9%$A`Lr{aW_aPXEf|s&$*_h^fxoEIns_gI-?) z7q1~_pGMBAUG;%XeYxo!@2uk1ZVc*QZ8%x83Rz=hFKs&bYTw-Z$=+f5<5{yWU-DM` zkboalTTExFWZ(zUR1C#w7OC%oIj7?gu{(@(}$mUphk_Zi;ML458%@|)&u zV9(eUb8+%s=Wj?pDYxI@^zvclby!)S;`x6KkF`W%xfttTdzp8QYK-mi=c`=Yp_2Jt z!kCXU<|lPt3D;`$$Y+=@=ZWRY-x>S%5c3*h%>RRN4Z;7WEq}fj^X`7$IrvlmU3|RC z9esxR?q|Ls?rXk3uyZQ#Okn-UuHc@MAt!_Y7ISOef<`0@U+`o ztC+CM2~GGk4eXETJc|r#LB@+c(m?$C)%{~H&m#sPJbB>Zr|%Lcm0l#~nA2YRb zr?Hlkzw_5T1D^8w5i$KD|CHhj=nbEbK|^j&z3>|L&-`rTe8wk{GYx!qe&f~bIcy`2 zxQF{~obTDLE9ZUcxdgBX>d3M)gWp4C|L&0{Z}x@+Yi96%Vx~u3)Icq9Qzx}Ke$?W{ zj6bh$#ftSU=~}4=pzmJbKz~79%kImoC)QrizPx(&*W!Zytg|vxH**hs>by+OoajrkRtV0`bI}pL!`xXnhRAV##-q+GZKN23TfdEt zwVtse1N4q^cl4}TL%$Q-RKdQ$O8%;*-}lHUvV0-u)x+Z(4o~0q_-mhGKV6--;W^fX zG0r&+iQl2c5n?vVHyDY0@ujSEgc*I0&jBua_DRVTJp-+oXYd_lBlnqS-189Ctg&`` zZtB<`Z^J=wZ{G3S8|Hbzc?_A+FkzpzJ@qY~3cgGJWK_9JhZ*~E##2R%>y9e#s^ew0 zKizAV4hfGQCy#3z_-G7O44iC=NK?r4!`r&?We)kU-w!`4S<}_#z__X4DDquYf%+)4(H#MO``_7=Z4D!w?-aWI_LroaR01&s((bWR&{W zzFoDYd@9wzGI&x`P{Za7m`aO#rCvRoL9^mTk={e;$INZ#q zmdGy?H%T8a!ci%1CY>KJNPsWp_i26(cK?O>n4CbLUgw)wGxY_5v+6=)+vVwY7&=G+ z`#jE>w{*ZDKb7KL?TD9>$jSt=GKGBfyz(O6N%M@Mr;@e}J<-QFdg6J}Qx= zo}L#yfqT~bv$f!{i+w5a>3xsO?r`7t={qzh89xZWs%D0j{p3vcYCS01=VbYHZgx2Ij84PL1qWZuQCrZfBi73A`S9=b`Nl$Oq+(DDPG4gkU7O zZ);L0AG2Z{|7Dn$a*0NuIgL&7LF>tozs`8<%Xd6z?2$3*mae7UTP;7N+q5R3dv)** zu$28R-;MHVb_16OS^xFj>`@45zFIHwd(qbjvc~WS@5_I9zvx?X0QgI%H$G$Gf_BYw z;t9t2e(-TRMT&Fe(#Q|dU9k;d>+-5S>qGPFDD&OvMDD6*>~qQub2UA*&&s}2KRaUc zET#eLl33l3d_9Qw%|GX_sxHZ&4rAwTM*j@qxA88t^7|?D%~tfyRp^_MlV3U(>+HbS zQ#hMVzRd6}>E~fn`z28?`sPe9ulS60Grmf2RqN#rl=mFPrie0_M-%nf54@k6Y2N7z zeUhAyGVhzKfWKU2wwYq67_^?i-ABiyG=?XNw6y=ij)E(IP}Fn91!1|GWMv1-}1JQtZ> z*0&np&Sr2STJE5&y?$E_v=!-GeXfzVLY;GbJY9Fr+M8w2iuEm;xjWstgjNm$14kck zd_wat)O#0hQ_R=+S$w&$2j75fz;t7bvDfeW4S0n)7iGw$|v#_@gH_SCmv7ksyaF?XXU zv}3DwGoIO8e-$`zeT2Yw19Tt6kCB(qL-3yP{eHB!x`h9#FBbh3{OL*Tgm9Vn?J)ic zXyzK%ziGF`|C?GApfNswG#c~$?u@^XJ8bXC9~~i1(^}0T z^yD;>K~4^GR!fUlY0jA#WL>%+eJz2k(^yoO-uOXZ=^_6WS&v-SSrXcZAb&(VxKyl! zIn1hr)=bC$#UHG-5yS?hJ z5Ob*^7T9)mc!So`uX{bJ4?RoIs$E@^+}E>DaxLT8-JcF`Xjb2x52&>TI?X+OVQklK zY@DaaBh@hq@+F_) z%(vc{p8pW{k&G%Gyk-no{iXe*)r;(zBg@FK3*boOu-C8+^f^zrzCP-ealQ)v z!4$fubnQLhIdKd0g&d-Bv(8FJ@%ho@E$CtBPP0YFJTIMW+iziiuVsBk_Yp0NuAZgN zwBFG(3!#N(Bb6Lyzj*ZoA{DOS8HCN4A zZfM%qk*w|_ze@^e*I_Z-!^ZR)$~o`rutNDccmdiH)`bUC@| z_yh1~#a`+w>pA*G(YrVO>~?B#JR7PWsHUcI=1Z|%%Lf0?qi?Kz<*kMHRX(x&-F3T` za;_+TOzNdqE*$;Rvc7ruHRqpc00$@P4xX<%PwM|tV0fagvTy7^cvto;@K!!Q<>2|9 z)Q?&I<1Zh}{0DF6(kZW<{~hk#`AX=5jBK^B-A8M~d)`v~eWcM_`6KKh?3DhI+q{0+ zlPPd^qD^OE7W)p|yfYm=JloUn#(bi!r~k~ov6p^yGqyMQtH0;cKVQKfvb*k!?P~Js zvU}%xD{u1ZsMkJa;DvX)cfC+uw|zOkUBm*0GdvjV1MB|r51r+|$)`vu>h_CsaYdi^J$#m&q)fj=c*3lLjc zehBGg+D|m;9MJ8uYYX#GUH<3Jj;(x)er%kq*v6WOKD%~$J1y>~7~J<@zb{}9$zO7o z&%+13BQH?*ZU4pi0GY!>zwaG+i0`L>@eKNSxIA>^Px*fQcIqkf`#1dGYWVG;t)U|i z>s|jh_g;kGR99cM&AvayyXIkFD!ATs-;^gl2Tchl)CM2ePp$5|*uVZcYRkQVU#^?n z4fdFEo`XHV@kgEB&hF6kuHTLH9G&{qS0Dcx^aaej{*sv7L(uG3Y2yc`?Ws?krp-3m zd*NJ(UiVAp$6qDy|5IPyqaRm(o`C+kE_(FnK=XfjYx#Y(Pb_`+_FWxcW3SwWl^ZT2 zX7X2dT`JgSzhwGx`^5{_I1Kf7!$Q6B~J_*XoXmjm)W!xjw-7xTjdVi~A_vBi&BE zCh`gT2fMxgCSo?byMTS?2A=EaZ#vJV&^P3h)B|>#ISYknYLKVMmv1?($@FDe^uwgCCYVEK9zD9 zbe^7U^2-B#tfr5N@D^;_;EXnvD-g%eRNXm$iF9k}3W|f(pf^Z{lN+&f8-Md6-c^FV zfdQ}(+)msJjj*;6@93unW542NCy~Lb+qI2zPx=^N6|%XDzbg3bQm&`?{rOPs0PB19 z8^BvN$kpFxc}G4B`8%cGi1v%uF`Eydvo}sYCVbUqPeG?IbapM-@8heBaejh!EX~*2 zHiUO@G`PM5Ppqe-U+7^DJ^d#i>*+tGH8y~^-JvO6cSBS4y3&u%0MVZ7BH9Cf|C3O-%KF}pV@M@JjG_06Hm6P*IKPVXNu=+y&wbX^DOG*-f8t#^oBd}$Kv$dgC*IBq@`7 zPP&oRm8LzlgPQ)+x@yVQs0vLR_!{_{5uP@1q>_A4-ru-)#s%xc)B47I{GIXf_xIqh zdm(3&!<%OU_zS}WBM*4}oR`>thS=-rF0cPX;qn3a3|xxVg7`e$g+5D+MB_T!OU|U$ z5a{kOaGeTH*Rwvq$@+ZyzNt^V&icHC^|}5cyFUBpH$EyE;cyVbermwC_CELW>rrZg zeQ5uNb;EN{4uC+jU&T2>=;zL%i3h= zW3f#gRU04aUJ~1|2fbVHl0R7STKRS2tfRWu!MzUh2{qnEFEXGUNadsJ`)t;BJ-d$g z)7)Rfb3?qp#Vh~bn$FovBm+w4DBe=L@-r(>k$O*^h;AGNDL=f4fYyYQT1>wy|cE-!CpI6ibiKnD5wdFh!g z+>hmc&+1GxZ~x`jTVg=L_-P|C62-FHu*sUi9kHTZ8Gq<}*@MhU@m0lE8;B(!=ZF5NdsQ^9dS5o?$5BbH8snG|j^*C&2<_Y*o{?RJ-t~5)w{un){+R@R z%O)7_?=s#PsA4WwNnqJi)Qv9~i5vPo?|-{K(+9uwO~-SzHwF5qf)) z`8`P9OfbI5`^GnOe+B!2d|Od5HTmjg3n{+k{OMbC_QiRH?^~yb`u0Lw7n2vTx%2jO zk}B!)64rOo~#UvPc+N; zWS?q$@Sn-~?_hjs#^=7To+TMqJf<{b;`dydF|E>=BwOD0&JOrvLf-TrEE$tzkm|2# zeC-jpC(Fik9K9*`n>pwIIr@+PBjd+64E+@L3nqXUgMKsxTv}otXGkeV;@5yRIX70v zQ{J~3Yf{?@aHMt}f2VEEwV^xxE*(8+``-`z%Y0en+x#}31KxPv zyr)>HYi}=cMzu4j97sPVPySW^mXFv@ni!;Mhw%m5S)-aX^j8hNh5T_fKnJ?#=wdZA zGN-l>OJi*Q-Y`cmHYdixa3X!#0{$Bbg6>rxt1brT#wrt2saU-q_3Vg^}&zt;7|~4?Y_k ziBB)&ARV+E4`F9@L@R|DBn8O7$y&iI2r9I*1Va%2kE<4d`51O_QiBFhV6_Y zJ;4~LWB+mrI?U-x z``*w_?E@6h2q*tD;x2l(9Y!>56<4Kg<63TjL) zMn8xyGh}(l(q*lsA+4#vHBaLy=1v}op$TZE|0&TFFfo0jb1COsc+fr3mhLM*E6s0> z&=u>Ap|_A?&5CQnuc2AsgZwV(J?K1Vlk7DM9q^)dJ+Sqb9KCf;!mkU67nSM@bD4KH z`wUhAi>+R)zvAJq9{tMHKQ(*rkc}(1k_)r{FGD8AA0b!lLdM=rUJB!0*~{}~JimqK zyS=im`_VZfv(eXBKg$lpqI1K=IW)~RJx9g+%r9S~)_oQ&lcN7W z%MX=2*Y^ZDVhMB&(X!~LNMGUmN4j4k`&@l_d@Y+ctRv}kY&-DE?|UuyKQ zBxhKUjg`S0<#Ds;&~GEpqtI#s{z=eIJ8eq;;y2nN7Z-jXqU|B*o<4nA{_;zy#t=N+ zo!=vzhjSjLuJ0h6?LEzFqH&h4B`-jmS}&dat1gj$$&Jca1P1FZzFq$5)0N)0)4*AB zNU&C%xM?nY0NrZ+*m~;Wqqkr7jkmT=`Tko&cb|T1H#S#Dzs)A^rgnR>wwx<9ojar_d+~bm^pcS;y)qud!~;z#*SP~-3-4&*E%D*`eJgt7sPT=a8o+I@!y><#*W{-eRPwj~1Vytn(Z?m<9&z_o33=3LJ>|pIEnUBT`AAEbr_HFi{o&iqe^qjpP{^0p& z+jHc1HqZuisy&i=r;I)1dgrOj*uOiUaj~B6nQQZ<=Ri}^O*B4dJLnzzyj=q|=dTC! z?5B8F>)oEYya&%cIp538Vf@!&TL2TgH@0)`x$yL`@sCKqd)j}$5qMt*j^^?{`G~pw zjNj3@`jvc0w|cp!k+r3Bl^%wyi0-~Cv_W!XE`6302j2fjtZ#fL#&LFUJ^S&hyd%o@ z-opOCE$k2M@w`6i0pcao*HT~u57A$K%}?yoJ@^gU*El3Uezq}W&wDUezJJUAZmzL- zdRIZ7tU`u_rm{Zp{+<#XeT8w$=9NxY%Q%PVhkUzDhsl#$`WIV|9``D{hS~F{G3qzv zU=6b-veq8KC&YfO?p=qO#~!c3&cpC^Ik9l>>>KB4&prFciREg~rbqiJaGB;AU|`nd z5c6#CY>YtjPBMSZG2I>O@8+E}y2w~}9kmOl#K$&z_#fB{&pcYD-~ad^^)`P3wNYud*AD)Rr7=Bt3%UySswI#3nv~twR5rozfeZU$2i}gcI zKyynbp*h+xH1}!x#s?$)F3|_yT%{PfcjWc}?R};5;&Z*zBjadKyuQY#J#=g%FCD#J z1ddXy2`%7JXSb*B<*%DR&9|4U=KFwwn_X}B2IdN1T?b#?4_{peZ+z&vUN*^G1N>Dq zSNQA~G1pW{o`<6ku6cPS{nyAW2Dd)#XS1H6j}ktX~v;^-Nd{Y zbZhs44H0XnsYg9*FyRQj1=}O`l5FENvbh^rw);9U>-H>@w+=q_j-7+s*W>Id|GV_9 zz??>&EsLLcv3&BmJ$oI$e>Sc&0%+U(bMt${_$Lea7CcAL@l|ib`KnXQGtE2)JE%$C zXnE>5{_FwPf&;_@j^qDtWS`l0y-43?ufpWRmyr*@$1~^3=jW*0bk)T-IIFkw9D?Vx z&)Lv6JSRF6U3(F4ahmh8dV!t#?3P{tF0?16gSA3?fftbTx*!yLq=Ebfji=p*rEGhf zM`F)uC~Z4|zg_me!-t+H*D3$L!3B79afBjzVr<3V3vx^GA%I&Hs~_CUp3Ms)@l0b` zeDu=tcoz7Mqrttb{TH0wan0C0bh-hHT)^wkOUvWc*82b zM|$u9@Yms$eXqld9X-U{9bOxdQJ(qx_%R6O&rLMmxZ&4=|5NdZKSPGLAk(d!n85dm ztjxoR=T6bK@zwA3Ok4rqP(H43+V9uF$M#q7*PHkUdgvZ(0P&v1o%P)_-eO#RfQ-nv zadg;mtip%w;v196k7eK>D6cf0>BKk01GCwODfqvi{Q9V4RJ||*tF#^C!9ZLi?ZZlV za`1YP7~gx-3jP$0?{_P(^O18yx3E^RH(~H*@WJ=0xv_Z7WzC#XjJ&y`JWf5I+z9hX zz@OTqC!SJlRC`>8h;?f02gGa8v*R_%0PU?0%0BeBS;qf}Zm)No46wMez75?sYk7(6 z%hO4TJbyh82OEpJKUcuj8~oL$EG})x`1K?+59#MBkx}yq+of>AnZoB*zo- zEAYGd=jeUZz^5o)WNjh*pgd?}N9TD)Z)U7^A5W#NL)GJ*du0&Xv-%$A)JRVk9YBAj z&wA*z!Drn&?mFSS)9e`9=||6XN1SiHIF=KH&pH$DE6gXTlbOAO%*EOns>x>QRWZp9 zd_%_mWc>DQ6P;nGXUeIUp!^DQd8yxI;aaSBIru6rCmqto-_J%O#vXYPd;aZ6`MC2p z6VJlq&wHYSJPsY)>fx^j&PGT)YkkEL)&?K7 zruF~&^SssQO~$vqh8Tv0eZh}oY-#$DABQ$`>RUYB$h|bOpFOWRwf%NSWakr}H~rl+ z|2+O~hj)a&9(}jbJ0ki^@tf;g_YWlvH8s>+-^u4Kf62FmpX!>F#z7z2 zqolk9Q+Mk&Wc4E6Z{xa@YX?`>EY*-0!d_Bcwjthm5<5rlx8d*TkesFsBlEb*zCk}U z@lnmUu`1Np@uT~Wb?otuM9_a7jK8b%L0LDIza;rCc;?3nj8ligf}1(tRp)sbSx@_e z=dFkj*WValGs}zLaUpg~7j`N!r$1#5Bj7VsPCM0JZo%{ee|v&`>esW^O?|Gz{*L?h z_ne5As|JP(z-u_fy3OxZ)Cv*LS)Y<>b%qo-H1#oUy$(zJW=xDjuoDdA8#Fe1q}-fM zD&M-JSv_m`xFlZl+rIod+iLk?S)|_ zr$n}>iz&)y=k4)!Hn46s;WyLXl!^;u@v6Da*oK^;{cLSqbrW@F{P1n2F5=4>;G&%B zOL%v9e=Mgn#N?Ap+{-g<*fSlm+#>(COWqxO`ENfR%l-77v6rupK$EWRSFCGnY#MR0>HN*$?-TJMU?5ly_tI83fA}|s z`n){ehacd*UBGh(zdaGS{}_FyBjC1v-z~JC0#*37)6^H5T>#Ov(2r`7T<62M3LCVbu$Qu3s)ke(mqU2aI23|6Fgw z0c@T9^Suo{x?bgNh;h}rAe*6qGlwpwor=!emmKGvcHTM8JF|7=odnMw=bb%VRnsuD zkuk-nL)yf=ka2E~n!D;8?4vfN@+^lp7I3PZKCP9B6brOBF5_4eh!Zg~T-sm?pkonVh`cc?s@K)(^a){c#RTe3hh!S2ttIeMvA zfZ=!G2kCgBsUy|{Qoaez?fm~wwdCrUF{x0A{box-- z*k=X%G)TjW$uu**5IAZ2uD2lxEhT;ZXBE0h@L8)T*xVi0x9mmWVg9-PMoa8rmk&fA zIg=B_y7p7e5gMGG*FXH6An41rEuUz1g7(*y%t!Ls$?KMPj&FOFxEBL5`iH|C-%UQI zcz2?CjM9%A{~IOsa`dk9ja-}NJMd3k5X;@hS#yHXD%K`oca?Bg{2X)UIpTEj>t;2_ zufMP*PQFFFY*r{D%LHvhlBU?_VH+m{qAgmyiW|-Hna$yS!{h~@|}$$Ba@BrOg-~M z1_%ezCp9kHXF=~T_2cF7TVl_S;KM6D@8oQx!swd|J|}&%YMj0~Hg*A`=tBN3;_o-& zL(uL}Iv`7rGxluYdxr0SU#Od%Im7p#F}I(HCzV@3egaqJ3k79og83?kRQOHtOgde` zer;p(<@H>Fls~gZ5AjSnxirJTrvm&6A1)@FYz^R$&lBPheaPWZu(h9K<{mafE|mC> zM;qSy)3*+W4!ot`R&mc>KRDM=IC5i6*6U1rQ;+vieJ*b6Be$t`^KBob9=yIw#yp8! z!4DLzN5-gbsN}ogZRcg<1a3@v=OfG|5A*+B-ce4uVp%@y&^yk9_CLwrr}#VH^1z`0 z&F_cC2Lj(;?P!H)X}Bv1@~+#xr=H;Yvp9mq+Q>|z zf-xyK($0sy3hy)DkH8-vh5yFG(at;1mu}n>!SUnHU$(59zdoy;v*wAc&0XT-`*!Y4 zX5X9jVq<_e(D}%DI68c9fIq$ffAj{vce4&6-!tg)&hBLIWo~F!;QJ1qc_Q%6WBk51 z@O?M@_I%*`v;6+8K;G$#{QjN5_g5@$HY;cL1JzmDE%1TQY8%QdfG8D9ZBqi2*q9r5*< zHN3xt_wj$2_vgOv`!;7*JpFUM@7LQ>Jv;Y)2mSYc=BV(IwT2)@`30A9ufA;(Lzvu7wAMoFo zKI5Ksx~UucIGOt~WQE^{k%P)*aB@JO=lEj)XC_}x&#va)*jODdB&(;j<6~4@5!##O zV68ZJsuA0J5m#(uVjO23jjkc*M(wPj9p&HH&$0gR`tx>uLZ`;xSm={8D5&wO?}Dl8 zKaAhUweeYK`YT@f_QT`{9iC0yrOrFfT~AD74FB97bSKr6sKkEcUE^Orz_??oaY~yF z(1>#Jl6%8DleYx;s3W}7(wYCvQvaD1foB@SJ7d7X)V-U>@0ap7FJ^MT9ZcL@1-}M= z-oZ82;XAm-`uNVvfkY!ZYtJ7aUA1NZTL--ZZ!zv%Xm(*7nwOi4e)C~vZJx$}zRYL! z=jh7x39mRA^9!TX#lYcxb%UQ{f63y4{;>Ds>@NwlGtvGM$?>hwBz_hnFSI5)TZU_% z{)*}g`mvEgfU+cqM{uHmeAKTQ~ zqjR8nn>TCyf_oH$V*S!y!a?X_E7$$RB-`N^*%tC=ufnghnLp7N^lWU7Qv1}6OR?=+F$*^G}S0gY>o&~q5ONA#{@40>04PcNr7 zoN{wh-JD~f9F=>Uqpe(J&xOEChB+mO`RSd~eutT-VD2@LpWeprw4wKf16|d}Ze*)! z`fR7~Bz>zkTlH+dbB5gVv-cfa{-k##OWVsswS6~U9gF|YZ#TzJE}juT-Smn0@)^Jt z{i+FkFZ&H@L~>@_ol|Q1R$Lj2-xO_*XTLQye(F2Z>~jxzxt}tgNMR z+F}gDYb_19ag1C`EEr$pNGtPf!f!L>!R(0UNSmKvUZbpgt}WyM`@X971@Y_J)0{@| z`vlw2_!6|Q`L)Q$1iw0(3&vM2z-I=|rPs`=;o63ebUQqIg0)LEwq|fY`20=LSp4SZ z=J>-=FTSHW6u$}FKRm}v~^W$&U*#TGwJ zdu`CxGU|@5sIKX|tgg22VcOh5o2Raw5kJ%ViTFdbc@lcMkvKscbqBSlRp(dS>C@pt ze7Td+)(K?QM0Ax6(A6k3CEEHae4Al>dHQ-5*xypXn_wvXigwb#Lgz=M|7Ybj8o%;b zsEv4JxtT-FxH&w`98NKZHfk@uflPHgq_Jx~y_*0@98*`d$j3;;|+X3u0#&W9rk}&ej=0XUUZl6j*^_i@{?9t%;Af822 z`b}4dpS!{NdT_3}-3@NDKF<5V`B%Yt7MS*NU;5E<;SRjt1f1H4BUj_c?L(Ga3cl|` zeta$^Y@TFE-F;&p5m}9v9xk<0ludfcI~V-vu3fPQ2g6v)otRsBf^IoLpq=r&+2wmSvrz zURGB1!lW0>H}ar18~WAx%^aSG|0Ijzmv}4h2F{n) zP3im7-;Txq?6b|lxHkTyrFHQ?1*4!}ZYAi_p|5XzBE| zL3+|zKU0h8>Dux1l&2#fzNet4(>(WPb1Z)3rsnvI&0hSQH-+MFGKLpta7Iqk3dVF} z{QJM{#eewOQ2Z3Q`#$$YL&C*x`>qUv-t`#_vf9n=x+h@&Qfc}tSjiH9|o5T$nz=1<(Z$2 z{laniJ>;n4@gSc#9@oClkHh1RPsHEi74f(D{8z!_Z;-e7ad_Oxr_!-YHfj8m%BPRO zqS=agA5YqQnZGk3DC7U^!^ z8n35JCc{3A90;!OA5~A8eC&1EH&{crvxa`q*qsb>dWw_3ZtT*pB*!Mwu|BMxA{iz= zw|=3C5d+s>#4VKg8Y2>d6si;4{P}I_z$|@pf(Y-ZEQ-;ACyfg`{(kyx`2LGhb}b5 z>Sr5$n-cx(A?)FY@XJttzwdWKWhO6EdfLs@A3n9h%Vn_-PGU2i4(L2dY66e5m(V@Q zRkrz|=x51ZzCVDzyaT;-7i;Zf=tAgfS?NPOdy2L9H2TpFbhn)W-E9YYk=5O9WV|=U zA4Yfknsm2~)<+B^F_a+RO=Y6iObyn-`@nD5R%03L#s#ksBLi~YFs1bXIvY(nQd z_-8yPI90P>d%W+U4xXH1eFwnE`3{yLn!EG*4&?^_l-!!(px=NsIt!fSZ|UY7;Y2A6c~&qqJ_Md=%vCP#F?3!$ z=LB|V5C(#^v%N20;>E9sS=;+^bk9@Q-pG7`vG0d*Fg|$&HaM_zcyqYan1oN^aX)sz z-PtjtLoR?Ovsd6-F}7DtUlzJ?cHYUwb=U?|to;Q{oeyI<=b_3LFW6&~!%}b*JRK|r zN5NBY6g-2lJPe{rZ6}&fYXKwlcfO!g>X~D|suw zR>7ZY;k|r@o$sCS_D6xWqg&Ce;Qfn$_4bbdYt_wpKNy5dU|sBA3Ci+EM2ZC@XIJewN4vwiSK6Eb=QXBDabjLx_{feaTOleCjUcBJv&RUuXsvv4+Z z%I-+AOl;RlS%x_qvZUiH+h9Nh>cH9T!kpU1*yPfX$z(`dO=i}1Tp*4^+L&%SyVE(` zKayqPq!~Mzsg(lS&-Z!W=e^H;^s4m$#_j}`tluy3+aC+%1^bl#Wf?B0wYepqDeiU-N>JBN6XeA0uL%^CbWzW)1+uYWdUpJQbU<30`^E=MkDzp->A z$)m^5!njp8eG#;(+5(G+ze;8syuQ)pBHKDk(m_Ey$rb$I%K5hcTRYYLuGo><|LtVR zB%VbbfMZMH6G?nawE&hQ%Anh$G zLrbO41mn72zA_m9>^m!-exz~M;8FTs$Nn9iHQvnGK^mX-7$`2fwBz+>M=uY?O`ON% zC)?T$PPSkBTS5NAnUwKAU;9D$&Gok-lUL?feK;W2lgev9$11KXr~Z)i+*IrFAFxk( zjP~EY65RUu?C*c_H$M6OPu@EF`>V*wf17bFPo;5X2X|isk6o40-qn`l8?Zsz`MB&j1KT|=>W6nuQ`7W_$~g~15PQPq8Ov-Q#!#$bb`TOPJHZGr^W|=zP94y zvuA9_Vky^x-&;~f-!0z7Z*acc29AU4BjEW_)?@T?@V*nAhu6K$^Z%apaqH{$F9|m$ zt@RZAY|vX{Yfsqq%~Koty?MVH$tT5mbuPO0y2yW7TF08QzI#~n5or2r!1fq4l7Hv+ z!DYymW$$)9t@YE~wZB`nyp9qx9u8&8G3L<9bBdi7nO|ug^WDgN?_<6YQ^*I8MtMqH@ zsvHAu;Kh$dY2WWxa!0zK>Wpdcw&IevH=X)Z#Xt^$2d&`2B>sB?w)D-dHVy)Q_XMrS zTj3SQSnFl2tp;ZtF3bTJOspQ6DpKM@OighQD{G@`(0(Z$?u$!+je!eu7~{FOm)o;^ ztz27u%KCI$Bbv80TWZ9Irof4R8RCS&hcG_0%E-4$d`K~zqfZ6IV!(w>;KD<}_(Jho z#uU-%N1@Z3LOR7hIDW%w;B`l|hR0cNt)cwzN1tLn9%AmBShqp&fcZUsYSWvt#bg`2 zfj#=kR{frR{PXBNKWJo;}<+dmR~V9@!3#LrLMIXC}9@I`Ti z9Bt^GW#G5sKCLtE495khCA6$GM%qMdQUu_(~fL)^D<{)GB?fD#C4cs3oxsB zANUn#xxzqtB#SC+R@)D~Sfmm!H`le7zgt zdcxRs9*4oJPFwfm0DE9v&4_sZn(+US!T;)d`Kmu}>M^sP+Pkg#A1j;TUB(WR99Mk+ z?U#1-IsLj*Vf_oY7qP}VNBEE3sapB9@PC=9ZC0soAkgzMx{~$|?xL1hDw`T|`Jrv( z#O_CzE1_EoRt4bf?xlm&c9-j@{J|`^W7ovt>w}ZtDPIYXV$EbrtXaSKCh6(yi$C#u zyt|khU?bqU_NTUk2il)n0G{`%p5r@dvuE`KyeD4Rhfa84njC7&@9cg&H%~Wq%_ZrY zaKYj4zYTGd=c@GevCmG{*R?laZDMPLXVu!A^a6M*-s1Y|b7ypYc++3e0|JCJH4`UOkKeK;%nrD>LS!9d_#;WylzcnAt%gw1c#hf~@Rn44K zj~d+5oL*R*9pBwfP9pQ{V668t_F1Ekn6VepNABf}qkVtLUS(wO&GfrNwW)P|ZjQRu z!Tmo0C-$+o?Q{0sp{s6tji%_%-mY4c~o{d3+7LYe{9lxazVeIiH*Rj9u^cv7g1^x$wxe2cD>2lk#x=|FuuR z|KH(}o=su*9%T&8&D)N=c-4z1Rr9nDKgbJ=;e{ahw)Wq+e*PEQ5f9zXn06>9mUX?C z+(zNaPZ;aI@A1v}SdWZwBMa{6TEO?GdDmPAchGb1);n3gZ|C~HzwzE39+F(0Z%3$X@uwThLGI3eG)cZI4oCSUh5Y_D9&~%(cwK z3#t24{4crU(?4r(YQUjD{hBpBv3_&)%zq5-pG$jYeObQ( z?dY2Lr|^_Hn)a^Z*(6xDbA1i4>S2vF2LGL3<6aMIE?V%fFW|b?zk}<%`^C;#j~t<1 z-p2U*_0aSp>Js79VzzpM7b_d2)P z_XdDLnrAjK@8F8yZnfDNws~M#_&#m+c3?yDe$NxB`>zB3uAP4Pp!$m1ftGeI4es9k z^(T+?f9~t{9{-zh{8{S$o$#ic!f}{q?s&QS{r#!?+wtYv_rrTj!uP+Iy1&4^tMxu~ z*z;)W{vU*6>HO3aM|OX{0t@ukFaG(_M~+bQXk&XPb-Hx_vKLKXDgJNZ{_flCIu0xf z?(Xt%XTF2e=bk*W`^j&ZceK`~&AHo5o4wf0ou7a5Ncj!hXJ5N*a|^UAc;tv_z6aiz zHTyq-8GOXRj5a$zXWJC5s?D|6ec7~WV0Z;<0UhUvbMAif$s-5n+A;U>zZo<0Q2Rx4 zQ5tx*2igeWp=I^O+M0R3yvNSdwa=IYhp2tlC`XQp8Gra}AOEZUgOAwp7k@2mAKGf? z_hH-qxO=DbQ$IYp`_-fB=Xg7Kv-`tO9O=K~8z;*zzj3nj2R}8}4-gyf@ZkFI)JC{& z*Fn#WcifG4_t$@Tvj1~GG4C0;v;zn5MQ|_L{ep(B$<1F__0Ao(ujn1{$G&6sD4KWv zRs5aLh2sO48tA77yz1k3(Viz`-gzoE-`!9C@Z`a-k5rEjx>8@e?0zHj9xz_$@M6nr zubtez=WoqBefVHZU!23S6aUEba#BC-t7sxBi(M3u|oF>sI?-Y7S%Jz3vcK2hiF4_kJfFTlc&#AKCJey(bUuedA>R z-`cTt!1uwEq0TqH9Px<(_Ho;fC(CpG;$;78 z7LL0Ze$wjI&`lH0;D^n!)@?hxMa&KBP3t% zfOsSCq+hqVyAxV#o1$NXE6A?JS3Pp1aqpg!i?4e9WaGM{C!vw!`yH%*`o|{^KJwbh zgW*{FxUT(-ou7gxKmFp#PTuKUYT?P6SK)xmaKdUz2%tLh%MWTCsFiyuH2FYS(>`4OJUgWtP&gNuW>8qTV# zILp}3&JK3=kM?MB{&}^1&U*UwEv1wB;|cfmKeJpqCU6iBGJNYNd(GPHhd(c2-pjEE zx&%Xa|Lc}V9S~oXjDjcia{t%$>@Db8TrXmu%1@F)PIe$C7lr%z(Fs1m7!18>Ebczv z(X;4M_a2~qDSNSRQzW$ePBRaNw z1g&3O^{%Wx&%y^CnEKQWFBR!ux@9@+AKCPZ-@o5)(pWTZTW5~53&Oeh@A&a%e+^tc zZq>)K{`WB6h8*(q1xh`@{vKfe89o|sI8Wj5*TKOeH3a(>T3jvP_Qa9SFI#!t4lSft zR{r0KJ@9`CU#}o;&Trv%_jSm@Z&alQEI2OwFlz@6FXBDL!#bP6Z(<1!#~P?nkfuI? z!=d%O(~T~2@WXceUFa3k3A#V>)DiL71IP`Hv%pwnpDoX#6HAszj(-DP2srJ2;s+;p zH(6QH1@4Pyc7KF6xz~9IGVWz7=S;|KG%%?&YVmeJ&oBD-v@sF zyu;d828PA-zldt>{34x7tT#Ea8u&rydbSANiT>1oQM5>(;>{`iGsTts&$AA$2dv-8 z_H#M7P5XlFf8}?rzKW}X6Zcb`n^0Jgyk5-pnK342%zj^ls*dyz%Szrb5|K3Tw~`=QJnBN1K4JduBywZwJ&lxBZ8) z0O%&_x0x7QjKAb#{6)M)Jm%hJ_%1xA+z*U9)0v3xg#6|pXY!P82G@{r%8^ix7e1Qt z0yNVM-2B|0;m+>N2);a>3sXQgys8!~5E94Nmm(jB0KgU+9g{W=yZpIQ5Pj>j>?*@g57uix24&S_h5$80$3_w)gf* zawDjRc^tV%?!$J?^*HV68MUJ})wbEY9Oj=W_i8zD?=Pdj?%%3Oo?+ z?0;~>Ddi{F9IlXNfKLut8^;&rHz+J^TF|h&_rn?M@prJ+jZ&*w_4X6IJ0bly& zAoz9~KkO#({tozR58q#g_pKn$$mo0;4?L_vx*t47?`Umwj;-RYjkL9P{i2(+_6>_! zOV(EX%tRlp_(8DKKMdM~1 zP2ps*=Bu3TF)7I?UHlFGBz?sc+2y3}meXV!y@PYokuZG0Zw zg7#HE#@YQkk4ZJ4%J7)d1L#lSz%cYYa-YRn>3AVOg^tq4ccHhGHqtlr?ymcGvc}eX zS$MXn=pWo0m=k*x<-?dSfM12?T%bMJ`@;cykGjl-? zKHASXxNgt2X_-`Oy9`Yqg@?LvsD|?~aH0r3!w*c(zF@I|F)ce`@~57;iut!bxYpFz z-U^Q}^Q4bq=y!zixVqi4+XNe{581s-de&Xn9*oL6ZRAKgKT7zlaD5)Q63dB6$_JLc z(u&`}KR>4gZb=_6f?uK`G?^Q-gzLaInnzNjk?%u=W3sRd&lIi!kNpYypx|NiwJP~E@;7!jbGG7~?D(zovg5Zc$d0eP+|Jwf zQ}M?o!9AXDv}zjr5ZS=7#l$`EhGq zA~xdqnQCiloTJd{D0J4wT<~q0vm09GKl*HeyjJR6a-T=RkJIh5mp;qzN5Md_5bri}0=v@9%lQS>_6YOY z$usVrbQjG*_X_Y%^Nmha=DA*;Gx`-gLf3B-c7P`Y=3rhGxhf7aF#RuTn*o7T)*@bXW=mxuERU!_lf4+{3YhC{IRB&+?t;W z{MBZ~R(HA2%?6%=nOO_xbE(t5yCnhtMbD4n$M^j)CZCVJMt#h;7kEn->x3rP0`Goc zzbFU}_wy-pK41EsEsqbNpJ}`rmvpIJUaZZh$7tNZGvdAQ4R;=-u{XP|enGKF##FuE zsPqNo-W-hARWor8_leDGwVIdIOJm-WnJW(b@*!Z3g9tZ4*iVB zyEBp(75{9wkBaw;;AQCxtgCx|6u%bF%SRm0?kIDRkJ8d-_}*#qlZCbT33TN9uN6P@ z^#kFl?bkbVYo5mwBQL2&gc_U$Z&{fjEK70_qbYF}wg}w)WuFgIaeY>?aG==O^ ztkvN`;jZj>LA8aUleCe4>Emg1J)>_J`IkPt2YA?I!{ zzMj|6Szd&{sGeMjbvC^ETGj*_R=hv1uh@6(yyCXoZrbT=#&#nWBPsn7VhpBMZzZsefO5tT1(SYwAz$_xkUJdW&!qzGcris#CA~cV4|i zqtBg1{;T$v!F%KRCS~Y)Ek5MisL`u+XT8k&_w#La*`O*n<7j6?W~3Y1MK{yCvLWSH zD8i#mToQal|6e!??(INcUk3dxM-O|M+(iBVSVwU8hV|=ix@LfS4Zo3nv*(Mc`(>BD zjUT9I3HfmR?)f-*j_}`}W%wz{=hFM~^XgkU(fXE8#k@04&KJ4QJ@=>X@74Fq!TtMr zSI>;Wdt29EeUtXv{tYsT7|?dT^N`v|%|5PN$m8fP8t-w&t!o|huXs@}_teH?@Z@#a z?#*F4zr(Y--$fsL7X+W!$L}=xeR{W_Tt4j&9_wU}+YVw_Z2`I0&4-t;k65%Zj1Tda zceg&?8#E5?;(ze}nFGJd8MbXYLoqdY6x@G{efe|HQQv}Qw@|b0b@s8E{if8c8B4bw z-uljCk87XpV%1y#o{PS@?b$Y--NkrBhlNh7_bZ=wHoHt?#`_*B@gImu^^cll)DxEd)2+7yNAuYZf-Jd`j3+ zjOA$Oii}`4#+Z(YXLO^#0RJzt7L##}dcE*dt6x~ZLp{&f{l&7qb@q|-7uolhvF=){ z51*L0d*k{IH~oZt={vp+ZvB^uyFcHQ`q9hapXheqy}|u?&SCrf!}gl~U&j9=>HlaW z&ujuO^X#+Q0dDo``#*rEeBW1d9<5dLfVMtS&s@&dGZqJ$s>Y;i4rY=EQ^TFT`*o4@qYRQ%p;-ac=QqE=$ zPV#?Sf6=nV;(--^k^DrR(4u_HV~dE;YcG|Kf|x$;deQyEQ-A4#$9fu^*aS2fg-W z$A6di$}0nE$EOdg{d;MD5A8oPAHObo#yQ{ZK@6m3-y7}D1JNnz%H(P?|jvNbG4!5P+?_Y$D$9`;{Lw@1=-as7g_vY&V*~jy= z^V0ea56;OwcVr@%v+){Wx3bB$F&fM{JQ2*le>1o|dNs8PvRPB({KbhKN4~~qg50A% z?zJvxR3B;N~y!Q1KkZPx1h?>zqaU@&`d;+@p}T)(@G8cyVD+`Vo6H8)8= zR=v}s=nAUSUVsnFM{510cHN4dcFj!v9$}J3-;Q7DdN^+LjKvp6{;5*lT+0;9geZBvgdv3fNz|Xk9axu2? z4)9!hSAo9di)+MwTf|4UzT^G90Wm#jN_*hS$eP|P@e**RkMBj{o=Lm5l|APEn03yy z1E}#=hVjs4?HW^cJaqUee9=#XtGnSBJDC4-!T8ay2IG%lS54kuY|jYpyUfNI$(1L@ zMVtrQQSqF{cHUt>A!kyT~-@@1^Cj_CLcj@baqm;oEATSjRtC z{I4U}@ob8`y5Y7i^2&mLuA2XwIaf#bSKu2M{tP^j|A*OIUShoRLzZ_SD}hO2cf~K$ zi~lO=x^ijEJ=!hb$GiMret#!Em-h4i z(Hpbl`;k-fZEwOp_^D_bnVVL8Z6)}y4jRCBv1NXMe#F{^uqt;03*Oy?9dk9jW46|j zG4$graqBBxHNK8kpR{~cFxRKlpWfd6VDG7Z)+jJ`O8R);HwT_=Lx;GQvzL9m$uedW zuXb_NE#w!8=cxwOi;dMaAmGpCEjjL^U#bojXTJWeXTLlDrflpa|K>3KLq5&OkGZXy z{^WZw{*R|7`#(zCD*inEM$T(}jqkZZc|>8X!Qqrh&EMIxa7zGweI^1=9Dh z*Y|+-LA=ktOP%m5o+jt zEN%1dc-xm!`KS&2Qj_|)p>`kQ-O;RvVb{5o5DTixuo&qHG)q%V=+GGq%rhq3@bf2 z^4q|%+qT*Ejt58DZ~Ia@pE{kk;SJFm@!PbG?9zB^jxUVWX`Kf&KKN1TtCf8l`rp8X zYl4gN3_07HGwrj2zwxX4_*87;x_pzJe0yzc?$Z0+`1IT50x7q(3EFH5X;X1P$Nyyy z`R(sVFDTLXW@uIQvpRl**!ZuZ|1w`!+wCL&!;1VzZ|$bW+iYqX+4@SVbNn{4ved)+ z_h-jlEwbyoR^*rQ?D4Rcqv~&u@vQjo$VPPQ`{3=4u30bD`|{~J@?%~O&iFcNcvkzL zd$u+62V!zGAw3;)ezXPT}2ma`Jz}?WR+e<*R z&u9-!5g8)?{hpVfJn}I6T$Wt+!;?$y_}i20Up$`DJ$TT=fBW!}d)fau@`E={?s?)T z=3ap9F)^`_80xR)C;k)~fX^v6*U3fYye=Y+T>94){!r{}+OB@xGv%M5ON3{Pu8H}v z*P(kX1$TNsM7=NBiiA)czaRpp~#18aOG*3RT9(N~ea%r$7DypMUlZvUT!PnUezadJGzhwlW=s|5qQ z4?(`vC=cBm(=l+U0iPLppe84){1?mtoF2i}*@69g8TxyvpECJ7s*yLeE!i&nt154wy)M}5#HX&z zXQ3m-N(=vqdB5esc>y?Za8{Mft6CH0ouxm{yf-jShwVjjjP{1T_PQiPr)qB{{lf6&kkN$4@@89d7~FG_7TQ@ z6n-n5t@PRQQakup{0!rGlQzF&`(2;TM*hNz9d2{Oa!oczwKv4EUT{`%OZdRTBJe7L zYa?&cpNDVLtw-TI$PL9m8E;WE5U#oA&w`!-b!4+<8vcDsm#QtUtvBA@)Nt&KYZb7 zum7)xvf(+e|1FJm%Z94{J^Y%E-uk2$Pr*+{;ZMUoU72Hlfo{P3b;e%tPH2j?l+AR! zOm3X^N!Si4SMYK(A3ZNR7hIMdmG++VY2~D&7=NIb-@`h^bwK(1m_zjE#jFKx8z_68AxN#$Zt?JK8>Aw{`d~e!iUxwn0!6ieM$20Yr90x_(ZF1Y*&}it-a0Vws5zUmaT{(_L}VqrT&{n+Yda7QsvwWZ(EtA&$`o1qEp`f3>8X4b&Su8?n7 z7~AV=qb-zWK0I}|SF}wa-z!~AmB0d_ki%HcZ!)4b_2Os&p z;lDNElVe=sed=GlZ!O=l#}5FX4&btek7Db^us($FSacJ|Egw&l>g`_W>(^@b`dkt5 zBl$EY;71et*vI-S!7FXhqdp&lJ#8(&Ab0v@&uc`VG%4Z$SrO zoZ?;hXfhgKAG}R|9KQ|G3-7<8JupicmwRpiUyk|+|DU#2uivKQsp`*Nclws%%C1f3 z`tc&T<@lq1cfcRDe@M2J_^h+NB&UnWKgAq-kzeAGA7i}oH%tGL&MDsT%kI?ncKE*d zcL#CW5;&YC*QO1A{ds87@B?JQBKlZ^{?R=@JGAwk?ME7a_v zw6A#43Ep>b0|v%N$^VA;>)X;;*jAYT>C>6&CjE|WgU9Wk;|I&k{>0ym@Hxl14h`?z z`g9MqNWY6-s@(gBSfjNMuK6>?>1NH(er3<%*PbQ!_D0!cd)i-nmYkE9g!5}3T=Zue z^LHit!f`Gl4z@^jqb|4lH@%y2yZasQy!Ge-)}8A{mbmMBu5h`Lt!BPzX9X}>^k6$< z?K$;c^9lny|93}=-5;lQFNQHkjjI6eMDSof2Y`i}|0=_eEAuz?$;n^H@|?p>bb-wC z=y_VpbWr-U{-D9+F`56NQ~jTYM!y4%_T#^B^``u>x&EX2?d-Kwo&x%NRDWE4NV_@! zV-Dw!cia6;tH=ZM_cLh^Q}F@2-)4dw&jNZ&I)=Ah9^STrx4`&rWDWkh)QK(pmJd&| z!}#)=PyMOjq>pG3oiTF@e9Ok*vfqLpO>X^j@U2%3-)b~v^?<^GUoF;B;fegQ9gE(qqo`?G(Nf4AS}u)f=A zz6}n!vtr8NkL0FZhj5jfUT~gx$%zK&VHiDfE3kSFyx;m@@1NZZ z&Tn1(>a&ZfVUgu}={`R2pV9+-!-IN?~n)oqaC3=;`&+x z?%fJ6`40W;p`Xu&wDmCk3`>tkSDC6m@iNVE7=AHI-@=7o_Q!dQowuV0_pPjNI~ePDaeG)9gO{Zsc%}ouu zcl3PWp4!s@DJH?rt>S@#rW<@9$%t85g#9NWxDY_KL!32mM7CqF+B}jS2OO_$>aWi zJbGRhAMXVQ&t?D6@%bX>H*AWmrpG$)9X+HbJ=VhaLU#>1Sa9Za@D~>$f4R`<^-zqT zOvn35Q}Dh>w$zZF(fv>#j?11Tnfc>z&7Hiw=*Da8$J5Y<-iPcdI+Y51cPPM+JPWIOa#;*AByejH+k0FPv_;|+9^8^AAsUWx+kAZJ8{n9U^maGE&FZ9;QG52= z!pO$Pob4Ltk7Gt2R>o6cFL~0K%AK1t{n&x>lWYot`$w90JnMW@Yr|TVGd<=4xhQVj zh26PKl09kV0m9 z?knwcmAMP9jC+p#wsXIu%9nT0!*R)TR}XN^*vOUr-4he@Xlu0@yORmpGooCMl9`u< zjmCy=!@#8qCabw7KeGoD?FTM1=V9hIvYNTGc5d!wA0Bg4d)ohJ>SXwQbxupZ0G>p1 z2abBSGI!w{W1eHb?cD92VYlu{`5JEhH<*}GW&I2Njquo+$AMD+*31fcbPxP_4E|i2 z0w2y6E)@E`eX0Eeng83P2gzgYKYnlC*`a6g?qTqvN@mUgP5+2FIQ{fcZ2X0?K@&6^?3eBlyj^7rVyOt&S z$MP|MY_0hmK<}-0K1FQO67%UM)~VRP#-g|s@yw_OSVuZAxpvB1Bi74)=gPd9kF}?m zqvmGihqX`R^NjzWH1AhE{BDi;6V$#w4whOw#l98mR$If!y|ur?-t;=gV)~vF3`H=X zlN(aJp7tYtaYp^$a-RFY<2?6&`^@#fs*d#^VEwh0%2j(F-8PGTtsJ!wPmFy%6;3AM zK`sB*8R5e}ojG`%QU7<(T>r~r>!I9A!8wF=#80be5}RY~VtDIm&}4Cr^qjC(33ORR z-%gS@tEg}7=l>^-Wq?{?!i^HR(FtDITt$1vo$~Nji+7`&FM@}N2lkV{)UBF{e6P@Z zy|wG2@u=-S+TKNOm8o&N6k7qCU^eXtCc38n zv>!wLsYbQ#KTID>=8i>V9 zx&FtDZCcsCRJ=1;|4X4)6}9$v=8S&Wi+)o}|Lc%$1+MsO<>(LH=;I}DCBg@ONB98l zMEC$d=!WLwJVALy-O!7{2l$KMhs6iGPb!WN@&ARtaeb0}#j1Qm*{f%?KD{%yKIc`R zZMXX{`r6N(K6}X?nV!Dtwnx}6XY3L7+^&IMogL#oj z%nj~ePY$#84sBsP4$fAGn;wrM7~kN}bR;t; zaC9g7uk362285sT3v4AHcI|Ix4ep1v-v5wm+t>bfFb+a3lDKOy*CoN8NRo%|7ynnq@GlAX2F{_qdP&~Qpu9mZGx7$#>|Dv4`1&Q`)2>j~*xZ3i zoV|=(Sqt5Yjt8y_#y2BBoSwSNtGluJYUB_0NABuCd%+UqsI~Dd|DQs}#O#qI|D}y* zSM>3u`J|YS>_T%-_9nWv$)y1Px+eX)9NL+Z`3>5~yEGV*-^bab#ui;_ZB5ytQ|Zo* zcl-W^TJh`|TMul#&0(#WK5MssOmma|uRW(`J+KeX_IjL=yuNzoi{XZM(LD>sm|39zza31WzOZ;mF^(*QZ z8G6P~damgCjO5>SGbjI&^daq?wmFVAhHv(ZD>jYZBOSrnLW+HMV8<#J&Hizt+x4PL z^x}h*AKt~T^;>#{d<@bn+VM?Ks}IF=xmxK9dcp`rcJdr=AJMI~QC;huP=h=d1-sI0#;wh@v zl(fDFgomNd9_j0>bN#u`P2`{{_qi!=VOf9N!{1N0%H&5>>QCuB%cSx4$%jwOudr=p zlq;k9N=0Hng>AP-*UX;lFuzjygT*jsQgNbk==+QEX`r*6#Jo(r3%`l_g;vA-Zsjbu z^0D7`jw?^qjCbAa#dg@+`aREgPrH%7E}n0%xR&}2`;OwVMSNQ())tP-_CJL!SHoWz z&yP6Y{ciy8{QanI?#|!TMva;SX71TId_Q!n(Kn~Im%BWBxi_@mTfsZwsNz(zg&Ak$i&HGK1g@q+yV=HZ!}zRX zvhTxg_Va_y{)9{XgZOWFZs7&UKUQ)6Lv_AtOESO2Z!8~hKcBVj-%on`=MLj zS=5|PW<%lS?d?wbQ{m_nVbE}$ohM4dW-92&O@6gUo-Gko+&kt zjjvfWS$;a3FF!qt&ux5KqHjx&VeK5%`{O-5Z)(VdzY}ArF@5Np9&h0Nh#xPj6W_bw zTZ%QP?nn;U4FJ>4i>nJ$sV`X{+vTOyP#^~FQD>*)G_-hP?N&EM${^sYi&Pv3`qNi`f^IPrs>d9}_ek;l2 zS)tBh_iEI${fF$&Nf`D06)I9p;?-pG@i$wxysUHsm}D-XY*ytLqzJ=96u z_e|>k9DIIjt~+zfyUm{nkOA78srhPbE4WTS|Gc3w_pJJR8C|bPzLn&R=Ke#Tb#h1l zE8d+*-?99%oi*@btPXtaaQMjh1o!2PtH54})5XbneK6@$=NlgnalW6gFC^h(D#XVm zT>Om$ThSrvSn_buUAHhkzj(Mgu(@Nxx4#6Bgp0yK{ja?n z_2AzNHSq6T+aDLZJiFNKr&i<7sQ6!!=&eh>4D9}RKC5aVN9RR^c7HFpshFv;5Ak&< z=TWp%B^$5}<@XTX;S(8}WFKB1kE_J!{XY?1NG_&)&&=@8WYadMz@f0Uuf#zCtbb?T!4e znxEg5Zh0fmQvXu%Wa;DBEGEB2V;i}VeFpga6ifds{?@%-EPXd^C}(9S@>KN(b=Ipn zlbHU}$XlJ++t1l_{riI->FisVPqR1`e5~4jqK0@mtXampvY|>(ugs4;cYA(x_o_VS z<>v3bB9&j)-XQ%rlIxcL*}a>IeCAruuXJs0=#N4^6X`qWBff?GWAc2+YI3g7UIJnXW)A`M@59*34f(k7d*UaOPBz=F#WOCqT{S4R zUSsu2WPiTMSqDrGe(b9`=w*{z&|$s`?=OfFLr(IeA{nhF?_Q9sHV-Gsjo-<0u}t$48ilw@!}Iy`xnAJaIay;`)V zG4%#9d#P4D&Dl%jp-!@wCdJdN{$tPeaB;Wl`T&}LeE-&qo=+gs*G;_P;`Nv3WBjO= z{5+r-F6&s)g-+iVNa9BuV*MxK>Mr`0E;N;^v7EHGJT9|Af%5@ z*{H(p5GPHn%I&+Ip*))Z=;0PHh~ilrV)jlVd_sCHN@n1*?NhyRYcnqtU5dW-eY)^V z+V6c@@{2W_Y58T(r>d-959H9 zKLR>Pq(4V5uD$cQ-jBu3Pb@x_tUvA2es%IK3QtX+e|tdwVdb_Bt|Zp&?GM7IcrX4D z`H7u>Gx8UQd2SBJNt{v@Om z$4@qx{FSNs$*wy1afB%c2hZ~+-++6x22;@ME{{J;hFx&-&G@q__K$Eu^+YPM8C&nRfPc19 zZzL<;RF&5){ZIMc%Ih}y+hM!`U#j&Nq6<5IW%Oe3Qu>C;M@FWfu1%>pC1Z&G96pTI zY44^Oui_~>$56F)bY7veduJ+-DJfrQ)l9=1JT&kQX?#j}Px8-B;n$AY@G}B$`d^HH zR`r1{T6iO;4ZPc9{_rIHCWc|~8(Dr{@LT&+h*d3WKX>rX8+)mYyBz*B?{cVXcwzMamg~4=<)& z`7F|*yq@%|^zP9A)H|(DV``tGzfWU-4SmV_8kBd0wx-SbPRu-|Tk?*Ko?ZVS1(z z^K&M}7Y^0oKbP%f+7n*~C**?>ubWAJ^*1&6m0jNozbaBMtMqrtHM0&dPSwm}ug{yq zf5%z5d~c!_f0^9o9ekJgHhT<1IrM(VkAEw}c?lVx@2Z|w>Bd~9rv1billB9`ORM7B z(Rw3qW^%nZ7<+UYe-t=j@-EHZ6VD%qKcgQRsPWjm!SqWb1}7Tf7s};qf*;H>xMAc5 zF@;HT1D`>)+?c{oACv7#^?GL9zP{woFzZ*iGB=du&#?4ZjX#(2%j(DB`2L|~b@1Q5 zFn%fhb2Bka>EzOd#e)^cJl(jZpRc*@1B%AL~nNU@zbbK8?}0 z9b^4)sul0G`#UQ7kn7jypW5G{amkL^(!@R?Y!;23x`5QNHoi=w|G06JSDhI!F=4AG zU5B1DJP~9@uxEDj{0p=r9m@HCOYBWjzsd!mu2)suW(1q22_B;U?!^~+ul&K-M9xRA z-!6w^cp{te^{Wpg=x1HcllMWz^|JlogvJ|yA7%|`S3I^I-A?UGU$gL^V*g-FS9rhs zJKA?L&bQbsB6_Zy@h90|0RpfCLQP&o*nS;$>Csmj`g9-|KAwm0=PG{7FQMaFXT70;+IuHL})zHsc>)>Bq z@UJM>9DcR-mLOAiu5%18X{SLIN*r{-F1)t4~S^P)&UP(NnBWbTBu~Y4T1g{ORJKg&J*E0t7 zul@7g@V_#2V{-GMA(Jm+d^(;Tsr<57Y%-DWRs0}^NA^P(TcC?FJ|WfnR~%QgXmUZg z7Ul7CFUsSG{#^ck6<-EE@;#G%?{_WW_@F~q#A8;|U0pQy+SDy{P zfZ4x7T%s?q`GTQ5iu?fe;QzU(&wO6%v%wckeJ^e3vjKjHLqtLN%q)zT|fAhSwH06xmv$7 zl7HEmlYf))Q)}SQ0p+KHJMF+`T3V0c>j-?z@vpk`QCW*=`-#c+qRhkEUI*`3cj-IIBRa5ZpH9c;C(lVO{TH)f169u$x7&KUm*?Z94_AC<&^L{r#n?GcYY$NY!>rP~XBXN&*D z<)!@jNo(FA9R^>1pz|;A-52oPw<9;}kty=a$9?j(?6tb(SvFf&-+sSmRi0hKr}3oo zq5iSq( zO{qV*97g%WhFM#ezjQ8Y`X%X4cKj9pK_Z@k1M+vGM`{1tc#3b)!=mfJx!}~Fbe;NV zZ#Mjwr;aT8Z~yM(^QrwOJA#Hm^sj{-A4Nwl{Lzs`C%yY~8FT|d+P)=A@EW%R$P z$3KAnr#cS<_%fW0K@Cp%2_rq-_ig0Rvt2Ai<842K9HmK4p3#_&LruXu__s_HAj{ut&zLy=}^Mma82Z7C2^gZPaZR43yKEjKm zN{KJo*nb%Jn4!9$2NV3KV=@0}68x##dbjMY z&CFSGo^HNZFwZq1{-`EviJZ17{J~!)+K^4^=je5$&Aty~D+>2|X+!uVzo3tE8b>{R z+vkyo6XusU{JIifueJa7066Akhl7FTLGQorsh^)$FTWOl*#&M1hT#1x9ql#-d8WLg zmi(~te|mo10nboQr}8j`(}mr^c6auY;AQLYHd1%@7Cx%OYrpLpP7x=K*|c$c(bhw& zte-p2RXGy%oZZ^T`kS~Vc`_O&{40tHq(VEm%5RcnM}q6dj-1AiRgaH1UZ1LN{>K>3 z2LHPt;ERvWz!#sQ#g}9|{j9>5F`O0n#{4n01`F%-$oIc-qK=#r((jV*9U!0wvn*m$Wx8GXp$iMDF2Xy`ShW3W?VlIU9 zQpSw^Ikmms!5mHQ(sdP^>(^y3CD>fadrDp8A z^LZ|2dO49!{b+f^{No$uiU%${_3oCoQ}1>LKhhfO<|90^`-UtXC}-O2{|s$h#$3TUuBi^S&j*wrDBpM)AGyofa5=8J=5kzBbI0tp zgb!#RXrlcU)6@Qs&g{OGF~gLDt&N2|VxVtgha1zwkwA1$99 zynJYvcp1F43_nx8^K9A?40O%pJab+AtbGpgCGN|2zhoXc{NzB5Aa|R{pH9ks7T;BV zIO}*p{2`^3(t8!KISBu5RWIk-}5fw{A8+pixhg#OyyeClDCJ9eK@_nB^%M%_;EYy zT;vke%2&4j?5XuPd|DT5KEY!K{!@?t0I=^sPAW!UlpX8YA1Qu!P{UTXjg4Kly>x(Q zlpAjB^3X=db~__I?Z+{D<8<`JnanAug}>InQ^^mn75}-EUvP2e7d&R{vx@(!R(`>* zkXK4K)n}%13*!6VH`HM-YAmvsX4*%bXrI*Z@8zfs<@`1N9*Da39>^Ey?>&&80{*cd zp3;EbCpnM}mjBp~CHp){b1%gF7Pa_ytJ&XCkw3+sr!sC0ce0N|^6_-$QDEOtw1>i* zgByPV`=>Z~TXo%D`GDZ9!#^L$jOZQgNmCPy`XHn5Pt^@NX7;)^zZ9gF|F}1>IW@+| zZG1x(UOo(rzX;nXC4cFS2{n9gjMwnJ?Uejlej5gkg;E zF#fwS1JlbR|6TFt4G~OpEx`1~8HQ=MV7jUbriJBPW6x~~ySF&_$*OzhZs3g#s+ugS z$D&#+qd(uADcqPHFD}O}#I`i>#-5DBTYkpU&9uq8KCHA)ymWI2?>iIVePPuJfmoXXsqdiFH40p+CF!gP~+jxDOQG>U$UMfJZ zy&m40x&p%8I2^Ir<*S?typ3|lz}Z)7z%P&Qea zsjmes>?vzCd&*v8Pg$$>l!fc9`WnJh?Vl1~44Ult9nT-LYZdvpeL6Ed3A?w{?a@ec z7ysungWeiD|MVEL@V$Az8Sx_d*n=Q9#P^VVO#geDJYPQTz^ib1Zpg}%6^1qo&G_fj zziGx=XwHrwPiWunhnc>8jawh}Q=}hky&=J1s{Z2pVH|(8IP3A(yOb-3|Et`Packmg zBdCvIlV8et^LGj_n0t3+?zb>^H#XtS@K#+rY&l94%>o<1W>`ho=^(DX(Yu zBd?15j_84UG}sn@*pH2|7J6uc9v*=n6t8jgAUWvhA=;Y=U0B#!KI`M_-?5G_2D2U? zWe?;idmtZOzwXqwpc#B^G5ER%d~K=1*K`%W7SKbYe!%}Yz9#x=wgvgpQ^0Arhqv3Z zTjg3$`wX;OW-B z@C9VsLyUV9zErn{1}|9ab@k#!3pl}ggBQbJy`9hOyoSnWdvSL|HGX_`CHGq^_xoe_ zBmAKq;g6oboPCPvt(oD2As*cf4lTb>@W{sfE*L!eY6EAk3kOn}h(|emqL$QAWWZ>8 zAoKenUWp$%{;|r)yvh7yD*QQ{yhC_e=wzLjUMOpQVeyRk`hJ-;b@DB5V&xV8gW^2Y zSTr?+%jhvhd@+-9CD3mrcRN(?>IU&>WCF6^mxoR!75M1=hT_pDNp$ozOknJpe6g;@t><{aIsKj@5K9J5kkMQ7Z z*m3ZPdd?Z@z}Hm5238#_!8VJ2XngPJ@opcV$#I(3RGs65Ua#?sezf#y^82dzR#3(ph@OC;!0ax_t6+xoF})bLx?cEuma&$@_8O3BHbaz#SD)#wQ1fdT~{QhFjC%9npVMN0hc|MHE&sd2JN}w{ zUgX=9@l_2&Gb4AAe?!bxIRX1)z8K}Pl*r|gf8N&_itsb#>KHw0c|z_2vBPRT%ASkp z#|KoqXLhRf@lTSw@JVtPj<5f{Q*Q^ei3QIwvEY`bVEY`!f|W-kzgl=+QxU(Y+Rjds zyHHoY8?d!)hdLl|QQPuQ`Eh1{+|OBEFR~GRxLCg_IT8zmXP)msc@hh9T+3ztsi!OQ zZnWRzZ01Wiets$bNIr~5578Q5pg9YX{T#-ZoxgVG@)Ks|Yv(7Bw^CPrg7OlSpJ4M= zF6AdQymVgkT;4~1!lnGCe;oNu(vQZ>{#MVQALcKV(O-s_qjMnlN74@qG;d=f@ zwieYV@)hyNu^X@Xw}*;4HnvhgU#i~V}e8{+#%wymfd zkCh=SPVGDpZRn0@UiKz%y#4Tl@k)p;y*dVP21GV$|+C!L=&*j<(Xps~2z;ClOXbB*tJGyZ`X|BUm; zkPaeRVP9Vr?G)f=K0IWrh;Qx+`DPh@It-7~xeYuQ@lRb>O&8r;JO_Tt8Dpxm*9h;O zeqPn`#OI$E8h>hy;Zvbg_+P!I<<8ppKP^7Ra5;`o%VPTn;(OzD&Z6OCgDb1>3_Laa zS%nV;*2?ilts%ags(Oh!ud?bs`RgWj#C1K-C&C{iUs-2g#=?6)ZqE55HYMJxcl5vH ztm={pPlO+m!>T*hpqgWK)mF7R*$)4|0p$%kYRL98ChT}bPnNx($C-Dd2A2=292ZwuHGyFk#2A?wZR;R=> zs{_=93!%>8>Q1WWN78!zFt%QGwOuDJ?2fhVaKXoe0iJQ|f5_AZsqA+v_`W^-b8fA) zk0xooukzNa&0BlbHjwO}v{t~JwKcqA4RU|Y6!wzVRQ6Kamm2coEj(XE4}R{Vi6fA= zAiY@oXzGF~W2~Yt$qVKXr`<$RB_N zw>x^BYR#mp8Tkutm!YYMzWCqpcCH!v5>FRAL!LhM8lDD?)kz1^@mPt|5(bD-{eikuwq8rT{ z5Aa;f;cWQ-?EZ>My-3kmoPW#acKVcL@2((sBy|OKp1b&--}qn^%{6cOmY(s~Nj^u% z=iAewZ+JcVpymuQbfjcpn+7kFkT~7wrxC*mSn5Th{{~K0apnX=VQ6 zA!<)N#*NwarTR8~*w^Au{+!R&c8eK=UKqFD)s^S5{dN$4SXy1fnQIv_iXK1@nW8ux1DDie}nuWP0_d2|18h)*VD+E z*xY_lLmr>ac)t8))}Q0)*T!}xmQK7uc<1U}Il65p*S1JJMENad?wpHU9CT-5+PI6a z_hLhV50#o&aet1L*A;wHoBHe|RxiJ{qm3EKah9LK*JnbVWRgCE{$lrJk!LKu276rg z|54ex$acR*op0+;TH|Xy{Jl0el;rPz%$)Z#dH&h+Fn_^aeySD3yIr2O=BxP&4uZi> z*8g|`Ddf`hF0ZUn$h)^jpxM!rSGdYh2|z7pz_FdW~rGQHRdXFv$A^9 zdd6t>ut&4e{5WUky?GUW#KTWEIw!pKA=X&;he_eSmk==57wQ?rGKUTj!^d;~Zlbn+s7e8AT!!LI}ERQ_1 z|18zWDczYHN{4kJBvUIetAR(cdHe`Cy78Y)et+Vit+#4xBK&GpL7aSdq>~wF0x?QR%5$s9)F2 z=T<(m_^jkpyXITzsoS{UqFBDMlZ&0zHQ`F+ft8R$rk!~yp5^&@4JP()dDQAt`_r7g zPhw1GcuFWJnKV3pIucJrt-L zTHFWS9Ynu*Js67DOD=#DvRO@CxqY5*o!@?(=rQ1`b?p6MvhViyJ=s)T$r|0v=b+af zzy0>^3ESIA4W}d-oAuf&kSAUg-oEa&$8YCP&a(f1HemQ|Pr)ik{sU1=q{B01xu;QujnjWPH|p__HM!SV--50(yndHOTf;K|fw zkN=RpWj|zZ*?k*+|J3iNKEU3xd1i0f6YMRUr@dvX8M}$Q%r^eF;%bYd`dSgEW|4R$l7q z+R8&3?B-f-C>~GB$Mgf?pFR#>WP>xV?d}%6&q0foBHeMkn#HK<#h8) zIru?JH5=fu?PgCw2-8si)OI#WAc}(y0^8;4J;_*rI83^n9pNsR*Y<^6| zo=h6gg>-)Bh8RBh`l62$1Hf5&o-g}*L%&cf>sW#(*UX;+ZwwxQqm%Fe9IYD*DrdD&B{f*sx*b^CkTV50Sq?k{_JYxK&%04mrNJW2A zU;6lC?||P(-|a;=>R_CLjh^xKpu~P-@GE;dNn{_LZvP?dW~%>xX!7G?X2dIBh zSe_edC$=*!ABxG@5#Z$b&xShq&o26EheuD_PmJFs<+EDfWa=3MwpzxQTdEgX>-@61=ii>Kt8c&Gr1`Hh`dLL@YTm|Hk8-Z9 zyepuCNdJ-^rhQs*`1G-E(lI!ng?$rzlXn@)sG(kBy#;g;r#I+#dpa1GzHDNM2&K}cpYnU?rQ7C=-tmJIGg@h6Mr-MdIcYh zUjpBW@$cL)g@5OU(7%IE!TEOz3%Dk~5B^5MSTL*=XEx`kKr;pWg?e^Bc50E|k^iGc z>|j2&P6~AHpmvY!p2+{<{0`8LPbk23DzZ&6iA9Vt&2yd2f!X(`e*4nqy_p|N2(M@?_!FI+ReZpVg*7x|sVf)m)2H^Q zdwx6?v^>5HKj||3q~Bk^;nbm^b+9LuI=&y>Yn1btX5%Lv0x1K!bZ&XI(jE7brYq`3>;*ivDmG}TuW*>zI-vRh<37$MHCC+9avKduXZ8G9A}GNvT{ zP!Im@y@bEtR(!Jxo|pK+srQ;MOn$H|Zokyv2fgGz`MORcdZhH6-}3muH3|G6u8V~{ zK|be-90Na)c}C|E->sJ~xbe6>AZNlObl&{A<`KK-)9DL`O#WcSerzBYw}hPUzz>A2 zf(=t$Z{GM$pf9737&+aB-fMGt3gTnvx-KSD1!H_Cf-&|+rM?9ICBu`^+oa=G=@IZi z^lxJaiAPJ%6P)XXv2uTl4|sm5D|6-?>F>t)H7hVAKzv4X3|B4G>{vSGz^Z(Gy%zsk+10D|Fo)nWkp!f%TxP7tn zW!rqTxIJv-0&xlQ`zyJ0#IlRnr%CbHy5j+honLV3ey8Ji%S=3=5)YZAA1pAw7vrCl zyqf8~M17$h9Llyx2l3-9ZVqpTvWoSH?9pY$|6hCjjJf96r`?bGW8s>M<#d48y5EgIv6DQ^c65?1K7M<3^+Oxdll*@4 zziF4TFQOm8pc8+k`pMGAB6Oq@`5BAQJNl-?BdhDXb@b1F9gEe|(%j`+Ye)qj3x8`a z&q&{L{|lB**R|Is|L^9nc!Az`&r6q#ehdD)1M+gS-%?Ck&-uO|H(u2rl8=u2(Vx>- zml=Jvg8!=3F)@+OTvyV8&HBGfw6FL17@T$VplfDa z+frWcY*+q}r;jg-#rx$)FEj+Nl=|VJz$~OU8^aVlxnG25hu2MiRe8_w?2>~6y1DS% zj@9}rT>Qnq=GGx8zGwFvO@@Cj`)|7Vq|?DCv<6y>q;=Szunxyq2h~wg4p||Dzs*Cn zHIxhCI%uzrgMZOm3;p)t@Bgl6Erg@xgPyIhtt&4YFCWZi;`V~wk6Ou(E8dtL-$krz z_<`Ke+9q%?2yQG9YZZ?5fMbs$Z{%nHP56o6G7KKoS}R>QXHu|E!WCmrF*cJMNI!}l z)p}R(8xGf5d_=M8B5PkZerLN+$->3fm2vAXIQ!SjA?}*7RMk?-W|GePIuwgXEAF_T zb3Y2`0Gfks+v1wmPS+egD1M?ja?RlFt_JF3mxJw!QxAu+6g^*z`HRiin5)CnLUVS! zR(-yFY<%ZrY_Yry)pxAGyX__MHpkCweotEzJNzy%Xvn5AvcH!%2KVnGUelFgAM|^BA$5J<09O-~hJ9wsU3dXe`>vW#C>(g~gV=4esXer~vwb-4@`1Rl}mhno)_;3Vf zcNf$D;#(>7SN60mEH?jd=C_kG4&LUuIp_$ifu8G21ABhE=fFqv=hp9#;n$V@EQ;MJ zC*#T>mkAoP)VW~)vbTq@IH>)ux^H4;#LM9s#M{fnvih<{zp*@={VR0zjNp{v26Cr%%SlI)R-ef*c`_x$mn=zJz)lUL3IpbkGgwAt`b zO9Qj=L1Pzul=F?l{r81!xANQW<0}rXfJXGZN7F0esl?g)avnXDL!P=)JauJWxhI?F zHso_36;EAZ_7RFT^4VVOw9i_eYHRjOKKimTzJKCGcbE@kY?K9&OfTH0`ONX=GdrJZ zksN5{TVrRBYGXI^Y3B1uKI9B-Tg4~E=XO2~d{i^Z>QA-?vfA_JyN>zZ$9w}bZYx7v z4$V5vcXfW4`#_`fq3284|;@Sk!TTe?^@i2?-#H zR$`cO20Mj-s5eThR!3|*!yDm7v0VPOowif%BM(AA%`ML4wrKv}wa?l2o?LDcz+j;x zpU>gsp0m&1Yp>T{d+oLMo?+4WVQBny(eXm#+$4={ez15tJ&m3FE&TDxr1g`=vGhmcSw9|+|8V26!awuP z)O>Llb9&Pwxr>(1PJAQyBW<6Hoe!QeHXd_~6^t>-`Nlb}e|4Jr#U}v>YsH_M=jk8r zw{5uf{OIHQ#6R=Li@*J8_{HLPd}vO7AK5?O^u_P~H1%tIDmj85SwHAkmX5=dnjfd& zEB#^uHRZ0NVQ`nu1wc|zVmzE^co!f zG}!$=*YN)F);~D%XUU6Wy#k-Jp7W?NA;q^W@k@DzmKS@^m6WmVT*^zI^c-1P*h?P` zpfmc?M;{%34-Wl4I(P?1fAmSeL9(CDwf^`2FCVYYHU0j0>mM9>|Kr8a;OLjt{mAFp z%x}*1_-N5HX|MKYt6F}k^fqc=<5}wZv*f>O`&#d-t9@u;)=i^V;v>y-`e)SN>`}-* zC%jw!uz~$7d&#MN04-lIF)Ly#Sn%0#6Dc-9U+d5R+xvg6`D^+q@iO9T7ayuUXRVVp zGqfgcRe56r$CiC+F^)vPLhlf=E(}3`u zq5t4xd2y_#=rzKRQeINxkSOroB}VmZ$NLLOzC?dtXz-rz_TGT{AANl$`hS0# z@hPo;`YgxS0mqj=@c4J3^?ynVy|f+LAI+WTcVB4oI3WL=seN*W>l+c)H+0>?eT+dJZsz1qiabi6k>op$R&Ua(mORR>TdphiV;=c2U*R%M?j@?d~dph@* zJ8gM6%k`|j>pwsJ8|NC{bIm^%{QukiCzmH<=~O<^M-h)OIP=TC`EPLQpYkEc8-L38 z)*e5W@8oROr%$`TXQ_Wy_XF?Q_&*1|{~ynvKGgiFBMp7~ia#nIs>j9jKBZ2_n6Kj- zE;Re2E1o9 z-yQ7w{3-nXVaK<@hHp`t`Ht3i?lnGtw1G3H8cMh%rpu1MJk2>zy8Vy`8~(wr?_Bfi ze#H;}+wJL(`~QA5Ik)-7!Q`6Tsj-vRIF;U?aG|b8UugEvg#_;(<@)Z&^O+AdpSj@e z*E3wN@DH-Rb-v^8e24Es(w`UNdgQsbR|ng^9_;!$(#X5pz&}g8x@(NYtXq5HN6Eb^ z8z5#qoxf(V;hmmlzSW-%c)qVM?f-Z_(<>jUKU)4V+Vca-#~J#c&iC=mpGM#4HTLr% zUhiCw2mX(EJ$XR>Iz#(#uoTV1F9^O7)4`eAcgDvrqp(pY;#U`gz~*Ul{cd zHh-LJd0do2Pwl(azS{oQI?i(aq+h-}W&K3K_rKTQciz+IJom3$X!5xKV}9?oe}~dX zj@;ov*GFe)U!H4y{4xD|@85F1(LcRDPR2qFI)Acvcz<=Kj+f`0KQ9PGwuR#phs;AA?=rh2|eUjsBkzzn?~ZXJl^emP5#JW!#DjSUhloo^ym3bzrlv@LX)q-mWT7b zzWr(R$zZO(4K_awHa`3A|An!B_lJW&=|lW5>$4w?e)!m4*YWpGd%?D^KlWdJg!|JC zy8gN#{M#3fy*?#nJk)cG{?;^{`-v<{WBdY-O%PI>`$uDC+jbhFkv)W0Y1CuVl ztRqc)QnEdd-@T@oTsAk?wSIGh)o!$*l;5)Fg`MBVo)^9=X#XnRe)@ec(w$E`Jxzc6 ziwXR&@trxUz25v}t(mYVdtOTXEBVUh1LVCQwR389KJAC4|3{6F)qU*8XxVTM8|G2j zuio01QO=(oFX!NW1p6|+m4e@MO+SB%{5r?GvzZ?cc6}Xb;8V16#0)4niQPV%eESc} zzd7oxo>R|Pbm|nPOHy^%qjJ8TbHU#~;|uEdrr=0a%E%JT_rY$b#8VG>#>#C8&zYp9aYk;&-rzp z>*qYr;-jYD$NZk&wmy^n>XK&-%XyK-T-G_U5zaF4LI2_e{nN+nIO(6G_$%q3kaO?* zs$ZRzlGt}Lech?{Y&!lzUJ857M}~54dFp-_1I$JKQ24Us@$~R@HuUiKGaj6c{dlh7 zO-EnhAL|@fIpea#Z}^gD8LRmh{8>D}8C8AJw-5bM$fiVRb>3Ufneu;PK6iTjzev$D zdER?yggTFCZFq$9+@a)o>`pzME??kW)6=RynLi-sjrB)Qb>3J)-=x=VPJOdl;rr6$ z{(hX_kgOluTb=tW=ikctxNX=3#tYd5Qj|_j5V>H$~y|+{xpjKI(T36@QJjM~(;m zZ8An%=L}l5rqbgHSxhhY>HLL*tq%uVKBo8K&q~Z0&!h82)Oj4|x&M8-;;*E32K^fJat1XYqzIK`FtkVA08v3Vivb}-ML;bM+{=wESQyF|M1O4Z z@o|5cGn~igL7eaM`p3pUgKggow*F2FpJVOyOzpV=;XA{4^!;kQP1;w3ZO@+X@^GQs zGZud({f*=D+&|No*q0W6S^h@tYaA$kNNoCE{(zDAx3K9?@dpgx(@p0O7?6Me!1lt& z@O`*^o^<1jn!}>=oNGX*tp5zaOMT4`E&flLFP}&H^<(%__~{JCr;qV>4)Di*4>}fe z(Cv@&Y(EZ*f0Ep()&a}LI%roka{jz9`T0+=*v# zFK7J8`!b$cw6WHg6L8w=ntZ4JX?Ug#llnML=fq9Mqouz1GQ-tbOh4tU;_w%eFoud)1G4w` z-C!8kNZAl;cHuAh;=>JNjM$m9lfcIg*QxlBZ^8~AXQj({IRTStTrF_wIvU-TLHRB1 zhWXBZC+}@L_J(eunT0RwZ|qcbnc3u{PaF9@%C{|in*m&#!9|;U*^BM8e}pn2_)pWy zQMZD>99qgVC#>?@`AuZRvKMvz`uo)Kf)iQCj2>qJh0$3tq!qsn0a772asO1=!98Z!d$l1io?vU&;BZ;F~%VJQ#NW!;9%; zvMAf=8j5Z#&oEwUB<487@GWh7U%~1gDovxsgU!u~qI>sbl45e-M*;!qgLT`(Cu=x^SeF9YdWwr_NVbKKF3&`sco{ z%2vtuBdPbh=H1e!^E>^$g->g(b$kZA4Ij7k!N*S82#y6Wn*UyK;BPf;eJ~-=Pi3`VX9Sx73Ze3E3)OSi)BedD{SW z-sXE%cvSdEcuIKP$xE)Q#6C5jm#YV%^Y-V@A z!ua%3E8lPC_h!Sak6^FNL0&4bn?pDG;zN}-)2|Z4JZKoMIwk+KAEHc{@)7Eyo-xkf-aMmz-WPpwk=b#Esq{%J_GA=&soQK7 zy`gYn;{h8>=>hfJ-L!e=_FqoSGY($2aAJ299oWL<{KnGzGrDb^jg2LEyGcfX<^*&^uV>_4O+dzbJtHo00y5g`8F8o+kg;CRh{K$KjP!bj zA8kTj@>vFX23A8L7<9kf^!}UcY?!HQ7!)fDL zIM8_EzIKP_^l{f0y;nJG3=>-JV4O35)evmV+ZqdR_+_l>&9)deWjws`iJ&?BshD?C zb8JWWgP73FJHIMuc5jP$H|~s?xyNJBCLTUfAM~z&E>?A7f2{cM|HRCpM*I`-fB5z9 z2ED~wVvRrjSuA`9&#AL`$@hXg9(g)e{Pb^PVgCtLXZV)d;0|w7tZLL7vBt9BsyfU6 z^od~kyPIO(P5&7)AM8|hj(afEf2Q_`;4Cy+*%I7+Y3G1WdqnV24sVBY|L=>^R>=K; zx>Jw(7ebz#FlhU1wVE#`$920?Dgo#8*`1> zqR*s!20Y$I{jZ^~j<~a$Yfe5?`=sHin`2~k-thdYb?uiL@gl?1SqYD|P8D7e-pW#X zDs&CH2fY~)ogunvsxK~ewO@)ZqRkp3tIh*|Nt_Z3D~ zbBo*E+;Xy})(bq>^4kr4<$Vh}M(V6XzlSFo@fP$%6#ie{a{pryY*VSb1v{Z+kk`y}9|&fUBd7zBQ)ceiQ0Br-2`*F3*+T@kWn0JqdHauu<2bM!YY z)G7TF{VDdM*oc-MvE$q*AEsV`XIwwJ@L`8+2*HKEUAs(WFLtOo(Wr#I7+MB>SAnx? z`dnxA^*!<+Pb~ArpD>J(@4xdG{`V^k#t3YE&PWXL+?eKzhZX>*&X<%qD>^u|O5*iA z{!o5tVVT>wx^ymo3nr`+h57JXV_y?=mF!^O2(?h?`8aEoJ#zz<~L(h z;`b_kGd?AL*YTUNDe?PJelsp5emC$NU9|!KLM3BU;`!s)ZmVv9mu`fohH%g2-urio zouI~LZ=Ze{%NB8g8|k-_9ppMOr$nwB95ht&QtDFjGJTXW`$Vbd;J^N^$iLoY)W84x zBEQH%xWS0aoHLz_c)(!>c*_J=S>PudoaBIqA@n_$evW|uE3muXLm$2T!Lo*zUH3m$ zV+^g^Yz(X0YYeYzH%8ZGn9^?C6Ykum_b876GX^;THUroUU^9Tt05${I z3}7Sv>i5h1J*A#{k*m+%cgNN(IotpGZTk7f(kr$;oPjPYHo9)=>6sk?UytM%2d#JC z-ui><9vS`o&5w*8;TjP*KIP`XqknE3d~@lYTi?Cx(a~MgA02&_Yh+-=@LK|FE;A1P zbm?7Nx6rra=CHa)i>-27=x?G8)9jl1e$VV?+W6$B9vXe|XCE5<->y#vE}m!I-*V;F zU2Nvme%+j0d$IfCz+0}1>o|OT&Hq53?)(4G*0)@j)O7>%rylq}Td#J1vhH89Yeuj8 zV$JBka(^nY?(6p5$f&I|GHd_Zof~+T`~Bvp1BLES*S(x+)c?|zRri+bQ+4g&vJ)J( zf!CwpvlSe7fZG=LC-D(}x@nus?8^Op&+JElvoGE7ZQkkeHHY!V>5qaJE#E-avV^}O zn(OPOt1LdZ{5qOn`#Mi1)&C&&uJ}Oa;sb0EdmszFnv1>{f1_Cj)kXUZxvSs%c~k=jXQS4!e%5E#$VaEczv+^ zXa61xe`#;5{O%88;{U0dR22-@Y>hR(b|7Xx#WTj>^3pZI^1r~YTCzRn-Ov`3K7|*p z4TjfYzYY0KtbAu{OvY@H=@ZpvT6yddJ&eNJ z|MqrY&fmJflJmDx#$WTotUWy2U6$4B`Tm+0XSMOXwanA&c}L9;XRYG-%Cd}J&sW#H zr0RaUEVI{hf6dE%)c6K?{#W~`|3`h)|KmRD|H&*TUZfxXnt$*0Y=6yv z^!nXVv#r-}(dS0Z##!E)O|wdW+w-#Vj4@N&*joMv`~le4>#>g`+iTWs z#OKU9SZ61;^*HQBnRm7@ue{D<99)1sBz)du7@cmOw_`)D;Mq3H;p4|I?7okgZI16F$fW3uC_1AJoe{BhMhJV{sh5PeoxfpZ+vjQ7 zQ_guY@75;XvqmDnQ{SucS=L3E=S!|Y+j_VEh~Ub7xh1c*y(u{aZR<;U=Zin>kRdHU zvW^mEzO;-nb20eJ%R4;tTCSS0$i`UjlD%WcFKHi}zr>TbekSzml5$7!CFkRF*=0<= zI&Z__nI&>jzJl_u4eMv_GV-pTdex3+Zl1Q|nJs2+;D9+aFl<`YGnz>K= zFwck97~PwUkyn5ATHn@LTnEfyGlpMlY~5sJUwvhP@4j2PM!H7K7+GN4w+Y?+dBazD z8`nLqQ8Vzf7HZxBKMDVNU;b*bdlGsAd^&Zx#+h?|D07Qkw=qWi?e59UIlhbyc&jg- z$y$Hb6~1`3&lk^`?TZiLoCoZc__xdUIZ8pWDB`A^R&Wwb{^QB&ZyTjWFu|^6ts5>_9ei`Deb`UYq@u-GS^&jQGAS z$7-{_`dT21IoN{z9kuPxy&lNA(TG27Tp4J&b$4yezWo7D8S`Io#yl{v>cs8_!Bw{D z4&>atuOSzlEH*O(cMNN87zSRp0LS<1-)NA&zXL2?FTB~%{`@<&?Q7l$WKA~Wliq8o zZGZmFK$g#lue$k2ZOe(>0ngWs`0inywKX&M1w8m53LZO-4c{E_6wod-QtfV~U1+7+ zeV=xrk!rVtcAg{Fw>+8*<^T+rjfqb9Xi@p3qUd zIA?Dl_sd3n^V~@7=7Rl!jM?<}n=Q4GxjO?cd_Gz6Xl=_kfhW(1U!T)fyQ_Owz&*`~ zXVTv+Xq-*^IpBNO=6Jb`cT18-kBiX3DGKIbv& zhu^=Xd!K2^z(ZecLk0qYZ20h*EuFQQU!@NCp>1EZcJFh|flTPqW_~`f_trq|u6-7c z+~B3c7!jC%VpoIcjCN%6$jsLoL}$#P{hNjb8ivyMhk@ad`qvwV7x>}_fbrl92O9Q1 z|90)(HLnLU;l<4NXyf?|;RyG~F)wAnQ5Xl=#J*8* zh9;`rt+WeGRJ$i>7u>6MJ7^c&t9JjDcHu?UZumgMmX4#fTi$;yFbtmf?DvkUj?2J@E`;8-v^$pzymLeo>cALMZ55WYWEkk3*A+_duSJ4RPB0c z7rLr;|M5UW_TACi?0-BE$VTQD{%3ow`)=w)_BQRIkH4Ug$Uy#h`na1u!i&4szFk|9 z_j^%)b;JFg;JfmP|LoR$JyihlHH!=`G2KEGU zk-fchTWWU}!1u^N=HEnXch80IuQK8jHz=N*2E~mA2bN6e33}n7v8SugH(0Leq zDf+&K_JseL!v+Kg72HJ+RT#qp!{C8U=tt2H>JB}G7v3<31%^+v?pr7)_)^ad)?wg# zrwlBBr$z7NAa9G{_Y!!`&-hSsa#vs%zlHYK0>fU#|8E4c`F;lYxaq5bhKGSg#)8d8 zR^SKw_B1U1%8}Z|!1MWR83*p}p6bdCe0UHp}Ofn4~olX2i%Uxhc|hl+iz zwH1s5LYI8=bAgIm_tjSH+Y@kuBa0Vv0`rgoOCM(jhR8SoZItZEI6%L*09$e#$Wr6L zX2yZdi~||);&sTtX2t>LWKZxsBry)4Yh)aN7gc{{9Du&6UB-bK$iNK7fg#9zE#p9`$N;jpi*cZW zaln!R`p7sSyts*Rpn`Eg^syy-w2KU6BLhnJccc5^zwyv{diKtSA@G^-KyAV9hFo}T z0sZZq`x-LPf(+~o^u-f@Ge0rz>it{KcXO1#D;ZCF zf_ZE@f9W{d8Ta>Gb9H=U`aN$__m5hw_G3uKC%NXb&XDKsDk1jDz3}#Fp0d(Hv3=YN z$4_$sa|v^3c^_deC^1JSWxS!KL6i3~=ah@ysJ()UfF(kF)_CBu=2Ioz(q~zlF+XMb zk)40bw`#7e=cxE_Quh~~Lc6K!(bArCzSfuT%{hOw{L^;)4{L89jJP=Ae+%Dc#B=`M z7x(8FFNbcS4`0Kk2IfrV6Ub?5`5N;r_i+3KxvV7(ZQ7Y>yp#iOioEWwXR?ghL%?B? zIixd+{~^M9gv1p@uQB4e^m(2+q`82r!=2GQ{r%OohLKYz@eS?Ne6u}8`gDjciHsho$^~qY^ti?v7Rr#6^(7bgq~MRJesV1J>l>_X#V#P5!xi#JV`{!y7i&Zkk0YPY-K^ zJ**M-utwOE>DTY}L8q2i=nM5me?`B3j@`x@bn7-tPD0eL)=rgA&{{K&{0jcs=2(k8 z1fPgr;2wPieuV#P3@a8eLOtOhgQs28|8v2M+ggjIoZ_Qh)b(R{i2AHGqfE7CDQjO!wyMrTw$iPy%KkP}R6KN&zBWy5-y`eiwp`2Jg!zmG%SIY^KZ86h^B8xF zZ@+^0p8Pu+W5fZxdJ%Y#_vPSKJ)dbkm-wn>mpIA~wVn&!mOW_PEpfc6{1w*o&}eLR zWQjRrAuB8Ons-Ic<|0=W$i2jHc)sW^bWd{^hJjJmWOXc*b1VRFR$p@a@so;w)-mS1 ziX3SDvuO0G`e)9U-Cg04jDP4MrH?kr`i8Z>UL>)~#7vQ!VZ}btSBZTJORO2XNygLl z;Gzs1Nm+@Xkh{FAVx3#XOMwUZW(VJ>^57^0j-;IUrRDBr%u;1%rj!N$5*Okuy90T$ z;;^i;#r$>)Eumo;`bW{1bBT=>{YCs%XB9G24&G&)*#Hb0{{o|wz5R=&g&xYzF+81j zpx-K{l@_|xSnqBkzVD?u9{K|e8u!Ax;jB~R#GO8Ci)NPYa$zs@UhA=*pKX24@4TlK zH+5=zYW2$R){=(iE)s65^ydDv~O)cfP1+t3A0Y@sdY zd1KnJKcX@Qrnb#k-FA)G9mH_bMwoJuFBs&=Fh?O)wFLXjC$MNZkf&D4Oa6@-N9do} zc%m0V_TLey3!KR~Zplf~4pV)BzP2o3mt{2R7!ILhUp#e(W2~nRE56C*ublC{`KxUK zbX#o1k5sq|TjtPj2fxXuT-LfUeGM=0F(=@@nEPGaD@qH^GITUFlsI;;;i?;dBm4v zy!(v!BH{Dj!sp}61fO?6!*LVf=}!@}3QuD4Vedov8gqGMv)1zDXVRKEC(O0;G+@wmVVBspYtV$#O51txmNzpa~tuMz%`LR zSJG#Zl?bvDg)e%+L;X^p&_U$Vf&u$P$%th)I$;pKUkwaVXgCj=JcS-}!(Imt>fpr0}E&$ec2dwh%^wKzV z&W-4tozRCE@#c(^D{9++MLr0!IfpiL&^c}BoE6Y#74!k7y1kUGq;9dnWv<#zKb768 zbc+@5sPUm~?RNSoG3YWMQ}K`JhE~37OW-HVit$cI8}Kryw4uIJXoEh{u!eyl3V)Q_ z{Bb+95nL0e^6K0^_+l>jC;-=G;JSkGTX@EbE4O0!C5BS*5qGDavBqL+KB{$#^H~U9 z*Uz0gC$a9FZx$x(tJHPp{Nlneap&6Jnx1C9AvUR=b13-6`RFTqf98V^XmloX4rlz0 z*uRUgUp^R-jMtS|-6-<7gL&nXT(pjx*velYkG17f?)mQqGnf1%Hs8H7wsQKrv9?J@{HaS; z2lxKhPht}re-oSdm7}pX^w{;aYl9OX`B5zMmj_~*-{xE4e~I}a-p8`Dt-LtNhfwrD zri30s`!MBt#RV~zX&=HVaY1e=YsZV8Rb0@G-IhPe87pr+)A;?qjZ=}0GGe%_d+*o) z`Y>R8z}e=rbzCg;bNJW9Zmu-Cj^Wpsa~E?3awCghS{6V!J@=y7;J!W2l zuX6Td!5x40Vyy9Jzm64;kHpNe#FSx+2+ZZod8%5!7c5_~Emrj>yJOz#TdY|Ae||Vv zmGf$>{6urC@hEZo9_snbKLyK=Zi$r-`+2PV?GD_r$_)(NAFge+1U;7G8BOL*uiDV&(V7tz3o;;PuU?V#O2o#ENeNU%;yK z8;YkAA2$^kfYm#xF1RE7A2IWZ|B8h-g9p}Abk0Ng_1&@ZHogT`@5bdpGj~fYeCz&L z)mzXGSalvmMtH#V{!6gx-v5Y& zU;lN?TTDKMLEK*Z+F0-$2Lcv&mcvf%UJ~ z1b6)8t z#u7Of;C0-CL;aR6vwXN(FNU+Md9QOWCptlm1B^9V4ke!GOKJ35s=iP4KP=b&2W()K z@5yiRH%S{7JXUT@s^2(mzNg!Yw_Nl&k;yR$ovLEk7cj=$iQfC}iov&MUen#qq-vbFj1+dFbqQ+Ub6THhSQb!x6E z_K>XqSatW4tIGUNU{<-RUrWk=lyBQ^V@zPqoX>p4B>yy#s|pNrX}8tAw0Ev5^D-+} z)m0y%t~tny@^@hWt6Wv;3{$807o5Hn?eCZMDJ3)16QbQ#%10<~<*K?4`V7OG$IyO= zGGWR`sEhf~7|G#Pb9H`uk*|69TgSn-V~V>ue9i;*MY|SW?FfzmpJlT=MsZbCUWGo)jwQb ztL6{xYpc#6m-uYI)AP54O=Hhx7h%`v`C13~ajs80+X{^aZ}?1P4k`Mj&T0g?e&{)itMUFLLZwlSlqg(sT zH|4$Zx5)U!xF@i*Un+4wedU`jwew9~r{!FhKkZwIR^d`FaSLpVigTF%-Po1c6rO)4a#fZPhyAyBrk(0`E z;kgjyLX=bdnc}Mnt;%4Xp7qnmv&b39_J{b!v=M>0y%ICI?_IEK}Qa18q=?}hlu@5WkyrW${we}kMaqsm~ombx< zepB;vbpGr{*X2^o(S^cof$~T%-LSyM9wKXuPygM zJLmL4E9Z2(Y2}>yhy(IrW8kk8+Z7wTb0K3u=xJh#B=7X1KJrd!^OU^Pr+x7i$k#m9 z!X+2Br)MbFFs|W#@=xQ2J%)tl;0MM=PW-Omcedj<^PWm<)5QD5{Kl?K{ANx>{%P{} zJ^Y5|;}|DpEFc#(`R-ocVV5PoeE^!Tx(S|{3D4XN&&(nRbtJz>@%tivkLGv(@721v z+oRUSwJz1Z#?(2dtbGXIy1=8{6+cWuM)cb5Bwu{FJqK0vFU_|0|G}?uqIAfq@dme< z{pF{|$xn@Ef=lvKF=zg1qUT{n3|gIU&C8}wlDD3Q(XP$ zqjo#;QM*+>>O;F53h&t+C|tigux>E&P)pdmfEXOfVeU&u-(&L*yp^ygbCkb2xj&k` z;;Ii{kol-?EB=PHmJ`((r^tghH81r`_=-~VQj72x{?k7P&0jwgE57TESn;17Q+cW8 zMeBm$7dPU++Z(I;%}JG)8XmJEXzupM8vpc{v0_(D<)xPARt3HPuRj+4!OmFKedMnq zzdJs^B3S%S_#6YfW5qX-`^ucG{Pmh(fFv5D3=$UVF(#jh>Tuw}(3 zCG#CJkz>tt%Db7+i>RVv39(MvA2G% zQ5h$$ccyXKGqb#x`Dc|})-7`DA3QvB#mZx|uJ^f@Z1!a=ndEaVsix@&@I1QvQ+E^A4Cbky);qiUaE?zh~v! zvnEnb$}jMlOKK>8UCHPrZ&Q9Z<-bq)vYM7zb8But@C4;sSH3eVlX6o22A{FSOZj;v zLzj$LzWu-s%D+kZ(wgwB;+nY!zDxOxRqxK4PdO>SihdZBUr{`4$yJo!PWg8!zq}?i ztFos2z`s&{!m6%Q`n$P!_>!+sUiv%A(ckY;{<>AMQ~JB7c*K&wqrCL@PbjbZyPop% zR{i#r{YWz!o1^>Fg8vm*E)%X|s3jTF}HU3lStMM=W75wY|YW%0t zSL0v$EBM#_)%Z{4XN`a9ui#(zSK~jGpEdrazk+|=Uyc9N{%ZV7e+B=#zZ(Ck{nhxF z{tEtee>MJ7`>XLU{T2M{{%ZWE_E+Oy`YZU?{nhwS?XSka^jGk&`>XMv+Fy-->962l z_gCXTwZ9tw(qF;9?ytswYJWBUrN4rI-CvFW)c$JxOMeCby1yF#sr}XXm;MU=b$>Pf zQ~Rs&FZ~t#>;7u|r}kIlU-~Qf*ZtM_PwlV9zw}q|uluX^zUh8xJg4?c`lI`zahuu~>4Sz}ba^W50<(r!ba#KS zimvVtPSMT%!I-@wG;7L=@T?gtBC{5+h|Vf8Tn8h&dtT1I!Z>BWg1++28_zJ`T>E>b zq{O4@Sa^wl7kkHZ1%94sMi==4vpv@q7ZM+TjhY7$mm@Zc#Be&}<2`x!Xoz!L!Tvf= z6@4eT_x`8Ve!1ey#P_K7bjJVL>0^F>5p#>S{VRg=5BSrT$-@?wIKPP-s)A2tZ;&!m z#U66jBmU5V;4un-iFs6|QS?>_|7`eD`~epeLkH|De8q+H*vEPW^URf$nK;CF={4qI zw8KG}Ey-+P(IS?f%0 zeE8zOmVF>HnzqX~_@X2>hV{G7eDI*)ppF{8-^|r^u`j;MFq+46wGls-NnSxau_<9A zvrgjkH&BQEMqqi8Z^OKgP-m2HrJvSXW+Lu%ZL=|?cJc8C4=wf@^;axf+&$IIty^zq zb(VoYiESF%)AO>#XiDsj#7YWnrHxkBM%!3>lsMt}8LXGl?<)GZoIY05N0}o_pUUDr zFBv?O@3;~%E{ZmN_|)e(Y);LOtAWSq?-akV@RXtof_U#>a$_>GKW8#`t}nWm>NIifk)@Uqn-kC zLa2Yj#q5C%t~2S@UhMMMP9EO386G_XUH%a|nHmPoqwvLep5^hq;!$8L;GOijPafqP zDKGLO-@4d0uaq`Dv{^%&D`>MsWSlnV)8=yC=YvPdcPRj;!28mQ6c}r47_XzeGmdF@ zmhn;xbFg9?XXH7(EIBh_WK{NJkvL8*W5v!s(N03{XsZBz^a4+-k~i5)*^-qoYiU9c zSx*p}RJ)CrMNU*aB)*I&@>q>O<5K!oLA)Dtoj;A@+Y#L({49SXr|}ikF#(>)%jIv{ znJ~hLSK|*Mb~(Nr-$*5Xk`Q{a(r5OH;d1u1ufJCt*|k%U&nd{~(S?h;JBZ($V`g-2 zfM08n&mqXC#2?F9ta@Ee@FKCqDql$A1JD6m;L!r)^jYpVu!mOru?G*e=Na|SEL_n2 zw2@Ue&UAPBsFS?A`fTd7@_pP&-c@~eJ>ox(fYVy;{sr_St zPxQtF;DJBmCiru4m;8CH$H3XkPMq|qL%_S9tIFK;i@*hK692S3=HP2^p07ZGgf0p( zo~8O6OlX$sbC4Jw^FQi?#m~PGtJ;4k*7$O}@-I|2qy9E&VLPtzqKV+-2RJL)%YXIzd$?cj0suCj1u=IbKzdFu@0J$ zTjXdQzI`3{Ch_hv#)|G!;|=mCvRT|uIW;b)`V&}Fl<_khmHd(q6DM~=_jb4BT{_p^ ztY?}=-|d4w(^dRh@AydBqcnn_NA^sPmKrjKBxwddC6?X1!ifLwOZ3@o$*|H1$h*kq z?f4-@c5g>^H#%aqZwEi);hQpil=7{QZw+uL<7Bb@ZF!#cZ8_h9n=jJ#+B{@^F8D2w zZwr76nQl336ozDdlH3F-6FuxJ%pYl79j1M)TebdD>zUA5)*76BiJ*T}d34TrhrZe5 zXg41j$*0{s^ossg_FGnM^1b9O5LeFFYr#DaxHmh#S9*!>E8*)1cw0u!#A0Y3Dk3Ky zS!6vy*)LCmn=sF!H&}cn^(Nj?#_5X^zLWRTAJKs;kzrYnxt{$~$B8Y6J_#ZJ5s?Sg z?@aOwEZ@2097OUhxCOSA=oI<3#Qt`J@T2G)yS##f`h~Y77h@&uy|%Dy+P=)nU>5ra zytXiJnt{%dc0tPQD$0&y-D4MfM2(gHQGeoF+LLb|$|Z)Dy;@HBma_U=iGx^yTvbAM zvB9cncR6)eqpLR1{}BD}rKc=ACt>So`4&2jbF9m?FotQF(0QpXj6GlOLq7cEia7IA zd%$VWHlxrDe={!CN5yt!jE(N%Z{9`W&8WPGW@0DFnz|Qyi0y9D4;TFrz7@F2WWPc5 z$T;@0k~)6}U9?PCeM{Pl&fm&^%~;o~A0vG6LykUZ{X3nuo$;ycVOyWa_#^FGby~KS zt}ABOA>SwVFB~g%B=;}0$K}Fm_9V6Hu=eWH&zGHa-|hXhF+kcl{tgRPYF4kLTB+Ei@ZAP3@x^Fg~AQ>>Ne(Gn*4h~e)8`{ zQ+@vE=p29Rr9=Gf`MLg%sYCtIQp-O*5;DDd?AK zpHUxL44jmcJi-8T9`Tz;Z$Qr)=!Q}wKF?!~c_KSc8lL7B__u~NN9@gbYI{<~(lh^{ z_KVbQ32$%D>3&7V3mG$8*b|x49IX=sm`oZTaNS~3<(9TECA2RNmE`R&Aggj^yQ`WicEO$qYLU6qk@ zWx~jcNnYo2&XpL@mhm+bll<^eaaXXEWW}JI!6Cp+57Kn z^z$;&L%rXLM}<_jAgOt}?m9BbpYPe=I#@&q3|+S;Jt(s_Fd~`=6)&#>Qg^n=oDf zt$ga_eg)#65#LNJGSi0qw4gsk*USC|LLb4a;Gh*5*hW8ci8~g1NBZ=v$Q?2w@>GOA z^ucTG;P0U?GoJG8IQ#+FB0TdnO_pc;X5OdrjHB>-8?v0lZ(^)a{88Ko&rn{y_YUx0 zbf(muj_1_)qxYSZu}`nRJL5^l`Qkrx@T4A(KE@wBVf#o_{?r-bFIE0DJ;PZ_ew9v( zeu({%SHqv_qu|>kzGDgT<9~y1xVr;81l5ZsZCq9DSvYpI@Rr1w`zv*=c?@>=e ze@#iT=R{UTW(7|27z>}a;amiq+kkgJ@}}W6fHefn0&hziSS>g$ITRge%MN2h@^2^1 z1JOU7J@=vD7aaeA;rHjI*rV9bEt4!=DKx-VEUdWPxMtgz!Tn{#?6N<62K&Qj;;YJH zfB1(OpR?I-eKmW>PvKt6`x)G8C{x3p{JGFb=}ys~_T^^pC)o#ZFZ+PCu-B1(F86k5 zbA+pd>nNAROGr(EVc#GGi&!#rQj^KAAy+fV!Qd^pb! z@O;1hd^K_zM?|2*y7$~}iY(tb+)Bk9)~ezTu` zU=8)kZ`p%he&0oX@ACHxIYzzwE~1{D#8cn3^zN+(spl))W$*fW>iIn1)$@BK__~{V zOc8OoPgy|7~1gul7<(29lgrfnX3 z*P%^i?xySh{6_V=A}^z9#bv(7Pb9YT<%u?UZdR%WPUjS^2#;FRLkw zvhw#V%6@0zl4*}p_R)oRPJ8FFyAHiwKD=oJW##t)?}(-=DJy?JOxcGQ-Z3qkvJWj> zI4zs9+2uoa1Z+`hCbf z+VS_OiCvQl))B!^D9;Vg8@6zUb-F@t(* z7k+EnjLYsiG`&2hsg`=>_Z07trfj8C7N+QwoR4*i*n#Irr@U?J6s=FD<@42sFtE>yH&o1daip@AD+tXRWn0{Thr+Ge?oHexf zQ-`F4rHt<`FU<*uM zv~XI}H*Y=knMD@=-B_O8)b!;W)$eTh4?pW;6BaS%GLH557~_eX*X!=P!wYUj9@gB~wfI&o_SxLgL@Gw@H(HC%NyoQo>;mM~@uK6l?YcWaShbiKhiJdwH& z3*PyAC4HpMHSLULZP*+d-pr-*x2~qY9muxRZj*hWdZQXPm>jMJ}`#KaTis#E&EMLGkJ6v%^=gcJB1gJcDepK3peq zTx6P^)$raC`E7bSHzE%LZwP-+rJ>hStvTTl{F9fOm4#+w7W*Ul)c!8A-&8C9ABpK` z$Dbqd9?Aap_USYZ;IlEwk&|yzeKtH(Hds|3-%CGE*9L2H&`%0X z&~7U{FF8o!OFKfHvInE!O4^Zj)!Hs_iT_gK6^Qdu@5Mh?L|akl+5xSm02}9AHO~O< z8Nl5MojK#6PWDz^#<^ePkw=MBC^E7;E8z>Fr_?QNSv+j*?Irvw`$#Dm?Dy9GD^{$J z^|uA%DfHp27cB#cH7xs_mvs*M$o@AU^MBHhKIr^kZSU8|T-bSjVPp=x$QsW+czViY zpTFbT4F6&HVH0PEhLDZ+d#v{@3*cAEcCe2Ye8t{mIn6ojP39-oq{ztW+>UNMBD{U4 z@U!H$=OlPZ^0*^&;MWB{+CqQaiLBg%%)rC@D~*G)ekyyBT`&B~vm50O|4!#F-$+?q zhkQRdtNWGptOGN5oGq|cBV*M@cJoo<-G;nhTieXv#m11j9?Fy=cLG-@`Z9{lg>Rw{ z$YC3@*G4(cglo=ve-&q%W|7~QtK>=eT&*`TwtgE~lJy!{>)prL+5s$++2?o?@pYUX z*PL^5b?s4Ly57vG3*Cf#q8B5`S=3%%5c!n)_QC6Yy>BC@upPPLd{tHU-zjU!pYz=0 zOz>&Fx8m%qe8n(+8of86^ZA*`;eECo0;l?y81Lw>b3Iv)M>771{>nOO`SfM1$a$ar zo~TAs=H z)OxSTn~V`d;R8!YNBO4ZUWwoEbP8OGCy_xp?@;PRPMS7vuU%)I^(||iW^|Lq`<1jAK}JN3s+A)gxfqden0wdQu_G3`7%@+j;2W=37>z06T~cccM&0h{n#J90~$ zn+4M?7EID+6gmig;X7qWu4w%u|EvtaJ0+{EBETzF8 z`t>Pva1wtHJl1|Eedk#ce-Au%WR;D-#o&*3N9r8-n*;u`ZMZ6u_}hjpB5*~qYuf~u z-vFL!U|R+(;5Bj^aFzA}7r5E%6Sy+i*H!5H;A3sjZZFRg^HZL+SHmv`bp3`^zI_=y z1K$c=+e(Syf!EsLEwRsb8reS*x@O4!>d@5MgWK&FI7JShA+D&SLh|h`8I$KDMaF<# z)7_FaIpf-rl_+p7qny+mfp=PwEvZX*O6uCPeZ@NYUgG8i{~~J<=IofPW=V@TZhHQJVg&PnjQI1`XQb=_ANs zyX?8N=*sQ|KBK-JUKcutIsZU#DrX?1+QjYftI{{<30XH`ZQ(~Dc;qO!?}X38@J|HZ zZh2H_$Jwxt!~4{;jaaCgk!Lryh2L;vTP%I?Cey9XH@JiI4UPlv_c_-<+Aq4y=vsu& z{LVbq3dmo6e$f@(+l&#N%-?4pHtoGTh4PR*|BjCbB|z*u=vG#Zu21gs-MgE(w|=QtJ65EvC=UXQ%7R`a=)@4lJT12ms-S{*&^00 z#aGmtWyB3|rq}r*qtOKy!xxwG99YE1AoH+a&E7jk$D6h3GZ97WX*l7eqY}$ zaS#dksp}N`;bLF>7as|{4_sjIvVZOch2N#;6yC1tOH}^(qA`+x{^?Wl&kM*upUd8- zPqO!E3wxioe2v@%^3Uh8_vw@DecHm_r!9>_|=2RH6PqqdyAMdu4eoe|ci~O!-G%(<+;HzOTXS(XThT;_aKR^Z&l$qWT5-hCf94a5R~t-csSJxBL{A z9t-gEA9IR`@WrfD!fO)ZwL523Vu7m zua@buEaGg(W^+dOC9@396h7`Y{$ycB_SMJ<`rQ>efW?u4lZ;X26)7cqDm+#A-;WdUagZ=hqa6ZtCb|Z6! z{@%+P0298KX6$es^g*L6&IX@&-{e`>an0qDXSv)z!!@02p*$=1%^c4Cvs^PdAN-E; z^)nZG*Uy~mHD=zy*gAfgZ%V-@ih;9aO3ARQ$x8w$hE>B@0*n=gYetRX z?ggu^!vxkkav^6FyH6ih;2!~;pX0ij>kcj-d|Y<-`k8kCvxfUGfZK_G5BM(t|9Kg{ zDdUF~)1MOhQ#!?$Q8iiM$-c}usB!4*li}#obnwoe_cOfoi!~Y5x7!u1Jc?HGp0oOT z^;OsJWi4zfIjb{ve8|2+tBdIK=ecf$R(C-wXTP2CovHHkE;dcqrJPwfeEToI$W?av zC9^6o&z|Mf0XH@to@v-JnP=Z;@XTlbU1r~BLWf(qW|tqHS!qApVBfdf_mF)zX4tyG zzWeNZnSHOc?;E&pzdUcr<98pPdGXk5mfQ{4&Il8_tfVVJg?UDVD96CCh6$m0xu=d#m&7U4SmMj@AK{V>F8BrmnpT& zq|)zp`+bG|zCU^{x64-BWmD<9(SEarA@cx4#-&xa9t^f41aabhMV~kDA|7`EV|LSd)f7=ka_+ zn&l+ zi@D49CEVrvQttBowcO?V>$uDJ*K?QeZ{RN9mvNWx%el+?Aa_;hdHFx>GhP!;fg1dablDmArio1NjfqNs@My^drbv@m}g zHZ+gI(JvMeMhEipG)|f zQiX%C^m|e%yklDXc~*Z)`AqW2%hYjL%CDS4yQgeFhK27D7QTtk0e5Ne?TROHok<>Q zWuf?nBUzSTE9v)_y^pOudfUH%KM0&joIy5zd4Zv?i@EI!vOX}$%=(dhBWHAFIlgJX z#`d-CN{@@4sjhg4cL}-zm(Z}>W4tV}1d4{h(~E|?`k*1t`|`IL&@Tkt!q6@91?YDT z^t+}cexi@MEdSA{^zz=N!zTlA5bCRxw0a!6G?6J->y!$aX)WPb*DNa-#+_DFK3MmY4R z%}O7KC$J5)j;*M^&K)xSi0@Q2f$ll`D1{xXVgk6a0^ zr=kzA?J^jrus;&}VX=Sqs~z-l9P-{uKYf&u7)_ydGSdXO zYV}7ww|_^jgpP~@E%1lL3aGM*kMQ+7>KbC^)Xrc}C!CV?oeRI!ebg9Iw~UydN^Bg) zs`^~D|B_=rC)(;&H|+(%%k>%3j?gNz=>We6lIa&HqwzQWL*j4jhrr(-3THn{!P&vn zz}ZWbu{h8AU)eKmD;{k>@j&VJ^Y^CiUyTk(-AhXJfwyFNuzdN(SmVx}v9K!|6W!n~ ztqzt~Z;CbU+7%1CTVir%n3r|Ma@G|aSyv3Rt{A?PXRIrhv#!|4x?-4h#qd2myMAS` zeC1QI#=Y!8oyp!*H}LF+Rl)LAPsbWxdo32uV$Ugbs`ti+g5?iA6KmYJFBZ=3;OsV@ zOU(Fub`}fDfIY(m>FYTRC8!WHoe7ry)79P?W3!`(rH`N8p>z<7@HaEw@x$L=( z4))G`I9UGhbFs$PUyp@{9#?y0dvAUuSpLYCSmPUS#KObgR(oW7XMHDF{+;i~8V?+Z zg@?bR_Q>|$@@TO9(I3Pb-+VI`9`SBW#$4~MYl7u#` z&x+e|HMLMS#F(RGo-s&bfAk(O+f&yaQ_dNXZ%%97(f&^B&A)NVvxYPIJs>g!nOE1LCX+MjZKlyKUrlQy!b~|c~uRPh80sCy} z?%s1sr+t)eJk@;>zk+kjPFGjz{8Yuu6Wi>J&y~1bnHPCBWYxF8(~>u!*ZrMq-lAJ& zPf#mQ&B_mpu-8?-$JG?I_Q*O|Jobh|Wj#IrCVRoTetkosdqm}9-Ur>678_>3{B>5L z`Ox3`&4s8r^Gn4Z_44a z?p7bHc}hDrT060clH<|t&a&f9iBH7dP-7YJ^jkOfrOZ>K#Qe(n^I_^zG4IqXx~+&9 z!^Ol?MW{boiXH+^;nyULI#$et=GOeGgL;a{^Y9X*+ClsID4Rnhz_ik+|uyUVC}*w(-OGpgI7bVuH#&m94_nb#Cd3y z$@wkL^NWl5UE=@ye)uPcIbSdSSpeUZy5W-{#AD|w-sv?TDJ?AwEj9~7_keHa5fS_R zw-7ojw1DReEIxD6R`DP6)X=Idd_v0-<v8apySQ+h11AalPT?Xs9?ZRp{6g{#iFYU0%;*}5|Bm(({wOoe zxn`z4UPP3Qspq8jTmV?!Fvq-PqzHw+deCEDNh&R$Wdw z!u^a@Y2oN&-L_+r2lm$y_^2H{)P^2X zan9%^@jp0y567?>6u;{^!VS>oChT^63Cc%+EVZJa+UB53&{ap^t&YXSo!m*>$vwpO z+-unm7GCUmzumXQ`Q}f1{6~L~;Xj7nN$6DZnLJud{8b3H{d|& z*J?XINbTwU$>e#o=v2x5X_vk(GvdR*)iz^Tr^(rc$B9Qd{=fq-jx&dKK1AH_Fz`0a z99B1rytucE4Dt_#tNkNo?}$a{T*)Uoj_x|P%7~MQsOsx@0NjBWsb6x3WS*{bjWo@p zYJN0a&6U#T5rLPE2f))Z@Kg<+R{3bh7k|45yb>F%=BnU!4)8q0oaRo$)%>n|MDwjD z*VJBRjI1L+_@&8QJ;un+5c8`p_AD69o+rOGMyvSVWv-E(Zl1r3-uofXzu+2OC(mS` zjCYBz6&pqFVmFJw;5hR|Vy|A3dhVh8ZKhSeRMj!0R~?&(&yqY2DJ%8JJ?tKaejR~d zLFR3C{4RVFra$5bvgn`44N~%1o}J#0qjBi%!_Q;QYc1Sban#nFRDUNj&)=uSiRUNZ$QRTYeS)+UF_z)gIWr&r@y@{t|wBG|9ik!p{xx^W*R{bnnH_3oL%V5g0W; zm%z{C4OiV~6)(FKFTac5ViY{sWsI_7)m<*d%P;V3lxtL7kt?fnJoADGd?#%S56a)~ zAg7X_A@jK?eEn_s`6e!@?{2>RiYec^)Shq2x`uS_WK0oytFv5zIf5KUf%SCyDBlq? z@{;g4d&j*b_MG^eRb8~J>P1(E(UI0!N69_>WSzm1i<#Y`yTx`=@`Bt*4uROG&i7*H zSGZ;DR(pQMt$nX#+%eCpoTlx$lEcP7pqx$C<0PGwe|kL3QR{oj^-_7oh0i~k4csaTLMeHqb1l{VAxkwgrmY2*akbQzeqm}IS%FDNS z!LltP_I?CPC-Hq^+|2UD|4WaLyX^51UGc$)Pb9`iIn%HO*_NEWqv!>J@!R;gKYNjJ zb(FEJ6MZ4ikD+@y&>2V28Ic86dGYVa_dUyUSU=46Z@Y?fd%@}PQWrT$!#WNA4lx#} zd7QR8=fKw$@INvY#WrYX+&hBa=si_-Gu~e2DwO?vS{YwuZKezy zg^+9U)3)TIzeb?Pz)y(sp^Gg%iM+{s#s-y}q25t0gbgCNWOk-(HECbkk$M+UZ@bis zPg8u@$vM<8J4fA;-=1Z}oKt^0^|u3WJ212Zb366719v<1x9=h!R>MNyLc~`}Te9D) z>|0W0)BG89O@z9H=3*B_s7vN}vR)+kiBOm1R7I#ObSW1&3XS6~ea+`iJK_^A6MmVB zuDgJL-D^2<|ym~X;@3+fI5x5k;!MDmK*kE3%Jbjvr4X31S9p0`={ zlJ%Udsci+u4Th&q^2H?2fBE+6byA;v~s9Vh|x*@z7sxyXWQ%GcyBXYbwPtE%q2|9x_DNWw)>vDzw=gb*%b>vU{Y#`Z}+mEA%uW{j;)u6s?&iG14^vcL$BJFbIC~pv9&B|n+VGD z{;a+C$xcX6J8gfzKPInNUTdGd*Y$f}-}PNqd%=cIlx`7sA z`X*WsT|p0NzMv0k!}0`m=4vfXd_lPZz8F84FHU9ekj-!Tf<9Zmpx>4+=)2{Mf{X#a zU>ue&Xlp26OlKX`@&SEK02|8}f)9Naj4WROqcmRtC(9QakNARi&d3+EEqb?n!I%`& zAzx^kFX(p~X7n!voydPN9eX(eUO20`w+VU|&r0t~KO;9M>Y4RByT{HCgl`@8C(Q7?~pTk9~)H*ExMUH2Rj*9R4pr==f6p3=^lOQ<UmhCU(MkR{ZYb`*#~It;%ZMUpOmD5^gC`p%Aro|l zR?!*dfNS^1p}PchoP@ShH_;dR?~iq`jBxY!(6^kM7hSoQ{~4jt2ayNJh@73GTgixJ z$OzV3t&9lWQGV!fKt^axe+XLoLV%X2Gi_h*KwbvpSro%kjXrEb7G4FPtB*0@B)@~d zU(DBu@%fUi#ZTmY%CYvJe416<>)qnTkfo6GI)B2C-$~9yu3U;-nTCu3r;2Y#UBy3Z zRH@5&UjYB&%hcU7?s~FfAKd-KuFM_ck2>EOu%mtd)A^_Sn~vB!cTV>=$yd}3@2G$0 zf&ZRT?*8FCm>$k_$mTqwY|b+}as_v;@$Lv`Kg{6W4Bj1O+}DJ%8z$pFKRQ?EPvkV{ zETls6X-+75kF$3_S<0A-pkH98aq9j7?Xld0o*IL^Istrx{@PCO>;&D%28z~OzTq5S zo$m{MG%6J>`2RheWol!Bil9gOo}@4K{4DxB^t>0%Q$_oUzEd~mG1hwQ-9KgfF8*A9 zlFoY4_%x28x-LC0^6}~U6LsGcWzv6x{4q9$U_c&9zR71IABx(LPG8P^Y5pkAD*Q4y z3CO{j$L=`v5;VJ{bmK0w?A*zfnfUOLTSvg_QSjR%yn^3u_$CEz zEnP!b^3SFutB_x@QtTIKI)NNWGH>q*FB#r6Wyh=xq|U8 zt~>zmi~ED;nc4L}J3k(nf6Hb|idU&iYtdAALCcJwPM)05e_YYWnw}svKP5e>E+fKi)J8^(B9x8{A zcPwOHC%H70IGp{Sd{W=_pJGg1j3otKbRiGo$e_Q3M+#4tG;BLrvThpkdV1#94$U|@ zd)eCF}O{zU5@;x|Yo12eAKkZtJV&cgeb=yzeG|H}AWh(L0aw zem-lkGeTq5?svwly_U3_e7l^QXg1HB8L?Amd0cXKc0)EXIW6R|^>II1;n|S}>hFKd zDSlw;%}e^)GuzkgKUs3(K-8-oE~p?@fM1>DKaW=h#tnRv~>aN1vDInX%}M7Rh<$ z&D?=GIOh98Wbv|-a}G&X+#D|MpLW~Qm07J>2Ok;x)kE3Kmi6r*hB9YDP6PPoj!CC6 z%w13H*F4xlnZr)#*tI85-MEH4D!+{Kizht4PWMw>L)?7~xh{Pmz7PyF<{%&X>m%Z~ zyX|_}0KbXP#B<^`omG(nCR@=voU=4=W(_>GkGQ`At>=R0I5=)YzN@Y3i#Rs~U8C_Y z$#Y(vOWFYrjEyP&^4oYUqY%M?SewQu%4a~@V!$9A2EMSiV|>#Qbt zu0#4+GI-0kR&9v2xo79pKtrlezx6GSJWF7M>MWHQ@=f2|v3v0bzTaeoaSeAL!?8B+ zJP7Rj<8ANbJct{HIS=A*FWZt;#2H-tDp z!r5_RU8r$MuCqh9IUYWD*qHoNH-!5+1HCa`H!xq&_(M6))5nt|obgc384r9LDds%H zI&J)V;@ioix{kMva7M#T#G>;%yIwl4FR`ik8Tk+JMLZLuOvtHuKy}9( zbbr$99VZTj8Y{*y=5sR|E6?Rj34X_c!-(-xZNKL^4PH6les<;G;PV!0hS)bH7t}=a zFS_QC?CVR}e?Ff5=M(*^}~DT=Rv2vlf7<6YN(heXpeNx6+R! z{lC@g`^-G`C2xhlFR+HaZQ9ed*-Q6&sq(#7o;yQ%m(OHuL-Xx(E*SRx%!S2+^Ir7P z6;5{Eg7BxZ7gQqOK2KjiPe1RObm@X|nI*SA2242B;(F(zOIA4K4FSJ=`YxC{o1N>N z8t2sv&POP?sA)kG`G)`D*mbekS@UDD1^*a}pY<3pdu-ArEB>8&#?2lF>_58Vo=G2D z@sGfEdC3_2JNUeayrt~PpIw}>qVl52D>A$`O3)v6t;xfC61*qCc{aEUPjsG|1FTm8 z>-*?`C$PTHgSF;Q)t_*V)gZU3ITvdtHq%(-^8iict(bx?5Uotfu6d^BqKONp{CUl+ znu|UR&T@Bh?%YI`Th82xa~NLD1J;(7fZ0g&r0@BBpIIDYeEBQB9*>_jgE5mrGap;= z@0R91wqmkZ*KG36XS~ZNO(svm%bOUKS9MmBZ+UT;d1^rWhwmPeeDL_W8vQf|T~>*{&-(&AMY|*68x^nSJK=^Y zC%Iw$E6$3Vi$V)T=e77OlH>`>0H6Pp&}J9*NCKUk!WPk8yGPNF*FmTEOuFV!uV{2q z_JUg{x$^8+(CH({t{IbNAd407ptFGa2Q(bMc00b zJ(yqS|MrT**X_yu?t+;gb8cLVEVv{0xdjjB{>Oq7xqB9Tl`|l!`9Fv(2>x!U$!Po~ z=dSICo{RtNi3RzqH!lEoD<-dQS^(XyC|C{ukxp6Nya1Y8QMh{R0_bVQ)YUBupqCZX zR&QGXEzqCs3&8b?|3B<$mHgDcR_%$^-d632)&5rPiPaug?TOVsSM7<_URUjj)qYp) ziQP-8@~xyQzmHVq+elUZc~X^cCsq0Vq$+=aROMr&Djz3R`2?xTCrMSllT_tXq$=M< zs`A~WD(}p9%ZEr+K7&-{!=x&oNviS@Qk5S?s`6Q+DxXKH_VYz}aPpb0mq$Eu>ExO9iRMvWQe;sU+1{7L#f$Riqlr5>kz2DXGR% zLt4xKo&4AFzl#5Q{#WzAhJWXxB6M)kirM^E^1q7z7XJ71-_8H$k-;_CI8ErDyv>|# z!|yxMEzRhS$=>f(=!F(!{uJ-`YGnF$g3ONO6Gmg@Wa(QnH4htzGV?+>ZhRNo&~ zr=9hC=`_joorg}{$b9-KU$?Dtu=^Lfvi+cwcX=&+Eypgp1zBFl^QMcoE;x+-o6kIX zKl*Pu`fvH9q7}uSp73RI4KhZwxY_f??=aWWjRkR$Ci8<`$>1P-NQOTC1=mBrXS1i zDeqg3F8w1Hq8>!mR-b$s}E>3;t=tTvC>h*m#U&m+T&ZA?4=92H%9&ziRLj8q*#QLXF|Fl0!{fdwIee|bq zUyM5Uzh+-l;q&r!qUNFtJ-t`srJKEUub0NW^bf5UWn;A9%k%vfcjLFXE1vqjeR;Ak zrgDbn|F^bN(TXbO{0_7kv~jj!-;DWG_JWzKoIcq%PVs~lvT??6PUg%x&Ua+v$i8v% z^gf&S8E4I$;;fX7Bm2ggFk!_uY@9Kl3Y|4`qI0Ee9N9N5*cS5r{2}2Ov{U2@)t`Lp z3t4lnp%4DE)~6I7;{JAKdGVJvzrVh9#GWrQu>Lc2y>-q-PNUXi<{Y2Xu!`phYjdkv zf9ztNVb9oAz4KYe(OCmk_-{H{$I+QmP56XqBz;~$0)I@B^@~pYG+p>>RENsy{-{x` z>wHLlLi*1?>(;va#f_JeZ>JNVP91sbvfXutO4b(GU-AjnpBLs{6WS}p=U&6wlFn|3 zWOM1;1EL)#O5s$aoAs2;^y zB|Mx5`DLWF*);*2`}oeWv59|Ld?%5ae{6gggKrHDS+tSszH5l11Jp!Iyo!}2`Npm*1}dbhAv z_7}iS>sO;lr*lp~c0PB%a(}DJR?Y{ecq6K{aOpesUG2^B`Yc*nOVbz|v#~40WUZoX zrNceL$Wpi8VOyTQrvF5*$4cG!vb%{VJYITwd|8aRs5o&^8lV1;H#@_}N1QsB_@3LJ zNH!BsL!RVD;%OM;BF0=^v(C|2Qg`+#-+BzaU{jJjfv z69e!h?;Zqh8_|86i0z?%*$;bwTP62FZ32&bq18p`OlyaEa$V(O-2249*V}r$XB(4H z>c(WbwCB>~aJYOL9{2fMGB8MQvg^Y1rTl`DUh&kFlUE-qMIXw>Y`LI>v&!7NwziJV zT)UWkN@cv0tP>6;_ohxHUXE1u6?ZB%o&rWkk$ZcbtloRX=PRf69Swiw34+zmziZ{v zzU;!*4a<0UguHvWQ|mLddH2ejZJzldVs`U8HdKc~$7Xzd(+0)ZDX-2bRUKOA4AQR) zC)Xw$ZrsT3w2kABf1ce7Jg{G1`|(v4_f4<1O1f#6^Z&ju+L<>O1E_pk0$-2SiNL!pp9Jdr`txHwQ;p$ZGGlq)$nRFZ3*vwAEXnCq?f>_ z>Q!IeGXSj~S>H(=nt!N{ZBw4#aP_-cmv<5)Xz@v2)o*Et`IqvD=3QEMW9Th@u=jl3 zBl|=#rT7G}@goh7k>5Xuj=Yuznnsu>SY82tX?dSj+<#?&S16y}Z*a5KPXqR$A4jZt zuHTMppL#q4T>bZ?gLp=B&r0zO;}h)kUC%zx#HRsg#;^Eeebc`SgFwvj_&~oEb3VSf zU+1&A`XJlJ8;i$}mySODyjbo5>MRfSrz%67`4j3tp3EFpADl?$G*(wTJ38U_&Qi*d zuk$L(SRJoD4%q0N>#F|6I5YQna(KORqApMmXR>yZuah%cW0jl-xvsQh@u~LIr_2CfE(V^-nI&m>>bU?J6yrQ!>T8Xt=Q@JJm+u*la z=h4Ydh<2O89SzelKwb&QCXGC@a9RS%nc=HK%8(lNX{h5-$}VM`5Nlr z=K|=i#>x%uYxC;gN*}B|pkCQ>9mssqw`}Nx*g#A8u0Bko@8#%~HsnJQ>2y-bh(=ZHqXzXX*UkpwJ&4bLnt4E>U850M+cs>?6b~b z(s%t^9`|Ef*_W8+^}s%j%K|*_>qmF~KVbiB4=DAe>F+|GE8yb_ozabq^!ZrN`Oux_ zG?Rf#0q~T4pz~E_vtEtQMe`%s3NHX>d?K&)a945{deeQP&)HtQbd z&o$6M3_DBXwqxU63^^Oa&Jqq5(-wU2wB)$@Qz^W-{|{*XT|xN-{m963W?B1{{ME?n z9B4zjQTDa;rOJPp^1<;|40Ep+W3=Z$ zk#oDyLGf^?BLpvNOhLFRPE_+Dz0U)t`n`Cpt8*8Q6&$!v)Y6B}8+G-I#rF`I-VngA zzK0m+WX7)XYQ7{LsdNkaxd1wDMnB6|AI*EEA^c$Z_{2iTOB(Wd&ch#OeV~lPpXWLk zWHkJic3k=E+T$}64?T=Mu09-Z8(vnP3fkc0kqur-KV>7UTs87ab2--z5BJuwM^-lW z+3Krj=O=apE9@#Cf9~0=1HRDVZ1TkJfw{da=dh2ED+%oVa^z1NaSNg)*=SuGp_B8m zQ#?AG7b=ble$&`rk`e0LJ$=ePY}Voj)L+fVbawbr{x7DFnm@U9viB9*6&)t2PkGr# zhMmnlq~yCAJ83EZ#JjUkBy%mkrGr;97siglUUq#;LEB$6vJ3n9CI0UTjX8KvC~GZy zC=XtOKXDxK)9j<)wLCQD*c0_@DBO++EMmy9^tO&qEKe< zF6Pb$!KZI$45S0++^WxZAILDec&I;NhuzCJU_Z!i(B25y5k7w9Yn3gldd2s>Bk3jV zgS3AdedF4{%#-mShS5vfD>5wZrJE@GL3ESfj^r48`>Jf-RXoGT_QzLxjGp?vi!ulP&( zd*p)`?3>}uDYic7(z7`S*+j?!A4l$d$eSnF_wIA>jN&ulZe2iL1o=6KSmfdOImmaa z_k-|um@%o$P`)m}|0F)O^XuP(m&H?^%&&zPSEpz8KF@qd^K1vYy3@|31Tzm#j|1l? zfww0IRCbZIcQSkHuoF_$C;peMpjaEp#_h<;W&F>BCy$2lzc|@%Z(ljNPkxv#cv<%j zOLlaCuQv2qCSw)vS304c8neDh2FOPqr+&S|chn*MBN-5ZCZ_Vg4H7MU)q8L_d<*I&0>G(vRe+$`pBeAqjk|k&l(gf;jXen?rMKUmp1L zVe#2eJs{k7p<{j8k)9OaieI6JUrur?o~D~nZvk{8KaWp0lI@}! ztp)jXGaA{v(;2-hi@PP(Ks)5w;L=UV!p7GZF1-w=GjxvpV4ZOQU9rZ=T8mBfo;pKg z@cotVS3Z1s1o@yf(BbIC;b-ov5i2j6Yy=L7b-&!d8)_*6dR z_u^C0;=wd6=Jz4zHVop^Tn8Ta<{r8J87scM`~GCj4+6BqxZU$H>Rfv<2V3rV-Rb^Y zOFzkx=x3rkKi>s@$Riv{pQ_BA(9dkq53(ix9C*RL7(_qNNt%A({rGe6@`d1gm+RvV z!@r5`L)X0m< z(Mcq#aJvXu5q`?c4$>p|{(URP>) zu}6NI?WOD~#_qbxxzV@BZwxsT@ed8_`|;;***4GccWC>0HqfWzr5BvBo*B|Z1>hc? zm>_S-*ib|KKJIX0uGTe%_t?-Hhvu@{8yhQt9?6%-T1lL79FQEPclw+e~cm!7|r92S(#d^1YL?b>#75QL6AGv;_Rh z^|TX=Me*BF-D!J{zOCB3dPBVQBX&L%OY3FNo(uFZC~GxtYcqu>S^tcCrh&^tapaqe zpL5QPpPA%C{>4kr`C#~=%;be0ey#}M2V389gr9THjGrsO&%ywHcs?V3Xd{gu@|Fre zS$CX{AKsF@YfY);8PfjY`G4ftB#&p0_9zYLG-c#QLS9vhdlR%iRk|M@2W<;cge zx82;g0=e_j9b-4@{jd37#{0xv&cSF1_a7~Cyt#hF#>;6wwRot{8aPQ8XdOjxmM-XN zD5Wg8l}tl_HRJD#0Phb|H!{iEUTzFc$m$Z!4L&Hm{Wf)PkKdl!--FKS0VcA&G!LET zL^|g2@B66>$3@nLfR}vEDdgEEZ;r9W&QDz)@MX2e5Xb-P+w0$ZSH59?Zm$?1H~;rn zuIM}aYcFk_@U^iUpS*2F-w(jo7cwU7dJA}dJmcJFe;t~z>sz;dtnb#0v!DG{c;e2( z;7z{f&EUC_vX@b|@s6`MK1JCdQnoSU>|Mtx`=yMD&vGvCu5VNJe(L#E_`G!4+bJ7k zP8VlCndE%TOZ6O#PYOQEMzj7S&XE}EmwxRXcg@!NAKG%QeR5N?`5cJKWnmh4pNUdtws`TwHWsmTBj#sY^5atBajuHPA%$LhKS` zWHo$3OvR1ID~CTvp#s~)w@bRPOS;K7LHZrNARm@bQ-kaiWPD=o9KJ(am(A%P{==E!-nKt;Zd8n5D|L-@9*%4d0L=H{?;6ziTKj$ci1x@|tFNV*?p(X_ z!eR5BD99gJ`#ym2Gn|Hjd=Y8g@+LM1 zd6Lu@qb`j*UOLCZrLzE-Oq+who3&nWcM3jDeXD-MVd~yXJ3c@7^AEvt4!&?pL*abl zUHx@dPjB!$LETC6sU6Xw)%$Jvp59l#Jl;WfD^}*$a za(a8<%Y&Rncr-k^<688{wd1na>i)A`E0^_YpWQF{ms~H3!1v%l&!=*M`GuMNU8LRT z^W1zo{J*~P^L?+}(XsL6JH~AMtJ^-`*GM1E$~bG6bkLjVIL>|Fwcxf(`o?99fA$T| z-QPt2Bs1OhmmE*#Wh4LGXQh5jrk@7=E5T<=!&;+*&IZZB@x}dnk@3)O`cLxk!s0ul z$11PtEm*+%CwC1T`3&cu{?(n)H}U#>Jz?oySR z)z~%7FZ0Ra%OtZ0+A2_)Pd0X4=$HBU@MY=(WzJWbk2iLW_se{A_%a27GGkQcqm5l* zzs!u`%d}+;^zBqOWo9&X{Vv;sUE%O$Dg$NSQklZWu3o=P{_thOfim4Hli%2N*e^3_ z_%h9-2Kx58%1mnPI^>u6@bG0y17%)OnGZL19q`MXH+-37WT2fkl{v4m>p8#7@b?*? zz-N)BpWP~Rc4OD$ewlH@w^I-(vrA>hHFh=oWro*zC-AkU+u5WtIgMQp`eh=+w^JD? zvrc6qja?1d{l9_UpH74tF%0it4qj z<=(Ty^R3?V=FG;fFL}?!Jgd(|*YtN?mEAuLJ==}1;RS3Xoq4t#dHVwI?!u+R_*M?K*iWv4n27PzqCR};! z_je06gZ4+b_JZdt@M06RCfNx-SH(h&_4r-bQ}b%=$|ZdX;3Ydd$(RKXts&N+b8|n1 zenSW7{bKr2OF!cB-Oz8@p1IcdiXR{Up5`j2`A{@IV50KwnscZ(ImwN!ITyV}TXt@e zwx0w)%Div*DVBk{)wcYMJ3ivtzP_Jvk!L^oK56xLq`RU|gaiBn{yW!X_jk5&=4Ev@ z=XT8-9I8|2>R-pM3Sz*Q9-|%Adey=v;FR{mSUA+jlAJWJ)Pb&etN zL-yR5gqCGa5J>tDWVttXu+F1wsLs{9tR)w{uuEysC- zf^R-;ioe7g7Xt%$sIi;&yWy!G`7*&}Mow}64&r_A!@j0@@Ih>S{0GDzjP966tgq^C zX1!ttaTQ0YpI8dphVp7$;*A$rLp#F%j8OK$8KF#_!+G!pe4E5!G^)Jz-h7iesbD() zwuOCT`FGpl5rb>Rn z!*-sxOEK!1z0LS>w3cD#yU!sn1M}TMb3N!NNxtMR=&zao-N>%zm;>+OeH%Q}44tw5 zp_mBip*`0BF%bVgbiSuDzPv&f+xZ>`9KK2J7E3<+YlWMX zpT2ncH;LYe^(jFwo#XQSV7cq%E#-UZ2zqM{^`~Q@sb9a#Xj^N@^809yO1q8k4-J~n zx?^zr0x$R1PuTmKVtf=+qBKTb>Zi__-UENjzovB)cmD};1GuOTVzr-;uM58I=%${o zDf>5!BDUDVT{4DxhUQhiZtJ&UFN;@?os(j>NzVEHBp0u)uB0ssoA?NKe~D&B^6C6P zv?co0ewQP|?AM$Pto*YUH73?No)%s$j7D+K3wWpyt~GviuI(CdZCLeZt-t6uV>J`LTj? z`UHE8PrjUBK9x_ycbK^%2ezl-J7XC524OoH*y^lj%R9i+?q!8{#0#=l7Bdd<%|gbM z<{QRp;Yr`z*cf-uWW^r}p46{%Sr^l0747@Hqcz8Nd_n4);OWZ-!9)GFcUk}|>7O9H zT-ogI#|plGFE~E#>H@Ms?9l76@VVCim{Y6u(eqC8KWeRAG@$lVo-L`pq0&X~H_o*j znvpH3IM=<5v5-0?8&zjFbxsP%CAu~2-civD_RamX9oGNgdEwjgbND>V&(fLdlh!}E zLq4r@ITt$}hs*i+JJGjMVwu*K19$c56n)A=msdK@)9F2q^lcUATF16$^v8E)5FZW= zK~J6R6R!&7d)~`8h4%s{|JLtRf=(14hIog~VD~`2SO5L;%9q}oGc!Z-AziQDXCR}K zxzI24B%85<*d5K;G}mAZ#L3T2$1Cf(AS`*pIN*aY^N!^9**2EAlQBvE>8?}pccHh| z(B$ipX`ES$%ut&uBO6uwrKBedZk5eHbR9I{3swIpA6y3=Iv1(~cELFLU|X4dQ=gWQ zE+q}>&pi0o=Mmpu8XMAA%?Tu*dY3Ua`dkFAA7z}f=~|r3^nS0Fz#b&+50EVI*Bnl( z)7F#Oo4v%9vEcReISl=foRoagd8p;|Vb$I{WxLvWTMT^O>BAS?C{L0yi-6@KPxori z)z-kAaWVBt_b$|&(Z)N9=Uto}50BtyXr5^OT8WJr=+<$Ko$E+<&9-q4dpw(`YvXJi z?@&;V&V4Y$+B~9jpWX(o8G+9vd6Lu@qpqQ_QQfI^vx!TX-M@zZ-o^M2JK4RXT2~X3 znAKYh&h~k*_2c)4t%LHyRm0ynH>!U{*cC5iEV zczFEk+79q9FkG)PJ}mWn*nM@-K&DGa>pOYY9-&x4hTd6x)dEMY+ZTZ|?PC#7M27Nd z0emX_Xx<7Qd|M!V{TcSLkUvhj4>Z^I>Q^83ILx=_(;sl%h5X(|e~*Vp@L!d>w3xgP zIZB??8q)2v`fAmw&!G?1@6iXotDYEj4Bv<0?|V2= z=k?*s>H~NE-I_5N4qtZrP+3eLzLa6tn?{5K-;>l6qYm}K@}LKU?k~+|jmbIo;-}%A zTY(Gs=|axPuha_ME6`zDi$fnw?BSh_=a0B&IP|~=N8p2-$)mV_?!ca!zjx7;Ce(FX&yRn61 zdUq0UG?zVDJ?vw==C*trGhEGh9|Mlp5EGCUIk0Xn?~h}b>AN9Kunw+1>HdZu?3$c+ zN)8=i{(mj@jrMz~?2(nX^i7Yvu&#&qDy#1*t2OE(WbbJ1J~+ZU-^G+Y%6i^R%H|TQ zpt46-F7KNcd2!tl-m9#>t85Pa%qO4lJ` z+GpF9ug9eY$>N}GCSS&A_Jz%-ZpBu7-Wj`#I-gaap&ep^$Jp_9P?v=@xa|>+sZTyF z#RaG>ospnEYD}Yn)y33z%7e$4+ivN*nK9*fu)I0beLkkXfwwIIT(_~#CVV~;!1rj{ z`M~|8UeVRieqQ`0XW9H7{gj^2zmLP6jQ4}$FpDv1-g8FYXc)p9YtGCY&BVb6dE-)G zC0q+PKCP;+ACy)tuIWn;?GM0E^qbW?IyD%EqTf^8k0$yZeVa?aKCVRzqTdgSKdr@Q z1FwO$|BH0SSWcre#`a&PGwSG}?!o=c?mhbYU>+AgXstjn>P0??AABAcKj>Nf;M19} zUz@Uqzq3g^+w0A%-Uzd19UAkte3?mnndPiS$PXzTvIig<<}8{7c9woicGWRQ_vL}k zKT+THTYMIVH;y8kgwr>|8NHRx=(oe*5Lxh=_K3LjpJVq3oG3WQ>g`kEb7uL^okbbI z0(p}>yD`>wuAOt8Xg=G`S9kU-|5@{v)()HL^hscd<)oHrum!Z zwp+0Mb@z|vgF4ShenFd$d63{Ddr)(&)Vbcgl$Z$l7M0KSiMa9mn$yY8r!wvwYOw!X zF`4@2trex`+ry1Jc;1G0XPoAN_AlnvGw>UmnGfmTzJKt=i*!E8zQ+wz&ugkc*mX+_xnQf1?vsXzBiix&wEVk%P*Lc!@o2kY{Jmx_eX29 zT1?Y-UNfP0-!k%9#P{A8t@!KRreg7{rlN><%uDls^37=e)lZoU=jSFr@oN)ee{RLr zHPQUvZZQ?N{lwIMD`r9yoc`8v4@X<4?=rQY_^HT2#|(RL;peYB5geaC&I-oaI%J%@>(3uNPU+1w44d%Z4)wn< zUh9hqw(&t>7$5Vs5zn^zFV#D~`hC^=K4FoDLk#}&$1QvZVKj8lyLWH#Kv~x}o&FuH z#~o|&Gfmnbj~~kVG2q>7m)6(oT|V@u_oBz7_?lR=7`!aJ$cGh%hJyVWuKreU|9t}f zwsEV}>#tk-d-3(nwn1BJLw>O-_>c2wOZ}{ZRtoWb1>4PpR`pFh;>rp4ek@GMHeL=L?>J|N%lo6a83xM`<2i)Z?fpgqRJ{mJ}xif7%)8Jj^Fq<(6hrUZGVe3C7G zdy2E-UAny^`0<1C;S_j0Rqo6xrf%V_g!Z*|Fq^iSN8Mj3pD2A%ALQqYSF(OfnK<*| zIORS<=F;o#!JruxYK2nRni}Tpi+%>&+qc9V^Xr<9CT~JzhHMH2=Bk z;eNLM{NkEuMa^c@w0EzGJ8=_d?J&QjHd;~JWSUxAO+1t^@yB^L`_5>^om))PzI`U1 zku>oqc~@E&t*C1@O>J!^9_}>p-N@REb>uZdQ?^DPtq zbkxKj`jv@aMZ2H5CmLV;pQbkRu!;YSJ{M8n|G6_7pZk<)n)fqPTl==rKBn5|>ZAF8 z-E3;_f5n8({-;xN{Cadj zbVIcEb1kOz6F)NX{$nP717*K-S2W(d-IRRfWfPwkGx5(sD@*F5O;$n(0YGK|2Lww>zhsfRWF(R#oY#8=x=TQmuTpVdrW-Kk4^kv zc(;^yQ`bjZzw<3q5d$tgM@)PUo6t2~ zCjKSf&G>pW{~sPTO=Ukcp)Zl|%k=rqJEQrVo-|EMeqvfDpEU8?sjq;seS3$g{q_${ zYYk)}Q^x#GC1} z^I){~SC5$1kL@%0pNEFF(=L3HkK9Rc&sefF!u^B9O?fs}GQ#@X9_oLNJ89dB`>zVs z%nIh|!gk01#XYhatmEV`bsVTm{8AI0e0KBk&|CB8q{%C~f%6^|7jwJM7IzAe1EHrnPinbP*}oA8UjHsL&{FZrLf(bCPE zO|!Gt)Hw+g-t6?H>z&D(FU`-E+~@9I-mfpkZVV$A!`?cAWG8yzlX2D%NBMf0XUS2W z%ORZ!+$D1d`cweUh^OZLto+Q?QEa-E`K>k4riCpg^ykiZS}SUzCB@JweX6ZVn9vu7 z?^84P$Er{9@x`uP02j`qo!b zL*FD{ZQqh6^sV9hmV{o_w+i3R_WCAUa1nh|?3Uj*Jx>N+Vc;db1I!1*E6}(6QSZ^W zJg;v~=byfB+3(S}V!v-)fBL?SeviH_^!wKHC-2*P(%a_urnkzF%L{*UdfV&6ZDe}; zWA*Jl;TC&uxFy5xocvD?HwSx6GUQBr`p4?qd+}+W-?uaH=^v|a@5QIZe&5c(rz7;u z*9(d<@MW)_wH~T9M(vl@ny9ankRleaa*&*{}YqyQ9tTw3q^PYTHHq zCb^V+f4@Fj`S|159{WuAX7XVp7hL;5wDP?Vff^9!D zb>`P5iH%%$_r1}APk!6xOHN6dBsOyLqqWh>>L*Ni{eF|Ysmmm>kqaKWFPa?ppQd2l ztETzzF_Ww&-)HWMHb3{2DgE|OO|sxOCRs!y6>90Ck~o|vwmxI&T;tq2cpeenoQkI-!pX!fB`mgvi8Af<%XRm8U3j#_yT1& zIsMH?z7efEr`gnf;YCxqk9M1#{>tNZ(dHX=naanaCV9*6jExVy>YixZlY2~C&Z{Q* zI55~nU$P&JHsAhjQ_%l?Q~K$Xyr+#T8l$Bj-fi0E|ID;C1D7YM@6noQa^qtr>HN@C zejm8(rq630j@A|IGR+M?HFf{dZIam6$!{>Wf7)u2-+j@Pevx+f0IR3hL<_cWHg$iu z*EE0eO`{muf^Xazt^2E|O!Lc86aFgi4$#Jn;OHjs@$SpusnaAoc(-9=v~ADhrujMG z@*?%U0xnnmk{QIauEY)wx&GHT1AL5a?8Q#3kDVBJFJ2igULtiuv1l$Y>A5g0`QY>y zX4gfl&faQLx4mwvZt62BXgt+l7j573@1~{dr>5+G{>r2($#Yshf zq@eNk58odx?0wv%{-)KmI6Wo>jaPL)6pa+`G3|K=P1&#CHK|*j{+9ZOqE$t^OzIzB zH1(l(ObQxL6*WX73wE2xKfGcJzkS@Kpz*>w%KmhVDf{LxOls3_OzL*}c=5f_)IT?y z_Slb2>W()}3L0;J_`zuEwI@ycjPIMsGxWKRc8{-*7T&(av{d|r{`}6Qpz*Tj{w>=6 z56_y&#}AwKe?Dna(0Kd1o1$f(-D4sb9X4gn^zT0U5`8dQ_&1N4!oNRk3eRU8>zw}j zmJQMNqDM^XKlhsU-P8w-*Z=SPqNyKkGgYr0HuazBHK~pCdGxs$St8 zG~Pb_U!qmFJ!jfGUo(-rkD637@9+ahuG?W+e*S_wCZ4!DI2%X6n1u-)N|xJ_|0h5=6^T!o4#*S$LR|+o|;=9E&Lx_P0QNv zo0f-vYf^3C=*R1$^&k1JDJ=S#DH{)*q4C1k8Sh!UP0PJMFoo-XZBo#9{i9!x7GC{r z^6WD$pP(7F$17te5^=cxN{*0?iar-;_>xx=*Vrfezw3$2b; zRYLopfIhwgyynuz_-{npH|#QH;X|fnGG*s8-d7rc&|N>b z4akme>YMd&wB@Vt+&Morg_FRsV47SXty&J=zt(EX{u-PB)54$CMI--vtBL&Jd6Nn; z4q%%4*4k)UJMI4ZfGNA1aRAf8%!i`w7i^{v2TjWw;0H_#KlIIL%hS6}`&T+l`zCk} zm`465W7`Yf=eC)`7vK?KS~U~Ajox9(Zt5`gCEx>?R^7WcTK|iuOkviGrfe-Z2c|9E z4bj4n?>1%gUN)(B;1OWj@=te0TW0Jskr#eyS{^|@0n^mktD}WygSWqU6&|4tVA_7{ zp=j!sU8a30a%UxS0+>dA`LEH)9a~KML%@C&Z3w1iHPOh)=S<;W{KAxdGG<{~^+aPd zlJ%Hr8S|1U`yFE&4yMTgx$CacdS_gp7dz1d`^k~yaasQT(a7sh znMlEYQ^Ffn(g#Lk}mge=*vZ_Z+ zr1XcTy&7HsNA2f494$M6j7fBuvX6sba8!Tw#%Scn@bJ$LnZgN_1xKmaz0m#R$e~wE zSsSndNA*|V6^(qO*+l;Gd#13v)8Z&{VQsYPKen03B=p7Kz}MiYY;s*R zxurf@UyBa;?N3bmKNyRnvPbWYw!hwN%Kq$orv9n8OZO@G<3rDwvhxm@)SL7L9L1sg z1axoZNw+6Y4iCmh?058~>7i)-wckZ%95RtjM~rk~%Psds%U=AJN&W6clfp-+vp}jI z*ch$cr(C#OW8R0Rtx+Yqm_q2(WylmRP{;r9z9@9Q+Z8UNfc-zc4zV)Vwuuf8T z!8fDz_dH?hSNy^hKHO^}tm&0)xI0>Z%X21Dh{(nMI(Yrhv=_@O2f`DME)Jm;6_ zCh~pq{%F<1TTG<)N2cn9q>1DKtADLSH#}idpLyM+{;JGw!1FEo_9}e;SC5;j z$6qt;J&YB2M((ePw%>{lxc|o{66>_^EL@EY&x23@?j=)rNwu~;90gF zdH91z(KA0ck^Gp2XXFZWnRAz_ai#9*VYHz1tM# z{n!+aIbq>hwxTiGzV1;|w(NV@OnnxfsflZ&E&upkQ+DwI6Zy^Y)8MH&jO0XNhlg0h1!^DmLj{P}r72CLDJ2xVa=0?hA*Yn70*Yn6fWjypsnZk34W2D^F z^Br4u+J)|XDIb4hzQcSCTKCr$Gof9LQTjt`&RSz01?`4_PY8Hq0Xwaag=#{xtgknm zZT-XkJZr~Ecm3*E-C6Gbi2tGeXcJDGU&YQR?&HD?yB}2d+$D0|-+Hfc#d3*>aq^CJ z;KvT1EN-amt9~HtggbO*cPsg|R;9HzKkwPDeVg{lmiT_kz#P_}&nE0X2+x;YH^KF9 z(;j}{#_&n*cq3hOvSeNC{Mqzzw(U<_A#pm$)Ht#>_6q0ylfRO@r{yakA2M3;r?C#s z^M8f&^6?*Q&Z@qaOm?1*9p-%p@0qJBmP7AD`MiHUCwz0o?PA4-;FWv!eD8r?eNmC?-E0_wScGTw?DHY*Ks)WtI2QOXvrBri*?Z z=Jzh}*G=6c#imDw#->wu{4)Bfeo=qI8(-TDcYG{V%1>Z%?~f}^{Yl!_{U3^n8FZFs zcW59ky}QKb=>!IyLt#K$qO;@45n`j;#=H19#k~>aN&POA9(x)Wr%G&$cIg!QdLrb; zXoHJX+X%QIPm=m#)Ro2s{YbTyz{4f|-6u-=o4`j4@I6J$f6LxA8wArD@UbNr&mW%9 z7;om>8fYt5dv!Q#J4lO3=uf_)lt+I}qn)Rw@o>W%yf%CI(Od=bSZ*s53n< z?Z28eI`zL4+*d#YN#Irut}lUZv>qP&F|Y*An|Rj%|E7TDD&(=fmy5k6tHy@ca-Ud3 z0q>IR5v;JZ=*5ox7#v>;j;UX`QoRMlImW?H@Jz@w?^3tg@1)Fo@-BHgg=gp?1}(&B zOYOuZS;E^CmEOYgr@ zdC^wgS(dh9Px@mTK}VFjW3nXlgxouL&^t?rNnU~sX><0zR;j(}PPjqkwf>vwmDTz9e%bwjvP&tul(I>$ z?0(7~Mz0;A-q_=e2|OweSGbHnUSi{}{QZj-4;r)bfrsM-Bj}CfxBw$T(+c#dQr6#rk*8<8`W6N5QoI^i0(*Ox;ud%Y z*+8s#M#nxUV<&nZ`#*!b6f^C9lp=KJX4&vhhV-227pz(x;(Iu`QDkMI$v5lRg zZP7+udEdKPZmebun8=nEjCD>yCo$nMbg1fd?AZ#;AJN^N*kqg&-BF1xUgWSRjNTij$MoGr!qUBp-S%9Q~s{3uRPI48QuR$ z|7K}zPkC~P*@Wk2RXW8_=)Gt#hkZujOy0$AdxAOHtOEEW1sYe-GnZ9fxr+Rm z%L=aaZ3a$=yxfkBG3lN5)@fgQaO~2HK8?6E;K#dru<_#KHLsLh5KIQq%6t6w>0`Jv z`%b$bA?(IK=5XiZ@$l*KkFf)m4%WvrnHTQTndrmIwo|7*v_n2d`TJAkNj>S>+ZEvf z`5-wV`&)W6Ru{3dt`+%~+{Kvjw_Lb1!a zpO3h|i9=Ffa=)MHmA~T&t$pYIjB~fBzk>U-MT;fKWX1eSPM}Y@ld5`M*yA#8!ZxnE$tev}iYj8>C@r&UN(IU2P$6|P+8X7(lc5d7n?%N%w4Cgb<+Rq)1 z*vZG9=iH?!9&hMd4A}ZMT?M*CZ7GJiSa9cAbC-o01MrUVUUV3QujOUM--TWHpGKcU zWEppM*}L6`qsMZ-QQrQ!_M3Y@;*ng@3&PUJA4W;2m;q|&pFg6!iJ0H9I zdRGpI&W2`lJ-euGgnJa5-TMz^hb6DV#vxzlWv;DPi_K6}WyAV6*GVHu7O5UF@!!JjE*#VLx%<(36Qiu3~ z{|7R&ou|ZCikl$MCw0G}AA^w>#@E8{dh+^b*5{%-j@J!;cHoIp4;Giwck(2s>3&9c z9+rl~r7j%m&H)ZHL+%|mz#w`42yh@zlKON9W%7J%LHZM$1{`LVu*XsJd+q&k&!ov^ zK2`(W`Fr)1x0XCH>~G;XgS_gG^h+l+nFlO*pZ2xozh7Tl*uVeKw^!WXRoH;CDP<$R zpF69Iuw%4;b`$)fe!Kn3-6^>d?3d2*58>Mk(bs%pK1tKhgKZ4AAL_#@Ynx`+`^eR= zDs0m&*rv0wYgaiL4GCZ~hdTXzQTkm1Y-pFc2C&6{y$BzwXhX4)TLOD<7PFUjN)~5Q zu#O-ZwU|_Q_iaLk+>8vV;`=t_$JH6mCznj%UNGc9H)l6=BfGkxxmEmLO#Mr!f2)(# zpf=kG{F$m^beQ|ii# z86(`M8owcAW00_$?cJhEH6D#y={D@$?VO{y9r%jB9_78#dSrDAe2qfjmhT!3(q%_h>mSSGgxZF+&<6 z|CaXOHw}4Z=LBqT&fQAe-obm!pLa6tJ?8n`;g{>3@guvZ!qRdvXY*rAwYj{P%lr8G zn>NH9=L*SJ(OU3Z2zw~l-`4lbi(Y?6vMc=iX}gf0UC7ifY>O`BNf&+4IR#*^+da>swqSeVbq#tP7;*PkTyYfda$??gunH-d-!l$+sC zeb;$hnzP6jjG?1t!^EiHr)lM>@ZR}t?p2$CKGd@3F-veBp&u@NoZdhB)!23B?@s0gN#+F!%@5MO^KT%6uFWXAx1 z>Rick?CU1%YQ^$RolrCD@C(itFM&U>JDyoO`tInoM_SBbCu?~HHu&`H;@jq3y*kPn z*~_8*8>e4TJS+EA=Zg+^^(v2eQE8kzmbk~~wz=C@M{QaCChy^&IA7e%^XJGnQvElN zT622+-1#-Ae&!CUfBRIge*ISc^nEkW%mXHt=Q+oazwWpuy5rK>EwtNj$F*#m*ksUMfXhrrXq z*KZq`Zl6lqT`AkPh3$kPu$}J0HV>Lq|2)|CVpHEZmApP|Yr(@*@(Q-1Nh^1uLE%_! z3dcI#cJAo5YuDB3Yuax@KR;;Seoo)g{J_~E!TlfFJJmUtK9xHCcOt8056A~I0ldV# zbp-4!wQ1$^z@6K!pScM;Is(pgwqgv}B};+fTxN#6Lx1-7@LurNGv~>_I&@CmG>jj| zl~E(jsofY;)%6Ja> zi2Qag$ZpWxLe}mdxvB^Wz&B?{c7$Wq+ii!&*#AB4dC*6=Hv4R z=s8h@Y=^!_lTK&lOLG>fQRsT+8yRBcpRX=?{ zO}1-X$aZ~`Y^U9RJ1%7VPGtMF$ad?H424 z_5L*3u73D!1Jj+z_G^*t$}8DE6L~!dw#aM2R9cE7Dc_3w|JI|^G<~Ay zhx#LXpv!LPvI{w@SglUzG6`M!zDbCDeJy8_)L?H0`!64%Y-!DZ>t&yj%HQMKQ1YV> z_N5K=1xb#UK$A+RAPZMv<4-w0r(qS(3E)sZc2#dkb`3Hj2~5-!!+} zkKMT6uEj+f_6(6b?+3qYhv4^Sdw=%8c^JZ@a2rRb2k|R^GjK}JX)H{^gX<4DVz_jf{g1CR2*$4fb@WaxMN ze6Ib#ciKpQzrZU`e_Vew-@&E6>uvz`C58TwEub^SRCemv;#u4&&^T?ZGwbll@E7wr zD-8S6eV6UNtL^6N?FQG%$ zfX6!c^LD4d^UL6}8u;G|{FgiZv8ALFff?tCTO53exG#8UHvBaC`0R${a?Opxy%pG2 zWxVgYy_oas(AC+pIqG{q&m5%N(@k5n-hj^XX~VZQ65=s z#;)m|ejaDA@jG|in%=u;CpW|ygy_N;x=;3-^jr_Jr3=~O*DXGc-NZNOB%gcIWqaDV z4`_)ss1EUm=r$e>btIs(l9RP-6UaoqHE3^pyw0P&H6HEhw`h;w3HCCjY3nABwu0Y* zN%B^YHkS_boiQe>z3*QRd>3un`k_te(9-q|9&OUc&Y5m}!VYw55B9|o`aAvRDOdK) zb?r;tSF{X$c@$Xo0=sL+H8k+waV_@*=v@2kch>5R`i7&lS!g1v_}0BQ%-t7m?-9C!JitKZgwJd6TOaun{R-uDJQ86Y zhqBnpv$}GNpV&X;g$>~F*nZs;z@6e+&yj3hl3nw_DEL5hF?c=Yy1u>mNhAx;Y;U^x zf;3?FNe}VKo!Q1t*MUtZc(`X6x%b)o&(c5c`TBmUaSz9r@1;XO?D410BX`fs9yq_m zt~pL)JptWU$-n#*O69ANO`vou^MIfyWcPxE+Tym&s;+iPuQ!NT)f*twf~4##O_ zhRLILq#u>0*Odcx$aZc)hqYVVIkTYySXtYdJ`Iw0^yjqmvP&H+?_MN!?A`I_r{!G& znbC7A@($V7g>2J)qt0^bldKRATtBkS9J>i#3_DMSCg5i+`g(NVSGF5$0BaA27y~eD z6kKB1ZSoB#UaXHUdU?mNdG^A4I%jM0=Gy3%?9IwEQ?^8~p3OsSI<+6awV1O(`*w$f zk8&3u3Et&mi!c!xWCQBG&kMe+jUgxF@U>l!<-1*vz24Q@QJCPYF z#?XZ=(G6^RfQQ-+GmaGF*aolc=l=kFqqLjyI{V1C!8E6H^|9NwzHg`P7gjFqdxW+n zgDxk((k1A&{ph?U$FFYK&vVh()xDhaY2!>|=$|h1+CJ&GOP$kTE*UC$K1KQs*|>>$ z?p^psmM|Y}XO2t%J64}uy>^r{s-YU4zew{@6G0YwmqP-kcO2raCo7cV5bV zrl6n1i(d(j%|H9U5}wLtKKcSYRe3>H!$EjTe0C4-Ub1{PreT}UXWkt3{n&~Hs>k~a z+8Z;7nGM<-vM*$7$i|Spar8cX5e=>lB3ncDh;MsHE)3_FjDdggVFW(h1|RN+4}q2C zLv+dgEtU@>X+G?N50}7)!{zb$a4LMb4L&4~<-=e-n}_g~+E0CXc>0oD9!f`&kC~ji zt8}VIM^imI>c$Q@1ub2NJm{LwdXe}V+Lo;q;*L*j7du}m8hdB&Kaxir1TDC>B?Cg{_lu$-bJ64Ui}b%}S3E+S5F>9J$#{%&dG)VN%T@O5jJ| zM$3oy@>!G8`9ywwgX)-1Uv2&2hEDpR`9vi)Vgh*{qf8HNaF2S&-Hy|dg^cN*>-0}0 z?Lr>*gtI!P;}42(&!hJB*cdSQ%i2A+GJfnB!OqHGWR9JCc<)o!BY()-4Sy?75Aex8 z&xMZ@0v>Z++57@$v&#OIerScB5;xIbT)FpwZAQB;S+#88 zl~?nRU3yS`C+>oCZk^ui@KM$R2j&g0YAkuc;@^;Yn)_SY5RatKu5{O$^xpk8a2}}U z9lrd{NB*8VHhaKO79(e-s<)4cSxhn&xCj;G>{#QgCR}eJ|7CFX%oFuZjoszG9T?cac34ujD;E zr1$wcpDNeUv-KsoJmKwogctnx${UQGM?OANseO;ol;SA#UC;hLbj=Cn1JayRYkT^R z?PcNP(vIs76K`2NsepXB@T!+Lm`5=EK);8~+k1rT$0Ix5Kvtd+-;bA(r?~$i4*vrf?kfJ=9Qwt5#pT?&tTo?PO8dLH*SP1c(*74|b3bj$*S~+Sd!OQ7Wad5_LmG+R{=BnWn(qC z_f+-7lcl!KSTA=4!;_jXi~o;v_voTPDfQWtlDYtE4B0QQ4mIchL0$(N+w7$dkO#+Z z;D`*+-ZmGGBixPBmNyVX&7H}e#7uW`Z*nI%J`Ik!E*!&?fg^V;3yy+e>OffI@MOmj zIFc_(y)o*HbpuCuJAsU_@msW!IshEc2aXpG565C`v7vArwjRn?Ic{vXWKoJbTc88} zA1M5=^OOsN5%wokdNAPL?iBG3Demn)ZS3c|V{c=g+r=H<>9Mz+VeI77UEne58@A7F zjC~AaA3yxq_ri-q$1c3Y{x5TH171~iC4QfCZ@v>qG6BLzhY%9J1d9C8Vr1UoCKpA( zmd;>@w#+kt0ny?N_Q4t2ArK%~EY}t(wzQuAzkpF`a&?#%XK1hU4qy<}sHoJ^>id*? zb8iwLKnMvWCs^|S);{OloO~(j^m$*NXR~w8-DmH$*Is+Awbx#2Z~vHX8sb^aA3G19 zVcg;6bp>udAv%r|$KDOEd?)WEMs$>=?<#&Cz3z|mbNRc#i!6EBi+#kQr2%|(ycQno zr6xA7|V1u`YRz6+6fMg3JZW_wO)pyXIpLzD60j&pb?h;g|iY z&e&nUS>FZzymR{X{o4!fwkSSkujTkI!aeA94xUca9y&$c8R|pk#E?Dp_HW=NZc}&g zQXp}=@YEjs6u!^^O*fwQcgO8gCLerBITg1{ohoh@JgB%`z8ROpx{U8s+%Dfr+-~?o zuR4EFc(#rm%^kNZYfy>Vm3lE4SZll+;z$CF9b@m?az<+n&rz!I_uCL|x zBeQdT=J0;}*TlY;iXHn#=7_j0O4eUdbf<x2iz5 zDo3AMk3O}IwewmFm-&AIUxtT<*P=76gLkd>S@SK6_o8E!^S*-j+pPEdGI>9cE`>~U zFfMk%!3dv5IDoy?70vZU6vz!e_xjN{<@wJv`MJv1$T9G-0&DNB) zfxFZ-$a*2W z?|NabN9{8xeWYR_eZ)EsK+X`3<#0b3J$I*Gwd^#+UEi6MULL@mZN+p>)^0I zOX=<50?v1!y}FYme)Hi&TFmby)Kgb$`HV(+zXH2d;b`R23E(4EFU+|R;v;S0VIY0N z!h>2X5y#&^j7tMC^x~uNJ%Q8F?~~1M>O$D-YMuw;(CRyqtWC@1G5 zgsD%?q=?iI=Wv4ez#5C=Jx`@m7mY8za&sN&&!Z&p*arv@dIuh3} zPM^Y2D?T~QIT#V(sC!vg^{!x#-RkcEYr{$_4qo;5I=;>o#Qn5d{T1Jg!*+igt`{># ziA^=w@9NuiGaG$3c82nY-2F{-t!L;L<)YLXroJ#|Uqrw`-OF}=&(Pmi;wakt#>;lm zPIq4u>8s_3rTQv90~K~(<=hY2uRCb>mGM57puMyb8|JI%<;?3RkHcf+j#RmWEK78B zWS7KvGl6XWBQT4tQnQuh2BKBPbB7P6*tV*Awj z9*5}PLA!s<)q40y!-vI+Ux^)1{13(VAVxh>M?H0|8YA~>YA-!l=rdmfX7-JqoTOX# ze{uJhg83|bv9ZYwb4tH3H#QZUXW@y&5LKUNpS6iTorl*pq3fMHEik7lTsrrM3qBi> zcW2>y=T2L2I=GU%;~MSn&Qiy+DewX4OmGvWtla4n<=f~Ca=wqwgsx{X9=#|Mah)}&`kOXXz4W!7eliCcCu^L~F*n4{*+hPUbdkR=kvEgvaJkzMpOresRQl)E z73EpxkH~^JPX@+kY&}r;@2JPOyw_4XtEuKU*tk7eP2VRU_0uiywUy4Q{Xd%QlsCvD3e5tk(A1v__^8NowwD!$}SI8Q4KW)i6 zR_wR#J&#}5duK9V0(>Jm`vFZp_>#aPcxp@b?R@H)0eCBSEv@JGxGic?n%T&6<6iE9 zT#%;jMwB}0Xn*XB9fum$rQ)ZOihU&&Jx^0H`*K%q33v%Fm~R#%BLs($)$=Sp5ZuL< z&a?RFx_S7*&4+(-w^g<56{MLXz!~N3d2ji0MyMycknfo59+543}$S7r^)ETC({$OidG>_lr<4-f+Jg3GN*`OykHDZU$<1VqijAI=* zb!>1_N0{-^!q%N#YCj0P#@BiBo6ovG>nL%0s_&KmSO2!N%Ix^qE4$n*@JQL%407re zx|8qs(f`c`@sIGl+2G*?Y%vkB-_DqC<~!pJk5jfBfo0ZwwXU!E8RcfC^?wEk-$rLL zPJH)?V@#PC^~8WL3~Ww2R^N*H@0;J%w`pl+ePz+k`U#8yv^b7_J>weFhH3MWqn;+t zzrC++a+*4CqJH7Wj45TJ)ETzxbKt38$k#wy#&VPO+h+FIRawS1!WifCz7AZ=TqBkmd4>#T?h7B2_y}iC$?y5Z%!;mz z-W-pU6PtijrZ+!w-hY;FAG715M5caHtY5yC*dsnF|DP;>inhwz`ybP2R!@2@5PH3R zXKa);w}dBeagA$z!F=;D<65(oam`Cp_9dC8u?49vUBluzYOYcyN}XZ5J~gfj7^6}1 z&HB9g=J%*y^uNPO|9kA|Gw|8Hw*DvbN$?e)pGPdcSf1s*q~eu~;i^=#t#W$*{o@>= z9=teL=yv+f`b=_o+CJpZGw4y3>=&!pf0^sctadgpbLRTg{_8I2u3P#QO&8ov<$N*n zboxjAVk?(9wTHdHnt$bt5@;!wEc{S-Hn9ocm2XSA~AEgaol9+OEs^o@aBaF~a6j;Po@rgWzGSasgcnE`oFzrg4GB4CT z)9iJP;Mo2<544BPc79Ldd()`HclKI3yTIkp=;ry*=n|pPasBtN zw7Y+5ebSl=jgH${-$c$h?HdD)7DA&FT{P;m+Btd`b*}+_%874XjJa4Zv2 zPmnrnnG#-O%W~wXlsgRmD@(2Tn0m%;kc$R{?>Tf3b=N~XhoR-vOg+s;gz%9cUhN*@7!sn`4WH$lJX?w?4%l<7ggv?u-eB>FwdK4M#Ce*a_Z?H*f2 zyNyD-`8#80QmyrBofqpe`wKrDf6iAv`z2+kD+(UNS$H3 zK1J_-==~J*e)?0=`zGt`Bc(IJmwV_;Ve2<+VK22+4zP#GSx@nP3J*OgeI2ngcEZ8W z0DF|2PZa;IM!sQ>@?~=7o#3qSRV9vI~x7%^H#X}DmXeM{mtGPJ0Lt|fW5~8*Ec~a&)#FDgVOKDwINc-P zaF*Ea0cdWI&0}YSU&F$w(gS7NpGM3z%7I4OYpf#K8yKRgY{u9x1#-H{Jz~lYk(OI*_wh8V$O_fs_|B6&4H)Q;y zGY1%d%0#I%Y}Xf^$=H{JlZtulEn8=6>`}JStxxBn-|uBUiET7~ju|khc@<9Y9{Z)e z_>Iq^i_J3j{MLKy?-g4v_6=h1Kl|91G8WiHq<&}Y)j6e~H1>S+iDOTh9%D~i(oXNO zSF{98;RpLJzJPI^P54Q1Kl_XFJ-;cv?&H=a%lnPxy}55A(Aj5Q4}G3*KhHYs^R)YU zzWqEfAN`c$D>PDx|J-AoS?a`Btc7M|T^n5o4KerJF&Sd(?Jq7vY+%dyPVzY)l?1ka zRJ?2Jllr@PtlKU!S7XSw$Jn2c_0DtDDd&}B_oB^xpK{GCb-2$w5t#3^VHX(l`F$UK zlQUHWe3D5C?+Y(Yn8OF>911Y2E8pa9YQjq-3vU z;|Xi%)YQ?Rz47DbPvldMjl_~Wu_497^}s3F^WvRzR))q|8N@#3y33UePYCR_%Q@d_ z!@YqY@Xk3W%bDx@n9ux;ows`qThDU0x#cJI>Atb_@a{USXQ!@DYS+T4f(4km&s-JT zp0mH;*rxv{>ayy!YzPALC)H_{cVeOhCTlG!Jr zT=BDS^C$M%&-KDbDpRqE9?)bsr}qa4LwKO88fuL`?-~te|`Fm;6w@Vpz@Y_MkDgFb2ND~FZ7^4Qa|2Hk7xD^84x z`i8Ql@DlOqmc9Ha-wVGb{m9GOR{AH;z4`AL%0d=OUXwpn+>cz2kDu69s9*R}mp`%3 zSxley+ureb!c+eacqDi8+!gR#_UK=dzRh#-T)A^VbmpbpLl8T(=jn3RH^m|!C?_`6 z@)WIwJ(c?^yxNz_eZH1^?ceIx`+il9-Zuzc+}-zmpR(^(jH4aPHvmqSf66-D@Z{g@ z8LakLNURdFQk^Hg93FqDAAVjf{G4&l!%o2>6p`#$j~d_dwPW#3M0E2<87 ztJEiVu1lT|tqG0D-Y<6_D7hxIZp}?A)=|njej-u!2IRXQzuSHr&K#C=T;(i<4=mWN z^UZ3K)qI{u4160G(e>UFjBv(Scs6GaM+Z3Hu+()P*$noLDObP z%U>qX@|XEv!e8_Ijt73&;)5NF<`*TRBdz4z2k{@T!#6v^Z#`hcA3K6Sb{+oS(OGlU zn8fh&PGnBYy-97Q1K4S7|6gU-6dz#9i4U;&*#hWOkxA%U_@_pxU-p8xa-Oui-L}#J zY$CQltmxqp{8uBCi{Qf=p`J15p%Hw@rGAIz#iu-iU#s$q$5&N;OCp}_e)gT~@Ubps zPdJLdv9#S*I)F{3(uyxocD(CeGe)@>aRF`6ZNK#9x62cQ5T#61{Kkb}S6J;!pYNy7 zE7*T1W&c5b6QAvHK_2HidYP{Y%vVc)5g*~U(gD`{(b3(0=EMs`DHp}(RoYQ~#ur-Q zLfRWcdxf-zEm^h4Z{eEJecL-^!CEKq*zihu^^Cu-Q=izg#BW&M%ey-8>}Sp>n+xwn zwuyXv;V+T9(EUor<}lBznHRFp-`n{&=Tkd_HEMs z7_X-MtP9cKmWgc}SS&gjz>ZR3jfdhh_(Ip0;%h{FNj_uG;lzfD0POZ&%ue(-3~HN#Gf<}qp(l#N*iwb1b;X%DBoq@ZkI&AHzf4W0)cFf5@26G=|vL6}(cPJ%)bHfRHg9)6W=2C|5u~ z3S|uWwtEb{O&WXU&KNpzGhxP2zLB!ysB@gl@4nJCj#6g<<4BtpJjg-mcf20?JG#6` zM?X<>u3`YYb=305S7S`9NQ`nZ;xW`5k$ro?XN}F{;5&j>vGpRq?o;jYyS(cmSN!=( zevOiKs@FPG06H|CwWyNWN~igB_~+r>opkb^V}KChUiIaptd-5x?l!*dg~p z-`0IcRxD~7G^O-nm#^_S&OlEhNnE7T%ZQ6yiVojjT;vtxsr1d=r;{!j>#WxvB7WW- zPw4JPZ@3+pXFsB~Y!-OY$waSC?*XgjH|u?H`5iIv@EAGgzrTU4V`quxt(I>m6USNn zg`RPoEdnoe9fvpBXP)i{-q)c&xBlq%r&l-^`DE*jJ@mg`bzgAR&3E1Y(Fz~k=XHvI zOIMf95q}=;%-&Qa^CMhpja`^|5^?=){hn7X=Npt_D_WuHwTTa|V9b`^k@#RfdEp&` zhuL>%E$QGOlD<*xPxjW2;y6G@?V+DmSmy^#f{)$E{EPS+JF*_1EAYA;-8xKsf;@M1 zr2}&YDV3B)N+zXL$(TmVm;EX_Th27u^rI;BtL_~xg3s(8}5EfOuPIpW8m-|_gKq% zD@#I~!_@?{4rK z2ru)4vIL`(b=i@!V@7zCru?@@(#BBQ$f5o$+WA@85rY6!^Jit6VdiS)cQ+&$T;fiC z%-|4C^EYKl1`3t=eA#hB&W1`VOEem0X{J{8sv&15me3C$brw_Scgs9RY1u2r-LyN0 zHe;EZIfruM6Hvl;D>ft=D>uAq2>$l!S}iRr^h97i2Y(x{Ck4-C`tYsgY(hOPbRN4+6TE9abx5Bs zj`EqSspn$41=~?g4;AR%(B0Iv%B~9^;@Vq)P0p4IY+Sr|L-v#rRG3E9+VNbACe8crB}Qt~R*yK`oM&_!&7s?qQJj2Jwz`rE6 zob#8=v7ER5rvlH;F26_VGit6vi#_Hln0dZ-b4X|(CN37Qc+$-G^rc#=0%q9uf);GmFid(RCScNz0Rv@hfRHs3h- zeh5A!b7L=acRsmwVhox zn(F5#^@)3vnx55?I_rU#wiJx`LjGuO*|HzqQ|9|o4gK}fP88bk(hmGKByqetV=Zlo zUZfCd|L4Z%Sa6B2NbQPEo`BrFSPwp)XKp8hpR?rWz}GE*@)(oh7gNCZR2$dQx7E5Q zm;eol+&QkL1mK53(c%2i*MlVPw+MmPr|;I20u{P9nBscJfiJZWGjA?Nx*wn*MrDG#jjq_Gx$C&cog2|rS4-|x~c=X19Gn8M9#*32$~Z*#GkLT z#2!n7{v#zb{oR`_)PQeuux0q9abq{d+0~oC_H`d5Aw5}mDgU*%j5{xkVWD5G_S@g*Vd0xif zvd4IYzmM^^(0vBFAbMTsE_k@m_gr+G^PbG$i^w{mtGD%>Km>X?>d6Rk7L$?}PPr45 zEzyPqZ}E-{U4Xwop$}Iya|yoxBJ_L-nRAqHOEjzgMrhsA6ZP7Ap+A`~Z$o>T;O{cD zH~ph@V=cMpng8g~gTNM-H$sE?9#7~Q;C#%MmlJ5eQ5zf(-B9G=IcUSJBVJHCVn*l! z{SY1T3DFVJC-(u<{mg{|>Z;e$Y}u!yAL>d!e5>qr;}Wv(R^a(I`8L{_0z7Y^BRX>} zpZ0X%*}}Z=OFgtvk4^JAZ4kOZO0W_A@GN>E=jDdvY^!q%Tsq=hOGng@ljvefx2vR_ z$gg_z!~M2?_!>I>dGz=U;P^*!5{XqO00+5IfV;%qw_I3OtZ| z;NZ98v~=WPW+yVEQ{o0w^c2ZIz`h3WpSXRK##$X+Ow;x4`*K2n%#k_FbFpFe_>K1>TT4kX_)7tNshB$9 zk+OIDiSkY9tHM8MQ}~DQrUdwsS9sEJ?KdAQpC0BsIp8jM&{rh#wQz;6NaX9dWxk^E zfA1@r@O59&#QS_jlfLRJy5(M9(d2u4MN{VZil+K}MPK|YU(vKXd_}k3<|~?htFLIr z6kpM8oTq+!p|9vmV|+z3zu+sngR|v}hWLu^%<>fhXAyj^2sn#?vnYQ|LLlGg4dgHL z1oAhH4CL<}5y(F>JdhvG4JiKV9afz`W+-KbP$q{m*_6qmOeSRp2Ndu14x$Y5z?V*$ zG|Hq>CWSJ|lt~H*UsiF4%)|UK+y}+H%=eLlXKA;$t{~&B_;rnCuQ@kD*6-Qf{JNa_ zD#S)3_L)Ido(x}A!jNM2BQuESAH+Mc*NFWlg(UWyBvLZROl>L>nhY0sm7PKTT`Be% zpIPUA$KMg&1BPX5kY_1_?MmK-3;4z^A7(Czy$aoDr}#fw_4B(^7P`;NuQnW)>zZcQCBHj$F?aHYTXiWIcwfiw*0+}3Ou;d^A2{H>dF;K5-7Ma3`QB+; z`c&Bu9LT0P+zuS@^qzeJKfUYf4?oDYK6N1r#5VM);X)?%sSCcIH^)_%jN8q?g1IP5a&TjogKR=pcPPM_?titf6% zs^0i=m7JC0&C;q8hwD|A&1_+ZvtR7ytGD!HAG2)o-S)A_A`6Z#Z1Il0E>d98Sp=Oy z^ap{{vFmnqd8@*U;KjBrSI)wW+vJgT&K^e^{p_~M&r|SyUYq>euKuX~1!aHk_MdY1 zp*PG9yt5hS%>&xwE#D<&j|T^R?D2g2|7UyrB!!Re`wk-TDEGK2yDM`fZj*;!Id~D7 zZT)W1Xq5Ai2eipAv*=sSD)06!vG0iOwU6=##>}$MTK-@2IIF5Z|F6hF?DF6j8N-O>d39Q-$G@jBU; z5c(B5v3|4c<2G6>!53m z*a@k>W20`Etm8U2dX3H*(9lNKR>d$<8R838ec1?Ep&jdmDd6h{r%zs;{FrgI zOP&*rtEVJ?)wp_6Gv6=!z_?l|`AFmHe$D)6>b|;1^5e!;Lo@$l1JAo9=Xsali02)W z^Bh2L2LHEX8@+l)GxJ&7zOZFzAd9tI*2XuD%N3ls?-JN}n1?*)s9n{RbSO+a& zU*vA~NE)_r)<{{d(Xd`K+sjTH?dur3@?@iZEx0K^VRWwM4$zIshMbqbcH;@7wN!AM zY`nPPgmG~xcZKtJ3V)wnBDP_^TP%AfC)8S4)|eCY!J%{dkdW+$+~OH-uYpIfN0Jq6 zUc=e_*i|nh16z>8S*(%U&=-G9zLRu~wbxUgVS#IBprwUA^LL)%YM-Q$^;)VYHMCdN znHGA&Gg#HzoFnVj%wTgSwruo}W^Bfn(IHyUm89;LJfGQyJ~!PnB-Dm3b`?JTlxJw@ zD(zgG<}?38+CtYp%Gy-+Vj5YWYqT+m{hIBponNrqnTCBs#;Ik)J4PG(S~5P@HVid7 zHoR|`j7$555k|v?KNvsQk{J-2d-I0ZjAlJIcw8G68s;4mno0Y&kveF1x`#D`HYgZj z-CIMOf~N-hwv9F?(Wcl2SSJTAG|AZ>8NmyUKJ#L$T6>2sHe-Xnu51ILOYQX6TWr3q zvk%oppVN!!KYix=w&Y^zbD%9sTq%8HJsaAjYuK5SuvJ_Als-yZQ|Q}8=E2%ud&#*SKJy_xHF!S29@=hu z4{aCy+9P{t^vj@M`|W;J(ys${zi6X5sQMLX-sUsGS1=#DgY;zuZ9Rq!NMA~{oZz`7VoMnrI=__utg`!4N`Kbc{aH&T3B=#b!k86WE zDfht<_VOCF@$BU#S1TJIwpCr1XTAEU=D}`1UfJzm!It6YZ?V(VVCP@K-`Lx$*+1C+ z7=MeMUv%T}TuZNad~)QBeR&_9W#w|`YIp&1KDXGi>CCllI)2Nh6P`_u{WUy`ocosL z-nKEEr}?MS6zn`HAG;T*^>f~2i{H`@U%#z?{ZMqmvB-AW%U^-~5!=s7bSa2Gk-@N*N`zYk-r@q*-JDu)7&`NFp)={ z>}iYK32!`YpkMQxYjh%i!uSb?}gjd*$tTAq5fAUW3%irHJBp^1@v)Ce=p~orw9oUd+Ji)WL7vjj*h0zQFk%akog34PcIe=3o-g^4f%I4CpsbH?gTiMSvq46SZL|_baD3v|N0DL@ylu433(iA-_ z@T6y0P{Y0|^YdGJE@iTr#|fbneT1^f9@mBkMFuvqH+q?Q*^=oqhlm_yZniUjfA7f+ znTvd8=O}n5Hs((1HFLSk&pRTpOw)oj*p(Zoe;e&5coRbT*ii5BS~h0kKk4Amq_r^7F_O%Ve;7PwTc5g`wh@Z!N=J2W5vYz-KS+w)oB^cvLey=v{ErW+2Dm zwY!nyg2QisLu5j*fV%IZZjlSf31n(=XoA=BgK+rJ6#6oqKFp*KMZkY2@Ruk)^bUMz zMDTCC*`api;?Lkg+ezK9d*DOf&{*U_6d9NA)zu!6*wKX#$(~Om_-}-to(1ph8HLVO zV6#RBo-c=&!tX`qU4+LrBR76YKU(>&9e&X2$qATinEzfaScfg!OFJSL=FpFEwD$n= zRQPoY56)g=+9|0X}xIls$3!CwBZ6WW(FY zn$~n5KAJfSejV6lEChb{-nbk7LBKy4_;Y}NNDugP@T(DdmKs`Q!!NRVKC)TpN8sN_ z{jX5J?3?$2e+Bf>&*u8fU$94b4qiJ6e4hu`O7B=GG?i`bv%sU(KFcgimPL?d z9@=o=cVu#J{AU3FAmASi{F%T%J&u1zmZgTiV#6=8Y`!ha*dOR2%X-6~tYsm~h9S#_ zBg@h|pCAQE1In@)>_y$AEZgdmWh>pXY?{TR#Q#uumBh#>Syo`>ayFsZHzEh1QQ4oE zMvlE+`LbZIR=zAE%L;fevMi5WWLZHXel1p>}{d@e4k8JhbTJrY&{C!+YuBPqn_w#q$ z4YR?wja`qN?27%is{sLah zFXGeU41K1_@gEqkr**E`P$8S@$Tcnhv%-~Vys#UyxEP(zN8WN-30_R>pOQ;8j_6u88$Wd=vTpH0!!%^c%JRsSgiM^9~DLV?B3>^pd@< z`w!N2rO5e8k!R51>&Vmwc=u!Q@F43tY2S;#fdiZPCI3lp z$7x^sKiO_y{5UGX`KzQP@II0B5J`N{rm}WCK--t`-TEc%AEf=4X#YQGf7q5mffpHn z)>nZSSPRSE{c^6xxnKAJ*UP%A3Q_4D`5Id#Zq4cagvyOO{=W*B# z>t|`^Bgq?-GBd49|$*R~3KC4(*0c z#jYlL@>8A>0a>qaLKhN$i zQ+6|C5H_oz)G?VlM3;P=I{potimY3*(NkOT>k*%x+c*B!_!9Zdjl+yPHvUf8%I@4a z!kDu055~$Z*~({VI<`~nc7a>*^L&CePPR7(zM2y{ND_OQ@KyXggBtBUMn6TjKTCVx zqP-wCDdDTg4Q#7}gU#sPm)Db+lP&9f<`*f`vRK)VlwG8C4Zf4WUV=ZMPCc(GUY&-W z(wd)xf&Ju$-@*e1*S?ExcM9F^ee4ydu~!V=GC1%yc*n*Qc$0O`rCvNhaMP?01=iu< z*nyLr;w6fbBXFZl42{+tL(6ph-p0%9%>!{x=wno}e@KUB4n_Lrmd=vh4a(C7wzP*4RB|cL^ zBNu1*l;3?Z{e|Bu9Y2PTr0Dpf-^&{D7T{|V`v5Rb1xCkK^@v&{9yeH51SVpyI!E0v zfP*iS7La5uG#`I0jwEA^V)+tnQF6etiQQ$}+>-D)wQN#}s~Uo>YKYSB8?jXZ z#|L3-RmZgn*rt-I)tw(ozn5qH05!2yO;EaJosta`l&vbNY*iDKttzH$RTH{xRTFGI z)7Izf(C3ABh;A!+3>hK1d}IgoCi?vZa?$TapBMdJ^m)hT+V zzYCr(>xfd4+mGq<>f|C9oquDcZrT=kHxBs6yZoM#z;hxvP5{56OM6^;wDY}^uU`8; zckZ}!->*9Mzwn1*d<%Y!KNRCz_!9n5jPJOA_Z8KH&+#vC2RFEz@C#p2BY2wltgq-S zIGME9S9ETcR&>k%_7$B650iiDD{5MznNyzf6f7N}yqH$lvf9qcSx9-7zYYzTfKK!@- z3jeJ;@ZY)(|E*i`-ga6hS@ZTDa|JD%vx3cix%D{gs1^=xC$6pKo zEFXI<%X0CvVxM9!zF9}G@rQG4f3585{4w}v`S8zLHkdN_`R>Ix>j=JC;WXP{E0r?% zXZi5YT9!naM9Sa?b_74LF#cGKUBo-GTJ924{#x+Fd>{T=@EY;gs)G;ZZz6{;U-v>`kpzfzGn`r@0ru;d*-x(?RTY~OYv!vGWK`sciu@IVYmMn^xFG-vCH@H+mgEZw$83U zT)?waue&a2UezVPJ7u8(#}_UB8{fw35+5eY_koLfqsq(gPF>Jd-mSKOl-))hzgyqB z{G*s_@wS|Aq0Js}0E6XU<-)7f$@@5-rES3>@8j>JjNN9u4cAzNqvEI6Pk)&As=WN} zz{I?9{Jq?Lb>c%+UGe_8{0D8Brha$of~NC6a`~YN?ELnLb=h*UM_mQf)nWOP#r@EL zyAPgiS?ZKgzcbey+6fB{3Jmc+xW)+ntom%1QQtCO^S1UH-#E>>zJ;g9aqsk>IiL3( z8)nAPJ+|UY*2j0wE~DCoZ}jkal;2!q8r`)B-?{s$8Y{n66+YbUKbJhlQ>D&Rs_Ea( z*Mc74mS5JHT|?sjsgc!IKdu}2;c%bF^$+cQl*f8rV&z@Pq6lRK)(G+`jI5IWU*BcL zxnDnJ=Q;NGi>$mWn%EIu?K2~klW*lt>bSohytIFRJL@jt&+BjZip$@wrN)YB@a?%e8r#e^*?jGymfv+ z_kDV@_bTz@UFGGspJ z?_TTWr`P-ZfELbZlY3t#Ws5x|xsN@Bcy4nkxYnVEa5J>cb65Fr`Y?htk~FHSE80_@ zc6AM_>O#(TmE*@(jtnhFhL+>sXIOK=n-zX9x}Le=O;S9(uEvseH#JA(8+(pKTScyZ z9)G@MrAsJ(KKgjx6?;D~<$oadUir*fZQRWK5x&toCclI+ReX6WtWB^5RLeerV{4}m zw*76WqPOpF6ne|;LvP_`kBYZY>krl;6IhQ-WL+|e^OSDkJf+EFh~LNV_GO;`4S%vr zi#_In4H-uB5|8;+%4g$q*20}}IryKwgiWi>@ZjTyoqD&&9EN}1wQ`S{i+^7GdXM>Q z>{uP#0reZ~SSEKujl{>VbCky%jnChWT#vaI8&;URtM;+xk8n?1O<9%^J*AsR%ib{} z+~4K{7QHOPh(tZ6x9m+LTH!HA;L~QF@tDK0w{_G|7k+IwxbJB+wzM1EFEtv!wj10l zHX0k*4el5ljX&BA?f@H&f7%W11N#U1_(6Gw(OK#-e_#Hl(XrHH{sCVg4$DaX;Am_{LogN{(&(fKLC(_e;+EN_+;v=WoD|xyWO_ z1iso9ddx%MrhS*>;AV&9iAMWm$zLU=TJj{Lo%`VqVFPRD?zBVr+qD~#v;VM1Hy1Nb z*Qhf}ebEKnrA2*_faJ%F$TrCn4Pqk5Uo|3mk|!Av?h%VnUxfR;BKSl^c1fOVM0V?@ zPQ8&GlAoX+a{NCdt0jNUh^%4^%6Tr8oad!7Mm#T(oae=q!-prbNb>iM$U0IYA?}SD=*Lv^|)s4;^$?-?cl=t|7*6QT= zfu4{&+34IRIX;gSlBXD*vm}4b=$t9}>qaNM`A+)K34i`3>-L4v(0$NP1^%DWH6F79 zf6(Y^kLibYqUn;qYRG+lerP9Jqmv&uqK73nmHo*AC2fqu_yC;t>pZEf*fCzDC@6E{Ai-ch^Rcj zEIH4Is7Ia;O3w2E>;+PPP;#F4OS?Q*O3w2hY$EW2u3GwsT|C;Qn?J)Yj!)&UrsH?h zvPSOu+w>#(`(9$pE5>;P(Y5pe{6|-Ll;5eJ`AHnH@;mi|_vp*Ic{h0XgY)P*-JA=~ z{op$~SvT(i-)ASt_w*f^HxIm@I|D2N+iuOA53J`6&HUB|%{aeH;x~^N;T`b6@^m8{ z(9A!U*BUprX=e3?bmM%5*v4y(i{+a6-y7478|%e?wpRHcg?SFI6~CQYqkRqMn(};c zwPt4Ve0dfAPMlwIzEs0+rxw~5pWk%j>JssZtu;Cqi?3_C(Y{DC7x26I-cIvo2A{$< zPJCymm3#Bnde{?OP-1p0DiOccP{+a&(_B(w4)@~gv$(`;FD)@=dhy3uT4LUamY7A} z(V-jI4KG)enD2PA0)I^$=~(QZV@Ua=sia#-caoac7Mo&g7hCAnHO1yHJ=uY)UB%`L zeDkI^Gqg|}5*n-x4$a`)gctQ;q4~s--bY)j@e`8$G3&b$Y`H^&S67#q*VdJY?`!DV zTHq=dcymMT>w!JMv%tO$*mv2m?P4bYuB#oq#hER{}4Gi-R!>>3yD85AZdIyKz1{Yt} z28GyT3uS@}_Vz>HXaDUrZ192ue1Zcl+%x(deuXW`C1xvkmre)1R_+~b;|{{L>~XYl z|KPQP68wb0PaZg#Y>(#za5BTj$uw{>%f`t}aN@UdLK||IP~+?p^Mp4!aKl?-9`hyy z*`E$gVK3qz!NYd!_itn4P8U3YyL<3aYSgmS-pi9^@3a4!P&;FMLf|QQ_fI_8!Jo3v z@H5iWq@R;EleUm{0k`Zsvj0oGYeY?GsWgL?vzxx zX)HE7T8k}OZ!R{?>%|tW(?(}|vCvDPllvU!(EnH2Z)w10E_+5(z`<&0*%_B)Z*piV zunKHD=>L=S+ra_8Y{6mlbvS7RX(VYhNhf8=xbe*zPp0bsR@u8?&ozm@-vSxliL_4I$6-Tw;uzr*f-fd22c`@f6+@3H%D(Et5*|10VL z0lWV}`hUpP|ATh_*V+ANk3sgtojtRMph?*?JHeP_0P9r7O#0u<*k2x(5ZDPGc7caS zi6j3PXyrSk?~?wNw2`!o^oZ;~^9}xl^glD$v;T}ceP=#~lJPN@{dd88y#EvE^9Y(**M4r2L&!1ig`mA|i(?KfzpGf~#(SP9we;ypr2ID`M z{=d$g=obgO>2sxxgFWCNXyaf%I5=qI-~c#yS@wgOZ->AEb|J+JumfGIm3RvH-pCI`J%{(S~0sah<=dp*SlaFE#O7aiU10_Gr z{o4A_&e$oB$=M9m_~xp!wKy-oHgb|Xf&IgjU9Rhd+z&i#XXIpwDSIi=1>#StJ=JxX z_tBx&`w6_CYrlV)_ciwW0^a-W_lJ02X}{0o{cQXFLEcx`??>@|mi_(!?@R6XAC_<@ zkNrN#d%ykuH1B8F@Avb*z_?9UADyZ%3;n}w|HZ)6Sj3)awQS%Xbt-F*vd_w%fMCbM>L zVtq1&b@LB+cab&97g^t)_IFGV8kOtWRgK25rsL&D&Umwz0Omowb?7(0z%u z+O=feoXPsNy^B3S)~p@Z*#i`x|8~|@8{bvytH0iuZQN)@pT{3R{GpuZl3~=HmUCHH z^PZCToWpWbp7E`zmEQ*&btmNcZMEhZBQXMpS<8s8%>l_N7sLlgp7%@6b0xW~PxeU8 zvq3r5(z3pIhWB;5*t=vc`JcdktyI?Ez`Rs9f6cnPV~K9=1@`b_o%I!MF49@&XB*~1 z-3-y^&bc~kjiJ~hbThc|eWPi%ZdQYn^O?H&Jbi3vVogGyFTPA$v{|=8|Y^xBRVo2y(d9m3ZD7NA>8hz%CZNOwKJz57nZ- zj;G%*pkL0xpJpYxzUZ9Nmgsnn&iO<9yPExigJGe|=uEBXmpQVALASh$PWco3%{pF2 zZZ`SMk*t|-ATz_>;nf}JokzXHLpMa%M92KS{EZwnmk3U*IGU@aqGt^aTwPF%kN;40 z&Y$Sp4}*te_zB%b|0f7cwodHm+Y9M;E3qyAJU%V(cl7=Do}AzxfawF$A4x|^uaIg; z?*pIsxdOk!a~gdg4~`emf7W;*d`m)eX@j%8@O#Cl&b{7XjGNJi@s|oVGscv4%=EjHiqqy>-DZ=rz%`n?hzK-O2X4#E$fwP8l+%l2AB`ub=YVAfw|Lpow?BEGmB*|tOqB_#pVa#L2M`2yg~z3 zyzp^Pk~&{1hQE3u{TAK&`=Vzv=VcvyFMWS2zRpU5_LBmq;AOv6>+HsQ8C{2bd(5VwU*<7y51k6A23A=IPr?2mb`fjd_w4(RSz|hVclTTH(7W%?LQ~`D_uce+ zf<4|3VQYDVHe}p;^c}v{yw)Cf=JI9umKt~Hx|O-C`p-DGLECCQ!8rd`=D;55|M1W? z0~*+G>CP^O7_@H}zy^C=d`-=4a zC-l=j?lR^w_U^vR`ubVhz94-+0ZmP$|I+vQ{f+x->AOAd@T|-5YSnk1%))c?`rwTH7|Q+!rzKFWY^GXSKqoRo|Jz zZSXDC_Yax(%wrXo4^3ZVoRw{oF~+_Z>R81(ir7igNh+NiD2gzj}b%0#fQ9*K9N9`wDO zqCKpoH~m0M@BBB?Nz!Ffww~TOgM@!^XB#@&ZTJb}V@{mf(0H8M6U2SsOI{s?#{BpI zKdYXtIJH;#+lfwd}WpG1s~9)vQpLDIhsu8vx|4J5 zR1BQ>GeTDqPbO!V>Wr(3fn!`%44jN>Y0oo(|EI>Rzqq(x=z}}Y=~e{LF6n0qZjEY~eiKV@4x<>}+8|AQjrVh4t-Z){|3MzfNU+|3%j1 z)1b{;p-YL&7usyuMyv~TDRKE-@T>du~XzTj?Rnzw4n zLE$&sko(o7-;%D9hN1t=Bz>Kfg5Dv#8C^KAihAes9H7igr1weJNV#@7S!0=;+kWQ+ z_C{DghFN2xO9qCczv#rodq`eV4k??IMH9lYEMb_)3({LtOlMZfMG3ZI!WL?&bSGWzX~k>IX*ei4lEtO0`CtD z@eU1+Kn9N_jV5U%o#Y`YdBk_Q-dtcA8k93zL=ToVz?;OaWNX=Kzd_c4qBDzqzLogy z{cc!jf2s?PEdG|gsWxEwF|b?%mUdtfyMC)@NU#HWgkyN9lXQa=CPheB(U~Rg?;3G; zjhywd3Rq-KG8tIzMed31pLhdwABmA0s@iy$I#2Y1#lgpmz%>|HWKXVD*7k9DILDPe zrgwqmH0}PL^as)hq(735kes#ADf%j~OaPYi=w9i-BKr5;tQXz{ra|mc4h9x!;}Pm? zbiv}l@dR)PESwLo_QYC%V+MF>1E#Csg|$=Q-`N-XPk87d(yvLsA%#f)O%i=tVsVI9 z0+#GxGO)Y>EN7t)S+_X&k^Qkt?A=Pt(+=vq9PpXwP>OyXSQPEJ;8FXPz|jg!j{=jx zgI)(bIlyDZE&ZDOH>42hze!Hql(Y&I(28gUt_=AWv`x%uUC!bgW5Gy{J!vGMqjF1 ziXK#M>ow?p;R^dby1LwBqwLt|g6bX@DUXgDU1z_a%zM9G9$h)Q)_#wi4Hww&(Wj$p z?DxoB?v=6HMF)kF*9MHVD|F7$O8gD=G1N$xcmZ-h< zp2)XtbN=?!L}Xejw#k&c{`S;)yKOm32oKXA2!sLK;hsCQ#Gi6k)IJVO1 zcmM6F+mL}j=I^KY`%B2e)BN3z4E-I?*9>fn$i@-)>XcOyCUN7hy^B7a5JZN~Ryi}=1F=l>NspRT0` zuxABD#!aG(eDgN>N&6e&OX;5Uz*o^r{sB9skMs@F*GY>>e@FTzvQg{?=$*)QZ!kgT z8N4|~OI2(7RN;r{rf*@tSj`zO!WW+ej%&bhnl;l;fu~v51LLu?JO~^DgTNwi2;8el zBFE&cu59nHU=C}y5u}l%(IkzelaQUthM0v7aVzI-6#|FENsC><+NT?goEW5RHkXJ8 z6*zVRhpgTH1vqvqII;rY1CHldo2AgMz~R6k@CZJH4_<~Zx50z2k~&Bxsgrbrgxpl} z6Wswgauhx!X8n0!Ns;v}JVtCM79SiI$Hy+(Zv&Pe1B*JB%wS)I`%PMyPv9mFkKjXK z5_lZEd>a}1FUZSvr0uF8shMXp268`F1aOm=?M>g z-sLl~e+4h^@R>;iz~kWOk(+==;_3ySgqwgz=%pt-_}d^?6@HLs|6kz8S@Zwcrkl&i zF@+y^_9x-zX5_kspB(O^u=iV$SM`ip{W|yrbku;nnke!Mc{PvmJBPfgWel5E*>Ve6 zC2~t*TrVN3?${^XOq?@vC-`~KvUyzfsw z$$OW4k~q+CC2~vNBQv8*ZMlW4s^5>?VeO^lmB=lTS0cAWUWt7`GQq|`8|iV zTc7w<-m92dU8N$T-i4!>pc9rA7^smE`; zmv~vRVU&^_zjHa;|If9CA1mzuhuWW}AL^`Ha50hf>?Ck0`;lTdNM)>380TchIEnF1 zWNZ@{S1)7g*`$5f@rk$MjqLN1xxb{XAAMtNLUB=@!Ma>4F5)bTqQZ}eo87IM<2s0& z-GzOxjkwtz#LZqNZZ^RDy+GXTHue(F5;t3c9vUNVww$=xFmba>wW2Bi4{@{WiJSdB zakJ})oBb_uvup7YeTTT&HSG7kN!;ve*5a=bH@k|p_%Y&UONpC3Lfq^Ut?2guB5rmm zakIZBZgvTKo-YwMyBIy?--(-D#Gd&J#LX^5NBM=XsB-~(rO!&tDDdwk?spOJ|8L;; z1OHEfe>U(x1^lys|4HDV3H(n0{|w-N9QdaJ|5o6i4E&pbe4 z6YMx%FJ-v5!N*W-V!v9*n81TRQyj3^y%v3j zIAHjq6UQ4_!uO?i`>V)(!~?G;Uq-%$d=okA3l#?pe^+t9>&e5!5sRH|Dc_g#Jce?} zNcH_Ta``?$F5jb5sPEA+)c3o|<$LBJ_m?oIc;EM*yg^lGCk(Fg zz+dDX7w2w^_+1ywuUXDL7d2K4Z63DEFn>qrZ+Cny>n;2D9&y9WCsiKVDzTQzKWB!o zXB?%}rQ$y=`K#89{nf>s>{AzVEicOz&w8_UF|Yg71zqNi`3!Zz6Z+JJe9iNHhPvP@ zed+ePqf_K1 zc)IVL_&oK)U;EULu9BCLpz2q2>82%j-{HyXTf2Qli#dGjzQ;sKB{6`%YwMkEp-2r*-eflT; z4)*h2`VC%JFvfBY;|j*OoH6dV-@V)G^}O^^t>tLCjgJ)V+sn8MW>1Fp?R?&Km2-bo zd0JIBPP+TKFO_~C5S(zXM|lcu)886fCLXf-FY|R%lJ+GP$6cOORd>i|E^*|uzgxyS zvHlYC9i|N9r1rjNKdiO9&iEvtt8V2!%zE(s9OFj%5&NKTY~~(#DKBz8N`2B^_#|@x zeAXYpFZK(*s^`XVFZLI-s>jCYRSDp;p7MR(4=`u?!zXRTdEU{4P45X$gZB)4ce(QY zwa2;_?%j1Q=MM2tQ`a)eOMjJ&Aa=cOhh7z*)8bRiec*##=M|{?fr#6_kvTfP_LXnB zzx2rx?ny8C=*;75z4q)7ClKaOA@zB_De7Q@L|T;`1H7 zEDkfgN@zyT)sc73T{Ox@z&n{Q@v>q!aFtbkcE0B~DJMzViSS$+_hjm0QN|Q1ydgUG0YhXz!9gJh^Oy3OWjTx z3s(C~0_a6(u*bWPf&b5WUPFuD-p^L|74@Uf!`mafkbBG}!MpVRNCrH_zNb#s84}y; z+&>pC2Z#1ubuw=1cjm3oi5kC3OMiECd-Xf>SALhfcw}88?bLaZue*HM*tDYSGwd@$ zx)Q5Y3_s6OW-R<%`2OSYwu0nM@5Lyei9QjTg-vQbiRUQv!d-_?Ze=b+kk?}=C*O+f zjtTAYdl=nG>{n4g`p0a|j8))!E_dJYn?)a9MRRg~#r0O}{1SC

gJ=^u&9=7@+}IuP06N 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

n?o;)}x_QtGUz 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 z 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 ff_aX^j1A3x9;? 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�L+|%A7Gi&x|0(iD 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