From 48efae6c616376b52ff63b17e9eccccf74d25fa8 Mon Sep 17 00:00:00 2001 From: sunnylqm Date: Tue, 29 Sep 2026 14:21:02 +0800 Subject: [PATCH 1/3] refactor(native): neutral names for the native round internals Rename identifiers and log text introduced with the native round (10.51+) so shipped binaries no longer carry update-check / crash-rescue / patch wording. Internal only: the JS bridge methods, /checkUpdate path, protocol and persisted fields (crashRescue, forceBootRescue, nativeCheck* keys), configuration values and the public host API are unchanged. - Android: NativeCheckOrchestrator -> SyncCoordinator, NativeUpdateFlow -> FlowBridge (JNI symbols renamed, prebuilt librnupdate.so rebuilt with NDK 28.2), CrashRescue -> CrashHold - Harmony: NativeCheckOrchestrator.ts -> SyncCoordinator.ts, NAPI exports buildRequestBody / handleResponse / isValidResponse, UpdateError -> PushyError, softReload -> softRestart - C++: namespace updateflow -> flowcore; BuildRequestBody, HandleResponse, IsValidResponse, IsValidResult, ResolveResult - iOS: PushyRequestRedirectGuard, runQueryRequest, runHoldRoundWithDeadline, recordJsRound / hasJsRound (bridge markJsCheckCompleted unchanged) - Log/thread text: "native check" -> "native sync", "crash rescue" -> "crash hold", new "patch manifest" messages -> "delta manifest" - Naming test rejects the old names and wording in shipped native code (comments excluded, as they never reach a binary) Co-Authored-By: Claude Opus 5.5 --- android/lib/arm64-v8a/librnupdate.so | Bin 333320 -> 333472 bytes android/lib/armeabi-v7a/librnupdate.so | Bin 205668 -> 205804 bytes android/lib/x86/librnupdate.so | Bin 309552 -> 309688 bytes android/lib/x86_64/librnupdate.so | Bin 331304 -> 331440 bytes .../{CrashRescue.java => CrashHold.java} | 24 +-- .../modules/update/DownloadTask.java | 8 +- ...{NativeUpdateFlow.java => FlowBridge.java} | 10 +- .../reactnative/modules/update/HttpUtils.java | 2 +- .../modules/update/PushyRuntime.java | 8 +- ...Orchestrator.java => SyncCoordinator.java} | 122 ++++++------- .../modules/update/UpdateContext.java | 36 ++-- .../modules/update/UpdateModuleImpl.java | 4 +- cpp/patch_core/patch_core.cpp | 2 +- cpp/patch_core/patch_core_android.cpp | 2 +- cpp/patch_core/update_core_android.cpp | 2 +- cpp/update_flow_core/flow_json.h | 2 +- cpp/update_flow_core/tests/fuzz_flow_json.cpp | 4 +- .../tests/update_flow_core_test.cpp | 28 +-- cpp/update_flow_core/update_flow_core.cpp | 20 +-- cpp/update_flow_core/update_flow_core.h | 16 +- cpp/update_flow_core/update_flow_jni.cpp | 18 +- harmony/pushy/src/main/cpp/pushy.cpp | 26 +-- harmony/pushy/src/main/ets/ArchiveLimits.ts | 16 +- harmony/pushy/src/main/ets/DownloadTask.ts | 68 +++---- harmony/pushy/src/main/ets/ErrorCodes.ts | 18 +- harmony/pushy/src/main/ets/InstallRecord.ts | 8 +- harmony/pushy/src/main/ets/NativePatchCore.ts | 8 +- harmony/pushy/src/main/ets/PathUtils.ts | 4 +- .../main/ets/PushyFileJSBundleProvider.ets | 2 +- .../pushy/src/main/ets/PushyTurboModule.ts | 54 +++--- ...heckOrchestrator.ts => SyncCoordinator.ts} | 58 +++--- harmony/pushy/src/main/ets/UpdateContext.ts | 42 ++--- harmony/pushy/src/test/ErrorCodes.test.ets | 22 +-- harmony/pushy/src/test/InstallRecord.test.ets | 6 +- ios/RCTPushy/RCTPushy.mm | 168 +++++++++--------- scripts/tests/ios-purge-restore/extract.py | 2 +- .../ios-purge-restore/purge_restore_test.mm | 2 +- scripts/verify-android-so.js | 8 +- src/__tests__/nativeConfiguration.test.ts | 12 +- src/__tests__/nativeHostApi.test.ts | 10 +- src/__tests__/nativeHostApiNaming.test.ts | 33 +++- 41 files changed, 447 insertions(+), 428 deletions(-) rename android/src/main/java/cn/reactnative/modules/update/{CrashRescue.java => CrashHold.java} (85%) rename android/src/main/java/cn/reactnative/modules/update/{NativeUpdateFlow.java => FlowBridge.java} (70%) rename android/src/main/java/cn/reactnative/modules/update/{NativeCheckOrchestrator.java => SyncCoordinator.java} (89%) rename harmony/pushy/src/main/ets/{NativeCheckOrchestrator.ts => SyncCoordinator.ts} (94%) diff --git a/android/lib/arm64-v8a/librnupdate.so b/android/lib/arm64-v8a/librnupdate.so index 6407a9e6b86e47a85f677b0817b193dacd152ecb..6e414a2aa237aa69bcbbdb7c462ca5f437174b50 100755 GIT binary patch delta 60824 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

J#dOj>-C;0p+rBmRhbgA+$fR_Oq0UH1>0a(C@ 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˥B?pFTVHJU#nS}UqS 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 M-tNu|e2rcI4{48rNB{r; diff --git a/android/lib/armeabi-v7a/librnupdate.so b/android/lib/armeabi-v7a/librnupdate.so index f52883b58cb1fe5e7ca45a934de4f254fa7cebe0..2ac115dba8c6290cc2d83f3375f8a3b31424dfba 100755 GIT binary patch delta 34868 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 XGUD6WN+bm=!&`NPt$SO0o+J8SshB&C diff --git a/android/lib/x86/librnupdate.so b/android/lib/x86/librnupdate.so index 292d13a8513e52e23161afb524fe9d68becd0b64..e65652c11dc265a862b294b1cdfdc5a2624bfba6 100755 GIT binary patch delta 16223 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 delta 16185 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 KIR^Bj?(~1(d~W&x diff --git a/android/lib/x86_64/librnupdate.so b/android/lib/x86_64/librnupdate.so index 1f364f9c9e090149cc10d526e6b84e397fbab8fd..0cfa654a323aaa5f97b8e1157864b32fced628df 100755 GIT binary patch delta 40563 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 G?*9*qN-IqO delta 40520 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 ArchiveLimits.MAX_MANIFEST_BYTES) { - throw new IOException("patch manifest too large: " + entry.getSize()); + throw new IOException("delta manifest too large: " + entry.getSize()); } byte[] bytes = readBytes( zipFile.getInputStream(entry), ArchiveLimits.MAX_MANIFEST_BYTES); @@ -786,7 +786,7 @@ private boolean isPatchTask(int taskType) { || taskType == DownloadTaskParams.TASK_TYPE_PATCH_FROM_PPK; } - private boolean hasCompletedPatchDirectory() { + private boolean hasCompletedDeltaDirectory() { return params.unzipDirectory != null && params.hash != null && new File(params.unzipDirectory, "index.bundlejs").isFile() @@ -828,7 +828,7 @@ public void run() { int taskType = params.type; final boolean runningVersion = isPatchTask(taskType) && targetsRunningVersion(); final boolean alreadyCompleted = isPatchTask(taskType) - && hasCompletedPatchDirectory(); + && hasCompletedDeltaDirectory(); try { if (params.isCancelled()) { throw new IOException("download task cancelled before it started"); @@ -869,7 +869,7 @@ public void run() { // A duplicate task must never delete a version completed by an // earlier queued task. The marker + bundle pair is the ownership // handoff: once present, this failure did not create that install. - if (!hasCompletedPatchDirectory()) { + if (!hasCompletedDeltaDirectory()) { cleanUpAfterFailure(taskType); } diff --git a/android/src/main/java/cn/reactnative/modules/update/NativeUpdateFlow.java b/android/src/main/java/cn/reactnative/modules/update/FlowBridge.java similarity index 70% rename from android/src/main/java/cn/reactnative/modules/update/NativeUpdateFlow.java rename to android/src/main/java/cn/reactnative/modules/update/FlowBridge.java index d405fd6b..ba7a61ff 100644 --- a/android/src/main/java/cn/reactnative/modules/update/NativeUpdateFlow.java +++ b/android/src/main/java/cn/reactnative/modules/update/FlowBridge.java @@ -6,20 +6,20 @@ * the decision layer's own boundary and keeps this surface trivially stable. * A null return means the input did not parse; callers skip the check round. */ -final class NativeUpdateFlow { +final class FlowBridge { static { NativeUpdateCore.ensureLoaded(); } - private NativeUpdateFlow() { + private FlowBridge() { } - static native String buildCheckRequestBody(String inputJson); + static native String buildRequestBody(String inputJson); static native String orderEndpointCandidates(String endpointsJson, double randomSample); - static native boolean isValidCheckResponse(String responseText); + static native boolean isValidResponse(String responseText); - static native String handleCheckResponse( + static native String handleResponse( String responseText, String identityJson, String afterDownload); } diff --git a/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java b/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java index 7360205d..62859859 100644 --- a/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java +++ b/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java @@ -2,7 +2,7 @@ /** * Pure string helpers for the HTTP paths (no Android or OkHttp types), kept - * apart from DownloadTask / NativeCheckOrchestrator so they stay testable on + * apart from DownloadTask / SyncCoordinator so they stay testable on * a plain JVM: DownloadTask loads librnupdate.so in its static initializer * and both pull in OkHttp. */ diff --git a/android/src/main/java/cn/reactnative/modules/update/PushyRuntime.java b/android/src/main/java/cn/reactnative/modules/update/PushyRuntime.java index 9a14e059..ebe58c6c 100644 --- a/android/src/main/java/cn/reactnative/modules/update/PushyRuntime.java +++ b/android/src/main/java/cn/reactnative/modules/update/PushyRuntime.java @@ -18,11 +18,11 @@ public interface Callback { } // A single waiting worker, not one thread per caller. The actual round is - // shared with cold start and crash rescue by NativeCheckOrchestrator. + // shared with cold start and crash rescue by SyncCoordinator. private static final Executor WORKER = Executors.newSingleThreadExecutor(new ThreadFactory() { @Override public Thread newThread(Runnable runnable) { - Thread thread = new Thread(runnable, "pushy-host-check"); + Thread thread = new Thread(runnable, "pushy-host-sync"); thread.setDaemon(true); return thread; } @@ -104,14 +104,14 @@ public void run() { if (BuildConfig.DEBUG) { outcome = BundlePreparationResult.of(BundlePreparationResult.SKIPPED, "debug"); } else { - outcome = NativeCheckOrchestrator.prepareBundle( + outcome = SyncCoordinator.prepareBundle( UpdateContext.getInstance(applicationContext)); } } catch (InterruptedException e) { Thread.currentThread().interrupt(); outcome = BundlePreparationResult.of(BundlePreparationResult.CANCELLED, "interrupted"); } catch (Exception | LinkageError e) { - Log.w("react-native-update", "native host check failed", e); + Log.w("react-native-update", "native host sync failed", e); outcome = BundlePreparationResult.of(BundlePreparationResult.FAILED, "internal_error"); } final BundlePreparationResult result = outcome; diff --git a/android/src/main/java/cn/reactnative/modules/update/NativeCheckOrchestrator.java b/android/src/main/java/cn/reactnative/modules/update/SyncCoordinator.java similarity index 89% rename from android/src/main/java/cn/reactnative/modules/update/NativeCheckOrchestrator.java rename to android/src/main/java/cn/reactnative/modules/update/SyncCoordinator.java index d5ee66a0..bf585a23 100644 --- a/android/src/main/java/cn/reactnative/modules/update/NativeCheckOrchestrator.java +++ b/android/src/main/java/cn/reactnative/modules/update/SyncCoordinator.java @@ -26,11 +26,11 @@ * process, a few seconds after getBundleUrl, entirely independent of the app * bundle — this is what lets a device bricked by a bad hot update pull the * fixed version on the next launch. All decisions come from - * cpp/update_flow_core via NativeUpdateFlow; this class is IO glue only. + * cpp/update_flow_core via FlowBridge; this class is IO glue only. * Failures are silent and bounded: one round per launch, no retry storms, no * version blacklisting. */ -final class NativeCheckOrchestrator { +final class SyncCoordinator { static final String KEY_CONFIG = "nativeConfig"; // Raw response cache for the JS side to reuse (§10.3), scoped to the // exact logical request and native config that produced it. @@ -39,11 +39,11 @@ final class NativeCheckOrchestrator { // next launch means the previous process died mid-round (a crash rescue // was truncated): that launch resumes immediately instead of waiting 5s. static final String KEY_ROUND_INCOMPLETE = "nativeCheckIncomplete"; - private static final int MAX_CHECK_HTTP_ATTEMPTS = 8; + private static final int MAX_QUERY_HTTP_ATTEMPTS = 8; private static final long DOWNLOAD_PHASE_TIMEOUT_SECONDS = 600; // The check response (and a remote queryUrls list) is a small JSON // document; anything bigger is a broken or hijacked endpoint. - private static final long MAX_CHECK_RESPONSE_BYTES = 1024 * 1024; + private static final long MAX_QUERY_RESPONSE_BYTES = 1024 * 1024; private static final AtomicBoolean scheduled = new AtomicBoolean(false); // One round per process, whoever starts it first — the delayed cold-start @@ -55,7 +55,7 @@ final class NativeCheckOrchestrator { // Flipped the moment a crash is being held. JS is dead from that point // on, so there is no second decision maker: the round force-activates // whatever it downloads (§11.3). - private static volatile boolean crashRescueActive = false; + private static volatile boolean crashHoldActive = false; // A version this process downloaded but left for JS to activate. If the // process then crashes, JS will never activate it — the crash handler // activates it directly (bounded local work, no network). The generation @@ -118,7 +118,7 @@ static BundlePreparationResult prepareBundle(UpdateContext context) throws Inter } - static void markJsCheckCompleted(String config) { + static void recordJsRound(String config) { sJsCompletedConfig = config; } @@ -128,12 +128,12 @@ static void markJsCheckCompleted(String config) { * duplicate request. Only the scheduled round consults this — the * crash-rescue path still runs, JS is dead by then. */ - private static boolean isJsCheckCompleted(UpdateContext context) { + private static boolean hasJsRound(UpdateContext context) { String jsConfig = sJsCompletedConfig; return jsConfig != null && jsConfig.equals(context.getKv(KEY_CONFIG)); } - private NativeCheckOrchestrator() { + private SyncCoordinator() { } static void schedule(final UpdateContext context, final String launchRolledBackVersion) { @@ -149,7 +149,7 @@ static void schedule(final UpdateContext context, final String launchRolledBackV // The crash-hold rescue shares the orchestrator's rollout gate: no // persisted config, no handler (§11.3). if (context.getKv(KEY_CONFIG) != null) { - CrashRescue.install(); + CrashHold.install(); } Thread thread = new Thread(new Runnable() { @Override @@ -161,20 +161,20 @@ public void run() { if (context.getKv(KEY_ROUND_INCOMPLETE) == null) { Thread.sleep(5000); } - if (isJsCheckCompleted(context)) { + if (hasJsRound(context)) { // Not consuming the round: a later crash rescue may // still need it. Log.i(UpdateContext.TAG, - "native check skipped: JS check completed in this process"); + "native sync skipped: JS already queried in this process"); return; } startRound(0); } catch (Throwable e) { // The rescue path must never take the app down with it. - Log.w(UpdateContext.TAG, "native check failed: " + e); + Log.w(UpdateContext.TAG, "native sync failed: " + e); } } - }, "pushy-native-check"); + }, "pushy-native-sync"); thread.setPriority(Thread.MIN_PRIORITY + 1); thread.setDaemon(true); thread.start(); @@ -209,7 +209,7 @@ private static boolean hasRunnableConfig(UpdateContext context) { static void onConfigured(UpdateContext context) { if (nativeReady && sContext == context && hasRunnableConfig(context)) { - CrashRescue.install(); + CrashHold.install(); } } @@ -225,7 +225,7 @@ private static void startRound(long deadlineNanos) { try { runOnce(sContext, sLaunchRolledBackVersion, deadlineNanos); } catch (Throwable e) { - Log.w(UpdateContext.TAG, "native check failed: " + e); + Log.w(UpdateContext.TAG, "native sync failed: " + e); roundResult = BundlePreparationResult.of(BundlePreparationResult.FAILED, "internal_error"); } finally { roundCompleted = true; @@ -240,12 +240,12 @@ private static void startRound(long deadlineNanos) { * activates a downloaded-but-unactivated version if one exists — the * last chance before the process is gone. */ - static void runRescue(long deadlineNanos) { + static void runHoldRound(long deadlineNanos) { UpdateContext context = sContext; if (context == null) { return; } - crashRescueActive = true; + crashHoldActive = true; startRound(deadlineNanos); if (roundStarted.get() && !roundCompleted) { long remainingNanos = deadlineNanos - System.nanoTime(); @@ -281,17 +281,17 @@ private static void activatePendingVersion(UpdateContext context) { } } try { - if (context.commitNativeCheckResult( + if (context.commitSyncResult( unactivatedGeneration, hash, hashInfoJson, true, null)) { unactivatedHash = null; Log.i(UpdateContext.TAG, - "crash rescue: activated downloaded version " + hash); + "crash hold: activated downloaded version " + hash); } else { Log.i(UpdateContext.TAG, - "crash rescue: reset since download, dropping activation"); + "crash hold: reset since download, dropping activation"); } } catch (Exception e) { - Log.w(UpdateContext.TAG, "crash rescue: activation failed: " + e); + Log.w(UpdateContext.TAG, "crash hold: activation failed: " + e); } } @@ -399,23 +399,23 @@ private static void runConfiguredRound( input.put("supportedDiffVersion", NativeUpdateCore.supportedDiffVersion()); input.put("bundleHash", context.computeBundleHash()); - String body = NativeUpdateFlow.buildCheckRequestBody(input.toString()); + String body = FlowBridge.buildRequestBody(input.toString()); if (body == null) { roundResult = BundlePreparationResult.of(BundlePreparationResult.FAILED, "invalid_request"); return; } - String responseText = runCheckRequest(config, appKey, body, deadlineNanos); + String responseText = runQueryRequest(config, appKey, body, deadlineNanos); if (responseText == null) { Log.i(UpdateContext.TAG, - "native check: no endpoint reachable, giving up until next launch"); + "native sync: no endpoint reachable, giving up until next launch"); return; } // Cache freshness is anchored to when the server response arrived, // not to when a potentially long download/patch/activation finished. final long responseAtSeconds = System.currentTimeMillis() / 1000; - String decisionJson = NativeUpdateFlow.handleCheckResponse( + String decisionJson = FlowBridge.handleResponse( responseText, identity.toString(), config.optString("afterDownload", "")); if (decisionJson == null) { roundResult = BundlePreparationResult.of(BundlePreparationResult.FAILED, "invalid_response"); @@ -423,14 +423,14 @@ private static void runConfiguredRound( } JSONObject decision = new JSONObject(decisionJson); if (!"download".equals(decision.optString("action"))) { - boolean committed = context.commitNativeCheckResult( + boolean committed = context.commitSyncResult( resetGeneration, null, null, false, buildResponseCacheJson(configJson, body, responseText, responseAtSeconds)); roundResult = committed ? BundlePreparationResult.of(BundlePreparationResult.NO_UPDATE, decision.optString("reason")) : BundlePreparationResult.of(BundlePreparationResult.CANCELLED, "reset"); Log.i(UpdateContext.TAG, - "native check: nothing to do (" + decision.optString("reason") + ")"); + "native sync: nothing to do (" + decision.optString("reason") + ")"); return; } String hash = decision.optString("hash", ""); @@ -448,7 +448,7 @@ private static void runConfiguredRound( if (!downloaded) { // The native attempt has finished, so JS may safely reuse the // response and retry through its own strategy chain. - boolean committed = context.commitNativeCheckResult( + boolean committed = context.commitSyncResult( resetGeneration, null, null, false, buildResponseCacheJson(configJson, body, responseText, responseAtSeconds)); roundResult = BundlePreparationResult.of( @@ -459,7 +459,7 @@ private static void runConfiguredRound( // Version info (mirroring the JS side's setLocalHashInfo), the // activation and the response cache all land in one atomic commit — - // see UpdateContext.commitNativeCheckResult. + // see UpdateContext.commitSyncResult. String hashInfoJson = null; JSONObject info = decision.optJSONObject("info"); if (info != null) { @@ -478,7 +478,7 @@ private static void runConfiguredRound( if (infoConfig != null && infoConfig.optBoolean("forceBoot", false)) { hashInfo.put("forceBootRescue", true); } - if (crashRescueActive) { + if (crashHoldActive) { hashInfo.put("crashRescue", true); } hashInfoJson = hashInfo.toString(); @@ -488,33 +488,33 @@ private static void runConfiguredRound( // otherwise activation stays with the JS side. Unless a crash is // being held: JS is dead, deferring to it would leave the fix on // disk forever (§11.3). - boolean activate = decision.optBoolean("activate", false) || crashRescueActive; + boolean activate = decision.optBoolean("activate", false) || crashHoldActive; boolean committed; try { - committed = context.commitNativeCheckResult( + committed = context.commitSyncResult( resetGeneration, hash, hashInfoJson, activate, buildResponseCacheJson(configJson, body, responseText, responseAtSeconds)); } catch (Exception e) { - Log.w(UpdateContext.TAG, "native check: commit failed: " + e); + Log.w(UpdateContext.TAG, "native sync: commit failed: " + e); roundResult = BundlePreparationResult.of(BundlePreparationResult.FAILED, "commit_failed"); return; } if (!committed) { - Log.i(UpdateContext.TAG, "native check: reset during round, dropping result"); + Log.i(UpdateContext.TAG, "native sync: reset during round, dropping result"); } else if (activate) { unactivatedHash = null; Log.i(UpdateContext.TAG, - "native check: downloaded " + hash + " and set for next launch"); + "native sync: downloaded " + hash + " and set for next launch"); } else { // Remembered so a crash later in this process can still activate // it (activatePendingVersion) — JS never will. unactivatedGeneration = resetGeneration; unactivatedHash = hash; Log.i(UpdateContext.TAG, - "native check: downloaded " + hash + ", activation left to JS"); + "native sync: downloaded " + hash + ", activation left to JS"); } roundResult = committed ? BundlePreparationResult.downloaded(hash, activate) @@ -577,7 +577,7 @@ private static String httpRequest(String url, String postBody, long deadlineNano } catch (Exception e) { // One line per failed endpoint; the fallback chain is otherwise // invisible in the field. - Log.w(UpdateContext.TAG, "native check: request failed with " + Log.w(UpdateContext.TAG, "native sync: request failed with " + e.getClass().getName() + ": " + e.getMessage()); return null; } @@ -590,13 +590,13 @@ private static String httpRequest(String url, String postBody, long deadlineNano */ @Nullable private static String readBoundedBody(ResponseBody body) throws IOException { - if (body.contentLength() > MAX_CHECK_RESPONSE_BYTES) { + if (body.contentLength() > MAX_QUERY_RESPONSE_BYTES) { return null; } BufferedSource source = body.source(); - if (source.request(MAX_CHECK_RESPONSE_BYTES + 1)) { - Log.w(UpdateContext.TAG, "native check: response exceeds " - + MAX_CHECK_RESPONSE_BYTES + " bytes, ignoring endpoint"); + if (source.request(MAX_QUERY_RESPONSE_BYTES + 1)) { + Log.w(UpdateContext.TAG, "native sync: response exceeds " + + MAX_QUERY_RESPONSE_BYTES + " bytes, ignoring endpoint"); return null; } MediaType contentType = body.contentType(); @@ -605,11 +605,11 @@ private static String readBoundedBody(ResponseBody body) throws IOException { return source.readString(charset == null ? StandardCharsets.UTF_8 : charset); } - // Shared schema rule (update_flow_core::IsValidCheckResponse): a 200 with + // Shared schema rule (update_flow_core::IsValidResponse): a 200 with // `{"error": ...}` is a failed endpoint, not a verdict, and must not stop // the endpoint fallback. - private static boolean isValidCheckResponse(String responseText) { - return responseText != null && NativeUpdateFlow.isValidCheckResponse(responseText); + private static boolean isValidResponse(String responseText) { + return responseText != null && FlowBridge.isValidResponse(responseText); } /** @@ -619,11 +619,11 @@ private static boolean isValidCheckResponse(String responseText) { * already-tried) for one more round. No hedged race on purpose — this * path is latency-insensitive. */ - private static String runCheckRequest( + private static String runQueryRequest( JSONObject config, String appKey, String body, long deadlineNanos ) { JSONArray endpoints = config.optJSONArray("endpoints"); - String orderedJson = NativeUpdateFlow.orderEndpointCandidates( + String orderedJson = FlowBridge.orderEndpointCandidates( endpoints == null ? "[]" : endpoints.toString(), Math.random()); JSONArray ordered; try { @@ -638,12 +638,12 @@ private static String runCheckRequest( if (base.isEmpty() || !tried.add(base)) { continue; } - if (httpAttempts++ >= MAX_CHECK_HTTP_ATTEMPTS) { + if (httpAttempts++ >= MAX_QUERY_HTTP_ATTEMPTS) { return null; } String response = httpRequest( base + "/checkUpdate/" + appKey, body, deadlineNanos); - if (isValidCheckResponse(response)) { + if (isValidResponse(response)) { return response; } } @@ -656,7 +656,7 @@ private static String runCheckRequest( if (listUrl.isEmpty()) { continue; } - if (httpAttempts++ >= MAX_CHECK_HTTP_ATTEMPTS) { + if (httpAttempts++ >= MAX_QUERY_HTTP_ATTEMPTS) { return null; } String listText = httpRequest(listUrl, null, deadlineNanos); @@ -674,13 +674,13 @@ private static String runCheckRequest( if (base.isEmpty() || tried.contains(base)) { continue; } - if (httpAttempts++ >= MAX_CHECK_HTTP_ATTEMPTS) { + if (httpAttempts++ >= MAX_QUERY_HTTP_ATTEMPTS) { return null; } tried.add(base); String response = httpRequest( base + "/checkUpdate/" + appKey, body, deadlineNanos); - if (isValidCheckResponse(response)) { + if (isValidResponse(response)) { return response; } } @@ -690,23 +690,23 @@ private static String runCheckRequest( return null; } - private static long capToRescueBudget(long phaseDeadlineNanos, long rescueDeadlineNanos) { - if (rescueDeadlineNanos <= 0) { + private static long capToHoldBudget(long phaseDeadlineNanos, long holdDeadlineNanos) { + if (holdDeadlineNanos <= 0) { return phaseDeadlineNanos; } - return Math.min(phaseDeadlineNanos, rescueDeadlineNanos); + return Math.min(phaseDeadlineNanos, holdDeadlineNanos); } private static boolean performAttempts( UpdateContext context, JSONArray attempts, String hash, String originHash, - long rescueDeadlineNanos + long holdDeadlineNanos ) { if (attempts == null) { return false; } - final long incrementalDeadlineNanos = capToRescueBudget( + final long incrementalDeadlineNanos = capToHoldBudget( System.nanoTime() + TimeUnit.SECONDS.toNanos(DOWNLOAD_PHASE_TIMEOUT_SECONDS), - rescueDeadlineNanos); + holdDeadlineNanos); long fullDeadlineNanos = 0; for (int i = 0; i < attempts.length(); i++) { JSONObject attempt = attempts.optJSONObject(i); @@ -722,10 +722,10 @@ private static boolean performAttempts( if (isFullAttempt && fullDeadlineNanos == 0) { // Incremental failures must not consume the last-resort full // download's budget. Each phase gets one bounded 10min window. - fullDeadlineNanos = capToRescueBudget( + fullDeadlineNanos = capToHoldBudget( System.nanoTime() + TimeUnit.SECONDS.toNanos(DOWNLOAD_PHASE_TIMEOUT_SECONDS), - rescueDeadlineNanos); + holdDeadlineNanos); } final long deadlineNanos = isFullAttempt ? fullDeadlineNanos : incrementalDeadlineNanos; @@ -760,7 +760,7 @@ public void onDownloadCompleted(DownloadTaskParams params) { @Override public void onDownloadFailed(Throwable error) { - Log.i(UpdateContext.TAG, "native check: " + attemptType + Log.i(UpdateContext.TAG, "native sync: " + attemptType + " attempt failed: " + error); latch.countDown(); } @@ -779,7 +779,7 @@ public void onDownloadFailed(Throwable error) { try { if (!latch.await(remainingNanos, TimeUnit.NANOSECONDS)) { Log.w(UpdateContext.TAG, - "native check: download phase timed out during " + type); + "native sync: download phase timed out during " + type); // The task shares one download thread with the next // attempt: cancel its transfer (or keep it from // starting) instead of queueing behind it diff --git a/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java b/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java index 5d39abb8..d68af0ab 100644 --- a/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java +++ b/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java @@ -201,7 +201,7 @@ public void run() { } // Package-private: also the native cold-start check's request input - // (NativeCheckOrchestrator). Blocking — call off the main thread. + // (SyncCoordinator). Blocking — call off the main thread. String computeBundleHash() { String cachePrefix = getPackageVersion() + "|" + getPackageLastUpdateTime() + "|"; String cached = sp.getString(KEY_BUNDLE_HASH_CACHE, null); @@ -668,7 +668,7 @@ public String getBundleUrl() { public String getBundleUrl(String defaultAssetsUrl) { isUsingBundleUrl = true; - String nativeCheckRolledBackVersion = null; + String syncRolledBackVersion = null; try { // The whole resolution is one read-modify-write on the state // (resolve, then possibly roll back missing bundles); see @@ -682,7 +682,7 @@ public String getBundleUrl(String defaultAssetsUrl) { ignoreRollback, true ); - nativeCheckRolledBackVersion = launchState.rolledBackVersion; + syncRolledBackVersion = launchState.rolledBackVersion; if (launchState.didRollback) { // The crash-protection rollback: the new version never called // markSuccess. Keep this visible in release logs. @@ -717,22 +717,22 @@ public String getBundleUrl(String defaultAssetsUrl) { if (!bundleFile.exists()) { Log.e(TAG, "Bundle version " + currentVersion + " not found."); currentVersion = this.rollBack(); - nativeCheckRolledBackVersion = rolledBackVersion(); + syncRolledBackVersion = rolledBackVersion(); continue; } launchVersion = currentVersion; - nativeCheckRolledBackVersion = rolledBackVersion(); + syncRolledBackVersion = rolledBackVersion(); return bundleFile.toString(); } - nativeCheckRolledBackVersion = rolledBackVersion(); + syncRolledBackVersion = rolledBackVersion(); return defaultAssetsUrl; } } finally { // Even corrupted state or a state-core exception must not disable // the next-launch rescue check. A null snapshot simply omits the // rollback guard for this exceptional launch. - NativeCheckOrchestrator.schedule(this, nativeCheckRolledBackVersion); + SyncCoordinator.schedule(this, syncRolledBackVersion); } } @@ -747,15 +747,15 @@ static long getNativeConfigGeneration() { void setNativeConfig(String config) { synchronized (commitLock) { - boolean changed = !config.equals(sp.getString(NativeCheckOrchestrator.KEY_CONFIG, null)); + boolean changed = !config.equals(sp.getString(SyncCoordinator.KEY_CONFIG, null)); SharedPreferences.Editor editor = sp.edit(); if (changed) { // Also invalidate on a failed persistence attempt: an older // round must not commit over uncertain configuration state. resetGeneration.incrementAndGet(); nativeConfigGeneration.incrementAndGet(); - editor.remove(NativeCheckOrchestrator.KEY_RESP_CACHE); - NativeCheckOrchestrator.markJsCheckCompleted(null); + editor.remove(SyncCoordinator.KEY_RESP_CACHE); + SyncCoordinator.recordJsRound(null); } // A native-only first launch needs a stable gray-release identity // before JS initializes. Never replace an existing installation ID. @@ -763,12 +763,12 @@ void setNativeConfig(String config) { if (uuid == null || uuid.isEmpty()) { editor.putString("uuid", java.util.UUID.randomUUID().toString()); } - editor.putString(NativeCheckOrchestrator.KEY_CONFIG, config); + editor.putString(SyncCoordinator.KEY_CONFIG, config); // Persist even an equal value: a previous commit may have updated // SharedPreferences memory but failed to write its file. persistEditorOrThrow(editor, "persist configuration"); } - NativeCheckOrchestrator.onConfigured(this); + SyncCoordinator.onConfigured(this); } // Native-decision generation: bumped by reset AND configuration replacement. @@ -783,7 +783,7 @@ static long getResetGeneration() { * no compare-and-act window: either the whole round lands, or the reset * wins and none of it does. Returns whether the round was committed. */ - boolean commitNativeCheckResult( + boolean commitSyncResult( long expectedGeneration, String hash, String hashInfoJson, @@ -792,17 +792,17 @@ boolean commitNativeCheckResult( ) { boolean switching = activate && hash != null; if (!switching) { - return commitNativeCheckResultState( + return commitSyncResultState( expectedGeneration, hash, hashInfoJson, false, responseCacheJson); } synchronized (versionFilesLock) { verifySwitchTarget(hash); - return commitNativeCheckResultState( + return commitSyncResultState( expectedGeneration, hash, hashInfoJson, true, responseCacheJson); } } - private boolean commitNativeCheckResultState( + private boolean commitSyncResultState( long expectedGeneration, String hash, String hashInfoJson, @@ -821,9 +821,9 @@ private boolean commitNativeCheckResultState( applyState(editor, computeSwitchState(hash)); } if (responseCacheJson != null) { - editor.putString(NativeCheckOrchestrator.KEY_RESP_CACHE, responseCacheJson); + editor.putString(SyncCoordinator.KEY_RESP_CACHE, responseCacheJson); } - persistEditorOrThrow(editor, "commit native check result"); + persistEditorOrThrow(editor, "commit sync result"); if (switching) { ignoreRollback = false; } diff --git a/android/src/main/java/cn/reactnative/modules/update/UpdateModuleImpl.java b/android/src/main/java/cn/reactnative/modules/update/UpdateModuleImpl.java index eca14bca..4a402dec 100644 --- a/android/src/main/java/cn/reactnative/modules/update/UpdateModuleImpl.java +++ b/android/src/main/java/cn/reactnative/modules/update/UpdateModuleImpl.java @@ -307,7 +307,7 @@ public void run() { * rejects. */ public void getNativeCheckCache(final Promise promise) { - String cached = updateContext.getKv(NativeCheckOrchestrator.KEY_RESP_CACHE); + String cached = updateContext.getKv(SyncCoordinator.KEY_RESP_CACHE); promise.resolve(cached == null ? "" : cached); } @@ -322,7 +322,7 @@ public void markJsCheckCompleted(final String config, final Promise promise) { if (requireNonEmpty(config, "config", promise) == null) { return; } - NativeCheckOrchestrator.markJsCheckCompleted(config); + SyncCoordinator.recordJsRound(config); promise.resolve(true); } diff --git a/cpp/patch_core/patch_core.cpp b/cpp/patch_core/patch_core.cpp index a0d997bb..c4220871 100644 --- a/cpp/patch_core/patch_core.cpp +++ b/cpp/patch_core/patch_core.cpp @@ -636,7 +636,7 @@ Status ApplyBundlePatchWithHbcTransform( } if (rename(temp_patched.c_str(), options.bundle_output_path.c_str()) != 0) { Status rename_status = MakeErrnoStatus( - "Failed to move patched bundle into place " + options.bundle_output_path); + "Failed to move rebuilt bundle into place " + options.bundle_output_path); remove(temp_patched.c_str()); return rename_status; } diff --git a/cpp/patch_core/patch_core_android.cpp b/cpp/patch_core/patch_core_android.cpp index 594c161d..08b1066d 100644 --- a/cpp/patch_core/patch_core_android.cpp +++ b/cpp/patch_core/patch_core_android.cpp @@ -68,7 +68,7 @@ Java_cn_reactnative_modules_update_DownloadTask_applyPatchFromFileSource( } catch (const std::exception& error) { ThrowRuntimeException(env, error.what()); } catch (...) { - ThrowRuntimeException(env, "Unexpected native exception in applyPatchFromFileSource"); + ThrowRuntimeException(env, "Unexpected native exception while applying delta"); } } diff --git a/cpp/patch_core/update_core_android.cpp b/cpp/patch_core/update_core_android.cpp index 73f8ce3d..3d4f9544 100644 --- a/cpp/patch_core/update_core_android.cpp +++ b/cpp/patch_core/update_core_android.cpp @@ -422,7 +422,7 @@ Java_cn_reactnative_modules_update_DownloadTask_buildArchivePatchPlan( } catch (const std::exception& error) { ThrowRuntimeException(env, error.what()); } catch (...) { - ThrowRuntimeException(env, "Unexpected native exception in buildArchivePatchPlan"); + ThrowRuntimeException(env, "Unexpected native exception while planning archive"); } return nullptr; } diff --git a/cpp/update_flow_core/flow_json.h b/cpp/update_flow_core/flow_json.h index c7a20a65..c0580f5a 100644 --- a/cpp/update_flow_core/flow_json.h +++ b/cpp/update_flow_core/flow_json.h @@ -100,7 +100,7 @@ std::string Stringify(const Value& v); // and the divergence is deliberate: this parser runs inside the native // orchestrators on the raw checkUpdate body, and with sizeof(Value) ~ 96 a // 1 MB "[0,0,...]" balloons to ~100 MB of heap. A response over either cap is -// treated as malformed (HandleCheckResponse -> invalidResponse). Real +// treated as malformed (HandleResponse -> invalidResponse). Real // responses are a few KB and a few hundred nodes. constexpr size_t kMaxInputBytes = 1024 * 1024; constexpr size_t kMaxNodes = 65536; diff --git a/cpp/update_flow_core/tests/fuzz_flow_json.cpp b/cpp/update_flow_core/tests/fuzz_flow_json.cpp index b7980f64..36c420ff 100644 --- a/cpp/update_flow_core/tests/fuzz_flow_json.cpp +++ b/cpp/update_flow_core/tests/fuzz_flow_json.cpp @@ -39,7 +39,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { identity.Set("uuid", flowjson::Value::String("test1")); identity.Set("rolledBackVersion", flowjson::Value::String("bad")); flowjson::Stringify( - updateflow::HandleCheckResponse(text, identity, false, "none")); - updateflow::IsValidCheckResponse(text); + flowcore::HandleResponse(text, identity, false, "none")); + flowcore::IsValidResponse(text); return 0; } diff --git a/cpp/update_flow_core/tests/update_flow_core_test.cpp b/cpp/update_flow_core/tests/update_flow_core_test.cpp index a7f3a7d3..4644a1ce 100644 --- a/cpp/update_flow_core/tests/update_flow_core_test.cpp +++ b/cpp/update_flow_core/tests/update_flow_core_test.cpp @@ -23,39 +23,39 @@ namespace { Value Dispatch(const std::string& fn, const Value& args, bool* known) { *known = true; if (fn == "murmurhash3_32_gc") { - return Value::Number(updateflow::Murmur3_32(args.At(0).AsString())); + return Value::Number(flowcore::Murmur3_32(args.At(0).AsString())); } if (fn == "isInRollout") { return Value::Bool( - updateflow::IsInRollout(args.At(0).AsNumber(), args.At(1).AsString())); + flowcore::IsInRollout(args.At(0).AsNumber(), args.At(1).AsString())); } if (fn == "isMirrorRetryableCode") { return Value::Bool( - updateflow::IsMirrorRetryableCode(args.At(0).AsString())); + flowcore::IsMirrorRetryableCode(args.At(0).AsString())); } if (fn == "joinUrls") { - return updateflow::JoinUrls(args.At(0), args.At(1)); + return flowcore::JoinUrls(args.At(0), args.At(1)); } if (fn == "orderEndpointCandidates") { - return updateflow::OrderEndpointCandidates(args.At(0), + return flowcore::OrderEndpointCandidates(args.At(0), args.At(1).AsNumber()); } if (fn == "buildCheckRequestBody") { - return updateflow::BuildCheckRequestBody(args.At(0)); + return flowcore::BuildRequestBody(args.At(0)); } if (fn == "resolveCheckResult") { - return updateflow::ResolveCheckResult(args.At(0), args.At(1)); + return flowcore::ResolveResult(args.At(0), args.At(1)); } if (fn == "decideDownload") { - return updateflow::DecideDownload(args.At(0), args.At(1), + return flowcore::DecideDownload(args.At(0), args.At(1), args.At(2).Truthy()); } if (fn == "isValidCheckResponse") { return Value::Bool( - updateflow::IsValidCheckResponse(args.At(0).AsString())); + flowcore::IsValidResponse(args.At(0).AsString())); } if (fn == "shouldActivateAfterDownload") { - return Value::Bool(updateflow::ShouldActivateAfterDownload( + return Value::Bool(flowcore::ShouldActivateAfterDownload( args.At(0), args.At(1).AsString())); } *known = false; @@ -302,7 +302,7 @@ int RunInputCaps() { // Through the pipeline an oversized body is an invalid response. std::string body = "{\"update\":true,\"hash\":\"h\",\"pad\":\"" + std::string(flowjson::kMaxInputBytes, 'x') + "\"}"; - Value decision = updateflow::HandleCheckResponse(body, Value::Object(), + Value decision = flowcore::HandleResponse(body, Value::Object(), false, "none"); if (decision.Get("reason").AsString() != "invalidResponse") { std::fprintf(stderr, "caps: oversized body must yield invalidResponse\n"); @@ -312,7 +312,7 @@ int RunInputCaps() { return failures; } -// HandleCheckResponse is pure composition (no decision logic of its own), so +// HandleResponse is pure composition (no decision logic of its own), so // it is tested directly here instead of via TS-generated vectors: response // text in, canonical decision out. int RunHandleCheckResponse() { @@ -404,12 +404,12 @@ int RunHandleCheckResponse() { "\"config\":{\"forceBoot\":true}}}"}, }; for (const auto& c : cases) { - Value decision = updateflow::HandleCheckResponse(c.response, identity, + Value decision = flowcore::HandleResponse(c.response, identity, false, c.afterDownload); std::string actual = Stringify(decision); if (actual != c.expected) { std::fprintf(stderr, - "handleCheckResponse %s MISMATCH\n expected: %s\n" + "handleResponse %s MISMATCH\n expected: %s\n" " actual: %s\n", c.name, c.expected, actual.c_str()); failures++; diff --git a/cpp/update_flow_core/update_flow_core.cpp b/cpp/update_flow_core/update_flow_core.cpp index 76ed8bed..7afa61cf 100644 --- a/cpp/update_flow_core/update_flow_core.cpp +++ b/cpp/update_flow_core/update_flow_core.cpp @@ -2,7 +2,7 @@ #include -namespace updateflow { +namespace flowcore { using flowjson::Value; @@ -216,7 +216,7 @@ Value OrderEndpointCandidates(const Value& endpoints, double randomSample) { return ordered; } -Value BuildCheckRequestBody(const Value& input) { +Value BuildRequestBody(const Value& input) { Value body = Value::Object(); // Caller extras go in FIRST: they may add fields but never override the // identity fields the server keys its decision on (mirrors the TS @@ -258,7 +258,7 @@ Value BuildCheckRequestBody(const Value& input) { return body; } -Value ResolveCheckResult(const Value& rootInfo, const Value& identity) { +Value ResolveResult(const Value& rootInfo, const Value& identity) { Value rootResult = Value::Object(); for (const auto& member : rootInfo.members()) { if (member.first != "expVersion") { @@ -366,7 +366,7 @@ bool ShouldActivateAfterDownload(const Value& info, info.Get("config").Get("forceBoot").Truthy(); } -bool IsValidCheckResult(const Value& root) { +bool IsValidResult(const Value& root) { if (!root.IsObject()) { return false; } @@ -378,21 +378,21 @@ bool IsValidCheckResult(const Value& root) { paused.IsString(); } -bool IsValidCheckResponse(const std::string& responseText) { +bool IsValidResponse(const std::string& responseText) { bool ok = false; Value root = flowjson::Parse(responseText, &ok); - return ok && IsValidCheckResult(root); + return ok && IsValidResult(root); } -Value HandleCheckResponse(const std::string& responseText, +Value HandleResponse(const std::string& responseText, const Value& identity, bool isDev, const std::string& afterDownload) { bool ok = false; Value root = flowjson::Parse(responseText, &ok); - if (!ok || !IsValidCheckResult(root)) { + if (!ok || !IsValidResult(root)) { return DeclineDownload("invalidResponse"); } - Value resolved = ResolveCheckResult(root, identity); + Value resolved = ResolveResult(root, identity); Value decision = DecideDownload(resolved, identity, isDev); if (decision.Get("action").AsString() == "download") { decision.Set("activate", Value::Bool(ShouldActivateAfterDownload( @@ -402,4 +402,4 @@ Value HandleCheckResponse(const std::string& responseText, return decision; } -} // namespace updateflow +} // namespace flowcore diff --git a/cpp/update_flow_core/update_flow_core.h b/cpp/update_flow_core/update_flow_core.h index 001c11af..9bde030f 100644 --- a/cpp/update_flow_core/update_flow_core.h +++ b/cpp/update_flow_core/update_flow_core.h @@ -18,7 +18,7 @@ // Like the TS side this layer is pure: no IO, no time, no randomness — the // random sample, identity and parsed JSON all arrive as parameters. The // orchestrators (per-platform HTTP/download/state glue) own all effects. -namespace updateflow { +namespace flowcore { uint32_t Murmur3_32(const std::string& key, uint32_t seed = 0); @@ -45,10 +45,10 @@ flowjson::Value OrderEndpointCandidates(const flowjson::Value& endpoints, // input: { packageVersion, currentVersion, buildTime, cInfo, // supportedDiffVersion?, bundleHash?, isDev?, extra? } -flowjson::Value BuildCheckRequestBody(const flowjson::Value& input); +flowjson::Value BuildRequestBody(const flowjson::Value& input); // identity: { packageVersion, currentVersion?, uuid } -flowjson::Value ResolveCheckResult(const flowjson::Value& rootInfo, +flowjson::Value ResolveResult(const flowjson::Value& rootInfo, const flowjson::Value& identity); // identity: { currentVersion?, rolledBackVersion? } @@ -71,13 +71,13 @@ flowjson::Value DecideDownload(const flowjson::Value& info, // array, `{"error": "..."}`, an HTML page that happened to parse — is a // failed endpoint and must not stop the endpoint fallback. Mirrors // src/updateFlowCore.ts isValidCheckResult. -bool IsValidCheckResult(const flowjson::Value& root); -bool IsValidCheckResponse(const std::string& responseText); +bool IsValidResult(const flowjson::Value& root); +bool IsValidResponse(const std::string& responseText); bool ShouldActivateAfterDownload(const flowjson::Value& info, const std::string& afterDownload); -// Composes Parse → ResolveCheckResult → DecideDownload: one call from the +// Composes Parse → ResolveResult → DecideDownload: one call from the // raw checkUpdate response text to a download decision, so the platform // orchestrators contain no decision logic at all. identity is the union of // both composed functions' needs: { packageVersion, currentVersion?, uuid, @@ -87,9 +87,9 @@ bool ShouldActivateAfterDownload(const flowjson::Value& info, // check result — so orchestrators can persist name/description/metaInfo // alongside a downloaded version (the JS side's setLocalHashInfo). // Malformed JSON yields { action: 'none', reason: 'invalidResponse' }. -flowjson::Value HandleCheckResponse(const std::string& responseText, +flowjson::Value HandleResponse(const std::string& responseText, const flowjson::Value& identity, bool isDev, const std::string& afterDownload); -} // namespace updateflow +} // namespace flowcore diff --git a/cpp/update_flow_core/update_flow_jni.cpp b/cpp/update_flow_core/update_flow_jni.cpp index 0fdc2ab8..73723de9 100644 --- a/cpp/update_flow_core/update_flow_jni.cpp +++ b/cpp/update_flow_core/update_flow_jni.cpp @@ -1,5 +1,5 @@ // JNI surface of the update-flow decision layer for the Android orchestrator -// (NativeCheckOrchestrator.java). Pure string-in/string-out: every payload is +// (SyncCoordinator.java). Pure string-in/string-out: every payload is // JSON, matching the decision layer's own boundary. A null return means // "input did not parse" and the caller skips the check round; a C++ exception // (bad_alloc/length_error from an oversized body) maps onto that same path — @@ -82,7 +82,7 @@ jstring ToJString(JNIEnv* env, const std::string& value) { } // namespace extern "C" JNIEXPORT jstring JNICALL -Java_cn_reactnative_modules_update_NativeUpdateFlow_buildCheckRequestBody( +Java_cn_reactnative_modules_update_FlowBridge_buildRequestBody( JNIEnv* env, jclass, jstring inputJson) { try { bool ok = false; @@ -92,14 +92,14 @@ Java_cn_reactnative_modules_update_NativeUpdateFlow_buildCheckRequestBody( return nullptr; } return ToJString( - env, flowjson::Stringify(updateflow::BuildCheckRequestBody(input))); + env, flowjson::Stringify(flowcore::BuildRequestBody(input))); } catch (...) { return nullptr; } } extern "C" JNIEXPORT jstring JNICALL -Java_cn_reactnative_modules_update_NativeUpdateFlow_orderEndpointCandidates( +Java_cn_reactnative_modules_update_FlowBridge_orderEndpointCandidates( JNIEnv* env, jclass, jstring endpointsJson, jdouble randomSample) { try { bool ok = false; @@ -108,7 +108,7 @@ Java_cn_reactnative_modules_update_NativeUpdateFlow_orderEndpointCandidates( if (!ok || !endpoints.IsArray()) { return nullptr; } - return ToJString(env, flowjson::Stringify(updateflow::OrderEndpointCandidates( + return ToJString(env, flowjson::Stringify(flowcore::OrderEndpointCandidates( endpoints, randomSample))); } catch (...) { return nullptr; @@ -116,13 +116,13 @@ Java_cn_reactnative_modules_update_NativeUpdateFlow_orderEndpointCandidates( } extern "C" JNIEXPORT jboolean JNICALL -Java_cn_reactnative_modules_update_NativeUpdateFlow_isValidCheckResponse( +Java_cn_reactnative_modules_update_FlowBridge_isValidResponse( JNIEnv* env, jclass, jstring responseText) { if (responseText == nullptr) { return JNI_FALSE; } try { - return updateflow::IsValidCheckResponse( + return flowcore::IsValidResponse( pushy::jni_util::JStringToString(env, responseText)) ? JNI_TRUE : JNI_FALSE; @@ -132,7 +132,7 @@ Java_cn_reactnative_modules_update_NativeUpdateFlow_isValidCheckResponse( } extern "C" JNIEXPORT jstring JNICALL -Java_cn_reactnative_modules_update_NativeUpdateFlow_handleCheckResponse( +Java_cn_reactnative_modules_update_FlowBridge_handleResponse( JNIEnv* env, jclass, jstring responseText, jstring identityJson, jstring afterDownload) { try { @@ -142,7 +142,7 @@ Java_cn_reactnative_modules_update_NativeUpdateFlow_handleCheckResponse( if (!ok || !identity.IsObject()) { return nullptr; } - return ToJString(env, flowjson::Stringify(updateflow::HandleCheckResponse( + return ToJString(env, flowjson::Stringify(flowcore::HandleResponse( pushy::jni_util::JStringToString(env, responseText), identity, false, pushy::jni_util::JStringToString(env, afterDownload)))); diff --git a/harmony/pushy/src/main/cpp/pushy.cpp b/harmony/pushy/src/main/cpp/pushy.cpp index d75ef181..bc33e363 100644 --- a/harmony/pushy/src/main/cpp/pushy.cpp +++ b/harmony/pushy/src/main/cpp/pushy.cpp @@ -1108,12 +1108,12 @@ static napi_value MakeUtf8String(napi_env env, const std::string& value) { return result; } -static napi_value FlowBuildCheckRequestBody(napi_env env, +static napi_value FlowBuildRequestBody(napi_env env, napi_callback_info info) { size_t argc = 1; napi_value args[1] = {nullptr}; if (!GetArgCount(env, info, &argc, args) || argc < 1) { - ThrowError(env, "buildCheckRequestBody: missing input argument"); + ThrowError(env, "buildRequestBody: missing input argument"); return nullptr; } bool ok = false; @@ -1127,7 +1127,7 @@ static napi_value FlowBuildCheckRequestBody(napi_env env, return nullptr; } return MakeUtf8String( - env, flowjson::Stringify(updateflow::BuildCheckRequestBody(input))); + env, flowjson::Stringify(flowcore::BuildRequestBody(input))); } static napi_value FlowOrderEndpointCandidates(napi_env env, @@ -1154,16 +1154,16 @@ static napi_value FlowOrderEndpointCandidates(napi_env env, return nullptr; } return MakeUtf8String(env, - flowjson::Stringify(updateflow::OrderEndpointCandidates( + flowjson::Stringify(flowcore::OrderEndpointCandidates( endpoints, sample))); } -static napi_value FlowIsValidCheckResponse(napi_env env, +static napi_value FlowIsValidResponse(napi_env env, napi_callback_info info) { size_t argc = 1; napi_value args[1] = {nullptr}; if (!GetArgCount(env, info, &argc, args) || argc < 1) { - ThrowError(env, "isValidCheckResponse: missing arguments"); + ThrowError(env, "isValidResponse: missing arguments"); return nullptr; } bool ok = false; @@ -1174,17 +1174,17 @@ static napi_value FlowIsValidCheckResponse(napi_env env, return nullptr; } napi_value result = nullptr; - napi_get_boolean(env, updateflow::IsValidCheckResponse(response_text), + napi_get_boolean(env, flowcore::IsValidResponse(response_text), &result); return result; } -static napi_value FlowHandleCheckResponse(napi_env env, +static napi_value FlowHandleResponse(napi_env env, napi_callback_info info) { size_t argc = 3; napi_value args[3] = {nullptr, nullptr, nullptr}; if (!GetArgCount(env, info, &argc, args) || argc < 3) { - ThrowError(env, "handleCheckResponse: missing arguments"); + ThrowError(env, "handleResponse: missing arguments"); return nullptr; } bool ok = false; @@ -1206,7 +1206,7 @@ static napi_value FlowHandleCheckResponse(napi_env env, return nullptr; } return MakeUtf8String(env, - flowjson::Stringify(updateflow::HandleCheckResponse( + flowjson::Stringify(flowcore::HandleResponse( response_text, identity, false, after_download))); } @@ -1222,10 +1222,10 @@ napi_value Init(napi_env env, napi_value exports) { !ExportFunction(env, exports, "sha256HexFileAsync", Sha256HexFileAsync) || !ExportFunction(env, exports, "crc32", Crc32) || !ExportFunction(env, exports, "getSupportedDiffVersion", GetSupportedDiffVersion) || - !ExportFunction(env, exports, "buildCheckRequestBody", FlowBuildCheckRequestBody) || + !ExportFunction(env, exports, "buildRequestBody", FlowBuildRequestBody) || !ExportFunction(env, exports, "orderEndpointCandidates", FlowOrderEndpointCandidates) || - !ExportFunction(env, exports, "isValidCheckResponse", FlowIsValidCheckResponse) || - !ExportFunction(env, exports, "handleCheckResponse", FlowHandleCheckResponse)) { + !ExportFunction(env, exports, "isValidResponse", FlowIsValidResponse) || + !ExportFunction(env, exports, "handleResponse", FlowHandleResponse)) { return nullptr; } return exports; diff --git a/harmony/pushy/src/main/ets/ArchiveLimits.ts b/harmony/pushy/src/main/ets/ArchiveLimits.ts index 90adb0df..9d334c0e 100644 --- a/harmony/pushy/src/main/ets/ArchiveLimits.ts +++ b/harmony/pushy/src/main/ets/ArchiveLimits.ts @@ -3,7 +3,7 @@ import statvfs from '@ohos.file.statvfs'; import { ERROR_FILE_OPERATION_FAILED, ERROR_PATCH_FAILED, - createUpdateError, + createPushyError, } from './ErrorCodes'; import { isReservedEntryName } from './InstallRecord'; @@ -32,7 +32,7 @@ export function checkUncompressedSize( uncompressedBytes: number, ): void { if (uncompressedBytes > MAX_TOTAL_UNCOMPRESSED_BYTES) { - throw createUpdateError( + throw createPushyError( ERROR_PATCH_FAILED, `archive expands beyond ${MAX_TOTAL_UNCOMPRESSED_BYTES} bytes ` + `(${uncompressedBytes})`, @@ -43,7 +43,7 @@ export function checkUncompressedSize( archiveBytes > 0 && uncompressedBytes > archiveBytes * MAX_COMPRESSION_RATIO ) { - throw createUpdateError( + throw createPushyError( ERROR_PATCH_FAILED, `archive compression ratio exceeds ${MAX_COMPRESSION_RATIO}:1 ` + `(${uncompressedBytes}/${archiveBytes})`, @@ -78,7 +78,7 @@ export async function ensureFreeSpace( } const needed = Math.max(0, bytesToWrite) + FREE_DISK_MARGIN_BYTES; if (free < needed) { - throw createUpdateError( + throw createPushyError( ERROR_FILE_OPERATION_FAILED, `insufficient disk space: need ${needed} bytes, have ${free}`, ); @@ -103,7 +103,7 @@ export async function measureExtractedDirectory( ); for (const name of names) { if (isReservedEntryName(name)) { - throw createUpdateError( + throw createPushyError( ERROR_PATCH_FAILED, `archive contains reserved entry ${name}`, ); @@ -112,7 +112,7 @@ export async function measureExtractedDirectory( const stat = await fileIo.stat(path); acc.entries += 1; if (acc.entries > MAX_ENTRIES) { - throw createUpdateError( + throw createPushyError( ERROR_PATCH_FAILED, `archive has too many entries (> ${MAX_ENTRIES})`, ); @@ -122,14 +122,14 @@ export async function measureExtractedDirectory( continue; } if (stat.size > MAX_ENTRY_BYTES) { - throw createUpdateError( + throw createPushyError( ERROR_PATCH_FAILED, `archive entry too large: ${name} (${stat.size} bytes)`, ); } acc.bytes += stat.size; if (acc.bytes > MAX_TOTAL_UNCOMPRESSED_BYTES) { - throw createUpdateError( + throw createPushyError( ERROR_PATCH_FAILED, `archive expands beyond ${MAX_TOTAL_UNCOMPRESSED_BYTES} bytes`, ); diff --git a/harmony/pushy/src/main/ets/DownloadTask.ts b/harmony/pushy/src/main/ets/DownloadTask.ts index 46af09cf..0e24531b 100644 --- a/harmony/pushy/src/main/ets/DownloadTask.ts +++ b/harmony/pushy/src/main/ets/DownloadTask.ts @@ -32,9 +32,9 @@ import { ERROR_FILE_OPERATION_FAILED, ERROR_INVALID_OPTIONS, ERROR_PATCH_FAILED, - createUpdateError, + createPushyError, getErrorMessage, - toUpdateError, + toPushyError, } from './ErrorCodes'; const TAG = 'DownloadTask'; @@ -108,7 +108,7 @@ export function parseManifestToArrays( }; } -interface PatchInputs { +interface DeltaInputs { entryNames: string[]; manifestArrays: PatchManifestArrays; } @@ -196,7 +196,7 @@ export class DownloadTask { const work = this.stagingDirectory(params); const bundlePath = `${work}/${HARMONY_BUNDLE_FILE_NAME}`; if (!fileIo.accessSync(bundlePath)) { - throw createUpdateError( + throw createPushyError( ERROR_PATCH_FAILED, `bundle missing after install: ${bundlePath}`, ); @@ -293,7 +293,7 @@ export class DownloadTask { } } catch (error) { logger.error(TAG, `Failed to delete ${path}: ${getErrorMessage(error)}`); - throw toUpdateError(error, ERROR_FILE_OPERATION_FAILED); + throw toPushyError(error, ERROR_FILE_OPERATION_FAILED); } } @@ -337,13 +337,13 @@ export class DownloadTask { try { size = await zlib.getOriginalSize(archiveFile); } catch (e) { - throw createUpdateError( + throw createPushyError( ERROR_PATCH_FAILED, `cannot determine archive expansion size: ${getErrorMessage(e)}`, ); } if (typeof size !== 'number' || !Number.isFinite(size) || size < 0) { - throw createUpdateError( + throw createPushyError( ERROR_PATCH_FAILED, `cannot determine archive expansion size: ${String(size)}`, ); @@ -364,7 +364,7 @@ export class DownloadTask { ): Promise { const archiveStat = await fileIo.stat(archiveFile); if (archiveStat.size > MAX_ARCHIVE_BYTES) { - throw createUpdateError( + throw createPushyError( ERROR_PATCH_FAILED, `archive too large: ${archiveStat.size} bytes`, ); @@ -375,7 +375,7 @@ export class DownloadTask { try { await zlib.decompressFile(archiveFile, unzipDirectory); } catch (e) { - throw toUpdateError(e, ERROR_PATCH_FAILED); + throw toPushyError(e, ERROR_PATCH_FAILED); } await measureExtractedDirectory(unzipDirectory); } @@ -468,9 +468,9 @@ export class DownloadTask { const manifestStat = await fileIo.stat(manifestPath); if (manifestStat.size > MAX_MANIFEST_BYTES) { - throw createUpdateError( + throw createPushyError( ERROR_PATCH_FAILED, - `patch manifest too large: ${manifestStat.size} bytes`, + `delta manifest too large: ${manifestStat.size} bytes`, ); } return parseManifestToArrays( @@ -503,9 +503,9 @@ export class DownloadTask { bundleHbcTransformMeta: hbcTransformMeta, }); } catch (error) { - throw createUpdateError( + throw createPushyError( ERROR_PATCH_FAILED, - `Failed to process bundle patch: ${getErrorMessage(error)}`, + `Failed to process bundle delta: ${getErrorMessage(error)}`, ); } finally { if (fileIo.accessSync(originBundlePath)) { @@ -570,7 +570,7 @@ export class DownloadTask { await this.deleteArchiveAndSidecar(params.targetFile); const retry = await this.transferArchive(params, false); if (retry !== 'done') { - throw createUpdateError( + throw createPushyError( ERROR_DOWNLOAD_FAILED, `Server rejected the download range for ${params.url}`, ); @@ -607,7 +607,7 @@ export class DownloadTask { ? params.deadlineUptimeMs : monotonicNowMs() + DOWNLOAD_CALL_TIMEOUT_MS; if (deadlineUptimeMs <= monotonicNowMs()) { - throw createUpdateError( + throw createPushyError( ERROR_DOWNLOAD_FAILED, 'Download deadline expired before start', ); @@ -684,7 +684,7 @@ export class DownloadTask { received += data.byteLength; if (!writeError && baseOffset + received > MAX_ARCHIVE_BYTES) { // 未知长度/分块传输的兜底:超过上限即停写,请求在下面结算时失败。 - writeError = createUpdateError( + writeError = createPushyError( ERROR_PATCH_FAILED, `archive too large: exceeded ${MAX_ARCHIVE_BYTES}`, ); @@ -735,7 +735,7 @@ export class DownloadTask { watchdogTimer = setTimeout(() => { if (inactivityReject) { inactivityReject( - createUpdateError( + createPushyError( ERROR_DOWNLOAD_FAILED, `Download stalled: no data received for ${INACTIVITY_TIMEOUT_MS}ms`, ), @@ -855,7 +855,7 @@ export class DownloadTask { const deadlinePromise = new Promise((_, reject) => { deadlineTimer = setTimeout(() => { reject( - createUpdateError( + createPushyError( ERROR_DOWNLOAD_FAILED, 'Download exceeded its whole-call deadline', ), @@ -894,7 +894,7 @@ export class DownloadTask { // 响应体从未落盘,partial + sidecar 原样保留——那就是续传状态。 discardBody = true; pendingChunks = null; - throw createUpdateError( + throw createPushyError( ERROR_DOWNLOAD_FAILED, `Server error: ${responseCode}`, ); @@ -945,7 +945,7 @@ export class DownloadTask { ); } if (totalAll > MAX_ARCHIVE_BYTES) { - writeError = createUpdateError( + writeError = createPushyError( ERROR_PATCH_FAILED, `archive too large: ${totalAll} bytes`, ); @@ -997,13 +997,13 @@ export class DownloadTask { const stats = await fileIo.stat(params.targetFile); if (!finalEncoded) { if (contentLength > 0 && received !== contentLength) { - throw createUpdateError( + throw createPushyError( ERROR_DOWNLOAD_FAILED, `Download incomplete: expected ${contentLength} bytes but got ${received} bytes`, ); } if (totalAll > 0 && stats.size !== totalAll) { - throw createUpdateError( + throw createPushyError( ERROR_DOWNLOAD_FAILED, `Download incomplete: expected ${totalAll} total bytes but got ${stats.size} bytes`, ); @@ -1026,7 +1026,7 @@ export class DownloadTask { return 'done'; } catch (error) { logger.error(TAG, `Download failed: ${getErrorMessage(error)}`); - throw toUpdateError(error, ERROR_DOWNLOAD_FAILED); + throw toPushyError(error, ERROR_DOWNLOAD_FAILED); } finally { clearWatchdog(); if (deadlineTimer !== null) { @@ -1075,10 +1075,10 @@ export class DownloadTask { } /** 解压目录里的条目名 + __diff.json 解析结果,供 patch plan 使用。 */ - private async readPatchInputs( + private async readDeltaInputs( work: string, normalizeResourceCopies: boolean, - ): Promise { + ): Promise { const results = await Promise.all([ this.listEntryNames(work), this.readManifestArrays(work, normalizeResourceCopies), @@ -1093,7 +1093,7 @@ export class DownloadTask { private async doPatchFromApp(params: DownloadTaskParams): Promise { const work = await this.downloadAndExtract(params); - const inputs = await this.readPatchInputs(work, true); + const inputs = await this.readDeltaInputs(work, true); const manifestArrays = inputs.manifestArrays; NativePatchCore.buildArchivePatchPlan( @@ -1107,7 +1107,7 @@ export class DownloadTask { const bundlePatchPath = `${work}/${HARMONY_BUNDLE_PATCH_ENTRY}`; if (!fileIo.accessSync(bundlePatchPath)) { - throw createUpdateError(ERROR_PATCH_FAILED, 'bundle patch not found'); + throw createPushyError(ERROR_PATCH_FAILED, 'bundle patch not found'); } const resourceManager = this.context.resourceManager; const originContent = await resourceManager.getRawFileContent( @@ -1142,7 +1142,7 @@ export class DownloadTask { private async doPatchFromPpk(params: DownloadTaskParams): Promise { const work = await this.downloadAndExtract(params); - const inputs = await this.readPatchInputs(work, false); + const inputs = await this.readDeltaInputs(work, false); const manifestArrays = inputs.manifestArrays; const plan = NativePatchCore.buildArchivePatchPlan( @@ -1242,10 +1242,10 @@ export class DownloadTask { } } } catch (error) { - const coded = toUpdateError(error, ERROR_PATCH_FAILED); + const coded = toPushyError(error, ERROR_PATCH_FAILED); const message = `Copy from resource failed: ${currentFrom}, ${getErrorMessage(error)}`; logger.error(TAG, message); - throw createUpdateError(coded.code, message); + throw createPushyError(coded.code, message); } } @@ -1275,7 +1275,7 @@ export class DownloadTask { } const actualCrc = NativePatchCore.crc32(content); if (actualCrc !== expectedCrc) { - throw createUpdateError( + throw createPushyError( ERROR_PATCH_FAILED, `resource content mismatch (crc32): ${from}`, ); @@ -1292,7 +1292,7 @@ export class DownloadTask { } catch (error) { const message = `Cleanup failed: ${getErrorMessage(error)}`; logger.error(TAG, message); - throw createUpdateError(ERROR_FILE_OPERATION_FAILED, message); + throw createPushyError(ERROR_FILE_OPERATION_FAILED, message); } } @@ -1322,7 +1322,7 @@ export class DownloadTask { await this.deleteResumeSidecar(params.targetFile); break; default: - throw createUpdateError( + throw createPushyError( ERROR_INVALID_OPTIONS, `Unknown task type: ${params.type}`, ); @@ -1335,7 +1335,7 @@ export class DownloadTask { // (解压/hpatch/资源拷贝含 copiesCrc 校验/完成记录)一律 PATCH_FAILED, // JS 层 patch-health 遥测据此区分网络失败与补丁失败。已带码的错误 // (磁盘空间、参数)原样保留。 - const error = toUpdateError( + const error = toPushyError( rawError, this.downloadPhaseCompleted ? ERROR_PATCH_FAILED : ERROR_DOWNLOAD_FAILED, ); diff --git a/harmony/pushy/src/main/ets/ErrorCodes.ts b/harmony/pushy/src/main/ets/ErrorCodes.ts index 909752c2..476f1683 100644 --- a/harmony/pushy/src/main/ets/ErrorCodes.ts +++ b/harmony/pushy/src/main/ets/ErrorCodes.ts @@ -23,14 +23,14 @@ export const ERROR_APK_INSTALL_FAILED = 'APK_INSTALL_FAILED'; /** * 带稳定错误码的 Error:`code` 是属性,消息同时带 `[CODE] ` 前缀(桥丢属性时 - * JS 仍能解析)。始终经 createUpdateError / toUpdateError 构造。 + * JS 仍能解析)。始终经 createPushyError / toPushyError 构造。 */ -export class UpdateError extends Error { +export class PushyError extends Error { readonly code: string; constructor(code: string, message: string) { super(`[${code}] ${message}`); - this.name = 'UpdateError'; + this.name = 'PushyError'; this.code = code; } } @@ -46,19 +46,19 @@ export function getErrorMessage(error: unknown): string { return String(error); } -export function createUpdateError(code: string, message: string): UpdateError { - return new UpdateError(code, message); +export function createPushyError(code: string, message: string): PushyError { + return new PushyError(code, message); } /** - * 给未带码的错误补上 `code`:已是 UpdateError 的原样返回(保留其更精确的码 + * 给未带码的错误补上 `code`:已是 PushyError 的原样返回(保留其更精确的码 * 与前缀,绝不叠两层前缀),其余按 defaultCode 重包并保留原消息。 */ -export function toUpdateError(error: unknown, defaultCode: string): UpdateError { - if (error instanceof UpdateError) { +export function toPushyError(error: unknown, defaultCode: string): PushyError { + if (error instanceof PushyError) { return error; } - return new UpdateError(defaultCode, getErrorMessage(error)); + return new PushyError(defaultCode, getErrorMessage(error)); } /** 从 `[CODE] message` 形式的消息里解析错误码;无前缀返回空串。 */ diff --git a/harmony/pushy/src/main/ets/InstallRecord.ts b/harmony/pushy/src/main/ets/InstallRecord.ts index f85d4846..8487ec03 100644 --- a/harmony/pushy/src/main/ets/InstallRecord.ts +++ b/harmony/pushy/src/main/ets/InstallRecord.ts @@ -1,7 +1,7 @@ import fileIo from '@ohos.file.fs'; import { util } from '@kit.ArkTS'; import NativePatchCore from './NativePatchCore'; -import { ERROR_SWITCH_VERSION_FAILED, createUpdateError } from './ErrorCodes'; +import { ERROR_SWITCH_VERSION_FAILED, createPushyError } from './ErrorCodes'; // ArkTS mirror of cpp/patch_core/install_record.h — keep in sync by hand // (harmony/pushy/src/test/check-constant-parity.js asserts the values match). @@ -141,7 +141,7 @@ export function expectedBundleSha256ForActivation( versionHash: string, ): string { if (record === null) { - throw createUpdateError( + throw createPushyError( ERROR_SWITCH_VERSION_FAILED, `Bundle version ${versionHash} has no valid completion record.`, ); @@ -153,7 +153,7 @@ export function expectedBundleSha256ForActivation( record.schema !== INSTALL_RECORD_SCHEMA || record.versionHash !== versionHash ) { - throw createUpdateError( + throw createPushyError( ERROR_SWITCH_VERSION_FAILED, `Bundle version ${versionHash} completion record mismatch.`, ); @@ -179,7 +179,7 @@ export async function verifyInstallForActivation( } const actual = await NativePatchCore.sha256HexFileAsync(bundlePath); if (actual.toLowerCase() !== expected.toLowerCase()) { - throw createUpdateError( + throw createPushyError( ERROR_SWITCH_VERSION_FAILED, `Bundle version ${versionHash} bundle digest mismatch.`, ); diff --git a/harmony/pushy/src/main/ets/NativePatchCore.ts b/harmony/pushy/src/main/ets/NativePatchCore.ts index 27f33b66..57888702 100644 --- a/harmony/pushy/src/main/ets/NativePatchCore.ts +++ b/harmony/pushy/src/main/ets/NativePatchCore.ts @@ -99,19 +99,19 @@ interface NativePatchCoreBindings { // 更新流程决策层(cpp/update_flow_core,NATIVE_CHECKUPDATE_DESIGN §10): // JSON 字符串进出,与决策层自身的边界一致。返回 undefined = 输入未通过 // 解析,编排器跳过本轮检测。 - buildCheckRequestBody(inputJson: string): string | undefined; + buildRequestBody(inputJson: string): string | undefined; orderEndpointCandidates( endpointsJson: string, randomSample: number, ): string | undefined; - handleCheckResponse( + handleResponse( responseText: string, identityJson: string, afterDownload: string, ): string | undefined; - // 响应 schema 门槛(update_flow_core::IsValidCheckResponse):200 但只带 + // 响应 schema 门槛(update_flow_core::IsValidResponse):200 但只带 // `{"error":...}` 的节点算失败,不得阻止继续 fallback。 - isValidCheckResponse(responseText: string): boolean; + isValidResponse(responseText: string): boolean; } export default NativeUpdateCore as unknown as NativePatchCoreBindings; diff --git a/harmony/pushy/src/main/ets/PathUtils.ts b/harmony/pushy/src/main/ets/PathUtils.ts index 4ee75e89..7f908692 100644 --- a/harmony/pushy/src/main/ets/PathUtils.ts +++ b/harmony/pushy/src/main/ets/PathUtils.ts @@ -1,4 +1,4 @@ -import { ERROR_INVALID_OPTIONS, createUpdateError } from './ErrorCodes'; +import { ERROR_INVALID_OPTIONS, createPushyError } from './ErrorCodes'; // Server-controlled identifiers are used as children of the update root. Keep // validation in a dependency-light module (ErrorCodes.ts has no imports) so @@ -18,7 +18,7 @@ export function isSafePathComponent(name: string): boolean { export function assertSafePathComponent(name: string): string { if (!isSafePathComponent(name)) { - throw createUpdateError( + throw createPushyError( ERROR_INVALID_OPTIONS, `Invalid path component: ${name}`, ); diff --git a/harmony/pushy/src/main/ets/PushyFileJSBundleProvider.ets b/harmony/pushy/src/main/ets/PushyFileJSBundleProvider.ets index 928ab05f..daf03618 100644 --- a/harmony/pushy/src/main/ets/PushyFileJSBundleProvider.ets +++ b/harmony/pushy/src/main/ets/PushyFileJSBundleProvider.ets @@ -6,7 +6,7 @@ import { import common from '@ohos.app.ability.common'; import fs from '@ohos.file.fs'; import { UpdateContext } from './UpdateContext'; -import { prepareBundleNative } from './NativeCheckOrchestrator'; +import { prepareBundleNative } from './SyncCoordinator'; import type { BundlePreparationResult } from './BundlePreparationResult'; import { normalizePushyConfiguration } from './PushyConfiguration'; import type { PushyConfiguration } from './PushyConfiguration'; diff --git a/harmony/pushy/src/main/ets/PushyTurboModule.ts b/harmony/pushy/src/main/ets/PushyTurboModule.ts index add21ad8..04bc50f7 100644 --- a/harmony/pushy/src/main/ets/PushyTurboModule.ts +++ b/harmony/pushy/src/main/ets/PushyTurboModule.ts @@ -10,9 +10,9 @@ import { UpdateContext } from './UpdateContext'; import { EventHub } from './EventHub'; import { KEY_CONFIG, - markJsCheckCompleted, + recordJsRound, KEY_RESP_CACHE, -} from './NativeCheckOrchestrator'; +} from './SyncCoordinator'; import { ERROR_FILE_OPERATION_FAILED, ERROR_INVALID_HASH_INFO, @@ -22,9 +22,9 @@ import { ERROR_RESTART_FAILED, ERROR_SWITCH_VERSION_FAILED, ERROR_UNSUPPORTED_PLATFORM, - createUpdateError, + createPushyError, getErrorMessage, - toUpdateError, + toPushyError, } from './ErrorCodes'; export { getErrorMessage } from './ErrorCodes'; @@ -41,13 +41,13 @@ interface RestartableApplicationContext { restartApp?: (want: RestartWant) => void; } -interface ReloadEventEmitter { +interface RestartEventEmitter { emit(event: string, payload: Object): void; } // RNOH 的 devToolsController 不在公开的 UITurboModuleContext 类型里。 interface DevToolsControllerHolder { - devToolsController?: { eventEmitter: ReloadEventEmitter }; + devToolsController?: { eventEmitter: RestartEventEmitter }; } export function validateHashInfo(info: string): void { @@ -59,7 +59,7 @@ export function validateHashInfo(info: string): void { valid = false; } if (!valid) { - throw createUpdateError(ERROR_INVALID_HASH_INFO, 'invalid json string'); + throw createPushyError(ERROR_INVALID_HASH_INFO, 'invalid json string'); } } @@ -96,7 +96,7 @@ export class PushyTurboModule extends UITurboModule { private requireHash(hash: string, methodName: string): string { if (!hash) { - throw createUpdateError( + throw createPushyError( ERROR_INVALID_OPTIONS, `${methodName}: empty hash`, ); @@ -104,7 +104,7 @@ export class PushyTurboModule extends UITurboModule { return hash; } - private softReload(): void { + private softRestart(): void { const holder = this.ctx as unknown as DevToolsControllerHolder; const devToolsController = holder.devToolsController; if (devToolsController) { @@ -147,7 +147,7 @@ export class PushyTurboModule extends UITurboModule { private async reloadBridge(): Promise { if (this.ctx.isDebugModeEnabled) { logger.debug(TAG, 'reloadBridge via devToolsController RELOAD (debug mode)'); - this.softReload(); + this.softRestart(); } else { logger.debug(TAG, 'reloadBridge via restartAbility (release mode)'); // If the process truly restarts, this timer dies with it. It only fires @@ -158,7 +158,7 @@ export class PushyTurboModule extends UITurboModule { // path, only in the catch branch where the soft reload runs immediately. const fallbackTimer = setTimeout(() => { logger.warn(TAG, 'restartAbility did not restart the app within 1.5s, triggering soft reload fallback'); - this.softReload(); + this.softRestart(); }, 1500); try { @@ -166,7 +166,7 @@ export class PushyTurboModule extends UITurboModule { } catch (error) { clearTimeout(fallbackTimer); logger.error(TAG, `restartAbility failed: ${getErrorMessage(error)}, triggering soft reload fallback`); - this.softReload(); + this.softRestart(); } } } @@ -232,7 +232,7 @@ export class PushyTurboModule extends UITurboModule { try { await this.context.setKv(`hash_${hash}`, info); } catch (error) { - throw toUpdateError(error, ERROR_FILE_OPERATION_FAILED); + throw toPushyError(error, ERROR_FILE_OPERATION_FAILED); } } @@ -253,7 +253,7 @@ export class PushyTurboModule extends UITurboModule { try { await this.context.setKv('uuid', uuid); } catch (error) { - throw toUpdateError(error, ERROR_FILE_OPERATION_FAILED); + throw toPushyError(error, ERROR_FILE_OPERATION_FAILED); } } @@ -267,7 +267,7 @@ export class PushyTurboModule extends UITurboModule { try { JSON.parse(config); } catch (e) { - throw createUpdateError( + throw createPushyError( ERROR_INVALID_OPTIONS, `syncNativeConfig: config is not valid JSON: ${getErrorMessage(e)}`, ); @@ -275,7 +275,7 @@ export class PushyTurboModule extends UITurboModule { try { await this.context.setNativeConfig(config); } catch (error) { - throw toUpdateError(error, ERROR_FILE_OPERATION_FAILED); + throw toPushyError(error, ERROR_FILE_OPERATION_FAILED); } } @@ -283,12 +283,12 @@ export class PushyTurboModule extends UITurboModule { async markJsCheckCompleted(config: string): Promise { logger.debug(TAG, ',call markJsCheckCompleted'); if (typeof config !== 'string' || config.length === 0) { - throw createUpdateError( + throw createPushyError( ERROR_INVALID_OPTIONS, 'config must be a non-empty string', ); } - markJsCheckCompleted(config); + recordJsRound(config); } // 原生冷启动检测落盘的原始响应缓存,JS 侧新鲜期内直接复用免二次请求 @@ -307,14 +307,14 @@ export class PushyTurboModule extends UITurboModule { try { await this.context.switchVersion(hash); } catch (error) { - logger.error(TAG, `reloadUpdate switch failed: ${getErrorMessage(error)}`); - throw toUpdateError(error, ERROR_SWITCH_VERSION_FAILED); + logger.error(TAG, `switch failed: ${getErrorMessage(error)}`); + throw toPushyError(error, ERROR_SWITCH_VERSION_FAILED); } try { await this.reloadBridge(); } catch (error) { - logger.error(TAG, `reloadUpdate restart failed: ${getErrorMessage(error)}`); - throw toUpdateError(error, ERROR_RESTART_FAILED); + logger.error(TAG, `restart failed: ${getErrorMessage(error)}`); + throw toPushyError(error, ERROR_RESTART_FAILED); } } @@ -324,7 +324,7 @@ export class PushyTurboModule extends UITurboModule { await this.reloadBridge(); } catch (error) { logger.error(TAG, `restartApp failed: ${getErrorMessage(error)}`); - throw toUpdateError(error, ERROR_RESTART_FAILED); + throw toPushyError(error, ERROR_RESTART_FAILED); } } @@ -336,7 +336,7 @@ export class PushyTurboModule extends UITurboModule { await this.context.switchVersion(hash); } catch (error) { logger.error(TAG, `setNeedUpdate failed: ${getErrorMessage(error)}`); - throw toUpdateError(error, ERROR_SWITCH_VERSION_FAILED); + throw toPushyError(error, ERROR_SWITCH_VERSION_FAILED); } } @@ -346,7 +346,7 @@ export class PushyTurboModule extends UITurboModule { await this.context.markSuccess(); } catch (error) { logger.error(TAG, `markSuccess failed: ${getErrorMessage(error)}`); - throw toUpdateError(error, ERROR_MARK_SUCCESS_FAILED); + throw toPushyError(error, ERROR_MARK_SUCCESS_FAILED); } } @@ -367,7 +367,7 @@ export class PushyTurboModule extends UITurboModule { await this.context.resetToPackagedBundle(); } catch (error) { logger.error(TAG, `resetToPackagedBundle failed: ${getErrorMessage(error)}`); - throw toUpdateError(error, ERROR_RESET_FAILED); + throw toPushyError(error, ERROR_RESET_FAILED); } } @@ -409,7 +409,7 @@ export class PushyTurboModule extends UITurboModule { hash: string; }): Promise { logger.debug(TAG, ',call downloadAndInstallApk'); - throw createUpdateError( + throw createPushyError( ERROR_UNSUPPORTED_PLATFORM, 'downloadAndInstallApk is only supported on Android', ); diff --git a/harmony/pushy/src/main/ets/NativeCheckOrchestrator.ts b/harmony/pushy/src/main/ets/SyncCoordinator.ts similarity index 94% rename from harmony/pushy/src/main/ets/NativeCheckOrchestrator.ts rename to harmony/pushy/src/main/ets/SyncCoordinator.ts index cbeff9ee..a3dfac4a 100644 --- a/harmony/pushy/src/main/ets/NativeCheckOrchestrator.ts +++ b/harmony/pushy/src/main/ets/SyncCoordinator.ts @@ -9,7 +9,7 @@ import { isSafePathComponent } from './PathUtils'; import { monotonicNowMs } from './MonotonicClock'; import { ERROR_DOWNLOAD_FAILED, - createUpdateError, + createPushyError, getErrorMessage, } from './ErrorCodes'; @@ -20,7 +20,7 @@ import { // 风暴,不拉黑版本。 // 鸿蒙的 debug 门控由触发点天然承担:dev 走 MetroJSBundleProvider, // PushyFileJSBundleProvider.getBundleUrl 不会被调用。 -const TAG = 'NativeCheck'; +const TAG = 'NativeSync'; export const KEY_CONFIG = 'nativeConfig'; // 供 JS 侧复用的原始响应缓存(§10.3),同时记录请求与配置指纹以限定命中范围。 export const KEY_RESP_CACHE = 'nativeCheckResp'; @@ -31,7 +31,7 @@ export const KEY_RESP_CACHE = 'nativeCheckResp'; export const KEY_ROUND_INCOMPLETE = 'nativeCheckIncomplete'; const REQUEST_TIMEOUT_MS = 10000; const REQUEST_CALL_TIMEOUT_MS = 15000; -const MAX_CHECK_HTTP_ATTEMPTS = 8; +const MAX_QUERY_HTTP_ATTEMPTS = 8; const START_DELAY_MS = 5000; const DOWNLOAD_PHASE_TIMEOUT_MS = 10 * 60 * 1000; const DOWNLOAD_TYPE_DIFF = 'diff'; @@ -62,7 +62,7 @@ interface FlowCInfo { uuid: string; } -interface FlowCheckInput { +interface FlowInput { packageVersion: string; currentVersion?: string; buildTime: string; @@ -129,7 +129,7 @@ function startNativeRound( try { await runOnce(context, launchRolledBackVersion); } catch (e) { - logger.error(TAG, `native check failed: ${getErrorMessage(e)}`); + logger.error(TAG, `native sync failed: ${getErrorMessage(e)}`); roundResult = bundlePreparationResult('failed', 'internal_error'); } return roundResult; @@ -200,20 +200,20 @@ export async function prepareBundleNative( // 进程级:下次启动无信号,冷启动轮次照常运行。 let jsCompletedConfig: string | undefined; -export function markJsCheckCompleted(config: string): void { +export function recordJsRound(config: string): void { jsCompletedConfig = config; } // JS 已用与原生完全相同的配置拿到有效响应(§10.3):延迟轮次就是一次重复请求。 // 只有计划内的轮次会问这个问题——JS 没起来、启动即崩、检查失败时都不会有信号。 -function isJsCheckCompleted(context: UpdateContext): boolean { +function hasJsRound(context: UpdateContext): boolean { return ( jsCompletedConfig !== undefined && jsCompletedConfig === context.getKv(KEY_CONFIG) ); } -export function scheduleNativeCheck( +export function scheduleNativeSync( context: UpdateContext, launchRolledBackVersion: string, ): void { @@ -227,16 +227,16 @@ export function scheduleNativeCheck( // 除非上个进程死于轮中(残留标记),那时每一秒启动时间都要用来续传。 const delayMs = context.getKv(KEY_ROUND_INCOMPLETE) ? 0 : START_DELAY_MS; setTimeout(() => { - if (isJsCheckCompleted(context)) { + if (hasJsRound(context)) { logger.info( TAG, - 'native check skipped: JS check completed in this process', + 'native sync skipped: JS already queried in this process', ); return; } startNativeRound(context, launchRolledBackVersion).catch((e: Object) => { // 救援路径自身绝不能把应用拖垮。 - logger.error(TAG, `native check failed: ${getErrorMessage(e)}`); + logger.error(TAG, `native sync failed: ${getErrorMessage(e)}`); }); }, delayMs); } @@ -361,7 +361,7 @@ async function runConfiguredRound( uuid, }; - const input: FlowCheckInput = { + const input: FlowInput = { packageVersion: identity.packageVersion, currentVersion, buildTime: context.getBuildTime(), @@ -369,14 +369,14 @@ async function runConfiguredRound( supportedDiffVersion: NativePatchCore.getSupportedDiffVersion(), bundleHash: await context.getBundleHash(), }; - const body = NativePatchCore.buildCheckRequestBody(JSON.stringify(input)); + const body = NativePatchCore.buildRequestBody(JSON.stringify(input)); if (!body) { roundResult = bundlePreparationResult('failed', 'invalid_request'); return; } const httpsOnly = isHttpsOnly(config); - const responseText = await runCheckRequest(config, appKey, body, httpsOnly); + const responseText = await runQueryRequest(config, appKey, body, httpsOnly); if (!responseText) { logger.warn(TAG, 'no endpoint reachable, giving up until next launch'); return; @@ -384,7 +384,7 @@ async function runConfiguredRound( // Anchor cache freshness to response arrival, before download/patch work. const responseAtSeconds = Math.floor(Date.now() / 1000); - const decisionJson = NativePatchCore.handleCheckResponse( + const decisionJson = NativePatchCore.handleResponse( responseText, JSON.stringify(identity), config.afterDownload ?? '', @@ -395,7 +395,7 @@ async function runConfiguredRound( } const decision = JSON.parse(decisionJson) as Decision; if (decision.action !== 'download') { - const committed = await context.commitNativeCheckResult( + const committed = await context.commitSyncResult( resetGeneration, '', '', @@ -430,7 +430,7 @@ async function runConfiguredRound( } if (!downloaded) { logger.warn(TAG, `all download attempts for ${hash} failed`); - const committed = await context.commitNativeCheckResult( + const committed = await context.commitSyncResult( resetGeneration, '', '', @@ -466,13 +466,13 @@ async function runConfiguredRound( hashInfoJson = JSON.stringify(hashInfo); } - // 版本元信息、激活与响应缓存一次性原子提交(见 commitNativeCheckResult); + // 版本元信息、激活与响应缓存一次性原子提交(见 commitSyncResult); // 缓存只在原生文件/状态工作结束后公开,避免 JS 观察到响应后并发下载。 // 静默策略、或服务端按版本标记的 forceBoot(远程覆盖,救砖指令)才激活。 const activate = decision.activate === true; let committed = false; try { - committed = await context.commitNativeCheckResult( + committed = await context.commitSyncResult( resetGeneration, hash, hashInfoJson, @@ -511,12 +511,12 @@ function buildResponseCacheJson( return JSON.stringify(cacheEntry); } -function isValidCheckResponse(responseText: string | undefined): boolean { +function isValidResponse(responseText: string | undefined): boolean { if (responseText === undefined) { return false; } try { - return NativePatchCore.isValidCheckResponse(responseText); + return NativePatchCore.isValidResponse(responseText); } catch (e) { return false; } @@ -570,7 +570,7 @@ async function httpRequest( // 顺序回退(§5.1):按纯层给出的候选序逐个请求,单请求超时;整轮失败后经 // queryUrls 发现远程候选(排除已试过的)再来一轮。刻意不做 hedged race—— // 该路径对延迟不敏感。 -async function runCheckRequest( +async function runQueryRequest( config: NativeConfig, appKey: string, body: string, @@ -591,12 +591,12 @@ async function runCheckRequest( if (!base || tried.has(base)) { continue; } - if (httpAttempts++ >= MAX_CHECK_HTTP_ATTEMPTS) { + if (httpAttempts++ >= MAX_QUERY_HTTP_ATTEMPTS) { return undefined; } tried.add(base); const response = await httpRequest(`${base}/checkUpdate/${appKey}`, body); - if (isValidCheckResponse(response)) { + if (isValidResponse(response)) { return response; } } @@ -604,7 +604,7 @@ async function runCheckRequest( if (!listUrl) { continue; } - if (httpAttempts++ >= MAX_CHECK_HTTP_ATTEMPTS) { + if (httpAttempts++ >= MAX_QUERY_HTTP_ATTEMPTS) { return undefined; } const listText = await httpRequest(listUrl); @@ -634,12 +634,12 @@ async function runCheckRequest( logger.warn(TAG, `ignoring non-https remote endpoint ${base}`); continue; } - if (httpAttempts++ >= MAX_CHECK_HTTP_ATTEMPTS) { + if (httpAttempts++ >= MAX_QUERY_HTTP_ATTEMPTS) { return undefined; } tried.add(base); const response = await httpRequest(`${base}/checkUpdate/${appKey}`, body); - if (isValidCheckResponse(response)) { + if (isValidResponse(response)) { return response; } } @@ -659,7 +659,7 @@ async function runWithinDeadline( ): Promise { const remainingMs = deadlineUptimeMs - monotonicNowMs(); if (remainingMs <= 0) { - throw createUpdateError( + throw createPushyError( ERROR_DOWNLOAD_FAILED, 'Download phase deadline expired before start', ); @@ -668,7 +668,7 @@ async function runWithinDeadline( const deadlinePromise = new Promise((_, reject) => { deadlineTimer = setTimeout(() => { reject( - createUpdateError( + createPushyError( ERROR_DOWNLOAD_FAILED, 'Download phase deadline exceeded', ), diff --git a/harmony/pushy/src/main/ets/UpdateContext.ts b/harmony/pushy/src/main/ets/UpdateContext.ts index ad9eea8f..4729f707 100644 --- a/harmony/pushy/src/main/ets/UpdateContext.ts +++ b/harmony/pushy/src/main/ets/UpdateContext.ts @@ -14,9 +14,9 @@ import logger from './Logger'; import { KEY_CONFIG, KEY_RESP_CACHE, - markJsCheckCompleted, - scheduleNativeCheck, -} from './NativeCheckOrchestrator'; + recordJsRound, + scheduleNativeSync, +} from './SyncCoordinator'; import NativePatchCore, { STATE_OP_CLEAR_FIRST_TIME, STATE_OP_CLEAR_ROLLBACK_MARK, @@ -29,9 +29,9 @@ import NativePatchCore, { import { assertSafePathComponent } from './PathUtils'; import { ERROR_SWITCH_VERSION_FAILED, - createUpdateError, + createPushyError, getErrorMessage, - toUpdateError, + toPushyError, } from './ErrorCodes'; export { isSafePathComponent } from './PathUtils'; @@ -477,7 +477,7 @@ export class UpdateContext { UpdateContext.nativeConfigGeneration += 1; this.preferences.putSync(KEY_CONFIG, config); this.preferences.deleteSync(KEY_RESP_CACHE); - markJsCheckCompleted(''); + recordJsRound(''); } // Flush even an equal value so a retry after a storage error can succeed. return this.flushPreferences('persist configuration'); @@ -614,7 +614,7 @@ export class UpdateContext { * 可插入 reset 的窗口(iOS/Android 用锁达到同一效果)。三项写入以一次 * flush 落盘,失败拒绝。返回是否提交成功。 */ - public async commitNativeCheckResult( + public async commitSyncResult( expectedGeneration: number, hash: string, hashInfoJson: string, @@ -646,7 +646,7 @@ export class UpdateContext { this.preferences.putSync(KEY_RESP_CACHE, responseCacheJson); } } finally { - flushed = this.endFlushBatch('commit native check result'); + flushed = this.endFlushBatch('commit sync result'); } await flushed; return true; @@ -668,7 +668,7 @@ export class UpdateContext { params.deadlineUptimeMs = deadlineUptimeMs; await this.executeTask(params); } catch (e) { - logger.error(TAG, `Failed to download full update: ${getErrorMessage(e)}`); + logger.error(TAG, `Failed to download full package: ${getErrorMessage(e)}`); throw e; } } @@ -710,7 +710,7 @@ export class UpdateContext { } catch (e) { logger.error( TAG, - `Failed to download package patch: ${getErrorMessage(e)}`, + `Failed to download package delta: ${getErrorMessage(e)}`, ); throw e; } @@ -732,7 +732,7 @@ export class UpdateContext { } } - // 原生冷启动检测(NativeCheckOrchestrator)用来跳过已就绪版本的重复下载 + // 原生冷启动检测(SyncCoordinator)用来跳过已就绪版本的重复下载 // ——alert 类策略下版本已下载但未激活,若不判在这里会每次冷启动重下一遍。 public hasDownloadedVersion(hash: string): boolean { try { @@ -752,7 +752,7 @@ export class UpdateContext { */ private assertActivatable(safeHash: string): boolean { if (!fileIo.accessSync(this.getBundlePath(safeHash))) { - throw createUpdateError( + throw createPushyError( ERROR_SWITCH_VERSION_FAILED, `Bundle version ${safeHash} not found.`, ); @@ -761,7 +761,7 @@ export class UpdateContext { this.readString('currentVersion') === safeHash || this.readString('lastVersion') === safeHash; if (!this.hasDownloadedVersion(safeHash) && !legacyActivated) { - throw createUpdateError( + throw createPushyError( ERROR_SWITCH_VERSION_FAILED, `Bundle version ${safeHash} is incomplete.`, ); @@ -801,7 +801,7 @@ export class UpdateContext { await this.flushPreferences(`switch version ${safeHash}`); } catch (e) { logger.error(TAG, `Failed to switch version: ${getErrorMessage(e)}`); - throw toUpdateError(e, ERROR_SWITCH_VERSION_FAILED); + throw toPushyError(e, ERROR_SWITCH_VERSION_FAILED); } } @@ -818,7 +818,7 @@ export class UpdateContext { public getBundleUrl() { UpdateContext.isUsingBundleUrl = true; this.trace('getBundleUrl:enter'); - let nativeCheckRolledBackVersion = ''; + let syncRolledBackVersion = ''; try { const stateBeforeLaunch = this.getStateSnapshot(); const launchState = NativePatchCore.runStateCore( @@ -828,7 +828,7 @@ export class UpdateContext { UpdateContext.ignoreRollback, true, ); - nativeCheckRolledBackVersion = launchState.rolledBackVersion || ''; + syncRolledBackVersion = launchState.rolledBackVersion || ''; if (launchState.didRollback) { // The crash-protection rollback: the new version never called // markSuccess. Keep this visible in release logs. @@ -865,24 +865,24 @@ export class UpdateContext { if (!fileIo.accessSync(bundleFile)) { logger.error(TAG, `Bundle version ${version} not found.`); version = this.rollBack(); - nativeCheckRolledBackVersion = this.rolledBackVersion(); + syncRolledBackVersion = this.rolledBackVersion(); continue; } UpdateContext.launchVersion = version; - nativeCheckRolledBackVersion = this.rolledBackVersion(); + syncRolledBackVersion = this.rolledBackVersion(); return bundleFile; } catch (e) { logger.error(TAG, `Failed to access bundle file: ${getErrorMessage(e)}`); version = this.rollBack(); - nativeCheckRolledBackVersion = this.rolledBackVersion(); + syncRolledBackVersion = this.rolledBackVersion(); } } - nativeCheckRolledBackVersion = this.rolledBackVersion(); + syncRolledBackVersion = this.rolledBackVersion(); return ''; } finally { // State corruption is exactly when the native rescue check is needed; // schedule even if state parsing/rollback throws before a normal exit. - scheduleNativeCheck(this, nativeCheckRolledBackVersion); + scheduleNativeSync(this, syncRolledBackVersion); } } diff --git a/harmony/pushy/src/test/ErrorCodes.test.ets b/harmony/pushy/src/test/ErrorCodes.test.ets index 7954a61e..d423dd57 100644 --- a/harmony/pushy/src/test/ErrorCodes.test.ets +++ b/harmony/pushy/src/test/ErrorCodes.test.ets @@ -2,38 +2,38 @@ import { describe, it, expect } from '@ohos/hypium'; import { ERROR_DOWNLOAD_FAILED, ERROR_PATCH_FAILED, - UpdateError, - createUpdateError, + PushyError, + createPushyError, getErrorMessage, parseErrorCodePrefix, - toUpdateError, + toPushyError, } from '../main/ets/ErrorCodes'; // 稳定错误码:`code` 属性 + `[CODE] ` 消息前缀(RNOH 桥丢属性时 JS 解析前缀)。 export default function errorCodesTest() { - describe('ErrorCodes.createUpdateError', () => { + describe('ErrorCodes.createPushyError', () => { it('sets the code and prefixes the message', 0, () => { - const error = createUpdateError(ERROR_PATCH_FAILED, 'boom'); + const error = createPushyError(ERROR_PATCH_FAILED, 'boom'); expect(error instanceof Error).assertTrue(); expect(error.code).assertEqual(ERROR_PATCH_FAILED); expect(error.message).assertEqual('[PATCH_FAILED] boom'); }); }); - describe('ErrorCodes.toUpdateError', () => { + describe('ErrorCodes.toPushyError', () => { it('keeps an existing code and never double-prefixes', 0, () => { - const original = createUpdateError(ERROR_PATCH_FAILED, 'boom'); - const wrapped = toUpdateError(original, ERROR_DOWNLOAD_FAILED); + const original = createPushyError(ERROR_PATCH_FAILED, 'boom'); + const wrapped = toPushyError(original, ERROR_DOWNLOAD_FAILED); expect(wrapped === original).assertTrue(); expect(wrapped.message).assertEqual('[PATCH_FAILED] boom'); }); it('assigns the default code to plain errors and values', 0, () => { - const fromError = toUpdateError(new Error('plain'), ERROR_DOWNLOAD_FAILED); + const fromError = toPushyError(new Error('plain'), ERROR_DOWNLOAD_FAILED); expect(fromError.code).assertEqual(ERROR_DOWNLOAD_FAILED); expect(fromError.message).assertEqual('[DOWNLOAD_FAILED] plain'); - const fromString = toUpdateError('raw', ERROR_DOWNLOAD_FAILED); - expect(fromString instanceof UpdateError).assertTrue(); + const fromString = toPushyError('raw', ERROR_DOWNLOAD_FAILED); + expect(fromString instanceof PushyError).assertTrue(); expect(fromString.message).assertEqual('[DOWNLOAD_FAILED] raw'); }); }); diff --git a/harmony/pushy/src/test/InstallRecord.test.ets b/harmony/pushy/src/test/InstallRecord.test.ets index 96ca244d..148ca46a 100644 --- a/harmony/pushy/src/test/InstallRecord.test.ets +++ b/harmony/pushy/src/test/InstallRecord.test.ets @@ -10,7 +10,7 @@ import { parseInstallRecord, stagingDirectoryFor, } from '../main/ets/InstallRecord'; -import { ERROR_SWITCH_VERSION_FAILED, UpdateError } from '../main/ets/ErrorCodes'; +import { ERROR_SWITCH_VERSION_FAILED, PushyError } from '../main/ets/ErrorCodes'; // 两阶段安装的完成记录(cpp/patch_core/install_record.h 的 ArkTS 镜像): // 纯逻辑部分,不碰磁盘。 @@ -84,11 +84,11 @@ export default function installRecordTest() { describe('InstallRecord.expectedBundleSha256ForActivation', () => { it('throws SWITCH_VERSION_FAILED without a record', 0, () => { - let caught: UpdateError | null = null; + let caught: PushyError | null = null; try { expectedBundleSha256ForActivation(null, 'abc'); } catch (e) { - caught = e as UpdateError; + caught = e as PushyError; } expect(caught !== null).assertTrue(); expect(caught!.code).assertEqual(ERROR_SWITCH_VERSION_FAILED); diff --git a/ios/RCTPushy/RCTPushy.mm b/ios/RCTPushy/RCTPushy.mm index 5bbfd8c4..47084e56 100644 --- a/ios/RCTPushy/RCTPushy.mm +++ b/ios/RCTPushy/RCTPushy.mm @@ -573,7 +573,7 @@ static BOOL PushyPatchManifestFromJson(NSDictionary *json, id copies = json[@"copies"]; if (!PushyJsonIsAbsent(copies)) { if (![copies isKindOfClass:[NSDictionary class]]) { - *reason = @"patch manifest: copies is not an object"; + *reason = @"delta manifest: copies is not an object"; return NO; } // Content checksum per copy target ("copiesCrc", pdiff manifests @@ -588,7 +588,7 @@ static BOOL PushyPatchManifestFromJson(NSDictionary *json, for (id to in (NSDictionary *)copies) { id from = ((NSDictionary *)copies)[to]; if (![to isKindOfClass:[NSString class]] || ![from isKindOfClass:[NSString class]]) { - *reason = @"patch manifest: copies entry is not a string"; + *reason = @"delta manifest: copies entry is not a string"; return NO; } if ([from length] == 0) { @@ -611,12 +611,12 @@ static BOOL PushyPatchManifestFromJson(NSDictionary *json, id deletes = json[@"deletes"]; if (!PushyJsonIsAbsent(deletes)) { if (![deletes isKindOfClass:[NSDictionary class]] && ![deletes isKindOfClass:[NSArray class]]) { - *reason = @"patch manifest: deletes is not an object or array"; + *reason = @"delta manifest: deletes is not an object or array"; return NO; } for (id path in deletes) { if (![path isKindOfClass:[NSString class]]) { - *reason = @"patch manifest: deletes entry is not a string"; + *reason = @"delta manifest: deletes entry is not a string"; return NO; } manifest->deletes.push_back(PushyToStdString(path)); @@ -744,10 +744,10 @@ + (void)scheduleFromColdStart:(NSString *)launchRolledBackVersion; + (BOOL)restorePurgedLaunch:(NSString *)purgedVersion rolledBack:(NSString *)launchRolledBackVersion; #endif -+ (void)markJsCheckCompleted:(NSString *)config; ++ (void)recordJsRound:(NSString *)config; + (void)startRoundWithDeadline:(NSTimeInterval)deadlineUptime; + (void)runOnce:(NSString *)launchRolledBackVersion deadline:(NSTimeInterval)deadlineUptime; -+ (void)runRescueWithDeadline:(NSTimeInterval)deadlineUptime; ++ (void)runHoldRoundWithDeadline:(NSTimeInterval)deadlineUptime; + (BOOL)commitRoundWithGeneration:(uint64_t)generation hashInfo:(NSDictionary *)hashInfoEntry activate:(NSString *)hashToActivate @@ -766,8 +766,8 @@ + (BOOL)commitRoundWithGeneration:(uint64_t)generation // Flipped the moment a crash is being held. JS is dead from that point on, // so there is no second decision maker: the round force-activates whatever // it downloads (§11.3). -static std::atomic pushyCrashRescueActive{false}; -static std::atomic pushyRescueAttempted{false}; +static std::atomic pushyCrashHoldActive{false}; +static std::atomic pushyHoldAttempted{false}; // Set when this process's round is the tvOS purged-version restore. static std::atomic pushyPurgeRestoreActive{false}; // True while +bundleURL waits for that restore. Only then may the round @@ -778,7 +778,7 @@ + (BOOL)commitRoundWithGeneration:(uint64_t)generation // (and is left to JS) — never selected behind the packaged bundle's back. static bool pushyPurgeRestoreWindowOpen = false; static dispatch_semaphore_t pushyRoundDone; -static NSString *pushyLaunchRolledBackForRescue = nil; +static NSString *pushyLaunchRolledBackForHold = nil; // A version this process downloaded but left for JS to activate. If the // process then crashes, JS will never activate it — the crash handler // activates it directly (bounded local work, no network). The generation is @@ -796,27 +796,27 @@ + (BOOL)commitRoundWithGeneration:(uint64_t)generation static NSString *pushyJsCompletedConfig = nil; // The group supplements (rather than consumes) the crash-rescue semaphore. static dispatch_group_t pushyHostRoundGroup; -static std::atomic pushyNativeCheckReady{false}; +static std::atomic pushySyncReady{false}; static NSDictionary *pushyHostRoundResult = nil; static NSString *pushyHostRoundConfig = nil; static uint64_t pushyHostRoundGeneration = 0; static std::atomic pushyNativeConfigGeneration{0}; static uint64_t pushyHostRoundConfigGeneration = 0; -static const NSTimeInterval kPushyRescueTriggerUptime = 60; -static const NSTimeInterval kPushyRescueBudgetBackgroundThread = 10; +static const NSTimeInterval kPushyHoldTriggerUptime = 60; +static const NSTimeInterval kPushyHoldBudgetBackgroundThread = 10; // A held main thread freezes UI teardown; stay well under the watchdog. -static const NSTimeInterval kPushyRescueBudgetMainThread = 3.5; +static const NSTimeInterval kPushyHoldBudgetMainThread = 3.5; // The purged-version restore blocks +bundleURL, usually inside // application:didFinishLaunching: — stay clear of the launch watchdog. static const NSTimeInterval kPushyPurgeRestoreBudget = 12; -static void PushyMaybeHoldForRescue(void) { +static void PushyMaybeHoldProcess(void) { // Once per process; a second crashing thread passes straight through // instead of waiting behind the first (§11.3: prefer under-rescuing over // wedging the teardown). bool expected = false; - if (!pushyRescueAttempted.compare_exchange_strong(expected, true)) { + if (!pushyHoldAttempted.compare_exchange_strong(expected, true)) { return; } NSTimeInterval uptime = PushyMonotonicNow() - pushyProcessAnchorUptime; @@ -824,14 +824,14 @@ static void PushyMaybeHoldForRescue(void) { // Early crashes are the brick signature; a crash with an in-flight round // is worth finishing regardless of uptime. Everything else is an ordinary // crash whose UX must not be delayed. - if (uptime >= kPushyRescueTriggerUptime && !roundInFlight) { + if (uptime >= kPushyHoldTriggerUptime && !roundInFlight) { return; } NSTimeInterval budget = [NSThread isMainThread] - ? kPushyRescueBudgetMainThread - : kPushyRescueBudgetBackgroundThread; + ? kPushyHoldBudgetMainThread + : kPushyHoldBudgetBackgroundThread; NSTimeInterval deadline = PushyMonotonicNow() + budget; - NSLog(@"RCTPushy -- crash rescue: holding process for up to %.1fs " + NSLog(@"RCTPushy -- crash hold: holding process for up to %.1fs " @"(uptime %.1fs)", budget, uptime); // The rescue runs on its own queue and the dying thread only waits with a @@ -841,15 +841,15 @@ static void PushyMaybeHoldForRescue(void) { dispatch_semaphore_t done = dispatch_semaphore_create(0); dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{ @try { - [RCTPushyOrchestrator runRescueWithDeadline:deadline]; + [RCTPushyOrchestrator runHoldRoundWithDeadline:deadline]; } @catch (NSException *exception) { - NSLog(@"RCTPushy -- crash rescue failed: %@", exception.reason); + NSLog(@"RCTPushy -- crash hold failed: %@", exception.reason); } dispatch_semaphore_signal(done); }); if (dispatch_semaphore_wait(done, dispatch_time(DISPATCH_TIME_NOW, (int64_t)(budget * NSEC_PER_SEC))) != 0) { - NSLog(@"RCTPushy -- crash rescue: budget exhausted, letting go"); + NSLog(@"RCTPushy -- crash hold: budget exhausted, letting go"); } } @@ -858,9 +858,9 @@ static void PushyMaybeHoldForRescue(void) { // process is still alive and JS will never run again — a natural, // false-positive-free window to finish the cold-start check. The previous // handler (crash reporters chain the same way) always runs afterwards. -static void PushyCrashRescueExceptionHandler(NSException *exception) { +static void PushyCrashHoldExceptionHandler(NSException *exception) { @try { - PushyMaybeHoldForRescue(); + PushyMaybeHoldProcess(); } @catch (NSException *inner) { // The dying process owes the previous handler its turn no matter // what the rescue did. @@ -870,11 +870,11 @@ static void PushyCrashRescueExceptionHandler(NSException *exception) { } } -static void PushyInstallCrashRescueHandler(void) { +static void PushyInstallCrashHoldHandler(void) { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ pushyPreviousExceptionHandler = NSGetUncaughtExceptionHandler(); - NSSetUncaughtExceptionHandler(&PushyCrashRescueExceptionHandler); + NSSetUncaughtExceptionHandler(&PushyCrashHoldExceptionHandler); }); } @@ -1137,14 +1137,14 @@ + (void)prepareBundleWithCompletion:(RCTPushyBundlePreparationCompletion)complet static dispatch_queue_t hostQueue; static dispatch_once_t once; dispatch_once(&once, ^{ - hostQueue = dispatch_queue_create("cn.reactnative.pushy.host-check", DISPATCH_QUEUE_SERIAL); + hostQueue = dispatch_queue_create("cn.reactnative.pushy.host-sync", DISPATCH_QUEUE_SERIAL); }); dispatch_async(hostQueue, ^{ NSDictionary *result; @try { result = [RCTPushyOrchestrator prepareBundle]; } @catch (NSException *exception) { - RCTLogWarn(@"RCTPushy -- native host check failed: %@", exception.reason); + RCTLogWarn(@"RCTPushy -- native host sync failed: %@", exception.reason); result = PushyHostResult(@"failed", @"internal_error", nil, NO); } if (completion != nil) { @@ -1286,7 +1286,7 @@ - (instancetype)init PushyRejectError(reject, PushyErrorWithCode(pushy::error_codes::kInvalidOptions, ERROR_OPTIONS)); return; } - [RCTPushyOrchestrator markJsCheckCompleted:config]; + [RCTPushyOrchestrator recordJsRound:config]; resolve(@true); } @@ -1769,7 +1769,7 @@ - (void)unzipDownloadedPackage:(NSString *)zipFilePath // An uncaught exception in a GCD block is fatal (and would // trip the crash rescue); a bad package is a PATCH_FAILED. callback(PushyErrorWithCode(pushy::error_codes::kPatchFailed, - exception.reason ?: @"patch failed")); + exception.reason ?: @"delta failed")); } }); }]; @@ -1819,7 +1819,7 @@ - (void)applyPatchForHash:(NSString *)hash long long manifestBytes = RCTPushyFileSize(sourcePatch); if (manifestBytes > pushy::archive_limits::kMaxManifestBytes) { callback(PushyErrorWithCode(pushy::error_codes::kPatchFailed, - [NSString stringWithFormat:@"patch manifest too large: %lld bytes", manifestBytes])); + [NSString stringWithFormat:@"delta manifest too large: %lld bytes", manifestBytes])); return; } NSData *data = [NSData dataWithContentsOfFile:sourcePatch]; @@ -2210,10 +2210,10 @@ + (NSString *)buildTime // NSAllowsArbitraryLoads. Same rule as RCTPushyDownloader. Returning nil // delivers the 3xx itself as the final response, which the status check in // PushyHttpRequest then treats as a failed endpoint. -@interface PushyCheckRequestRedirectGuard : NSObject +@interface PushyRequestRedirectGuard : NSObject @end -@implementation PushyCheckRequestRedirectGuard +@implementation PushyRequestRedirectGuard - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task willPerformHTTPRedirection:(NSHTTPURLResponse *)response @@ -2255,7 +2255,7 @@ - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task // final response. NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] - delegate:[PushyCheckRequestRedirectGuard new] + delegate:[PushyRequestRedirectGuard new] delegateQueue:nil]; NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { @@ -2290,13 +2290,13 @@ - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task return base; } -static BOOL PushyIsValidCheckResponse(NSString *responseText) { +static BOOL PushyIsValidResponse(NSString *responseText) { if (responseText == nil) { return NO; } - // Shared schema rule (update_flow_core::IsValidCheckResponse): a 200 with + // Shared schema rule (update_flow_core::IsValidResponse): a 200 with // `{"error": ...}` is a failed endpoint, not a verdict. - return updateflow::IsValidCheckResponse(PushyToStdString(responseText)) ? YES : NO; + return flowcore::IsValidResponse(PushyToStdString(responseText)) ? YES : NO; } @implementation RCTPushyOrchestrator @@ -2316,10 +2316,10 @@ + (void)persistConfiguration:(NSString *)config { pushyNativeConfigGeneration.fetch_add(1); [defaults setObject:config forKey:keyNativeConfig]; [defaults removeObjectForKey:keyNativeCheckCache]; - [self markJsCheckCompleted:nil]; + [self recordJsRound:nil]; }); - if (pushyNativeCheckReady.load() && [self hasRunnableConfig]) { - PushyInstallCrashRescueHandler(); + if (pushySyncReady.load() && [self hasRunnableConfig]) { + PushyInstallCrashHoldHandler(); } } @@ -2343,12 +2343,12 @@ + (void)prepareProcess:(NSString *)launchRolledBackVersion { pushyHostRoundGroup = dispatch_group_create(); dispatch_group_enter(pushyHostRoundGroup); pushyProcessAnchorUptime = PushyMonotonicNow(); - pushyLaunchRolledBackForRescue = [launchRolledBackVersion copy]; - pushyNativeCheckReady.store(true); + pushyLaunchRolledBackForHold = [launchRolledBackVersion copy]; + pushySyncReady.store(true); // The crash-hold rescue shares the orchestrator's rollout gate: no // persisted config, no handler (§11.3). if ([PushyDefaults() stringForKey:keyNativeConfig].length > 0) { - PushyInstallCrashRescueHandler(); + PushyInstallCrashHoldHandler(); } }); } @@ -2367,10 +2367,10 @@ + (void)scheduleFromColdStart:(NSString *)launchRolledBackVersion { [defaults objectForKey:keyNativeCheckIncomplete] != nil ? 0 : 5; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delaySeconds * NSEC_PER_SEC), dispatch_get_global_queue(QOS_CLASS_UTILITY, 0), ^{ - if ([self isJsCheckCompleted]) { + if ([self hasJsRound]) { // Not consuming the round: a later crash rescue may still // need it. - NSLog(@"RCTPushy -- native check skipped: JS check completed in this process"); + NSLog(@"RCTPushy -- native sync skipped: JS already queried in this process"); return; } [self startRoundWithDeadline:0]; @@ -2392,7 +2392,7 @@ + (BOOL)restorePurgedLaunch:(NSString *)purgedVersion rolledBack:(NSString *)launchRolledBackVersion { [self prepareProcess:launchRolledBackVersion]; if (![self hasRunnableConfig]) { - RCTLogWarn(@"RCTPushy -- version %@ was purged and no native check is " + RCTLogWarn(@"RCTPushy -- version %@ was purged and no native sync is " @"configured; launching the packaged bundle", purgedVersion); return NO; } @@ -2429,7 +2429,7 @@ + (NSDictionary *)prepareBundle { #if DEBUG return PushyHostResult(@"skipped", @"debug", nil, NO); #else - if (!pushyNativeCheckReady.load()) { + if (!pushySyncReady.load()) { return PushyHostResult(@"skipped", @"not_initialized", nil, NO); } NSString *configJson = [PushyDefaults() stringForKey:keyNativeConfig]; @@ -2468,7 +2468,7 @@ + (NSDictionary *)prepareBundle { #endif } -+ (void)markJsCheckCompleted:(NSString *)config { ++ (void)recordJsRound:(NSString *)config { @synchronized (RCTPushyOrchestrator.class) { pushyJsCompletedConfig = [config copy]; } @@ -2478,7 +2478,7 @@ + (void)markJsCheckCompleted:(NSString *)config { // exact config the native round would use (§10.3): the delayed round is // then a duplicate request. Only the scheduled round asks — the crash-rescue // path still runs, JS is dead by then. -+ (BOOL)isJsCheckCompleted { ++ (BOOL)hasJsRound { NSString *jsConfig; @synchronized (RCTPushyOrchestrator.class) { jsConfig = pushyJsCompletedConfig; @@ -2503,10 +2503,10 @@ + (void)startRoundWithDeadline:(NSTimeInterval)deadlineUptime { return; } @try { - [self runOnce:pushyLaunchRolledBackForRescue deadline:deadlineUptime]; + [self runOnce:pushyLaunchRolledBackForHold deadline:deadlineUptime]; } @catch (NSException *exception) { // The rescue path must never take the app down with it. - RCTLogWarn(@"RCTPushy -- native check crashed: %@", exception.reason); + RCTLogWarn(@"RCTPushy -- native sync crashed: %@", exception.reason); pushyHostRoundResult = PushyHostResult(@"failed", @"internal_error", nil, NO); } @finally { pushyRoundCompleted.store(true); @@ -2520,8 +2520,8 @@ + (void)startRoundWithDeadline:(NSTimeInterval)deadlineUptime { // process's round runs to completion within the budget, then activates a // downloaded-but-unactivated version if one exists — the last chance before // the process is gone. -+ (void)runRescueWithDeadline:(NSTimeInterval)deadlineUptime { - pushyCrashRescueActive.store(true); ++ (void)runHoldRoundWithDeadline:(NSTimeInterval)deadlineUptime { + pushyCrashHoldActive.store(true); [self startRoundWithDeadline:deadlineUptime]; if (pushyRoundStarted.load() && !pushyRoundCompleted.load()) { NSTimeInterval remaining = deadlineUptime - PushyMonotonicNow(); @@ -2552,7 +2552,7 @@ + (void)activatePendingVersion { // catch below anyway, or by cleanup). NSString *versionDir = [[RCTPushy downloadDir] stringByAppendingPathComponent:hash]; if (!PushyHasCompletedVersionAtPath(versionDir, hash)) { - NSLog(@"RCTPushy -- crash rescue: version %@ no longer on disk, dropping activation", hash); + NSLog(@"RCTPushy -- crash hold: version %@ no longer on disk, dropping activation", hash); return; } NSDictionary *hashInfoEntry = nil; @@ -2577,9 +2577,9 @@ + (void)activatePendingVersion { @synchronized (self) { pushyUnactivatedHash = nil; } - NSLog(@"RCTPushy -- crash rescue: activated downloaded version %@", hash); + NSLog(@"RCTPushy -- crash hold: activated downloaded version %@", hash); } else { - NSLog(@"RCTPushy -- crash rescue: reset since download, dropping activation"); + NSLog(@"RCTPushy -- crash hold: reset since download, dropping activation"); } } @@ -2691,28 +2691,28 @@ + (void)runConfiguredRound:(const flowjson::Value &)config // shared with JS getBundleHash) on the ordinary delayed round. input.Set("bundleHash", flowjson::Value::String(PushyToStdString( - PushyBundleHashSync(!pushyCrashRescueActive.load())))); + PushyBundleHashSync(!pushyCrashHoldActive.load())))); std::string bodyJson = - flowjson::Stringify(updateflow::BuildCheckRequestBody(input)); + flowjson::Stringify(flowcore::BuildRequestBody(input)); NSString *body = [NSString stringWithUTF8String:bodyJson.c_str()]; if (body == nil) { - RCTLogWarn(@"RCTPushy -- native check: request body is not valid UTF-8"); + RCTLogWarn(@"RCTPushy -- native sync: request body is not valid UTF-8"); pushyHostRoundResult = PushyHostResult(@"failed", @"invalid_request", nil, NO); return; } - NSString *responseText = [self runCheckRequest:config + NSString *responseText = [self runQueryRequest:config appKey:appKey body:body deadline:deadlineUptime]; if (responseText == nil) { - RCTLogInfo(@"RCTPushy -- native check: no endpoint reachable, giving up until next launch"); + RCTLogInfo(@"RCTPushy -- native sync: no endpoint reachable, giving up until next launch"); return; } long long responseAtSeconds = (long long)[[NSDate date] timeIntervalSince1970]; - flowjson::Value decision = updateflow::HandleCheckResponse( + flowjson::Value decision = flowcore::HandleResponse( PushyToStdString(responseText), identity, false, config.Get("afterDownload").AsString()); if (decision.Get("action").AsString() != "download") { @@ -2727,7 +2727,7 @@ + (void)runConfiguredRound:(const flowjson::Value &)config pushyHostRoundResult = committed ? PushyHostResult(@"noUpdate", PushyFromStdString(decision.Get("reason").AsString()), nil, NO) : PushyHostResult(@"cancelled", @"reset", nil, NO); - RCTLogInfo(@"RCTPushy -- native check: nothing to do (%s)", + RCTLogInfo(@"RCTPushy -- native sync: nothing to do (%s)", decision.Get("reason").AsString().c_str()); return; } @@ -2776,7 +2776,7 @@ + (void)runConfiguredRound:(const flowjson::Value &)config if (info.Get("config").Get("forceBoot").Truthy()) { versionInfo[@"forceBootRescue"] = @YES; } - if (pushyCrashRescueActive.load()) { + if (pushyCrashHoldActive.load()) { versionInfo[@"crashRescue"] = @YES; } // Silent strategies or a server-marked forceBoot version (per-version @@ -2786,7 +2786,7 @@ + (void)runConfiguredRound:(const flowjson::Value &)config // forever (§11.3). Or the launch is blocked on reinstalling a version // tvOS purged: JS has not started, and the whole point is to boot it — // commitRoundWithGeneration drops that one once the restore window closed. - BOOL activate = decision.Get("activate").Truthy() || pushyCrashRescueActive.load() + BOOL activate = decision.Get("activate").Truthy() || pushyCrashHoldActive.load() || pushyPurgeRestoreActive.load(); BOOL activated = NO; BOOL committed = [self commitRoundWithGeneration:resetGeneration @@ -2799,12 +2799,12 @@ + (void)runConfiguredRound:(const flowjson::Value &)config activated:&activated]; activate = activated; if (!committed) { - RCTLogInfo(@"RCTPushy -- native check: reset during round, dropping result"); + RCTLogInfo(@"RCTPushy -- native sync: reset during round, dropping result"); } else if (activate) { @synchronized (self) { pushyUnactivatedHash = nil; } - RCTLogInfo(@"RCTPushy -- native check: downloaded %@ and set for next launch", hash); + RCTLogInfo(@"RCTPushy -- native sync: downloaded %@ and set for next launch", hash); } else { // Remembered so a crash later in this process can still activate it // (activatePendingVersion) — JS never will. @@ -2812,7 +2812,7 @@ + (void)runConfiguredRound:(const flowjson::Value &)config pushyUnactivatedHash = [hash copy]; pushyUnactivatedGeneration = resetGeneration; } - RCTLogInfo(@"RCTPushy -- native check: downloaded %@, activation left to JS", hash); + RCTLogInfo(@"RCTPushy -- native sync: downloaded %@, activation left to JS", hash); } pushyHostRoundResult = committed ? PushyHostResult(@"downloaded", @"", hash, activate) @@ -2863,7 +2863,7 @@ + (BOOL)commitRoundWithGeneration:(uint64_t)generation marked[@"purgeRestore"] = @YES; info = marked; } - } else if (!pushyCrashRescueActive.load()) { + } else if (!pushyCrashHoldActive.load()) { activation = nil; } } @@ -2899,20 +2899,20 @@ + (BOOL)commitRoundWithGeneration:(uint64_t)generation // more round. No hedged race on purpose — this path is latency-insensitive. // Per-request timeout, capped to the crash-rescue budget when one is active. // <= 0 means the budget is gone and the round must stop issuing requests. -static NSTimeInterval PushyCheckRequestTimeout(NSTimeInterval deadlineUptime) { +static NSTimeInterval PushyQueryRequestTimeout(NSTimeInterval deadlineUptime) { if (deadlineUptime <= 0) { return 10; } return MIN(10, deadlineUptime - PushyMonotonicNow()); } -+ (NSString *)runCheckRequest:(const flowjson::Value &)config ++ (NSString *)runQueryRequest:(const flowjson::Value &)config appKey:(NSString *)appKey body:(NSString *)body deadline:(NSTimeInterval)deadlineUptime { double sample = arc4random() / 4294967296.0; flowjson::Value ordered = - updateflow::OrderEndpointCandidates(config.Get("endpoints"), sample); + flowcore::OrderEndpointCandidates(config.Get("endpoints"), sample); NSMutableSet *tried = [NSMutableSet set]; const NSUInteger maxHttpAttempts = 8; NSUInteger httpAttempts = 0; @@ -2926,14 +2926,14 @@ + (NSString *)runCheckRequest:(const flowjson::Value &)config return nil; } [tried addObject:base]; - NSTimeInterval timeout = PushyCheckRequestTimeout(deadlineUptime); + NSTimeInterval timeout = PushyQueryRequestTimeout(deadlineUptime); if (timeout <= 0) { return nil; } NSString *response = PushyHttpRequest( [NSString stringWithFormat:@"%@/checkUpdate/%@", base, appKey], @"POST", body, timeout); - if (PushyIsValidCheckResponse(response)) { + if (PushyIsValidResponse(response)) { return response; } } @@ -2945,7 +2945,7 @@ + (NSString *)runCheckRequest:(const flowjson::Value &)config if (httpAttempts++ >= maxHttpAttempts) { return nil; } - NSTimeInterval listTimeout = PushyCheckRequestTimeout(deadlineUptime); + NSTimeInterval listTimeout = PushyQueryRequestTimeout(deadlineUptime); if (listTimeout <= 0) { return nil; } @@ -2968,14 +2968,14 @@ + (NSString *)runCheckRequest:(const flowjson::Value &)config return nil; } [tried addObject:base]; - NSTimeInterval timeout = PushyCheckRequestTimeout(deadlineUptime); + NSTimeInterval timeout = PushyQueryRequestTimeout(deadlineUptime); if (timeout <= 0) { return nil; } NSString *response = PushyHttpRequest( [NSString stringWithFormat:@"%@/checkUpdate/%@", base, appKey], @"POST", body, timeout); - if (PushyIsValidCheckResponse(response)) { + if (PushyIsValidResponse(response)) { return response; } } @@ -2987,12 +2987,12 @@ + (NSString *)runCheckRequest:(const flowjson::Value &)config + (BOOL)performAttempts:(const flowjson::Value &)attempts hash:(NSString *)hash originHash:(NSString *)originHash - deadline:(NSTimeInterval)rescueDeadline { + deadline:(NSTimeInterval)holdDeadline { RCTPushy *engine = [self engine]; // Crash-rescue budget caps every phase; 0 keeps the normal 10min windows. NSTimeInterval incrementalDeadline = PushyMonotonicNow() + 600; - if (rescueDeadline > 0) { - incrementalDeadline = MIN(incrementalDeadline, rescueDeadline); + if (holdDeadline > 0) { + incrementalDeadline = MIN(incrementalDeadline, holdDeadline); } NSTimeInterval fullDeadline = 0; for (const auto &attempt : attempts.elements()) { @@ -3007,8 +3007,8 @@ + (BOOL)performAttempts:(const flowjson::Value &)attempts if (isFullAttempt && fullDeadline == 0) { // diff/pdiff cannot starve the last-resort full download. fullDeadline = PushyMonotonicNow() + 600; - if (rescueDeadline > 0) { - fullDeadline = MIN(fullDeadline, rescueDeadline); + if (holdDeadline > 0) { + fullDeadline = MIN(fullDeadline, holdDeadline); } } NSTimeInterval deadline = isFullAttempt ? fullDeadline : incrementalDeadline; @@ -3041,7 +3041,7 @@ + (BOOL)performAttempts:(const flowjson::Value &)attempts }]; if (dispatch_semaphore_wait(sem, dispatch_time(DISPATCH_TIME_NOW, (int64_t)(remaining * NSEC_PER_SEC))) != 0) { - RCTLogWarn(@"RCTPushy -- native check: %s attempt timed out", type.c_str()); + RCTLogWarn(@"RCTPushy -- native sync: %s attempt timed out", type.c_str()); if (isFullAttempt) { return NO; } @@ -3050,7 +3050,7 @@ + (BOOL)performAttempts:(const flowjson::Value &)attempts if (resultError == nil) { return YES; } - RCTLogInfo(@"RCTPushy -- native check: %s attempt failed: %@", + RCTLogInfo(@"RCTPushy -- native sync: %s attempt failed: %@", type.c_str(), resultError.localizedDescription); } } diff --git a/scripts/tests/ios-purge-restore/extract.py b/scripts/tests/ios-purge-restore/extract.py index 0d42ea8e..b94a5c5e 100644 --- a/scripts/tests/ios-purge-restore/extract.py +++ b/scripts/tests/ios-purge-restore/extract.py @@ -75,7 +75,7 @@ def declaration(source: str, name: str) -> tuple[int, str]: 'keyHashInfo', 'keyFirstLoadMarked', 'keyRolledBackMarked', 'KeyPackageUpdatedMarked', 'keyNativeCheckCache', 'BUNDLE_FILE_NAME', 'pushyStateLock', 'ignoreRollback', 'pushyIsUsingBundleUrl', - 'pushyResetGeneration', 'pushyLaunchVersion', 'pushyCrashRescueActive', + 'pushyResetGeneration', 'pushyLaunchVersion', 'pushyCrashHoldActive', 'pushyPurgeRestoreActive', 'pushyPurgeRestoreWindowOpen', 'pushyHostRoundResult', 'kPushyPurgeRestoreBudget', ] diff --git a/scripts/tests/ios-purge-restore/purge_restore_test.mm b/scripts/tests/ios-purge-restore/purge_restore_test.mm index 01bdd804..e3e8740a 100644 --- a/scripts/tests/ios-purge-restore/purge_restore_test.mm +++ b/scripts/tests/ios-purge-restore/purge_restore_test.mm @@ -337,7 +337,7 @@ static void SetUp(Order selected) { ignoreRollback.store(false); pushyIsUsingBundleUrl.store(false); pushyLaunchVersion = nil; - pushyCrashRescueActive.store(false); + pushyCrashHoldActive.store(false); pushyPurgeRestoreActive.store(false); pushyPurgeRestoreWindowOpen = false; pushyHostRoundResult = nil; diff --git a/scripts/verify-android-so.js b/scripts/verify-android-so.js index 0d2cbf85..f04f5480 100644 --- a/scripts/verify-android-so.js +++ b/scripts/verify-android-so.js @@ -37,10 +37,10 @@ const REQUIRED_SYMBOLS = [ 'Java_cn_reactnative_modules_update_UpdateContext_syncStateWithBinaryVersion', 'Java_cn_reactnative_modules_update_UpdateContext_runStateCore', 'Java_cn_reactnative_modules_update_NativeUpdateCore_getSupportedDiffVersion', - 'Java_cn_reactnative_modules_update_NativeUpdateFlow_buildCheckRequestBody', - 'Java_cn_reactnative_modules_update_NativeUpdateFlow_orderEndpointCandidates', - 'Java_cn_reactnative_modules_update_NativeUpdateFlow_handleCheckResponse', - 'Java_cn_reactnative_modules_update_NativeUpdateFlow_isValidCheckResponse', + 'Java_cn_reactnative_modules_update_FlowBridge_buildRequestBody', + 'Java_cn_reactnative_modules_update_FlowBridge_orderEndpointCandidates', + 'Java_cn_reactnative_modules_update_FlowBridge_handleResponse', + 'Java_cn_reactnative_modules_update_FlowBridge_isValidResponse', ]; const SHT_DYNSYM = 11; diff --git a/src/__tests__/nativeConfiguration.test.ts b/src/__tests__/nativeConfiguration.test.ts index 859b809c..4da9cded 100644 --- a/src/__tests__/nativeConfiguration.test.ts +++ b/src/__tests__/nativeConfiguration.test.ts @@ -20,7 +20,7 @@ const clientSource = runtimeSource('../client.ts'); interface ConfigStore { setNativeConfig: (config: string) => Promise; getResetGeneration: () => number; - commitNativeCheckResult: ( + commitSyncResult: ( generation: number, hash: string, info: string, @@ -50,7 +50,7 @@ function storeHarness() { util: { generateRandomUUID: () => 'native-installation-id' }, KEY_CONFIG: 'nativeConfig', KEY_RESP_CACHE: 'nativeCheckResp', - markJsCheckCompleted: (config: string) => clearedSignals.push(config), + recordJsRound: (config: string) => clearedSignals.push(config), logger: { error() {} }, getErrorMessage: (error: unknown) => String(error), } @@ -181,13 +181,7 @@ describe('actual native configuration store', () => { await h.store.setNativeConfig('A'); expect(h.store.getResetGeneration()).toBe(oldGeneration + 2); expect( - await h.store.commitNativeCheckResult( - oldGeneration, - 'old', - '{}', - true, - 'stale' - ) + await h.store.commitSyncResult(oldGeneration, 'old', '{}', true, 'stale') ).toBe(false); expect(h.values.has('hash_old')).toBe(false); expect(h.values.get('uuid')).toBe('native-installation-id'); diff --git a/src/__tests__/nativeHostApi.test.ts b/src/__tests__/nativeHostApi.test.ts index 12230f17..fd3c43e6 100644 --- a/src/__tests__/nativeHostApi.test.ts +++ b/src/__tests__/nativeHostApi.test.ts @@ -12,7 +12,7 @@ import { // scheduling, configuration gates, result mapping and reset checks are real. const source = readFileSync( new URL( - '../../harmony/pushy/src/main/ets/NativeCheckOrchestrator.ts', + '../../harmony/pushy/src/main/ets/SyncCoordinator.ts', import.meta.url ), 'utf8' @@ -62,13 +62,13 @@ function harness() { getBundleUrl: () => { throw new Error('host checks must not resolve the launch bundle again'); }, - commitNativeCheckResult: async (generation: number) => { + commitSyncResult: async (generation: number) => { state.commits += 1; return generation === state.generation && state.commitOK; }, }; const runtime = runInNewContext( - `${javascript}\nrunCheckRequest = mockCheck;\nperformAttempts = mockDownload;\n({ check: prepareBundleNative, schedule: scheduleNativeCheck });`, + `${javascript}\nrunQueryRequest = mockCheck;\nperformAttempts = mockDownload;\n({ check: prepareBundleNative, schedule: scheduleNativeSync });`, { BundlePreparationRound, bundlePreparationResult, @@ -79,8 +79,8 @@ function harness() { getErrorMessage: (error: unknown) => String(error), NativePatchCore: { getSupportedDiffVersion: () => 2, - buildCheckRequestBody: (input: string) => input, - handleCheckResponse: (response: string) => response, + buildRequestBody: (input: string) => input, + handleResponse: (response: string) => response, }, mockCheck: async () => { state.checks += 1; diff --git a/src/__tests__/nativeHostApiNaming.test.ts b/src/__tests__/nativeHostApiNaming.test.ts index b0308d60..5a18c310 100644 --- a/src/__tests__/nativeHostApiNaming.test.ts +++ b/src/__tests__/nativeHostApiNaming.test.ts @@ -9,9 +9,17 @@ const source = (path: string) => readFileSync(new URL(path, root), 'utf8'); // These are forbidden host API identifiers, not backend paths or JS bridge names. const oldNames = /\b(?:PushyNativeUpdate|NativeUpdateResult|NativeUpdateConfig|RCTPushyNativeUpdateCompletion|RCTPushyNativeConfigurationCompletion|RCTPushyNormalizeNativeConfig|checkAndUpdate(?:WithCompletion|Native)?)\b/; -// Any other "native update" wording in shipped native code. NativeUpdateCore and -// NativeUpdateFlow predate the host APIs and are bound by JNI symbol names. -const nativeUpdateWording = /NativeUpdate(?!Core|Flow)|native update/i; +// Any other "native update" wording in shipped native code. NativeUpdateCore +// predates the native round and is bound by JNI symbol names. +const nativeUpdateWording = /NativeUpdate(?!Core)|native update/i; +// Names added with the native round (10.51+) that were renamed to neutral +// wording. Checked against code only: comments never reach a binary. +const roundNames = + /\b(?:NativeCheckOrchestrator|CrashRescue|updateflow|scheduleNativeCheck|isJsCheckCompleted|commitNativeCheckResult\w*|runCheckRequest|runRescue\w*|softReload|ReloadEventEmitter|\w*PatchInputs|FlowCheckInput|\w*(?:Check|Rescue)(?:Request|Response|Result|Budget|Deadline|Active|Attempted)\w*|pushyNativeCheckReady|nativeCheckRolledBackVersion)\b/; +const roundWording = + /native check|crash rescue|host-check|native-check|crash-rescue/i; +const stripComments = (text: string) => + text.replace(/\/\*[\s\S]*?\*\//g, '').replace(/(^|[^:"'\\])\/\/.*$/gm, '$1'); const shippedNativeSources = (dir: string): string[] => readdirSync(new URL(dir, root), { recursive: true, withFileTypes: true }) @@ -31,7 +39,7 @@ describe('native host API naming', () => { const entry = source(`${android}PushyRuntime.java`); expect(entry).toContain('public final class PushyRuntime'); expect(entry).toContain('public static void prepareBundle('); - expect(entry).toContain('NativeCheckOrchestrator.prepareBundle('); + expect(entry).toContain('SyncCoordinator.prepareBundle('); expect(entry).toContain('void onComplete(BundlePreparationResult result)'); expect(source(`${android}BundlePreparationResult.java`)).toContain( 'class BundlePreparationResult' @@ -105,4 +113,21 @@ describe('native host API naming', () => { }); expect(offenders).toEqual([]); }); + + test('shipped native code uses neutral names for the native round', () => { + const paths = [ + 'ios/', + 'android/src/main/', + 'harmony/pushy/src/main/', + 'cpp/patch_core/', + 'cpp/update_flow_core/', + ].flatMap(shippedNativeSources); + const offenders = paths.flatMap((path) => + stripComments(source(path)) + .split('\n') + .filter((line) => roundNames.test(line) || roundWording.test(line)) + .map((line) => `${path}: ${line.trim()}`) + ); + expect(offenders).toEqual([]); + }); }); From f3914509da31f3f0eafe61deaaa3bde152589b21 Mon Sep 17 00:00:00 2001 From: sunnylqm Date: Tue, 29 Sep 2026 14:24:14 +0800 Subject: [PATCH 2/3] feat(native): keep service addresses and request path out of binary strings The default endpoints, endpoint-discovery URLs and the /checkUpdate/ request path are stored XOR-encoded (scripts/encode-native-text.ts) and decoded at runtime, so static string scans of the Android dex, iOS binary and Harmony package no longer see them. Requests on the wire are byte-identical, so the server, JS SDK and older clients are unaffected. - Android: HttpUtils.reveal / QUERY_PATH - iOS: RCTPushyRevealText / RCTPushyQueryPath; the key base is read through a volatile so -Os cannot fold the decode back into a plain string (verified with strings on the -Os object) - Harmony: revealText / QUERY_PATH in PushyConfiguration.ts - Tests: every encoded constant decodes to the expected set per platform, shipped native code has no plain copies, Harmony/Android decode at runtime Co-Authored-By: Claude Opus 5.5 --- .../reactnative/modules/update/HttpUtils.java | 19 +++- .../modules/update/PushyConfiguration.java | 8 +- .../modules/update/SyncCoordinator.java | 4 +- .../modules/update/HttpUtilsTest.java | 9 ++ .../pushy/src/main/ets/PushyConfiguration.ts | 23 ++++- harmony/pushy/src/main/ets/SyncCoordinator.ts | 5 +- ios/RCTPushy/RCTPushy.mm | 4 +- ios/RCTPushy/RCTPushyConfiguration.h | 8 ++ ios/RCTPushy/RCTPushyConfiguration.mm | 32 +++++- scripts/encode-native-text.ts | 38 +++++++ src/__tests__/nativeTextEncoding.test.ts | 99 +++++++++++++++++++ 11 files changed, 232 insertions(+), 17 deletions(-) create mode 100644 scripts/encode-native-text.ts create mode 100644 src/__tests__/nativeTextEncoding.test.ts diff --git a/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java b/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java index 62859859..4650d9fb 100644 --- a/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java +++ b/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java @@ -15,7 +15,24 @@ static boolean isHttpsUrl(String url) { return url != null && url.regionMatches(true, 0, "https://", 0, 8); } - /** Strips every trailing slash so "/checkUpdate/" never doubles one. */ + /** Request path appended to an endpoint base, kept out of the plain string table. */ + static final String QUERY_PATH = reveal("7514fcd4ad805d55263e08fc99"); + + /** + * Decodes text produced by scripts/encode-native-text.ts: byte i is XORed + * with (0x5A + 0x1D * i) & 0xFF. Keeps service addresses and paths out of + * static string scans of the binary; it is not a secret. + */ + static String reveal(String hex) { + char[] out = new char[hex.length() / 2]; + for (int i = 0; i < out.length; i++) { + int b = Integer.parseInt(hex.substring(i * 2, i * 2 + 2), 16); + out[i] = (char) (b ^ ((0x5A + 0x1D * i) & 0xFF)); + } + return new String(out); + } + + /** Strips every trailing slash so "" never doubles one. */ static String normalizeEndpointBase(String base) { while (base.endsWith("/")) { base = base.substring(0, base.length() - 1); diff --git a/android/src/main/java/cn/reactnative/modules/update/PushyConfiguration.java b/android/src/main/java/cn/reactnative/modules/update/PushyConfiguration.java index e0abb27b..72cf4155 100644 --- a/android/src/main/java/cn/reactnative/modules/update/PushyConfiguration.java +++ b/android/src/main/java/cn/reactnative/modules/update/PushyConfiguration.java @@ -16,12 +16,14 @@ final class PushyConfiguration { "packageVersion", "rnu", "rn")); private static final Pattern URL = Pattern.compile( "^https?://(\\[[0-9a-fA-F:]+\\]|[a-zA-Z0-9.-]+)(:[0-9]+)?([/?#]|$)"); + // Default service addresses, encoded by scripts/encode-native-text.ts. private static final String[] ENDPOINTS = { - "https://update.react-native.cn/api", "https://update.reactnative.cn/api" + HttpUtils.reveal("3203e0c1bdd1270a372f18f8c2b6de7f4f2607f5b3d5b9817b592947e5cdefbc8a7e"), + HttpUtils.reveal("3203e0c1bdd1270a372f18f8c2b6de7f4f2607f5f0daac9c644a620ae88ca1ad93") }; private static final String[] QUERY_URLS = { - "https://gitee.com/sunnylqm/react-native-pushy/raw/master/endpoints.json", - "https://cdn.jsdelivr.net/gh/reactnativecn/react-native-update@master/endpoints.json" + HttpUtils.reveal("3203e0c1bdd1270a253608fcd3fd9362476817f4f0d5a1996342631be3c2a3a9d779552507fdcde8928a6f512f5ce2ccbdc869404d2f1de79daa826d562c0913eec4fa9b7d4426"), + HttpUtils.reveal("3203e0c1bdd1270a213b12b7dca09468462e12f3b0d5bd813d482446f4c6a1be8e79552507fdcda68cd06e5c3710e480a4867048483e55e0c2ab8d7d43030d1ce9c3b183214e2601f2f0d5b782601e2719e8ca") }; private PushyConfiguration() {} diff --git a/android/src/main/java/cn/reactnative/modules/update/SyncCoordinator.java b/android/src/main/java/cn/reactnative/modules/update/SyncCoordinator.java index bf585a23..04cbf3dc 100644 --- a/android/src/main/java/cn/reactnative/modules/update/SyncCoordinator.java +++ b/android/src/main/java/cn/reactnative/modules/update/SyncCoordinator.java @@ -642,7 +642,7 @@ private static String runQueryRequest( return null; } String response = httpRequest( - base + "/checkUpdate/" + appKey, body, deadlineNanos); + base + HttpUtils.QUERY_PATH + appKey, body, deadlineNanos); if (isValidResponse(response)) { return response; } @@ -679,7 +679,7 @@ private static String runQueryRequest( } tried.add(base); String response = httpRequest( - base + "/checkUpdate/" + appKey, body, deadlineNanos); + base + HttpUtils.QUERY_PATH + appKey, body, deadlineNanos); if (isValidResponse(response)) { return response; } diff --git a/android/src/test/java/cn/reactnative/modules/update/HttpUtilsTest.java b/android/src/test/java/cn/reactnative/modules/update/HttpUtilsTest.java index 661e06e3..33e71b6a 100644 --- a/android/src/test/java/cn/reactnative/modules/update/HttpUtilsTest.java +++ b/android/src/test/java/cn/reactnative/modules/update/HttpUtilsTest.java @@ -72,4 +72,13 @@ public void isHttpsUrlIsCaseInsensitiveAndStrict() { assertFalse(HttpUtils.isHttpsUrl("")); assertFalse(HttpUtils.isHttpsUrl(null)); } + + @Test + public void revealDecodesEncodedText() { + // Encoded with scripts/encode-native-text.ts. + assertEquals("/checkUpdate/", HttpUtils.QUERY_PATH); + assertEquals("https://update.react-native.cn/api", + HttpUtils.reveal("3203e0c1bdd1270a372f18f8c2b6de7f4f2607f5b3d5b9817b592947e5cdefbc8a7e")); + assertEquals("", HttpUtils.reveal("")); + } } diff --git a/harmony/pushy/src/main/ets/PushyConfiguration.ts b/harmony/pushy/src/main/ets/PushyConfiguration.ts index 4c846068..fd7d33d7 100644 --- a/harmony/pushy/src/main/ets/PushyConfiguration.ts +++ b/harmony/pushy/src/main/ets/PushyConfiguration.ts @@ -25,13 +25,28 @@ interface PersistedPushyConfiguration { rn: string; } +// Decodes text produced by scripts/encode-native-text.ts (byte i XORed with +// (0x5A + 0x1D * i) & 0xFF), keeping service addresses and paths out of static +// string scans of the package. Not a secret. +export function revealText(hex: string): string { + let text = ''; + for (let i = 0; i < hex.length / 2; i++) { + const byte = parseInt(hex.substring(i * 2, i * 2 + 2), 16); + text += String.fromCharCode(byte ^ ((0x5a + 0x1d * i) & 0xff)); + } + return text; +} + +// Request path appended to an endpoint base. +export const QUERY_PATH: string = revealText('7514fcd4ad805d55263e08fc99'); + const DEFAULT_ENDPOINTS: string[] = [ - 'https://update.react-native.cn/api', - 'https://update.reactnative.cn/api', + revealText('3203e0c1bdd1270a372f18f8c2b6de7f4f2607f5b3d5b9817b592947e5cdefbc8a7e'), + revealText('3203e0c1bdd1270a372f18f8c2b6de7f4f2607f5f0daac9c644a620ae88ca1ad93'), ]; const DEFAULT_QUERY_URLS: string[] = [ - 'https://gitee.com/sunnylqm/react-native-pushy/raw/master/endpoints.json', - 'https://cdn.jsdelivr.net/gh/reactnativecn/react-native-update@master/endpoints.json', + revealText('3203e0c1bdd1270a253608fcd3fd9362476817f4f0d5a1996342631be3c2a3a9d779552507fdcde8928a6f512f5ce2ccbdc869404d2f1de79daa826d562c0913eec4fa9b7d4426'), + revealText('3203e0c1bdd1270a213b12b7dca09468462e12f3b0d5bd813d482446f4c6a1be8e79552507fdcda68cd06e5c3710e480a4867048483e55e0c2ab8d7d43030d1ce9c3b183214e2601f2f0d5b782601e2719e8ca'), ]; const CONFIG_KEYS: string[] = [ 'appKey', 'endpoints', 'queryUrls', 'afterDownload', 'disabled', diff --git a/harmony/pushy/src/main/ets/SyncCoordinator.ts b/harmony/pushy/src/main/ets/SyncCoordinator.ts index a3dfac4a..c16a3dc3 100644 --- a/harmony/pushy/src/main/ets/SyncCoordinator.ts +++ b/harmony/pushy/src/main/ets/SyncCoordinator.ts @@ -6,6 +6,7 @@ import type { UpdateContext } from './UpdateContext'; import { BundlePreparationRound, bundlePreparationResult } from './BundlePreparationResult'; import type { BundlePreparationResult } from './BundlePreparationResult'; import { isSafePathComponent } from './PathUtils'; +import { QUERY_PATH } from './PushyConfiguration'; import { monotonicNowMs } from './MonotonicClock'; import { ERROR_DOWNLOAD_FAILED, @@ -595,7 +596,7 @@ async function runQueryRequest( return undefined; } tried.add(base); - const response = await httpRequest(`${base}/checkUpdate/${appKey}`, body); + const response = await httpRequest(`${base}${QUERY_PATH}${appKey}`, body); if (isValidResponse(response)) { return response; } @@ -638,7 +639,7 @@ async function runQueryRequest( return undefined; } tried.add(base); - const response = await httpRequest(`${base}/checkUpdate/${appKey}`, body); + const response = await httpRequest(`${base}${QUERY_PATH}${appKey}`, body); if (isValidResponse(response)) { return response; } diff --git a/ios/RCTPushy/RCTPushy.mm b/ios/RCTPushy/RCTPushy.mm index 47084e56..4eb702e5 100644 --- a/ios/RCTPushy/RCTPushy.mm +++ b/ios/RCTPushy/RCTPushy.mm @@ -2931,7 +2931,7 @@ + (NSString *)runQueryRequest:(const flowjson::Value &)config return nil; } NSString *response = PushyHttpRequest( - [NSString stringWithFormat:@"%@/checkUpdate/%@", base, appKey], + [NSString stringWithFormat:@"%@%@%@", base, RCTPushyQueryPath(), appKey], @"POST", body, timeout); if (PushyIsValidResponse(response)) { return response; @@ -2973,7 +2973,7 @@ + (NSString *)runQueryRequest:(const flowjson::Value &)config return nil; } NSString *response = PushyHttpRequest( - [NSString stringWithFormat:@"%@/checkUpdate/%@", base, appKey], + [NSString stringWithFormat:@"%@%@%@", base, RCTPushyQueryPath(), appKey], @"POST", body, timeout); if (PushyIsValidResponse(response)) { return response; diff --git a/ios/RCTPushy/RCTPushyConfiguration.h b/ios/RCTPushy/RCTPushyConfiguration.h index 8231b68c..c7d00150 100644 --- a/ios/RCTPushy/RCTPushyConfiguration.h +++ b/ios/RCTPushy/RCTPushyConfiguration.h @@ -3,3 +3,11 @@ // Validates and snapshots host options without changing any update state. FOUNDATION_EXPORT NSString * _Nullable RCTPushyNormalizeConfiguration( NSDictionary * _Nonnull options, NSError * _Nullable * _Nullable error); + +// Decodes text produced by scripts/encode-native-text.ts (byte i XORed with +// (0x5A + 0x1D * i) & 0xFF), keeping service addresses and paths out of static +// string scans of the binary. Not a secret. +FOUNDATION_EXPORT NSString * _Nonnull RCTPushyRevealText(const char * _Nonnull hex); + +// Request path appended to an endpoint base. +FOUNDATION_EXPORT NSString * _Nonnull RCTPushyQueryPath(void); diff --git a/ios/RCTPushy/RCTPushyConfiguration.mm b/ios/RCTPushy/RCTPushyConfiguration.mm index 2133b2cc..48988fbc 100644 --- a/ios/RCTPushy/RCTPushyConfiguration.mm +++ b/ios/RCTPushy/RCTPushyConfiguration.mm @@ -1,5 +1,30 @@ #import "RCTPushyConfiguration.h" +// Read through a volatile so the optimizer cannot fold the decode of a constant +// argument back into a plain string in the binary. +static volatile unsigned char PushyTextKeyBase = 0x5A; + +NSString *RCTPushyRevealText(const char *hex) { + size_t length = strlen(hex) / 2; + NSMutableString *text = [NSMutableString stringWithCapacity:length]; + unsigned char base = PushyTextKeyBase; + for (size_t i = 0; i < length; i++) { + char pair[3] = {hex[i * 2], hex[i * 2 + 1], 0}; + unsigned char byte = (unsigned char)strtoul(pair, NULL, 16); + [text appendFormat:@"%c", (char)(byte ^ (unsigned char)(base + 0x1D * i))]; + } + return text; +} + +NSString *RCTPushyQueryPath(void) { + static NSString *path; + static dispatch_once_t once; + dispatch_once(&once, ^{ + path = RCTPushyRevealText("7514fcd4ad805d55263e08fc99"); + }); + return path; +} + static void PushyConfigInvalid(NSString *message) { @throw [NSException exceptionWithName:NSInvalidArgumentException reason:[@"Invalid native configuration: " stringByAppendingString:message] @@ -63,11 +88,12 @@ static void PushyConfigInvalid(NSString *message) { NSString *appKey = PushyConfigString(options[@"appKey"], @"appKey", NO); BOOL customEndpoints = options[@"endpoints"] != nil; NSArray *endpoints = PushyConfigUrls(customEndpoints ? options[@"endpoints"] - : @[@"https://update.react-native.cn/api", @"https://update.reactnative.cn/api"], + : @[RCTPushyRevealText("3203e0c1bdd1270a372f18f8c2b6de7f4f2607f5b3d5b9817b592947e5cdefbc8a7e"), + RCTPushyRevealText("3203e0c1bdd1270a372f18f8c2b6de7f4f2607f5f0daac9c644a620ae88ca1ad93")], @"endpoints", YES); NSArray *queryUrls = PushyConfigUrls(options[@"queryUrls"] ?: (customEndpoints ? @[] - : @[@"https://gitee.com/sunnylqm/react-native-pushy/raw/master/endpoints.json", - @"https://cdn.jsdelivr.net/gh/reactnativecn/react-native-update@master/endpoints.json"]), + : @[RCTPushyRevealText("3203e0c1bdd1270a253608fcd3fd9362476817f4f0d5a1996342631be3c2a3a9d779552507fdcde8928a6f512f5ce2ccbdc869404d2f1de79daa826d562c0913eec4fa9b7d4426"), + RCTPushyRevealText("3203e0c1bdd1270a213b12b7dca09468462e12f3b0d5bd813d482446f4c6a1be8e79552507fdcda68cd06e5c3710e480a4867048483e55e0c2ab8d7d43030d1ce9c3b183214e2601f2f0d5b782601e2719e8ca")]), @"queryUrls", NO); NSString *afterDownload = options[@"afterDownload"] ? PushyConfigString(options[@"afterDownload"], @"afterDownload", NO) : @"none"; diff --git a/scripts/encode-native-text.ts b/scripts/encode-native-text.ts new file mode 100644 index 00000000..d630fa84 --- /dev/null +++ b/scripts/encode-native-text.ts @@ -0,0 +1,38 @@ +#!/usr/bin/env bun +// Encodes ASCII text for the native "reveal" helpers so service addresses and +// request paths are not stored as plain strings in shipped binaries: +// Android HttpUtils.reveal(hex) +// iOS RCTPushyRevealText(hex) +// Harmony revealText(hex) +// Byte i is XORed with (0x5A + 0x1D * i) & 0xFF and written as two hex digits. +// This only keeps the text out of static string scans; it is not a secret. +// +// Usage: bun scripts/encode-native-text.ts "https://example.com/api" ... + +export const encodeNativeText = (text: string): string => { + let hex = ''; + for (let i = 0; i < text.length; i++) { + const code = text.charCodeAt(i); + if (code > 0x7f) { + throw new Error(`only ASCII text is supported: ${JSON.stringify(text)}`); + } + const byte = code ^ ((0x5a + 0x1d * i) & 0xff); + hex += byte.toString(16).padStart(2, '0'); + } + return hex; +}; + +export const decodeNativeText = (hex: string): string => { + let text = ''; + for (let i = 0; i < hex.length / 2; i++) { + const byte = Number.parseInt(hex.slice(i * 2, i * 2 + 2), 16); + text += String.fromCharCode(byte ^ ((0x5a + 0x1d * i) & 0xff)); + } + return text; +}; + +if (import.meta.main) { + for (const text of process.argv.slice(2)) { + console.log(`${encodeNativeText(text)} // ${text}`); + } +} diff --git a/src/__tests__/nativeTextEncoding.test.ts b/src/__tests__/nativeTextEncoding.test.ts new file mode 100644 index 00000000..39e27ad7 --- /dev/null +++ b/src/__tests__/nativeTextEncoding.test.ts @@ -0,0 +1,99 @@ +import { describe, expect, test } from 'bun:test'; +import { readdirSync, readFileSync } from 'node:fs'; +import { + normalizePushyConfiguration, + QUERY_PATH, + revealText, +} from '../../harmony/pushy/src/main/ets/PushyConfiguration'; +import { + decodeNativeText, + encodeNativeText, +} from '../../scripts/encode-native-text'; + +const root = new URL('../../', import.meta.url); +const source = (path: string) => readFileSync(new URL(path, root), 'utf8'); + +// Service addresses and the request path must only appear encoded in shipped +// native code (see scripts/encode-native-text.ts). +const plainTexts = [ + '/checkUpdate/', + 'https://update.react-native.cn/api', + 'https://update.reactnative.cn/api', + 'https://gitee.com/sunnylqm/react-native-pushy/raw/master/endpoints.json', + 'https://cdn.jsdelivr.net/gh/reactnativecn/react-native-update@master/endpoints.json', +]; + +const shippedNativeSources = (dir: string): string[] => + readdirSync(new URL(dir, root), { recursive: true, withFileTypes: true }) + .filter( + (entry) => + entry.isFile() && /\.(?:h|m|mm|java|kt|ts|ets|cpp)$/.test(entry.name) + ) + .map((entry) => + `${entry.parentPath}/${entry.name}`.slice( + new URL(dir, root).pathname.length - dir.length + ) + ) + .filter((path) => !/\/tests?\//.test(path)); + +const paths = [ + 'ios/', + 'android/src/main/', + 'harmony/pushy/src/main/', + 'cpp/patch_core/', + 'cpp/update_flow_core/', +].flatMap(shippedNativeSources); + +const stripComments = (text: string) => + text.replace(/\/\*[\s\S]*?\*\//g, '').replace(/(^|[^:"'\\])\/\/.*$/gm, '$1'); + +const encodedIn = (text: string) => + [ + ...text.matchAll( + /\b(?:HttpUtils\.reveal|reveal|RCTPushyRevealText|revealText)\(\s*["']([0-9a-f]+)["']\s*\)/g + ), + ].map((match) => match[1]); + +describe('native text encoding', () => { + test('encoding round-trips', () => { + for (const text of plainTexts) { + expect(decodeNativeText(encodeNativeText(text))).toBe(text); + expect(revealText(encodeNativeText(text))).toBe(text); + } + }); + + test('each platform encodes exactly the expected texts', () => { + const platforms = { + android: paths.filter((path) => path.startsWith('android/')), + ios: paths.filter((path) => path.startsWith('ios/')), + harmony: paths.filter((path) => path.startsWith('harmony/')), + }; + for (const [platform, files] of Object.entries(platforms)) { + const decoded = files + .flatMap((path) => encodedIn(source(path))) + .map(decodeNativeText) + .sort(); + expect({ platform, decoded }).toEqual({ + platform, + decoded: [...plainTexts].sort(), + }); + } + }); + + test('shipped native code has no plain service addresses or paths', () => { + const offenders = paths.flatMap((path) => { + const code = stripComments(source(path)); + return plainTexts + .filter((text) => code.includes(text)) + .map((text) => `${path}: ${text}`); + }); + expect(offenders).toEqual([]); + }); + + test('Harmony resolves the path and default addresses at runtime', () => { + expect(QUERY_PATH).toBe('/checkUpdate/'); + const config = JSON.parse(normalizePushyConfiguration({ appKey: 'k' })); + expect(config.endpoints).toEqual(plainTexts.slice(1, 3)); + expect(config.queryUrls).toEqual(plainTexts.slice(3)); + }); +}); From 73fd4c56ae36bbb8c173541ef328f803365f37db Mon Sep 17 00:00:00 2001 From: sunnylqm Date: Tue, 29 Sep 2026 15:14:30 +0800 Subject: [PATCH 3/3] feat(native): hide native symbols and encode remaining protocol strings Runtime behavior, the JS bridge, server protocol and persisted data are unchanged; only what static scans of the binaries can see. Android - Native methods are registered from JNI_OnLoad (cpp/patch_core/ jni_registration.cpp) with encoded class/method/signature names, so the shared library exports only JNI_OnLoad (verify-android-so.js now rejects any Java_* export). A test checks the table against every Java native. - Library renamed librnupdate.so -> librnpushy.so (Android and Harmony); NativeUpdateCore -> NativeCore; applyDeltaFromSource / buildArchivePlan. - Texts.reveal / Texts.LOG_TAG: dependency-free, so logging no longer needs UpdateContext (and its native library) to be initialized. iOS - C/C++ core moved to a Core subspec built with -DNDEBUG and hidden visibility (shared headers push hidden too), so a dynamic framework exports only RCTPushy* and no third-party assertion text. - C++ namespace patch -> delta, BundlePatcher -> BundleRebuilder: the only polymorphic classes, whose RTTI names reach the binary. - Private selectors: fetchPackage:, performFetch:, applyDeltaForHash:, restartBridgeWithReason:. All platforms - Protocol values, version-info flags, storage/preference names, file suffixes and archive entry names are stored encoded (C++ Reveal, Texts.reveal, RCTPushyRevealText, Harmony Texts.ts); error code constant renamed PATCH_FAILED -> DELTA_FAILED with the same value; log text reworded. - New test: shipped native string literals carry no update/patch/rescue/ reload wording except a short allowlist (JS bridge names, the public NO_UPDATE constant). check-constant-parity decodes encoded constants. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/publish.yml | 4 +- .../harmony/entry/src/main/cpp/CMakeLists.txt | 2 +- android/jni/Android.mk | 3 +- android/lib/arm64-v8a/librnpushy.so | Bin 0 -> 340520 bytes android/lib/arm64-v8a/librnupdate.so | Bin 333472 -> 0 bytes android/lib/armeabi-v7a/librnpushy.so | Bin 0 -> 210796 bytes android/lib/armeabi-v7a/librnupdate.so | Bin 205804 -> 0 bytes android/lib/x86/librnpushy.so | Bin 0 -> 316500 bytes android/lib/x86/librnupdate.so | Bin 309688 -> 0 bytes android/lib/x86_64/librnpushy.so | Bin 0 -> 338168 bytes android/lib/x86_64/librnupdate.so | Bin 331440 -> 0 bytes .../modules/update/ApkInstaller.java | 12 +- .../modules/update/BundledResourceCopier.java | 8 +- .../reactnative/modules/update/CrashHold.java | 6 +- .../modules/update/DownloadTask.java | 44 ++++--- .../modules/update/ErrorCodes.java | 3 +- .../modules/update/FlowBridge.java | 2 +- .../reactnative/modules/update/HttpUtils.java | 18 +-- ...{NativeUpdateCore.java => NativeCore.java} | 8 +- .../modules/update/PushyConfiguration.java | 15 ++- .../modules/update/PushyRuntime.java | 2 +- .../modules/update/ReactReloadManager.java | 14 +-- .../modules/update/StateSerialRunner.java | 2 +- .../modules/update/SyncCoordinator.java | 44 ++++--- .../cn/reactnative/modules/update/Texts.java | 28 +++++ .../modules/update/UiThreadRunner.java | 2 +- .../modules/update/UpdateContext.java | 20 +-- .../modules/update/UpdateModuleImpl.java | 17 +-- .../modules/update/HttpUtilsTest.java | 4 +- cpp/patch_core/archive_limits.h | 5 + cpp/patch_core/archive_patch_core.cpp | 45 ++++--- cpp/patch_core/archive_patch_core.h | 25 ++-- cpp/patch_core/digest.h | 7 +- cpp/patch_core/error_codes.h | 9 +- cpp/patch_core/hbc_transform.h | 5 + cpp/patch_core/hbc_transform_wire.h | 5 + cpp/patch_core/install_record.h | 5 + cpp/patch_core/jni_natives.h | 27 ++++ cpp/patch_core/jni_registration.cpp | 103 ++++++++++++++++ cpp/patch_core/obscured_text.h | 44 +++++++ cpp/patch_core/patch_core.cpp | 24 ++-- cpp/patch_core/patch_core.h | 17 ++- cpp/patch_core/patch_core_android.cpp | 18 +-- cpp/patch_core/state_core.h | 5 + cpp/patch_core/state_ops.h | 5 + cpp/patch_core/tests/patch_core_test.cpp | 34 ++--- cpp/patch_core/update_core_android.cpp | 43 +++---- cpp/update_flow_core/flow_json.h | 5 + cpp/update_flow_core/update_flow_core.cpp | 33 +++-- cpp/update_flow_core/update_flow_core.h | 5 + cpp/update_flow_core/update_flow_jni.cpp | 14 +-- harmony/pushy/src/main/cpp/CMakeLists.txt | 16 +-- harmony/pushy/src/main/cpp/pushy.cpp | 40 +++--- harmony/pushy/src/main/ets/ArchiveLimits.ts | 14 +-- harmony/pushy/src/main/ets/DownloadTask.ts | 58 ++++----- harmony/pushy/src/main/ets/ErrorCodes.ts | 6 +- harmony/pushy/src/main/ets/NativePatchCore.ts | 10 +- .../pushy/src/main/ets/PushyConfiguration.ts | 21 +--- .../pushy/src/main/ets/PushyTurboModule.ts | 29 ++--- harmony/pushy/src/main/ets/SyncCoordinator.ts | 4 +- harmony/pushy/src/main/ets/Texts.ts | 28 +++++ harmony/pushy/src/main/ets/UpdateContext.ts | 19 +-- harmony/pushy/src/test/ErrorCodes.test.ets | 8 +- .../pushy/src/test/check-constant-parity.js | 17 ++- .../{librnupdate.d.ts => librnpushy.d.ts} | 2 +- ios/RCTPushy/RCTPushy.mm | 116 ++++++++++-------- ios/RCTPushy/RCTPushyConfiguration.mm | 5 +- react-native-update.podspec | 18 ++- scripts/build-android-so.sh | 2 +- scripts/check-harmony-types.js | 2 +- scripts/check-packlist.js | 4 +- scripts/test-ios-purge-restore.sh | 1 + .../ios-purge-restore/purge_restore_test.mm | 3 +- scripts/verify-android-so.js | 35 +++--- src/__tests__/jniRegistration.test.ts | 86 +++++++++++++ src/__tests__/nativeHostApi.test.ts | 2 + src/__tests__/nativeHostApiNaming.test.ts | 5 +- src/__tests__/nativeTextEncoding.test.ts | 65 ++++++++-- 78 files changed, 918 insertions(+), 439 deletions(-) create mode 100755 android/lib/arm64-v8a/librnpushy.so delete mode 100755 android/lib/arm64-v8a/librnupdate.so create mode 100755 android/lib/armeabi-v7a/librnpushy.so delete mode 100755 android/lib/armeabi-v7a/librnupdate.so create mode 100755 android/lib/x86/librnpushy.so delete mode 100755 android/lib/x86/librnupdate.so create mode 100755 android/lib/x86_64/librnpushy.so delete mode 100755 android/lib/x86_64/librnupdate.so rename android/src/main/java/cn/reactnative/modules/update/{NativeUpdateCore.java => NativeCore.java} (82%) create mode 100644 android/src/main/java/cn/reactnative/modules/update/Texts.java create mode 100644 cpp/patch_core/jni_natives.h create mode 100644 cpp/patch_core/jni_registration.cpp create mode 100644 cpp/patch_core/obscured_text.h create mode 100644 harmony/pushy/src/main/ets/Texts.ts rename harmony/types/{librnupdate.d.ts => librnpushy.d.ts} (85%) create mode 100644 src/__tests__/jniRegistration.test.ts diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 874eea55..c90fe80a 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -45,7 +45,7 @@ jobs: exit 0 fi echo "Previous tag is $PREV_TAG" - # The HAR embeds librnupdate.so compiled from cpp/patch_core, + # The HAR embeds librnpushy.so compiled from cpp/patch_core, # cpp/update_flow_core, android/jni/hpatch.c and the HDiffPatch/lzma # submodules (harmony/pushy/src/main/cpp/CMakeLists.txt), so any of # those changing must rebuild it too — reusing the previous HAR @@ -60,7 +60,7 @@ jobs: fi # Rebuild the Android native libraries from source so the published package - # can never ship a stale librnupdate.so after a cpp/patch_core change (the + # can never ship a stale librnpushy.so after a cpp/patch_core change (the # committed binaries are for local dev / git installs only). build_android_so: runs-on: ubuntu-latest # npm --provenance requires a GitHub-hosted runner diff --git a/Example/harmony_use_pushy/harmony/entry/src/main/cpp/CMakeLists.txt b/Example/harmony_use_pushy/harmony/entry/src/main/cpp/CMakeLists.txt index fb969cac..6d1dec56 100644 --- a/Example/harmony_use_pushy/harmony/entry/src/main/cpp/CMakeLists.txt +++ b/Example/harmony_use_pushy/harmony/entry/src/main/cpp/CMakeLists.txt @@ -23,6 +23,6 @@ add_library(rnoh_app SHARED "${RNOH_CPP_DIR}/RNOHAppNapiBridge.cpp" ) target_include_directories(rnoh_app PRIVATE "${PUSHY_CPP_DIR}") -# Pushy's RNOH glue is compiled into rnoh_app directly. librnupdate.so comes from pushy.har. +# Pushy's RNOH glue is compiled into rnoh_app directly. librnpushy.so comes from pushy.har. target_sources(rnoh_app PRIVATE "${PUSHY_CPP_DIR}/PushyTurboModule.cpp") target_link_libraries(rnoh_app PUBLIC rnoh) diff --git a/android/jni/Android.mk b/android/jni/Android.mk index 830d356e..a3576c4c 100644 --- a/android/jni/Android.mk +++ b/android/jni/Android.mk @@ -2,7 +2,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := rnupdate +LOCAL_MODULE := rnpushy LOCAL_CPPFLAGS += -std=c++17 LOCAL_LDFLAGS += -Wl,--exclude-libs,ALL LOCAL_C_INCLUDES := \ @@ -25,6 +25,7 @@ LOCAL_SRC_FILES := \ ../../cpp/patch_core/digest.cpp \ ../../cpp/patch_core/hbc_transform.cpp \ ../../cpp/patch_core/hbc_transform_wire.cpp \ + ../../cpp/patch_core/jni_registration.cpp \ ../../cpp/patch_core/patch_core.cpp \ ../../cpp/patch_core/patch_core_android.cpp \ ../../cpp/patch_core/state_core.cpp \ diff --git a/android/lib/arm64-v8a/librnpushy.so b/android/lib/arm64-v8a/librnpushy.so new file mode 100755 index 0000000000000000000000000000000000000000..4a1a57896f8f10ada0be37808a8a3b7ff08aeb28 GIT binary patch literal 340520 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 Uyb}HvN9gj0uezwen5gmp0lXZ>B>(^b literal 0 HcmV?d00001 diff --git a/android/lib/arm64-v8a/librnupdate.so b/android/lib/arm64-v8a/librnupdate.so deleted file mode 100755 index 6e414a2aa237aa69bcbbdb7c462ca5f437174b50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 333472 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⩛etM| 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

Jg?42x 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 G`u_lLrl5)d diff --git a/android/lib/armeabi-v7a/librnpushy.so b/android/lib/armeabi-v7a/librnpushy.so new file mode 100755 index 0000000000000000000000000000000000000000..ae2d3516346a0404ea7e02e279a4d0bc64ffd8b5 GIT binary patch literal 210796 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

+aCP=fWs_yWf$E7*%+)ciYVR`5jvGRe9C*LGhh# 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 literal 0 HcmV?d00001 diff --git a/android/lib/armeabi-v7a/librnupdate.so b/android/lib/armeabi-v7a/librnupdate.so deleted file mode 100755 index 2ac115dba8c6290cc2d83f3375f8a3b31424dfba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205804 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 F_a9>Zs3QOX diff --git a/android/lib/x86/librnpushy.so b/android/lib/x86/librnpushy.so new file mode 100755 index 0000000000000000000000000000000000000000..3373394290bb6e905638478fde6a7dfcfc466422 GIT binary patch literal 316500 zcmd4a4O|?>;RpQL+XD_b-~xn@gy=;R#YmES0}dq-6Os~(5fwG|PfPAKpvOz$NQk8s zHEOgNsYXSm7By;Aw5X|#mMUtrsA#cLOWSCp#x}O8jT$Q|=APf|{q7*AMr{Aj^MA-^ z^4;0n*O}Sb+1b6li&vDdR1`%-{#2ogNX&teL%-E)A320sB#K-yN92fjjFF#3f*CW& zAg7ceGCu~jzu|}VLWVdQGlf6b#yySk2nS{gVVNVe zctI~J{uB;-5SKx2mt6l@?*zSHw*1JpRp9f|+l7dPU0FiNAU~JkOneT$@F$lq|Kv24 z*vUxfM_h);{00nfLXhcjYQ49qq1G#=W4OuY^nm~P&uT9yEU@Q0|I-D??aM?^5x%wh z9Pv?+r|XB0?tJ>zmRqlWVue2W&5zGODj)tgIWN=k5wb7(C*#Pr=%0+wi^hbI@w}M$ zl9+gDO#It1@iSxM=f%Xo7ZY!ciMPhYFOG>{5fk4M6Tdzt-W3zSEhc_NDJH%&CjRZ1_*pUW^J3!Pi;4SU;uprmn_}V{W8&Aw#JghR_r%2eC&i~B zy`GvBm+ANCnE2Z<@qfg`LosoKtPJ@lmp3aWeoRa}KPG-kO#GafcvVciHYVN>6K{=) zx5vbsJU;C$GNizIz{L|xX zA^+)7Ia{!mvYwUkX)*DcjN@bBNs(t%oiNG@9e?4t8WYz?_dvaU`h5DXUZ!s3Z*F7&$~s+cq8T9v;dq2)2qz#c zN05I@5#)Z$^TlZh@+2qQ7xKJ$B7)rBRS5EL0YWiC0fIc&rXZY*5c_uuM-;|>!1zj7 zj!?q*NmOzi!ZD2JQi&Zw9>6Hj7X=G9mI$=sKJGZ0b{vSoyS z@-UF+<_yM~He9yu$BmYHDZ_eovsG*(Xk0y{h_*`tk;RfLZDq*84=0 zkJP*BZT2t>B8zJuS7&w-Pq7v+ggp(Lbj}{k4|0Jf}E+wp2~@lA1j3`+`z5I zda7M+tOqkSH@nu!B<2QjZz5}4=LMLoKa@Wd9>j?r-{o(V5s zPYu*aO*E5c(;RB1^Jp&3qZaC*PFhS$XelkDm2?fQqF!1<1GJI0(l**oH_^?sgLcxb zw2OAr9=eV8(muL_?xg*6fbOD0beN9NQM#M%p?m3mdVn6JV|1K~UCc*nphjwCA5^5(+XNi*U&1umU?Lo4bVm!q^-1#w$shDgLcxbw2OAr9=eTg zr@gd~?w~tqKOLZhbchbq5jskD(>-)A-ADJ+1N0yrqvBcSD>YCfHPK9(O>?N3&ZD_B zk6Ngc7Sj@1O3P?Dt)P{34XvVUsh8H!MjE88w2ijYO>{Hupq+Fp?V{bZhi<2RbSE94 zgLIgV(miw^JwV5(crKhD25O?&)J$`!g*s^oEu$554P8rXXd`WD|chY`3KzGqWI!s6CDBVr>(7kjY-A@nDgLI6JQ!&W&rABI^nKYZ`P&1uJ zb7>y6PzQC=5?V^jXgRH*m2?fQqHC#_*3bZLq^-1#w$n{?GwqZLU_KpSb0w$e7*PB+sI+DW(4F4|3d=r+2Y_R>DOgYKjQbQc|@ zLv)yq&{4XZ?xB0>KDwVCpks8L3fynhj$3M=Mrxv&G@Is7Go43ssf9YIlNQqwT1v}k zIjx|TbPcVdYiSJ)&_)`ht+b7{(@k_U?Vz1>EA65^bQ|4HdubotL3h%AIzV^PK{`Z- z=_uVz_t3p`AKgz6(1Uc0j#Kdx^OqW^iDuGlnnTTW9?hkB)IuH9NsDO-Eu-bMf>zQs zw2H2!URpx~w2=mBD{ZHn=w{kMJLy*1MZ0Ma-A1?5UfM@@(tbKXchNyQM2G1J9i_YJ z9=ezAqX+0gI!4E-c$xW14b(_YG?Ql29BQVyG>=-SgF0z3Eup2fjF!_1T1nT?wbV;% zXn;1-AZ?{>w4H9En`sB_q+PU|_Rwu~JME=?bO+r@`{@APMF;6H9igLiH{C<`(tUJ4 zJwOlAF*;5KozQsw2H2!URpx~ zw2`*bHrh@%(ap4jcG9i1i+0lId9>j#2Rn z^OYK?k(y{G&89ijOy|*Dnnx|vNsDO-Ev03&oL10Ex`tNKwbV;%Xd?~MR@z3}=_b0F zcF<0`m3Gl?+C#U~UfM@@(4DlO4$xh6kPgvdIzmV39=ezAqxHe(+XNitLR$lr8P7_8)=ZX(l**oH`5N zp=LUd=28oFP$w;>CA5^5(Q;ZrE9n|qMc2|A8la6dNLy(eZKs>)X4*kJ=~miBd+0X0 zo%Yf`x`Xbd{d9otqJwmZ4%1P(o9>}|={~xj9-s&57#*i#g!xMi)I>9BHqD`CI*;bk zJZhm1>ZHZAgqG2AT0tx68d^oyQZKEc0oq7|w3W8gO>{Hupq+Fp?V{bZhi;?WX)o=g zJ83^1pu6ZG9iqc@gpShPbPwH2_t69NARVLQRQ#U#N)6OVO*E5c(;RB1xipVjsDnCb zF)g8`w2YS13R+3m(6!V{YiNKr(jaZ6ZM2(eRK!iN&D#l z-9-oKFddd9>j!`kne5D3zq$Zk4vuO@B(|I(P=1~iE(qdXdOKBM`rxmo4uAxD|chY`3KzGqWIz)%*Zn}r=rTgf9dVn6J zV|1Jfe3wkS|3eMbNKG`8X44#Mrt@en&7&6TpiWv$OK2%Aqvh1{=kWG9sFN1c5?V^j zXgRH*YiJc+OTDy)252J<(pK6=+vz5{Ykzn<2k8(UrXzHe?xuU_Ub>I&rw8akI!4E- z_$Tv^X44#Mrj^*vcznrWD@?${^<7dtEZ;4~mlS%WcnE%*6c5;Mm*V04UMU{h?~|gS z?2zKi5j&-LSifJ22jK^#cu0Pi6kkjjl;Yw1At}BfF)YQy@FP-ukziDchwFDs@v#0L zDIUt-E5(-|_DS&&{eCGP^gkfQgZ>Alc%XhviZ4fuOXUOpyCJ@0p_k$d00t=@{x?eT zWd)PejOYHP_>xAp6kl}6k>ZOSW+}ehF;9vw2;@rfWr#c}zPMqL=Hj~1oJ+>9>*pQhb>t6jBnG&Av<# z-<98BLHyPfMZY9{ZR9Jq`1}lUz7Xddf36poDOq>x#a|UU{DFep`H3!VyI%ZRmy8kr z&}D7Yi%ZnBF1@%;&AL%9wyWt|^`c+Rx=t^Cr>1x6#a^{Zt|O%6iu+NR?^jN`Qx)Ti z@n@>IL6`hfRrKgkR(9&rZdAo@bU(%IT}+1|t@$y*drhLwf4 z-zKiXI<8TSx2WP~1;^}*O8WJxcwH9UaV7mHs<>V^=UP?t>C&-~r*#)|K77SdW^B&L zOtDKb_RkcbDzi4t6u0P7+h>aHy6Nv`i&u5#JF~@yx_Mi&#UIqHPiBbE)VX_Sh(G9$ zduxWcJ#OCc3~@#Lv?peWKgG{{e5Uv?KBIT0_;Et&r8C9N3FeQp#bXH>f6f;7Ce3+y zhIlC{ePD(dHKx8YOB^(2+%-$wkutr1miT2#&ONil^Qp#rW{USy&97yPpQNR~kS*>? zGe4Uxo=r=CCR>Ek?6=PpFPRqJI#cYNmUwWc=*}>_K2zK}J^kjH;+NAGJd!PLpE2hz zGsP1#ev70+ewoDIkS>2yX5FR}m*`5gaTd`mM6;0c@icN|Gi z=`up9xKW*p5x-P_pv`lvxC@2nF5TS6^x`>P#shkBvpV;Fd<9-jy;m<@R&T&sJ`LZN&l{)j?$B2?P9xvWjaPGNEXSy;$ z+^oZqv|ndD6feefH(`ov^`_er#Lx7ZoeAO*{R0@YCoXj?Uc48F^V5y-#!utL9r3*w zjWkQ&r7U<&6_@E!M^x0ZV;HNAUna27vy&gzi`KM5s<=`?)jy=9J&8(K7VA%y^gg}# zqt0}jUi?#+(ybSt>gH_Gi<{K+cD=Y)eKN9~a&ajJFI9|B$BQkB9Q~4R?j7;s6P>9i z9yx6cjJ)oHS(?z@PW2F1X`t&!aA$?KC#^dJRoi4V;XI`Ez9*>`g;dkO^T$V0g zOpxRECuBT7O@!o$|29L$-=~QogB<-&L&oSdac5$W(wQ!P7`}ga-o+` z%eZ}-=$f_%9VUXrN1W5B6S5xO6W4jh`?hq)`}e1!8& z=H)uksm%OX5%(%-pD1EbNyL~}lcyQhf-FmuGe8P+;b!y41dv)q} zX5FMygC}01Q=e7R4l3%1f+|?NrAxb2MfEuSI#p~|u@zg@)L*H}9qL?e1=@QP+mRv~ zglI70Jo*C^Zu}wrO{j+iLdq``Y#dG-+Bo@T^?Q^Q9N;@RF8Qa*tUoB?mx?@VVw$8= zs$WsWZSt_t;wj<`AtUEj{CI z1?P?vIZuW_o37A=gZ6w2a{emiyzsK7mzodYT$u5mOg$3@AB&`$OsB=EKU38uv#wIr z^JaahQ@?-g8#?uQWzIu7^{)yFj(A!%eyoaNHT^wRyrrVmeLzjUMXwxEBe{ht;+|-J z*+l^D%Hu!Li|dtRKhldwm1Ez>!LBU*90$1W*njE8pL7>o5+^R#r@W0OnEqv~L8eKn zR%ayL5huQj>E*avH!I4<#i^Gis^`r4t3hp=b(ulEN12Zjc&RSy?*{b|-TVg)>g&3! zeFl`t+}jN5PBm+{U3uYUet64b}yj@n~TKZ-kcXM*~V_~~yL)b@mX zam3%7XxyDBewmp5YNB{P5hdXFiK(GP z9&S-G-;#NlhDu>j`L32$n-ryG@$@GX)zTTiOjNfhbMH=6Ur5xI~)jy*ACQ*Gj-u8T=`dNGs!+=Nc~%?r{5hPFu$PapLE?tb5|b)oRAQabiS$LP6xZ zI8+MZ`Tmo(;pF!3SGVC0Zzq5CbYE;Uf1$m7RQgh33Aepdw0iBhI~DPxXuI_Awya!l z>Kd^O=Vzp4_?jc_bm7ExCE|0IWo}LoZ>pJBC!jYbdsBk=RByZ@L0l2{bL4C|O-@Er zN;apA@5YHeis9opv0Jz5pK;Lqj!zni7wm9*eB1_LF>hYa%;%>cZi=5|ZWXFek({-3W&dv3A z=t^h)%P78^@mHg`T`@kHBKnk!XH&$mGIOsH*HjsA8POI#=5wRCO*d=ADE^>J{~gBb z(ua-WGu<(t8O2Z4SuY#KYijzCQS4J^ykHa|^_WkvH2thWBlbJ}IiuLG&)9|W`eQ!E z__$e5V|-lt0LI5nd%`HLj5j=H6gS6bbQ?u)e8vq%@nrn0%Z=jg_>7y3;@|OU*Biw( z30XUg;?9J$`;DSM!Em=x3?|HIH;TU`WPFk=K1i7LQL?zvFypgi@qi)i<7BbRkbXP1 z$}szVEI)C^fn;%8V%mGj;@TwR?J456q#5_5h^Lcgyo)P}q*>1=i>s4Ah~~*3l-7)& zrivdcGww{4$@xkOk~3p4MZBq`KbImtR5Es@h%LJGr&Dk_YU)Rl>1IEkB3{%PccdVJ zW8+@bjMLn-33gqfG6h=&X_-ZhHH65}pU5pN`BA`!cijF+T}dy+D) zOclRLl3BGU>F6!kp5zQQ2RhJ##2U+#hH8M~e6}@)4iLrz0_Lh_}3*BA$((h9voC{LFV!#1#paF^ox=_Hv52 z&X9_od)6@XUhIlt=5;CJV?!27*ENZ=Pz;|-G~qJzwZs|!Fp7UB&ccQ1O-bp0Hj05H zxm#~1rDL~lNX|fsdOvwK60gJfsmwL(mwnaDt*UTmU80KCjQ4fOyxH&Q#M4Up+d8zo zGx1iHeM$zdWj|A9zoZj4>f});=gSYyd{@PJ+=RyTPnE3aRAl&3kE`OKlD<>LHK*xO zT-E4~x=$5*b;jFNTz}%U&tvCku}+9}#$V|~bM|9$mDx|~aLCMlKqofoE(kCGSW$|; zBhytnQHf5vs}$3fI$Ud_etASOq80U|QWu`iC|?G$%5bqb^Gt2KPSe_#Y47Sq9~da*tV&^*qnC0F&T`?}0b%9c9{GL*QrW)56y0u7IR5$}I#nngs zTve`B=KM@mdX-t%s>*Z9ypT@$yOQxQo$|So`nFE_u@2=sGN+cNDFT^tLE62F*f=Q- zuEA8-C~3Gr>DJN!$H=LMHn9qahCE*EhI(-_hreRHQNCQ|IP@3U!so)+cown`Ofda`?BpH%&hV&CJo<(8e*JVvax{O9=#lzRF$~M?lf%#H3@_`%%hBb{Iz0=GD-SwJ z(Hn!ImleZn3OX4gY4vrVA9qI9E4UuR{I@Db485Zmp4OrFNDlAR83uG>AiA#O&dEY8 zap9@x2vyQB^of#;E!w1$!@tudqX+HvXnGuXeiklL8!&C3l7^u}N;2w}t8{XBRF{kz z=Ix1TPftf~RpVgBIUPgqYWep5m*(4X-(=b|()a3w3+<2x6(fem6vOXj{>kANb%s}U z=yHmbhw1ZX-=vDh88@rqUfqlvRP1)WECRATJvwo>V#M$h zN^+M@d0t*;f2d5y;AUMaM&GEz9RidwxsSKbRc2@xV}`pFYNyFRgM?G z!p8hcNxc>aA-W30TT1#hGR`h5{Zn_vqeMH5_mt>^;X}Z{wA-lS+&&=30UHmI^Ar{mFxvN-WPu>$vGPQoJ zq|U!BP5Eu=d`x*TwJMVG+WAEM+JwF=Q__~{;x{IlZN@3LsARk2wX{m~Ck&uJ!WI4egug530JvT!yJfMQF!FCgz!@Bx;SYxHlv3eAV)0dYorsnwjV<3ZKy8 z4l2rar82ryEq!cpYn77>HOjI@lg1-&r^TH(u?#JK{6rk>B%DG8!ZD~$dv(UEROKz* zd~|1RRi{0qDtD>b(WQm+LEgp?2!_uiTPnw&qnw8NO&}PqQIx+aad-;_G8pehxl>p9 zv|ju~wV|!|jEV#8Ej12hQs(A{ zmL`wSEMMkj7AsourYkus-U)_*hNg|?Mpv-rB(o^Lz_s4BIN+*ZxA^QJUiY=`WKmo1 zZxGdP`SPgh+WPek7y87xm6c|!%`D$Uh8IRPG@ZCaZ1B{$nyQ1MrM?-j=EAa@Yvk*_ zqR~J@{W`P!Pnf+vPawFl(UEiOxuuh3cG zvia<8dy&7;V{=)HiVB?hMPhkFnBQ!cZ*>bNWfNYNTP+PAp#k>%UN)n~#Rj(+ku2@m+Z>h(-zXImQ z2E2C7*JSq9dm6mR5-mld*)QyNYmwjLb+`*W`30_gi_K$qTP=PM-UVjy`U>%Z-EJxL z6^TNd-R<{zEpDgNWh-TjurUd-MIaBC8eK=JDEH?jpOxnxAj?S^Yk@*W!2i3*Ci5Hmk#DL)LkVkmH38 zkHcHw{?y>m%PLIWHaTeJ8g%%`|-D357J#M$tQ;4`N z-);9=yncI;rwB!)pvd93d98(3x5usJp|zk8hc8N)&x;S7D228{rvq7!q_D{n=tj1B z3s4Mju=}hwzptpsX>mG`+IDQR-R<(^qd?h;94O#E>{>oblGjz}x4E#Rjsnyv79WbY z&!Z)UKfkaLyW!9GcwETE0+++$aM^9x2}_aJWpmmKyeMRTOTNYD&PS3uit-EmD9&Do z%VYIhFqg$`MbY%zQA)k}9;@4i@+tG(Hz|kZTNlk9R3-H-jatoX7V`rEuP7^BwQ}Xz zD{Yo&#kwRqlouUZx&-eyM3o?`mPr)|-iavB0H~-?gDhWpD&FhoulD#|h@N`ZN^`iL z$ul?k*5RbkV0PE8OA;I0leS8GHzdyx6K4-?TY2`7CyB{tmhkH;C!Iw^?g{6L8W-LU ziF(Z&@RiBI$Vp<+0?~|@X*T%HV)?2S(KA(TvsR&5%_!`s!YAr@XF(x~i`(i%>KAzI zs7&mWwpKf~Yl}A4HY~Tbk;plGoME{v&1ga&2*L?c8H-_PLsH&chjYy{oBKp1jQAv_ggTQr_@MUSu#=ZPdrh30cx$MT6?*ryP+Wc=Kg5tr4$;#p^~R ztu{|fQxlpRk*L3^p-v`8B<}Jc1+f6F>0tIYv>-Qx+0#(h81S`<`UbPyNv%B*-PPtJ zmWKvE-m4m{_O+scGz<0<~^$+5J2^cx6=BW*7?rX8klFdxaE6hqq$RxW?W<^(T1r*(Zf+x%N4CYZa)Ub3)!b~}P#dhl@o9F|n{lk*;5-FMQonG0ZBwwt6)*>D zTIw&94PCLSem!0ci+uEW@V3{v(IfD<c`wy8N-DPJ30RfPmNwJBKZM`6SXM!x@eU5l#;@8S(NdU4QsTrKNrf+A80 zn&n%H55Ew=ZdJRq7v(mgo0a-(})XM@jQQDfnSlVzZ zKck|$vDSxcH+dmcD{F*0)Fe1gCKsehCur2pD`oX7Px7d-*U2HIu?yE2qBMHFSC7P( zhk%^Q>+?0@!)4kj8?gXtyy#UIK8O~QGcFX7gILb%ZPAvEE2N34A2p^d9`d4SzAKt2 za-n#~Fj50a8~D1Dtrzciu3s1MEj}k$8>kI#TvQ``IIvrgMJpx_L^LEF9$cTGRc0$d zThdl&L+jdKfJUOFD1TB*LB7TM3(Xp>`M^}0)OtXDGf_!5;EH)!Ljz9OTC)YYXBN0- zY-WLul!G5dcXKJ4W-*t&(Uw}c{e@R6&%qt!v+68+>#?^)K3^g}4H=ppy3CqEtk#H>2CNC_1z-Iut&5y$v|a$-Kt-t0}0}wC3X@ zJ9fO_nP^g-H?iStWkwFzFSa{uTH(^#nV2?wO{=}P8x`x`~F!{IbJmt~te+(3=(!w^+1!h#D|kHv3u7P#egfCJ5RTs(TcqNOR&j6M!r zWNEK@M+*nFP+fx;`C=BiE}UpK)-|*skxu4rG{tunyL0>xssk z+z+9pw`_4o@^pc$g2Np&vN;;=4_T+349r*>^LXg!Nuj5M9Z z`k>Z$*YZ1>%}cba4V=1UC!QI#C_3r_DCa?Kyxk@*Lt^{gj&zt$w1B>Npidm<=nBf$ z`l3AOgDAk|KYAK)F^nttB8%*yL+6YS?MDk<@$Yj@zV>uAHlhj0T+_}#d1mcb49wy? z0fFhVy)RUJF-`2Rx%8T-)8)y8g?6H%ItzyxT45_9mr$amrPhm!2zkBQ=xS-k z>Heg}i=#(z@e<*yZ>iHR9jn7_;;%cYqTg6+tyg15P?u;IuxK}H7ca53v8>h3=4Dj4 z1>*HJp*KO>blDm=qcvofF%fR|%Q{1zMZR#IDBGr9t$isoEph-vO6kIdqFB~Kc{u&x zk~rLh+=QQ5Xx2tA72X!D_-ZFjs~MfmIABnvq0ufoN3}*{vkMLWTAaG@TO8P?U_+z1 z1{<5FU9(~DP-U9KCtW!eE?aoI<8;F3ZWZV@EI>V!kEVp|i?i6#k7Tu@*yg(nq8Am1 zwZrRtL6^KT6pJuAxR8x-ao98yZS;o8eG-#uAuT;w=*9d+*1~n7CKzmNmRUWy1s?vD z2-z-W>(OqLM{o4RGv7ODp{Q28EMH$!Md30>tD%pAE@beVDA6;ltZt7~sbY0VkI1Fvkt$Z7s}&`+QG~BmwQgYaecD_Wj{|o?(4mWt zR$TOW3tfdpMd*0-7dX)si<7Iz=XRjG)@rfH%O{`BV{<#)&Tuy{>SmYEhhAY9YG;=N zJ;LZ{EkLJlkslqw1wQnBI_<9fLUgd&T~?>th7LLOaifo2_F!Y-?tHA;;;@YE zH-rAGHjmTpw&5bxSE!u;anl9&LD1&$ppkiT=aRhoFLnKvWE-p zqjkO{l-lsgAkv^0r-r-jw0^uVYa9Mo*Ww92kX;tg*mBG!x^Lg zORj@FtK`i|S3uTz8<&Us*rJW8ufIgq?%mBVca_USKiUfsIkU)yg_ij86oO)-b(7+D zVYs7eQnyp&bT%IsirTGDtz|uN!;_VEfdgIR0l$dWZt?^oYd4%cS@nc3z+76VBR*Ls z?=>QaENE z%R23zYxqW}$L4WjvuwEQo-b;fOMUAF?(;fv`_t-TXR>T(;OD|3hfj21qMeJ5-tcV_ z`D3S`JzWV)Dg`)}{} z%U6UO;+7(G1L4*?ZhhnY>C8uOz0Fo&vAJ>b_7>otzopP-^=r4Ai_mfEb9$YA+$Q$O zhJ#z)*!SShYC)mLDsQ>vqe3q7Io$3-E3W7Y&^|^Xl6Q7pR`jzXZn5NB(cD0PEY8&E zeZnnv2ktTZye^*=cU+zMZnU7~9C(tz?JKh3A%Y@{#p1wn<&y+v4wNL^)WyAYbP-^C3p}{lP=p=m5%z6W>F4)5VP2{(hxxNU&DGx*FEz3gFk5Sp~XTF*qE&xRWO zuwcw0aN5Ml(~Fx~^*CptlPq%SbV~GqE5`L?pFM_;I!(#;UVV6mF zirqzMQ9A5}b{Cows8mrGISL(9Y&qij2HYgTV-1+!g4V3X=|dsGLkoDC1&_LT?YQ&r zwoIyBWtvBxAPN@?+2bC4L`bWAC-o>F_WaPqZ}dfy`+L!ZpSwih*Cf}=pXH8TKxj`A z$)v(c(LEdOt<@e^5_q%)cQm|cXS>kt?ZD#-cAp)`8xBh!n%p)#g&-fCaEPjUbb-#d zI9j#)8aA1Go)b^Rz3u4Amqyx^Y*zkPX9jfe;jsuyVS)CXi674(Oin-f3zuj^O}=Y| z5{r8jIPK#u$E2hTKalXn-fuLo&|;OHllA`EbrXAoeE8x$!AL^OyD`z-ZJW3|kIpxF zPv47YzHmOOZPxn7tOe*FJJQKQUb(SBaO7L=M_Nea2G|!L(D>2@Iyz-m$Vb3@-U<=! zmGQfAveM2ylkW@pJgow^P4PRC(Pks>z{^Wj+}n{mEWEz;s~Z{`C%2Zrt_w-t5{&eu zY5hm&6GB%De#g=*>$rv{Jkoaf?ZEF%)GG@o4KBr%jcmgmF^QYyJ$iZD$9JT9qr0KRy1p2ii-+ z@yK!xTpW(?IW_FOlCUMqdo!`E2zAr3ov(oW;U5UUMmUJ@IfC!R z&qJT(O@v0q_rV}Sc-iv*1E++CBkMcAM2nYP8+P+EVJ{fdY~Qp<+rHs+kLIR7+@$Gy z=_RSTx<|JR?pt40D7|CrtU6foPPgR_*m=~h{@0-6xQ{M0E*I^43O7D;>T=ODdii;d z^~=TJ>UDKb-M?Hc`N`V7Yu;R5((#MdIX|CXTJf*9UfVnC+oh3oQ?Ow9mlQ^L={_|) zU^+f*&lTY*OO~Z+Bie853V-nCM{(M~3%8uCxi`5|CkL?AGo+@wM)pa2npS7y(R)#H zk?BMEsDAr%+kSLScqJF?_&oF=!bJ#oB9#B*^Uxy*KSsD4p&4NSK~c^Q7EN^gpB=Q} zM&Fk_!Gx(M?opo|v|8~)vgj!Y{}wRfw(!$ElSbhBAC*|OcKt6_TP?DMBA<9#Z$!r#GRiRg{VC2DS=OhR{)J->g-)4&DD>}R4~3ND!ov%od0u!} zekQ|fM}<9&)IhS#yoLx`V_;eR0f+j1zh z&OQt8!*JKHc$u0J2+DiGx7GVCop6xvyIczDctcs%y=NIVPEwPW7zEkT~2aws%yQkcCo z952SWG2fw3DnjYHL!mdQ9FBzjUouX9_F>HUcM$*Z`-ega8xDnn2u14;g>G)eID|hT ze)2_!Lic0bZ#SYWG#(25r3LAQ_|sRRd|n+64|PloN5*{)$2z3Zo zBCNLBChnG0qiU@U--C=crL5MooW>k8jUUx9ljQ<}U2E!5i9 zsZMUKz%}nTnBIA+e2N&4JT`lpY8!)7U5({*U!B|6G{wmaSNk?haZ;-#d{b+RlRKBA zFLa92S{=(9v_}tdCvB>;1fB*P@th1y)9E*y4A4?56-Rg zHI;`ShnPYUa^m@~scyWrK>HdK7rqMJ*sJ_2rm&7Lna}$l&gYxbeD<@or$VNl3fBB{ z>gDrKURfth^*}E;dt-gD#)tl?$e~^#d-SI|yH&31usKWdwXrEAr`?8fhwDq1{QA~^ zx)2*G+4}!@=KRQZN7VLwira6q9yV76p75LEoYws1I38M>w5ofG>1?%>yXxFt*HjN7 z>k2$~@(oIkeI;+FX-P1J>~pScz%y1;tKe-mZK?7mkxVAcg|9)%8tUs$qE^eYCfQ#- z#Wh*;!;_ySd!D8`k8KqmsVK)66Q($Wt*9dWRlmxH@G0UysB`72&hlwb@5#r6r;-x+ zvYdazd2m+3S2gi`<~LfCjng+zF+r?$oLs|?H%)bpqO-MUb+vNAGBKs5f?YPMwDb8C zTUSMu^5)f4H_Lt|zNt{_ul0GScw9P5(RQ2Sv^H7e$?pZA=%2xFzb#u-*Q{zleFJ>#z`~afrI*>Rw;b_ zCfcIsaBb(JWgQzlh3&Q4R%p+at@2N`(AiPO1GS#o;2GLCoT4c@m6a7l&av9<0ofk@ z`u!^^Z3v#-;+I!DUq7+cwwjN<$s=$IGuSMp;qO~TA84K8j89Rs*S>1&$m^!8|{MtBY(Zvn{nZpx6tfVZ=Vnb(Cvtq67mIea|A`!V5U#1|n% zJ|D+TBpJ{ftT{#_<0DS~{K?xxq3x5xn;d=xZksfI@-+W{7=8iUcIO?T(8CBXB5X(K zM|cWBj{haXa|jP06xE6yow;l zKa21ugu4)0?+t|v_k}_xglvQs#B-qq!HiIe@H>oK0+%5;5y}zHMEDlM`#VCRvffbW zR}W%)`$C}+m<%f)3Wcslxa{FjC>7yH7=HuC7yUdGT8`mA;In@reDFvpG>p$Lz%n-A zvnnia(F38-eoT|{i~sk6AItv}wkPp1Y{$-UXu$BX2p=Op4HhDlBbSwc zuoLV5zYIR)!LLzf22dWZfR7^IUd6cA5e_2$2gIe3Amdjd|31U#>Cc8j0^xlOCqX$r z4yGae8{=xQ%nb-#2yF;;2v;D;@s}X{7@-NF6Vv_;VF%LUA%t5nybVE)--+-v!h;B3 z_j&GcC^Q=(3*l&l>X;DwxiVWlc_0h#hR2QR-fQp^JQ&^$$Kifx!j0;2I1lD*!TU{N zIUK1I;!Ws9y!Tq1r0Rv3-ibT!i04BG;vLuFHHwJ807qc@^?08Zbii!9H0xsM#dK%h zfZyOj{5|M}B{yPTcpcmUpMzU5-GZC&n?s1Z;W)e>=HQikzk^Pg)P>*Tfy*F%ond`J8Z z*oJuK19%X`jPd|W;f>G>N8o0tdl2aaOW+XH{~Y@XPkjXWfcZxrLpsgHw!u>9d>r`& zH^2@keueFT?QjIsuX+N<2I4<};us-TK8a;E2@yYlbVB?zSOKqtLHHW%g8HYB2e1t8 zmY+j$EPiJTnqlhGSU)@s*1&Gq3HLzzu1#HE1WzQl# z5x)Xf!9T%G@TBK(jKU}22>dr3gL%I}nZbPjf;sb%&x0tBh_8huh~ELda2Rfarst8K zun`W!J#Y+WzkvCV!|?=5U>jTuyJ2QC^5;dQA>w^-4dPo~LH@vHze7G?{MB#}4#WL0 z^Hqf7u`kd81F#Zqg+Vw1yWye{q#-Pad*LQH*et|~*YMk6xky83fw#ahj6Z&_5V=95 z@jKWKc+20AU-&$AAGQba@Bbb71YiCa(jNZp0QL=Uc${|-X$wc;W;pZ_rh~V9g6ZJ4 z&yfCD&dab1{u^emM}2V!(;?mqcf+C(w(A7!KeWIqfwyvFx~Ek991=V!1;0Rn@j=)Q zUxM4=yi`RD!!o!ZZim?mkRNII9P>Q_N8zYR5v3TPGffczSOz=cde{dCpkV_{SHuY7 zNg0Y5gKf}!BFY#ng>OMG6q$T z3USWyidc(y2iyc7huh#79E7LjDxw0@9diPfgZTY0b1{xH*pBh73y{vR;zUI_F#ayM z2l4OaDPj%c*TFXU8`uNm7b*fjtswpiOW>!A6tN5AFI$Y|!%oTO8x(-n~iJK-AmC)fs8twy=Q z`upHE#D8-prvD+%w`XC!h&#_le#1*)wjK2pEQb4G70jzd`ogtv8|;RI@CCRJCY^)* zcA%U<3%n6l!Z%?PM~*)a^T9Fb!1`M~STEu)KriCo@nXO8aeTq8h+nV{`;Yje z&XM?zQwis(nY z26_>{4emjFH`Etmzv{3YSO&}BTd)yY>aiRcgdLbKy8+8V`~oY7qAD@w{F0C5buLK;2}5)^I9=Ktc5uzp`L-I zaM4C=FKmNb;V!rnW?h7GgypqEaS8StTHw|np?u==KfrMqe=&}4j9+vqmU}Yt5f;NO zuoL5(FIU6>Z0JC~!k4Z`y>Kb^XDiYNzI7|gGwk^(>M{7}&#-(r?{<{G%W&M^f#tyu zU;u8p3*`=;bvM!n>$wgNA@08iaoEKSzB4 z*Y_daFyG^F7yJP3gYzE3`irq1mM!zq{^=D~hg0RwidN9w?OU@sh!pXXydwm+u;+lTmS*n@a` zp-v3Lg-#tBJy;*igLy?dkyC=@!!?L^LkHshupRMnSdMtkNmvfzRVV9&7x50*E~kS% za0u>z<8TD#6yx>yupF9B#dgA6*a1smFI)r1VH?a_g5|(sxC8EoBQR$v(m}?dc^S65 z1p5oiPsRSoI2?z0%aISuu{>A~he~xK2m>qd@_%f1$G3H&3-PvcEaysio=)sS+_(nw z%jscmDXha!Qo!B@q%)?g+JNmtyzL^qEFb3m05AWCyP;_Xmj6SYD28o6(uo>rJAM@m z=3Sx_{ctzj2Rkm+iOiMQzss=ya6b&d9Q@ivHynb4uFATsjnAd@HD8uK_3ESWr*nJIN;}5H@)rmf6?9_?fay&GwLO#MA z=}&Z`431xi{Jj#}cQeuv@gdkFKmRGp8Qgyx)(3lU$NEmgcHV>Zf*sqje9Sivcf$aF z)yl9LpF;=CyH6+9!Zz3ehu}_V{58@U^AEx8ayd^R|6u^X9U{Js=?73=VewPgA2<#- z!J((IKG^#V)(87v!uraw-LGJMa2!7YuoiZ_rW0FXF)rQ*VDBi(Cv5wpPGp~s`QFfp zQke4=j(Zu0-LUFyEZ{}AQs z3@qm(lq;C?G13*5e~S7<`Z?+o*d|n=uRwn2RAGU|dR0`xyg2+69PEu(#SUmpR>i!l zkS?jJ*dsqTsRBReDypWb!U@Nr7j~!Po!fG{S*qwn+&Ehm{jeYIgS(GXMdn#p@6oC# zf#q{m5rF%TRYjNdI92R|L&sx#uEug~cz-(L0Xu#s0r7E|b2iqWuZl7_1cNZgsfr%h z4Ts=3JP13ARAH{fa$ydGJUxN8y8_YZh`@a<1gXy|Y z#r7f|ScdI|ZKc>=n70C-L*q(pCoDc4^J9AB8Q9Kqu^kmyFWi3?)(dx^jqQXT=U_Ww z)f!cd!SeHwzUN{7@2H|e`dt-u1;(#c#dg@?QpE`DhX-Mm8~e2e%k`+D5)S!Q(GI)U z;r-__4(I(C>$?y?SciC306*LdjdiNXJs-<~m9VNF^T7_d4fZx*dO804m>%XeVfyc2 zdxDrA24E28wBWZYVAXn6?3VEjsxbTy)(0JMs1^AIyEm$$1GZhHik;B-156M5p`i-P zZ&O7c?1mN4_(Loo24FWFg1cbekFb91&p6zVc*n)apYLM*?Z_864g=753HAr>hrROi z%T+N7`>#Mb|9^OUANVM$tN(xY53u5zT{YIIQCD3xXvAPs4H7lM08s-(PnYs6K&pr3tbI(2Z+&i<^(~kM*71#L-&~thIA$rbrE7z5h{t)^t=?|md zH_$G=-(SwPj-T*oq8llr*NIJ3Vr9=@&}*RMnAN?guJ*eUQPSCPI(#rZy}v4 zUp&<_5ZqeyFGc<< z^vA8Ve;xeuT>5AFMV>d&FI+4CO22Ted!2rf^v&om*9NZ9+u(=mc&^Le#4d4N{T4W` zTi>R?xwgFH!^wxv->8pk3)fn%tGQ0(x`XQiuEp=7_gw3^Zsyv;wNvuB7JirV@6rEU zw{qoktXgmj@{)9}OS!gi-N(GzY zTz7EY!8J(#Ee`rMzGbKtYQ{g$-J>*5OTcqN(C?q?pt+T>X=syocu}TmyouU zzvk)u?zBDsvIlz2@yC7M-vhcd*egJu(Av!3%o#a#HGm;K!e1wU@7&FA9COX^V$x~? z79qKi2K^gMtqbNJFj7win4|7dq0B6u>$CNYC%=&VD_m&Y3oJ@{3z#Ej(ibim?}G*{ z!7T-MKRBk_Y+Y9Shh%Y^z%4%rE&_?2;NAsSZl_oK0MeYOhzX|1%i8o_+G)oO5zO}$ zMr44iu3Zo2GCM}mp*(2~$90Au?V?V9z(( zc!!D6!R!FjQ=f~hFbUc|Fqn-jFP5yXhLAbVB4k&9z4(4j8}5R&^t%DfL@;hL@S1un zwA#Qu1g^@3)-5|mB z3ETtVaFetA8TwmgaVN6e3GTPxdeW!D-t1q@KCmn*z^n#yD7rEM?0&F4=}H8i=7K4C z;J`Yt983)uHyscfo5&wU{(<_r6U+oK4x5D@-DT5-!al@Wb*J^j8a*Pv>Y_qYK7+m8weV(o%3I&Ba!@;e;6J5&kxTyAzzl z7An3cXZY>}GY?FEJ1yFOGYFv(4zLeH{zdkDlW%Fg@Ldk()Ok5J%NhsO20x-_4d8Zw zbCZ#3KlyvfKajo(ZYj7kk_VU5CUDn-Yjfe`V0M7XweQ|bvvO(!^Q}~lZ8lU*@w=4#v&iqsHi@h^f~f)1Q@`ru zk0QUPel3AUurGc;n04G|^xo>%TKF~RO2Jlu_5XmMkF#UzOrLCZ7Aw5*V-DJ~MLqju zZDxLrotE-7WEM2aEd#R=8kg8HCT~+gMM>WT<`Xap7mT+>ky7JnC%Br&4?doX4`+X9 zv8J78rw3nieBV{XL=IJ8rh)m39b?JN=9@;yp91!+C#c(w&1vTXFkgWgX2+QH?xt3u zvl7g=e$w-tAu`_r=6o>c*y)(_rO@aizb2Q4SbcFN(MbN{1JDp&_zg#GEtpDsJvMtQeY*_I`(WJWK)Wx&?`>=TpR!J~(^4`vMqGsS zonZEZ>1q5+yNZs$zhB}$o+Q75{0R9cbDtS2*DAG8V|KimKggbM%J+M~ghmS(|Ic#9 zB(k&gc`^B?l7BG!$j@wRBfvGf)McMXc7S^TT$>xtW*-X+*slTClYAnSuK=?P%z^A< z1DL-&$=zg3zMbR4oBApFTgdNEzMBjq zpmUiD!94*SwbjF~qL;)4`p%ow{>znUy^{MPB%5 z<_>Vt9Gvi8O5SMl8tr+OJnFK%3wAu%xnOT|!;W(D)&_R|r|#oQqAk*l2y~W%TL$iI zJ5A&MuY3gPKvI!ftd)VKld40)FtGgvp;_5FtiF32kWKFjkI}TNI$V7SwYm|WD!{aWxztV%o@YQRO4@kx zmykcwo^RDR*x+4ot>89-8{vjC*HRJkmVx{CL3r8(=K6o-*aUd8;zT>hFG}awc#|jb z>7<_Ux2UI+bAa4u`a+F4!+{n|IhZHEkNS#! zwbM}c(kn|R)vt@e?An^Oc9vN>~+D5<;My?fn!-; zfvL1(a(vKIFynXkF#c`p_0ixKfQ#8_S$%KXaH+Ee+*WWG*m0^(W4$hzC15`9%E6el zL{K8@bzrnT?&C*jY$v~f{GQf+f(c;!O27=`KGW}JJ+kf)T`dLEfA4|USHjO|a1VlW zo8Kek$H*_-morxweJ@s9_5C6+`@xih&+wDeudBfn{Fiyxj#2udR7la;2Igcim)J3i zPIeCQA4j{o58kd)a1VmRjn49cCy?h8u&IOk&V!1#>r;iFOQQ(|cW(r=?(C2IH`iLrrRTo$ktl;-`!w(@>Ld-KbQO}I}MX>S=U8K zZwIp!%z^C0b}%as!bV$%V5DIx#;gYZ%ZW*3;AY^de%7Dr(Qe{C(_bdmTc3d{eJ=;w z(%<8Z#aQFf^z|cH)8js=&{+!Raxjkh+pO_aHH)w)tBDP zev8nP_j5YIHQI5OY;AsnyuVXY&iQ#aoGm^h@AtHUJJ38M@BS z{+%2;CSO+kIuhZmE|`n$bWDuQpbRao2FzwKZvH!2+64ahA^8_^pW8QL_C!W=!E}Ln z+y&#EpOyIvaFfo@(J4!oHh*~wxCP*9?DUlGiS;!4Zy%V^7r5(;wXY`ai=M*R0Ow|> zRQt()oBV$Ex{$T_-O{!Rf*9stwGeJ&k)%&iUF%is>? zFE0nz_o5tqRpTw|FK-63EfuZJ1e43V5g|6#(M6{b54yN#ovt9il>7tfbOV?n zV8+?oZ`g-S)In@-8@L#_+wC|@r)8aMTbr%``vTbEE?C)jkC6Tjm~CKcT`{%S^Pw+xB|_R_^8d|yAXWB!HHHmiC^Xu^e8@W?XW21gutTSi+x7sEG03+?HJd-#ExLMri(X;}0WJUO! z2zD#j3%Sq5${Z;4=7Z@1bEaE+j>)zs0(KSHeP3qRe$@rR2Yhq9-Z2G%>H-)PdRxI% ze8qcL+~?NmwUml1!OA6bgS4-MH$~(r8DKl%Y zX9}1i$~o*DI^{KEB0_cn|C<2j8Se9VekjX_U{~`$9qev5?8jMbgnS+B>YY9FC-j0$ znp?p1ago3GYv|eRa0S@nT{-q(u$+&RlV|7<^yGciz#flA*o}$6=om?lk>2Q%KA-eu zIq5Rymy+JO*P}6QWo2TH`F8UB-{j}XUW@eAHu4L}mnO+S8QVKa3zLR9aL^OeEc_K> zOe5qA*5W(DZ7Jy`q&w`Jvd2ciSIX9dDF;KCIa5~BCz4*7LsQaQNw3MlM@U~pdL8LQ zxXzCi#T~*u(qWWh#17PJV>^KMO%? zJ#E>C#R$Vm>c3mT0G#%%A9f(g|Hjov#8CSG1JWpF`L zO+l=tU`BO8OLal3XB0VC6igXf&@{LpR-H*6O7e>Z6Njn-)%Kj)g2v$mg{l&&5^E5J z4;?;A_j|OPO`a`#Fmr!@m(nP%D_zk$Ly(X zl1r|<)+(5yC+|Bi1Gm-w2cVVeUdf?W)Drzm}n z419kt%z#C%3&A$^^J;Io$#tV4*9vf}!EHIus~zogp}ALZLujOmq^X<7&02)_F3QTg zfo@~KyC}nsl4XgaRKcieO@7^4nTn}~~*n}JJ71=pVcxVAzQsH%;r?mR$t1J&9 zlVxCo1HBq%Fpmdcry&!exf$Gc-c4N2eIBn*WN8X^AJ~b!pLi(P5}e!}hlm{wwu!^h zheEd%?9M~LqR!fKurn^=y*E<^hMvm)U)<|E+#{AnhC4&w7|UA)fAOL55hz0*V4rf6 z+d`+@%E7i?a%glL!TPHX4Lcv~+(X2!0voJ8G`ictE&z);$kPemKeIX+CObR;`**2V zlOZMlBrQr>6KR&eBf3*T+7!}U{mEyu@{;oM{=Zhk`<`6npUg2cNDGpdJEzOME%X$0H!gA(Aus0FU+`%Z}(vt z!qT={u*+w8wMI8R^EmY^26kJUSNpr0?)*HfJD4qP3D|{myc(~AXL+#Z$o;S&GrMnE zW`GDU@;!}C-V6T)_ZhyeGC#_&t#n9&iLrTJ?KU@^&sjs4f?dUX<$rObyV^;2JlF=_ zHNRMlW{$t(9qh!mfoT7PnA zIv>WdEdQxj`!~LOZol~k`WyE8k~nTH)1> zb))+qC%;W#C;Zl{J?7T7yPVj?V7ENa+y(Esec^pK(-lf)8^JDSGHP|Bdy|vyPOzQ7 zZ}Kgha=uaVs+-JSbjoZw z*e$PnHB4omKKSl;@~{PL9pAk8j~n(=C)QtyJ$uKiec;CL1}DE|U}GP7wQt<8JDk`C zuv@ly-Q$@B&bG}3yY(N3)^97p*7H3M+`4=@oZ)QSHsN=>*FENabCzFOV+PsG*$DPZ zx3-!4B4S6%Wz&c6eJpUp&2rLg1Umuj!D!9}w;0@FH<~t`5k6Of4fCCm8{DvCsGoG< zb1S&o&+s$caIa_i6l{PE-hE(O+^`bBHGTbJ^2@>2>t5#`Bk@QPr_dTrek1v8{pa^j zjvZ(PJ9>v#TklryZ?p9Z-Q{4rz`^J7#$#TSP8a?NlbTZ z+dEEvw}CDHuUF&qS^0f2*U3Y$3jc1uS9`-vzKfjWsse0-$ET&;czDmr!vwGq@1bEA zfZY!EOE(_=5Y*#zjngYH> z;>L@_In8k!A%6#09V}s?EZ-__YHYwr-QmH+YX~UbVaHfw;ifD-!B&DD5B4cHY);H* zBG|29pLWAa)YjxvwI6I_p-+3n4f{YA8zH|P>^oo&)TZrVwt+d)tq;1h^i=yVh2Amn z>4LQ_vy^?U1UsHXb$@l^^GWEM`$a-`BG`RkeO?}N)CvUOmqludXhLDxNzjJK=brdz|H@EFZ#iaSd^*6MW7y zqn0k@#J6j~28;RjjLDPwR)~fDxl_h5uuH(|ZrB|AwFK;h6A!N6!tW-q0UWfq+~~fN z%^Qq+IgX_1@s|C9p>?D((@vRiu5A>=XW5Mv- zdRiBliTM~AS(;$vTX8iJpEfxkqc+*1q^|_C0L)c+m~2o^a9hD`JOrG7DBx2LPOlVP z;8dS>zr9|okELqTr5{FvYXZ044VN>gw}LG^&8Pj?4J+rqOuHa))a793g7pcOe^OUF zX>FvvDG52_%DXmOUa&jBRz!UopXAEJ`pTVghN5BYPn_w~u5_~lIr|tjU{|mJy|0%G z-3DiTuL-QbzfY?XVde1ai#x~PVz4FW`3@;|uo3KXus?!qE?sX*9@i`WD>SW<{L9^F4am}xddtAJ4LP{)C)ftCU0{FVrVCS@{V*47 zORdj&{?)Rr^PK&=5^N{fLmBJaz)raA;B%Pp8?3`W1p9C9^K|TeCl3{1mtW4e)!byJ zIb}8h?2;=E&V%&(0eIok1~*Cy=FGd29~ephlV57jS2AF(Bu&2Ay6IY<^F0NXuXZyOFLhv6UFUPYr$C$J zJgY48hI5sEjDhRCo^jTjha6sfZ#w;jC16+H!nYq?^v4%)_W35T%W!UdE?Dnhv+}Q^ z+Ags3Z$pPotZfZZX00KH6qHvNl=+_W(R&W`ZTr{RXZ*%2*+8f$l0UY zOgCD6({BQ}GH`@sa&eax6b&yZt}ckw7KBGwrx)0w(-u*tk}^}wG6sK_7DSBW4nqo} z6!JF6Q7ZG;gTd2g$`wxXInR_>XQ_801Lz6wUEubCJHbU(z9U7h%(vho1nzcD=3AjA zAIh&+XSfYIRpiH}@C`_NzNPao81)IAiQwcLuWU(W`@AOZ6Te9E=aOIAL%#64jQl$C z&$X9Fx2zE65R=YkaHGMAo@I0k+)ZYFC;1b|@1K(|Z_5fFVFpNy{4;a%ZzMlLS{eCm zeG}4ap1BrYM}yf61{KTlV97)nC0TGS;JUyqa>Gd+g>>O*DY&NZx!VfKm+um{ z_K+VTe>?dL$alzI#XaQYtx-pS#nf^zZtWIcOUPeMe%wu8)V>WEaP{D#O?>0i%|@4I z=ln3(7O)ei`m_S><)75EfV2suEszAuHW+8yu7X)*K?S!8+$L}j=i|m&IFZdZa5dBT zW@;YJXt%t)6zd^h>WPrQl>E58yw#WDtdTBlk#9H$V?N`(DxRh82GS}>>&eEqkY7vw zVPNH-lvzMp4QXddLZJJ*24W1w>vv63TP>N-AXiCOh~E!Z6o&{jKNmYn1rP@8`q1KT;rrx9|_ zw!y^u>YO%x3D}kMd>TjM^RZ1%>?W`?=JP%3fDLQ4?b>W?TIARTw)7F7#?@R+HfROLr z3Xf8EQ$$noNB^0n-QAWRn)0!1ZW*|G{+6D??`?4PAD)jL)jxbg|A<&$slUG*uhrW4 z+e4YL^uPbJv-9ZtJYpw|;Gy7G@^>_YNX~=0)!|e7=LS9kb~}G((U6EcCYV0?m@)ms@`kf8eQAFNxbRU)nbWv=PRe|g&$rilX^wo6;S}&o!GA~af3o3u zr^S+p&|L`bx7;)e?im}-l()CqLQ9(eOdHPR-HLluk>3LLRIqOgwog8GGBWQUMq|eI57+k( z-)OdaaR2c5{^85|E8S!pTsxoh9IC$e&dSprdwpz`Y4u=LeZSAg9!h;>*oSS>nPk8YfP^XcjGNP%Sg`iy^EnU{C%PDSttJdG$?X zV;C#_5*vOE``k*uj7f{*&qTVg0|_dD^H zeT--4aly+uiVIn9wR7+Pre9v4sBaINd{=>K1HZhU@htd{^6~V`xc=cu?n*!zp&{S9 z-G?u?Nof40CmJLBhZziRx+HuDd!ggZhf3b}<rQu5}#W zzZKqw*>I-(&;z)-$(=FE2ye@vQ9qt{`?&g#wb8Kp?5J!Xi0*9xxBohR&rRwaWW$?v zPV28Rh_2`V8Qs%hf>CAESA=e?Y~=U9uoM2n^UM1hWxmPUOLVwgIj+7CW(2k#Aw4nAYUTlBvx{1^oUzXklg)3Eu1 zf7S(mTvlF!5A?wnHf!2-BHyQ6@Goc20SR8dcl+Vp{GPV(|DFwR@&9tBxvKvrg5Pit za|UD2zrlvL_cm-wwX$cleQFS3a@fEuB8aIqo~b_x(Nm2;P^^k8f<&u1tjI2=m#Ce?ZR! z?=lbKuhH#w%5l4~f0({Uhi+Hi%6I#Rzt=x}tIV?D+f)|X&yBa*6sgT*t1&R2x{6mb zhGY(U-lZ+qI>+Z~@L#v1OJXDKvbEa2I@^{~+9Kb(U9*ngFA>?={T0jRy=^iE7P49~ zftb(#tZBayen#44Wzugn^!;*NbJaW?iYdyEAp?m_P_pn&SF%AEIB?v1$sDczqtJEA z93UU&G9-yNZ2ZUg;XiA&3N55~vq~eMoU7D-3^wW>*n-xkW>K7v@dl+m#L-v*b3^sgt9@zw{2@ zXcsyE$<~h+UgEAcoo@rb`h9*@ldPj4IpOi>{4#bPqhO*(v9A2ul=s(XWaVg+cL}&Ua1+6) zwebfwoT-=A+E`>e1MFt7mkSSn%E#I~TNQ7q0=JwppHhb5%-oq@<`y-ODT$`K&A>8t zI-zmIE>qWT%co)2HNi)Y<~x{s@Xe&oVJ`S9vSUr~_26fKzd`V)x!^Nj!ZK`2EBI%? z|4wYUFCXul?zH(U!2jgG_@jc~eR{SpEStYTY`$S!gr9BTcWE9uo=uF!M&H7#vz}Re zxRBqXX2WbB>nH!QF8JTeeq0t`1%7&8k9Ixl4gWVT_@u0x47}(_6ZoHV@bE#A&olYD zXPGYHeKFX;Q6B99p*_cjwRl%&oU^=a0)IUVvX{l~+U;u1p!zSMn*_>^& zBNqM#PJHPx#3+jS4vNsfz=pT%?s}&#G=LAE#P8?|-cH}bcRBI%!3R(FXiti4?EG8! zsZRWA@b`jWEd1N;pvAv>*Cs0;`QGin`2O81J<-3#1t zry1Wr@Z0UJ$&Yut6W;=U2@5KY+G!5F*&_#g5yn2{pSPxAG_`-PMKR`4rI zJVxBwj<@6)cjAM`YT7Xb*WVQSf61rs8{yQ4O7Jh7#qThSJm0h7E&6kv^rwIyfii3p z{7WwQ6;AwO@FhR!V4pRx#vZsFQ#Cf(i^DQJo2J)s3Hk>C~tf!NmsI{g0k?{U#qqL8)Dsz zKuH%-pM39DOYpnPqC;QX?6}!B*|ruMUKVM-OFSwp?3INomEre$S=32TgJnXqTFl~; zdT(USFt)$O0v7}eI4>@~x0=LzxUyup*}wfIUq2Sv8T~JQ;|lP84iLts!jB{S90bj-9O2w{5y5Jvm&KoiCOSbYm+!BYg`w>=~-*NhU zOTlmc%By}O!hdW&eeZH7|L=hBJjbWL4ddUPKM(l+=H$nJ66^hQjkAl6dCcU;yC+M( z7J16|Zdb4own1#DeO+YYTTp>2<%Od)-aFaiGRva{P5rg2)H0LhwTx%^-t7d=X^)rw z{LIFyVJ8M#HP?{89PA>nGX?vGfwi5}ie%4esl!m$=N{9FP)^n}JE5}~I_C(TAKU6= zj`0TWAjYH2Rh=pNV-4aY_#hX?2R z@1o=}^J?z$aQ)W$n&`2@@FaeEIaL!qrG73&^d$ztajJxLp@Z(o9cx-K%iJ+!br?H$l=^@l+8N11S_D879k9Hy$f z<6YkAy^>>siN5hJU+AIs#12PCmsv91{|l!~OX4$&v{2h7B%EvxOP{4$qD9g>M=+L< zPwORQzc1NCg2|ahi9V@eeu0TPmtnghEO(?#ZLaBIazNslS z(V&!(6=ZUFVQO?Vs9!@N`r>fpukw!KQw6Op(Zi|nEva!#F-W}}R9kzft%Ica%%C?F z|HD(?bf=Oh&i#3L$P zEaH8G`;2;)G!IX7X0@X0202d}bKM{hDq{HV4g- zR3fVIN)?37k+fg3hlHi8UJG+ukR0kqZ5UdCL3Pn!sO@P3kgP~nNk(8$OEeHWF7dij zbBJ9Emu>CMH^(;=CB97m!_v_RH=%wt(J;7xU{kb7G^*ey3=8PQ+k;9yO+9%WGQy+D z%T{>=eTEmFW(Jb6XdrzI!lw(Ql(a%V+e21-eI)T^N4=PJ5+AxmH7#AAihrCk_0_ES zZ~p}%h5}f^fKfyG9B8cXBP^9Ch8d%+lu(R^v5E340m z4MOnPw3gVA?yDa3TVc{Fy3ScNAdD=y7%l$GbQdE%epdU(OPQk(6-pI)p(yeGoB!JN ziYGb4FXJ;*vzJ~Cz0iA^X|Mf>HCXI7nhzu4u;iVAbgu#J>5GO^qPb{5ck;Txz`fY* z*xB>y26-+FUfg`@u=M9BL9!tlMBM^osieCpppS$XlujA>1CEg)FsDp#AUWMXXnJ7U zQ7CTxIQ=VjVIUA+A51eVO3E1_mBOf=?zc$V6gV>{ef^X>#fzC^6~!Wp;#4Cgk7AA! z@uU!J4v5asbGNW1CMtE&53x?SbY0(r=W)9fni<&Oj|R|u{WoXQ2kVvLgvPlt7~;!C z*`#0MD~vm3@5l55DH@<(OT<<>_jyi$DElIOS;O=QgDDy1&B3wyxeqFHl#H*0RJ=Wq z=xyUIr#){yi6icpBU+k%ticyN{e39|D!wYi(`p+}Yv4pg?R2i@L5J=Zp_D;JzlXq6 z9-p@;ka!3K*T;@TQ@We{-DP8SW?|_KF?<;r+S_+d59OMOQskC%vi0@PjQ$@UPQ2D{ z?V7#4MqMecqHO0&$S!v4bsGJRI!Q<@VVHCBI+U;wUi_nm&p zf6$m*vJ9ZHrl+ev$MJLNzZ^w)b&2Xge4FH$@GZ&jD1S5-4Ps;c2yLv+ijW$D*zzo6 z!R9_@m+9A-WOKdlJA^K?=Dq&Z(10m{dR?Xn>A9hq(VMu}ubjTOI702h-dP5j_{Cc6 zL>UjC!%eccsN0ni;=DD$pI?igVGTpqKKh<4h{TE@dI2AUdDm@G59g2}K1F1Qq>>Y{~- z0o)a1P9n5+JwBf{Xl6KeylN?p`Jo7ZLnPT;C=*?CVfr6TCq?V4f*z5lG$o@rCC#N- zcSJc)MS>wpXvZk$={R2h)kojqW*lz+iPEjs89@yfkn-Qpv`(IW{Y`hbYkz%5$~BAM zU`?|AB!+faFf}45^S>1SYMw{KpB-8x6Ks*C<(OBD<P<$n8 z{mH68vMf1p;QrVV@%7uJj97^D7ZyDija(#!Gc&;;v#M_kgIOzPj)qJh-zM6g@4;jJ z4@ZDm&#>qj)La-lhWTOaIQp~xD~wKtv-YNr1y9_%6x znu`q`8cdB85BAD>eYTNAe+-lU7+RE79yj@qQ51v1!VLew-N=5!HtDw??CgLQaJ5mHP1Avd8WI$aIBs-W}3wAvHB14=Ng$EfElyRxb$T*-MpUYe0+B| z6WYM8X@hB_XFZe7m1FDm$p(Ygq%&#f)sOGqleO@H=2}me%rR=-dBgyxOB0{cI+@JI z>K=?)cINqwda_M@wwdRG+g(lj$RDYG?0M$l`-#-hwK81EyvdX z2kU@QM9j$he`D)kdKBK7d2N~Bi`j9R2NQDkwq}2Gx$*ke&le2Hj zSlyvtyJ_ojMjcrPD2(S5OnAh_=Zx{N6wS2s;H!$8RaFkT>LS;NzI31Qa_5TEOjdC^@0HMr ziadNVON}QyXlt6`R#<d)@Yymj^NJyod@0c6OmiVqUU zGZQy`jRjz0BX;WVE|1nKRp&6kzrM96{g*c35)*yCHHc{pV{Q{e!?U|%5=0=n z7RQj1OzjeAPV}Dqs$pysBmAb_4O-%Jn@xW4ue#)^FCLs1Glq)?7m&4D5`Bwq(~%PFiB^i}JNoKige9FEOa(X=hQc zcFM~mB4tZEi=5iY&o4-JRy%JtS})pJBswuxzsG=B+SzG5+B7d;JNXc;P_n0>MHD6q~3HIR=^yIle{6OF!afQ;tq;K3zB* z5@?;_H`kHp?(Ob2lv(LxPDo=HK@rPGdKOP;n&~4IIeaACqh71TQF8i7FPgJXt_A*? z5IvBc`Gkf!?M#t!>Xe;Pw+FN{)rx)~V`mZ@`)z)Fl79W}{gXS33_BwePJ4j$1ySgF zowry-kpB;D&C5TaiH5DIMBB5r=2HTTJ=>Z&QjFD;5;gO`}!jKBTjWg3ez8> ztx*qw4lzP9KO!qJUc&%NkVEdLa-UJolIF9r%4s3$od^})xKN^+&5iB@aehi9CR2{A zVr6)*>0nrFC~|s;PHi41g+!aJsEEX63~d%R7yZlhN}Z)nF-nPEUl~Z$2Uu%+SZb@G zZ)}u!*anHOF<0cd7T?%UibvEAQoIp!Fk zP3+r~0yiW_NB!|HJX4QJy!mEFV&iur@l~JiTI&hbtVyiJ_m+6o!lcwuEwQWgD@l`R z+gyU}GXotr;&f&_k6Amy5VizfD$N+e=ui>i#C-Mgn%hiEg%gnnTi*-EXRmcyXnyV1dDvZM{E?Qnm&yVSCeR(6xMnL;7Ki6e=DL5J+vmUCNx_%?O-w$|8nU!-ID_KqjZnOeQ37)LJx)^8A`|wIY$IOi+6Q| z?&tW0hCjuAQ`-~V(s|M3xIk*~p9Z`d?`jX-PsC8erW8{9K#Ii*k~Q-piMII_a8RAz zF>qy6?n1L0g^ujW%x^0vVb&gluXgGx9r$JFv9$wU4Xh2#9s~@9D3;s-ZzURVr)#2x z1J{Py2p2Dc(2je5+VdT= zrC?38WcLJ?RBtC+I3BRU7k^WWf3^>420dMgcaMCXyW)XtVZNk_eLeLmN`xnGDNNKA zS0-ADD-xrNYZ7Zo#1I!(agA`T9h~@*{Xu53aL3=!xB;)4rr1z`(CqU>W*aU0AtaGl zVd&vCQY!t{fLDpE$9oH?E?PEuO`&I7yuAWe%9HhB+cE25}*)p&0Vn6*=`1U8%Q=SYYn*yHKMWV?jBErEVJEgH? z1$@DZlwWEojlZkyew#Ak0o`oOL=v4R0GW0zgELtu@%I4m(s{N1#OAkkI4(S83-qFi z_5JpHHk|U&DId1ZEYw0nHiU-kJ`Kfq`_seTrQ0|H5ENeyZU%yN6fkp`{vO?bACk%E3{a&!I)gsiIGshp*vY^*VA6L&OD#u zV*B^A9U6L}PimYevHs0}FY|PrBzC{R*SDwkx46*^_2o zqhCPUZ#`}87=_p+a}f^Nt~?#5KhJC-lOg+Qt{z))Lm&R z?)ibbD^JDOEmU_=C`e#I#(Ge$hCphfm2BqMXo)Wq@98VxM2_)%A1)GKPP*_K{RT7T zI#TG#Fcta}`$gt|c)z=w8RlHfG#%7FaZ{kZ`4=6}2gQ+eQe}jzHihDw{*K-4-bjk}bD6FqE zQs|PUM#^k9Uo&l{?XqhjRGX~!H_`qXsv{F$C0^H;n}l%uOc`8jrVJ+qHp_)gAs{OA z{QoE^WE)nZ?*y*I5bXG_xSutQA5#po6*|;bL%Jb~N!MPZe*;}%{c}=j%yrl39i%7{ zg`(AGlMb_Tbfg|$8`YwqI(&9@@bO87EGpw&mxSglH3~y+xk>IJm4dF+>nyEQ4fh$K z(rffNCP>bNCB6hSTCX%ga^ed%0NrGQYK;_V*PAKl8!51Qu}XvHszZ2iD!!PrPdB&?HzBJkqnWmGH}T@m6odgD87d&>qJSKugJysFl)(&vOH@r*r7RIgDNuXYf|l`Qd--h z6v}M%C=7-nrS0IQ`=7)<8d7@8Oi7c{@w^mPV{gD)x@L0pOA^7N{ZA`w^X*2-MMlZC zc}5|ny0zc;XdSx=rCS1zGse z9{emSDB`+CRTNsdHt zv2?`oES74oQd5$wIEHiB$fHgbRm&+*T^$9o&ac@|dR*EnbCrr9)dtuJVQIqd?vcIO z@Rd~!LCGuilb9;vEO_mwMXXhN;yo-7t(IfSyYGXEPC7Q(d(cq-v?CIGDgw=YsuI0d zcc z$QHhY3h_w>uAf#hueX2wfLAMbO&!P#iGMTgta&H3zOuRXo5Q9@CiT5$_s5A1lV9x{ zdf^pM*O6~FA2w8$D2emZ?+kb~-6t80COjC)jIU*@zsjom`Fnk4|59Z|d~ZP9+t7p6 zs5Zy-@LcoEB%0H}r6Oe9t+dN7l5l zyy$=kwHb7z1&l>4@iuKpywyoYgpp_^lR}w zx5RdJTq5|c_HDg_*Clb2hlO5HEr_>7qu0iUS(ev0@2BR8QpM98c*5BcVYZ2^u?jc~ zvezd~lXJCLzC(UAzQ&(^#%fiNR#`k|d#c(FAe zID~U?`eS8xL=vjvcfOmkH|QhL)N&(z@i8zYo&EL*Wpu?5LdrT^ulwN?!^JSOx) zMSR2Vc=xf>`-Yy{Kdo0)!jt|?qFFaM&e%jO)n9dwm?DYkn4YujlgRm?%vNvAmPlqq05`SYMzyvI)x3t3!p5|VkXU{PkVshe*L5G7 z1d;gq!t`p1pmQQ+Od#QvoeYm`AYA5`lV^Um3o-(egCLttammU2ck!@nqc{^``<$c7 zLQ>*uMg&353l${C2Kv3WX0LzX+G!WdnTPPSD^g=+zr5cYYr56CR03)6Dd*)2#j1T5 zm%=(l^hdcT?Q|yG3`Zr+7h2tCOFKh6z3+a=G^{3#uPJHERWrs1M`Po@W%6&I5e5kF za<&3F`UedSOgo%tmBhQ+!|5ZC-<4za8{j}D1UXEWIX`I42v&D?+$G(q&Jw}&sWjK@ zq&^(BAfV(pLS_Wv-D1j5Dl&o0X@C=DT&Z(tuinkxm-{(1X9VvCA@RT1Gd$Pi+}eu` zr-tohJm}(x$2aUq?~s61_Ml957bv63pU+S=W;_4jd!@-MTqE#L8I)Kmdx%9Go~Tyq zzt``QxUh9tO|>>t_Z|QHxJX>tn${!0gyH*~Z6OC;TTH491(W7=|q;!SQvz-CT?8vgE<=Bz^^6$oW zi@E3J*pB_@$10D|0ISI)+lsZ~KY3Mjcv!&Pkd1s|fXofqYJ|5$L%39m8Dqn3zfwi7<-8@*9=J9Zh_Bt5 zxH6F5DXygJj^x+PiVbWUrh-lCar%cwW8xbMZ99_ovY9^ly;0U^HdfH;lfv9SdDZM; zw?6SGWwQ3iZ!{|(77)|V2IOEv*Q^c5-y4rMN$2;5tjpYby3T19cmw~@c*BEv^#|bV;^lT zotE84`w5GKp7+r%QJe=aQle%bO`S+Np(eABcK&9EL^HE|AIkk7_t9R(@x<{^`)GxS zx{r1z9hA{j*L}3nPK281zd9T>J!go+QOPJp%~X+?xsS#?r#4+m_rTnS!t@Tyv&hbH znSzH)LHk~s^MqI38$F!xdYcd#q<_0#@92y9-!Wbjq+k#-0W4}JE%7c zUU?zL`HG`cwL20c+0Iop4yMNRr&e`tqvkYKU!iRJ-^eK!C8|WV?Uc(KYSaW6&+3$m zhm8l%`otXpLa%E+^W#$Ab-+>cN)!BHUSZLrJWk~e%E1<1x_RtU<5bJN*;6eXP3|i$ zG5#sXhB(zSRGn(!csA3|P&u+GFQ4>ys%5lPXN-_KVLWrHrR9zTjgS+im~l=wJdJa@ z$_d$1l^G$0e>Fyk(+Ym}eJQ2R3%m7I{@l{(I=5uzhsT7Tea@DEGwT#NOSPuUFPm~4 zp|aKnBm8F<;J%xur$n5^I4|^*OxMGMrc*mCAm>$>7;Z2#&1t&bc+3npw`qED9>$oa zTLX-^mw2_&W!${|JtaxH+*kl)-(c{WZ!oYUrQTo&Io@Dc{FcoI&Dv3qd9xgC`RNG6 zY&o0rqY~>P%wI0YRAduhdW*GRpf?)~-J^=+AQSsC9ehv28Vh-z>p_fP2BG(=MU2O{GNwq}}0~70$Y>S44 z8ms1H-{fVoO7$lSqup;N*2`95Q1XP(40#)X%pzV(WO@ESqL_UI45bx3B=Efl7t~OMIn1T7gT~f5vVMz8Hue8M1N8X zRaw^O#_JG4k)m*|b#F$91tzwtCJ~HwZ?^ID(`y(^S>6}$$j)EKiNpo0G7aof`6*|L zwtI6rhn%eR#!)bdgjjlY+=sHQk{-2~!9$6J8sg9&jKT()kXx0&9GHBKsH04A) z1WFXm6BpTN%BQ#}-)4}M9uD=ZijWdh6czCa8RAtCuVGWbAYNqvSeY#Fo=nE{a&c`-NI zPc~SKW8W5~A}E4ymRPI*nKmS+%RXu`xpI{dliCHl^&)2leym(8Nn(K1gX?;h9_Q*ZFa1ZBp6wsbKl6HNu!K zhY8~AJLCI1oBw5g&BCZ&gvSAdp^NsZS4XNVv2UhIzj`ZM0M`+?PpnT5OM4}14l70R z4V`RV5*n9aNm0r$L<2W8f0C{NSVc%n80WJ|!p}tgF=+uim5I2;qTZmmyCD^Smw03EIzq4h2f zK=#tvmodXG*_LN&+QSj#>n;S{{sX_*|ScX+z zSLFjD$pOgM&tc2-cpc(^Bq+bE%y`F z;u1(|%1__lYB2M^a7@i&9UAzHDd0Lsof29RekSb zra}Bp>-h~~n|I-#$A$({@h1{YB4VQ0e~^*gcmvrx)EoV%tjO)(2$U4;1o7Nde6(@M zAyeSoyaMVh7$hpA>5Gj@zLzZ%mP)?4KDUyDQHf;she3z|R`#sTpG|bwiR9Z1>M<+dMDaNA^&TbDF4x2>B z*#WK>I=_)sHQ&VGo#pD(^a+x*gAg5DT$dVFmKs@^8dodF*Dm1G3QVx#8*@~O0UCaE3!_b#ybFf*2O& zG1RY*5ETyI`@q;^x?d)pg$fnl>j}+%N@k7NLzG)iD@)3E2B@4vTJC!C()^V=%prL_;*+fwncv^xmDdBmAA;u z8$g~gUtb2otkrCW{x=B2XDd+n{8Ywirs2pJzosSHgqNy{?a>eC9bJ<(DI)COQBE10 zB)LD6^M6@ta)f|-Ob2N49DvplLs)}RfQEKQIEYXzxJ8nH5}8b~ir zDaTsF3tYb8;1aJ;ye(n05k?iUJ^D>&k+M?BBZuEL-&Xui5PqkRu=9(yX-SqJ`W7JQ zY)PE=$T3@0IC~NOgkmJsf-lJmOu7?KS4fmY0*0kpt4~Dkn9p6+wH^jWW2kMN5WcLw zLmaMD+;4QVANE9dL`7x2DeDn)4Cr#oA3>0nu0yd~1-3`OE2@N#J$u~P$F!3uAXAFi zsB}meNm0>%Fx)sV@c`G364-Z@ap2q74a1${15UW_VdJO@gNoKB+oEFK>BBl>`Y|#& zVk5~~#{;wum#9ko^S0=6k}~C1=9H66%1N@;aS!Dz38D?6!VdMFdLCSHOvGdfRWs=t z=U_}`NJd{y2HTWCoKlor+)n zq%kQ;f4(tZ%@z84pwvVzS|qx_1o%;r(dXY>kyRX*W~cj!EX|1?>C?D6Eq$D8%j&7d z8iGq93%NGf6+Ry^9xXfafbpnCv*^F^DBU68iN@nP^YQ1~)jD#k`FPYnySvQ+kS0kc z_%gzXNF zvV?27Qck8}{gXEhv;8q?sGejE8d@Bh-CG8c`WOw=)c_KLCHlL)DO)KK0%Z>5oaY|w z!DhG*h+P08vS|yV2n8*JxQs~ehBnChO zQd!f`#;U~}*QRfCl)Qh0Z*!jEr@Uo-dn{X~KCjG&yzpz7f)3snhD*~6kyg_bO;*hv z95dJCq*AOnD=TxJP+b=5#j&VkDH2sYn%#xW8f!T?n`s;$PBI#1cy^rk%t)SL(4;!6 zpO7kqREZ*G9s(R7-$nwX@LpP_!i}N0d|gjO z(C;<*YD#|0@zRY0cKt~x&wiC5RT4X4)*c?hp?HXbiH&CHcR%mPB{on&>6(A|Q~r?D zU~yd&a~u$DNw5@L1C(`g#MS9*;vPXtB~%4Rwk&HZ6nU z0isAj4O7qxhM}zQLO;@#Y7EF2H2c2H>h5=dN$V}K$unXTn3xPPBB{2hq$be)a=1jT z8}%=68blzcNkVpP6!MtBo&+V?^cghcezcU|IV9uTx2XVVXm%e_5&NRS^!=^;&rozd zxVpPLCtds^z3=Z>h017&2s4jDJ>8on1<%y3oV5GxY1x@#vLuVDM&N#d*}Adz#KmS} zwLQ_CJJJ`KB}FbB&+xx=ua2*zfWb+}N0R=JY=Ztx4fP#mX6v8J(~;_lwa>SSELE5U z*GU-!b?k>U?9BAllANBR{@>j3a~r{53JI&NMz>12Ybn=}GI1Sk+?e7p2C_h!q@>Yw z>B-a2qlZnCG=?nX(JJLZ4mBP{2hyjek1<)4N69V8(#aA(I-6*Azek7=*_9&yxiqKy z*@qH|k@X@!@2mf(#1U30j9$wyvwc3=SahRHkW3JptGUb zNugsdax7X6=Q4trv3`?^AJ>*y<78Ij@#9rC#WMv7yom_ev*(h=kvHln)%)>=Q$Dq1o~RR#t78=!({RMcE_foWceN$DA(@ru$ck z@I=$zIzx%|Xz7186JDNn&mQ!-ZbK!pHm-Z7_GxW7viscFSED9r6c}~}UAQio6_x~Y%$SQZzwc(x zL!U&o2D|K%iPp$Ce@HpVv2)h<@no7Jd7;^1aTU6pQcHAotVXNo$-)7zT3@^zs?Mgf z?>Xmg$rI5_c(Po1(F|HmzXe+#@9J(Ya2DYcjV$HO#ioSpm}3K)KJ9chUR~pRzkr-5 zxPCW29CDkyi(sFJo;s1#l9->qj#?w_H&IcE=A%ff_=60ZQ#M|tRWZZg23~EFq~h;c zYhc;QK^d=Q@ggp+*f0X~@TBX!P%L(5TBa(q8nqqk|C~1K6I4~P0{v`mXjGW5Q8ynk zOr4LG?UkbRkZhfA7_Uglm{)avCW{0<|4A`p$jhhb_UiixNeN3u7ppVBVOlO)t3sQ8 z(iqxdHFQI>r{dA1j~0e=!h()2mHg(5EMv^%7&O%Q_ZOkx#)}Gy_%l2^3L0wN)PY(* zd#X*XXYJSqPl&tNno3^c@N!1Q#I+S0h@Z*}w}S&|Uuv-WRNm0jl#n8_t0}J>@gX&M zV}I0-=%T4=d3A$V$s*?I>QwwE#@XvKP-@T~0|6;Km%{P(qk&8CaEjQ0yPsjDWxgyW z&-0ebJk~4~s0}GeyHlmb`pW%_Y#*kd;ST+2#L|@LZ*!W2@T7>o`E_FwMC{@#NF}4C z(C>J6HC?Du{ZW-D7WzjNgvtyYN-t;0<(26Q-iREyJJj|wkrM=?iePAVLY~nvNX$r} zV~Jm=W$J9%`Dwk6J%Y)i{WHwyc8jcma$blSxbe{_bISVaR7(E6^W|OSj02PMg+u!wr7@U`(sRbh^nuw#+cBK0%d8pMDR}vAOZ3(q_P3s!#d_M zj4TGuAZ?QOhK@Upv?;U=25M!BI-k#IBn|6j4(S2iw=xmNu2w@kH2ZwY#Ag;(wS3Rw zuPb8bZ?hHkH~E_+D-R>$MFFM%yNyUK+;wad@rYPqtrj+tvWqIOtu^YO!-<5bMGn#Q zSQxAzy;i@6s2f9*Pa<7IPAO91vqj=cOE-;HT9ilYm#B--x>0CRjUK&F%}SMWU&MX- zCUTUt&!RQyE3Kzuo``ByFy9r=^-zB$Go+WNsH{C0b1X-UNzWUpno2dXYGo2W12QL#$hi;eq6;bVbuFTJ6+ai8dt5X5(3U48!CqMU#-_r-=K;!ar6 zWXer9>p?Q(72akU$%4q38L<^1rT&tWSi_d1!M8{DNz=m8uvS$j4^_Mr2rBu$KQnvpvrh=N&+~eIuh;L77PRwYdC2RLXFY~9__IU$~i4@cjX=7P|{9s zGmEnjEu_WtgJc-1WtB04S6h3WqDK4E4vO7LK`)g_U6hp~pus`*$DiozBtT;_GTdn? zR~_@I!)gE8>HNCkQ?Ehrb;Id_D#AXMonK~ARP#$#@e@MDiO_A-??Xuofimj%*7qUI zktHF*%-`@BX!*1`2|sE%rw1F2)=b0|4a_+sHRmv$fbKd#sEL|3?nFi;MicX`h?L^y zmU;c81-tLsEX5bMHL_L4rxM*~z@!Puh9{rUbQDZQr3sM>xC<#HnEOla*r`b5`s!|L zi`R4SUs>U8}ZyhIB8NbgwYd zeVBx+U-0U^OnaK&x5yR`w##^IJ0)|>RtC!mDl2yWc@4Pq%ZXGd6f#GhcpCApX$$Ho;0qurQPx5GIJPH zz5(;4J6Y&3Qf3ZCXcYM1ntgCE$W*=vg^B#qc5CO;r9efr=t*^o|*0 zZ#@{~fVPu9iYb+1riYFrfm%&Z~paN#!g4E=i%Y|BZQaw`9yxUBS~SP=db7- z4dFSALzCDzV59k3`N$q%7bj;CY~8`(9g}^I3H>%%@vRTuAI5*KFrEoybq&TNQi74( zeITndw##MRQu+w#Q6L?xWSk8+#`xoXDi|`}EpX^i27Xs0orCN;+HM9y9s1e50tMQW zUPXJD(Qi(TQ7Bk$@3WuHVoiMRcUXD6689c%*w_I2InP0B%Ifz{pPqSZ7~>1e7O!w% z?yy2_Duq4m+5kH#3z$`{cYTL8*X$l@vlVjTbG7G<3aQrO9h7Nl*9<$~#t;nRBOzaN z3k$2l`VsDJz-7*jHs3%Yaj529JC7V|H=d)-3Ng@i(oH?i)ZrT&rg-Yre8Dg#7LK4+ zMHj8)otZ|nvZq+ZH#0hhYfMC0q==fDlo$Ya|I-jRbqru3jVW}Ge*+9sN_qal(jyqB zpsy30?pOE&=wq}3DUwfVnI3w}*^{=@AhSw4jaEty@2df6U~l=Al>r%q=340P^}BiF z*ckd313vWt#Q-a4hMMA^Uz3e0m>{A}r}MoN*=?g@lmv?tmMPxiq>Nf)ls6`)dWx#p zGRTuzpctyW^-CiLr5KtyHuVe50u5(VRMu^i_L@yQ2`a|7BEieqw;jI0lq&_Zgio25 zJj(q0FqVTOa%}4XWYpO8B&sVCn(*n4HN2{&xtpna@R23m?1DS`w#=nH<6-UGBJL({**{IG_-j9viEo9-}b!;svD zJ*ES2NKSfh|JXi}W1rKsr0H*H8;~xDmFJ8Ru=Jn2;uxV$1b{~INr%vR=%!>YO(x75 zpZPzTFvAE3K}cRu+0KR<55@KKROGY28uHAfh%`2~jh73(A3gb}XlZ|7gf+(@J&3rqVG-V8JN zM0x+EdyZWDY3^ElD~$tQHy()>66!=EmkRH~JQ(ss^k(#6op79TDq5yDGN20~a@+|x zZec2$Ly$`3$Vl@RZIY2XaYnK9LsAvOQ$2>b{WI|fS-=iKocvCCPAzu(nKG2GKgigN zIq7mnu{#0J5D+sOAZt_vogwl?gE1d4@N5lN=BI833X=eH#1k3eFhrF7mlgq;8Dj1m zW`^+n?f#Wns+-);W^#MMTW zaF%1{5fe^E6-_Kg4p*X9VyhnyksuvT)(A6ib~*Q^U=doXrkMRb&yHX_>#^6ZGQr0) z23Z~ORDRRDfV@?FLC!i~!bIij-$VG$^Kd=y$8*3?V;g2rDx)j1^0czb-8#^hOd2U0 z^k#Rj0+sPio7PVyJmB2x06>n01x+mW&ERt*>Bw5w z1Pc@)4+Saef&^@^EE)4N1tX=?r?k$<#OBYS$R#T*g+bU)P zimxSr%WY3E72-9_5vd44Z3`#6XV{9`B1dOBf4ln%TMDvB6zZ?nD#QI{O}s@J6R!=a z=r1UL3m9;WV!^RHMI*FRbPUKzmLn9N$(Z1WsHfj#K?A1ldI}ni!6<>B5mz=P<6c!V zv0m#lZ=rj#0UvEzFCioC3!yEo2ma8UnN!7_`Ds7InC=4^*lK92-3e>F2Ojq~0YYb) z>dQcCxY;_AM=263oU1=HtK7&z9g2AQs&qM0`l-ZCDQ6BfGYE!Q{r5|nt}QoJvrwNAFotyVtS_jRGlq0` zSvc+kJ`7X-3CgSJD+i(g?j;Gv%Lx`CgWOSJnDw3q8lu8Xa$2vbJ0|)tRhcj~uqRvC zCMuNBGM3sQ33fb~Np=<8$%%z>2!3}a6vk?Ta51|S<tRrE3te zXY~mUviTd3q*?nZmmC$0v?lLhRTCcN+P+ObQ;rL0bo3U+pY~Ny<UD^T^3vE@!bg$^7O~aAZ+?W zCg=Fp_&e?-jyk4~%@lsv-`>g;?&THkw_V}gDGY()U%3?r1SGOejW$opH$yFBs+|UJ zzB0L6Ni*N!P`Z2rhsUZ!XOYh-I|JYAAty_ zqVWPn)G0+QmAS`1+}R1gmn)sDWpR6OGeTK+PasidxSLB2JPd`HV%|(vx3{v;CsBS` zTrCCyP=+RkIi0)dZ73h1`(prLB$cD5J*$SG$nkg#wUFC(d$+d_B7og8q&UJDF7^w=T5#k5CGEzU@hweG2C0ql|u?MVHL7xnqj(k z@gGQ^kSYDh9bV}sTO|N)@&MeH1;8VO821ifSl;_nsacZ@N$Gks%U#xa&vUW(CCQ0p zv9E>rmR5J)otk1>c#bxmDZ7bBu#LUK&3Q7TyiQYNdsuAXw7@_6#utr(n1G|x^Jt1S z34E1YVw*sr-!BA1O7PJvGS0Ro3_MVdzmr4Y_GEom z#Bu<8ZU{yneC5jeLCnk?3WAlg=G?o~A`lo%(A3J6Sg0X|tFqr^Gc5G>c8m1pd5fI6bzms$p`*KWYN8qO_ z)-@vFS8g@AEK98v;qz5E|*09yj*%(YAxY!+bIR4Pc)79mHie9hz@x0;TXO z6MSzgFIcUl&R~l(4#RBY(4%O&BWmiqsF`#=@Ga^=6WuRR-aUR)9Z=Y``s!7tm8o5k z+J-3bp#Ngpk>{(hts%W_dvACRzf>;_X+Vu>N!Z&SW0%Yo zU(nx2Q4$wjahPbfAeZ?@>pi>5Y>LS%3+ng_O`CwTr}E^me<)oo5XJHE0N+q%i9q}} zvC)@qZ{pvlN*L7C-j(j^#-s&q@!Ezmhaxk|zHPK`qLy2ZaXs}Y{s?OL+a)%4n0Lp0+wD8k%LoV@}WmsbOOobt4IF(yk(?ywrmdDe3cF`h4 zv<4!T1KsrH!+4U>hz~k@*mJMp(~jQ_fl%hOSjf`w{C-?nw4dXpD|c?wezlcbd|J;O{t{1otdW04FUUvjc%$B&33U zBP3*D@>Drk6(nzckgl9~T3u<48=;HA&o}FnDS+Cs&1-4)xz+xFO**e>Ap*b5Mb?B? zu7!T9(t~}95K<^}$pq#fbM@k!*nr9AlGEo9NX~Pmfr^_?ggt*r%(CCD2Z`?BCj_7U zBn%2$w#*#vZ0S3zzt+><(mJPQL7q0*omaS8-fZKZ@@)@xor!~~h$-lCp^H#qCkc)4 z+1t{vrM0-rUe^HXR$cP-k*$~oilj@iq>gxVjwUJZc?r+-VqsfV#GtW;_n@)GUGBmt z6h$A+&S5nEL!U$AznCMJAyN>cGh+yuGbqGF#q!NK7M@_8G%i>t1+$Wj1gtC`W@UjG zbsq<;nUl;Ksf9x~`udOEgW(`+>WQg);8uNDL5B#<-|-9lzU~alJHvKs7^K|+Z+8e! zzJ{6cFS30xf_`0LR`d*3t>Jx_3>0XACFri1czUC-DZwB$7^G6u=^_TLSrv`Q!p_=E z`>udSqv_>vKL-4G)%Yp((97JLbHHO*g?D_y`!C9GYbxYq_CR`e;I=E} z+R25H@|%ed)CbCC< zz%c_2EaEN_mWk^GUWR+Pa%^BLV@A8z-#`@!_W!#Z$DTR}c|dKO`ZZ-ZFAQ^V{5*g>~`uD>2q1OOR_Yt z!Hf8uzST>*9~jUFuv;7)OI*D)+%@stS|qEnIK2$d%gLH0Hk{S7_P`FpFDw#5y4i zSa8odXE{Wn@bvE8bN=bF?v$hxf%0G8!CFk#|NR}T&qQhM4)0)nn)P}}&~a!E}73gWR7u_D2&iP6R*N&-LG6hy>1$otq7Ya#pK zCQ}OA+Y-GkGTF3P-$$#{(Kd{Nbs~!nY>G9KNjFMdu7Bs5yCw9ms;wz@H=ly@a`*GX z5=sZdG6+h?2fJPI?v!j%pnW-)Alf#2OVaeth`7z< z0KtAb$bGq=`wlPnjV8A_IN-xh1i9z88Ut{1}~JBc>@4sVR29Na$7e3UXM@ zTtV4(gt^FDv5C%8&nIk;`d4TZDZf5}B|o*LrKWbC-d$ zDL}*WAa>FYfe^F*SymVb_Bg-Z(6*KUYd-eHBom(4$gFoKrfbua(x;_s(&N+P(kJ_$ zNE?wJ9=x3qJe}!33A5FWXj=RDDd1*^UIdDDrB?Fzw0VHDTAi z?yDHR6nCsg!yXB#0-fA}N7s2;TqC4S@0xU?zqS@6FZp7U-Cy3{BPZ1peJkGP{*-67 zj@#U39SI%cum%lvfP(Kx8dZ>Mtz`9lsWs^d-L%Abgt!&qNaPr z11P^e5{?t)?zGM2zOOx;Mf_9dS=z_#Cl|Imkx&69BY~;*p8^SW$X$NY0O-sK*E_ zcGElidqU>`LK{XNQ?x;H#OJbK)?gO6)LzcbNdO_G!=-aJAIxT*}tva1Z89bfcMOwKa>fQAS{A;L*oc_*tjyXqX&vwe$TX){+&eRM0NF#_$c1Qea`*z(f z&tH(BX*MqX$m|Hh07Pntk3RoIqZ_W$nOL!vhy}OLaEA3w7CFOpI$V+=heh=p>Np>In zH6rh1EAsB(*@(Pbc*wNE4&HO{kacfQTX|P{W%dd*5O@#bj0@}7!n92{NL1(hlPn^p za?8w<=XaXmcD45MwL->*$-pgJX3Z{tgiH^bjr7BskjaQG^?{>jDE1A%0g~Tyr^K#v zB+pf1RdxxZjo$D_nzj7X?Z@sv@v+SsyZdZ6b~SD_ew|Dpf4o+*2WEJM609`m3wDS~ ze$@Dau2JI;o@+*`e|vRSB>%k}^Nr=M=8vpM{*o)_8@bZM34;2c;^p_E1uwI&0R_8@ z7JS=wdHNvsYTeTwgJ?;PNSfAlkskNU;aJkc7{@MTidV1oHUlABRt5C9LPfI8zG8yh zINp}h+5#jqmfq+NYCp)<&Q!voG~+D&$yKNZd3No15=OY~B~XAzN`AWt>+p3hSpl1S zRWWN|N!b@)fnoUT-&g%F6(TXED1N3oeylqFWc{lu zaLzLwKUVYn$;Hm{(l}cV?WO5Iwy~3y%Yune5{wh<6xo>4me&t4-_FC3^ z_cs3lg#W|6&Bq3%CETaOn2^<2`mEhg`yD#z)4ka*FgbjU&$1o#^dR0;rTi6go!s>H z>T-XHUOkkasa6;ZGX>oSliFS}ngTYe9DI)R+N!H^(|gEbVzd+UZ4+4+R9EqNtX~3Y zI3KMM0m)f#qwPzdQp((+$!eo99bCuirrPLHB|KVG)XJTC3pOQ;9xCB#Zi?jVpC9hN zGy4Zkl+s)4_Ap8-cNi2TCwO;&e~ymEpr-!hgko}`CjP@uiX|t+Y|<*56n%0``Sf^o zd9r$_(>_!%YurcervSOkwqZc&g@tTFnJZSLIbU~)k)cC#t!c13CY(wE+ciGr>m?rA zi$#j(Z!}Kv`}<@iiKVe3XGTRjbrp2o9kghazc3=D7bzkr8Xc!VhAPuj7j;L~_0*+` zF8FO0RfE~$nW(Tcw?#2Dm2=^@XnPY1H1)A^GmA22uzHhPtgf}GMVi;nF{v@3YE!j& z;f^IW`eZfKCHUusz;Wnaw$O6-3{4)V$0c6okq$mps3diyL-5Yig(?;IK(R-)?Iv3ju0f&3K)%b zgz2_-@f2~|W8#B3i}*Ue7_vr90od@p2%~0vOdNUVkAiNf9?A}f{Fcnf`it^-(0)KH zhhPFKZa5~J&gq@av2j!H(c~1nIG_|NVa|nr^8gdlQSWArw)6be;i(0_EU?9B%#hgu-EAm?#s?4fTUcF?! z*{(NzXjgjd@*Ha?Z$QI?X4w6{Cnmw_ak=T;7oJ*#o7m!(#xHUKm#@BWt3K5~hX&pa z8Dlxjzz(rFi$6C^k|}5`RPSQ7a1VHA2ijVt+?0*JDj8hszVo4Bwy<1(!B5J_^{4!# zj9gdTO1QK;xxUbT3VKv>olWMt9#gtRJ#K+CerMe+4_go$U7WGLYm=5S1Pcwt_va(2 zVj0B-Mk><)I~dQ*(DEL+ifvWCGHyTng^nmNnHl-~%6KZCu2-BoP~vBJT^T$x)74*_=Q3#J zUTU8Wvz>3B%@kQ{pT{ZB$vhjIGLy2^bY)lexCS{`e{4!pA-kc@bcxG~khqLC-(toP z+L|4|W+jywQ&xOdY=(iSV2*B2AIjfR{Egs`&?RE!0etnF@dN>n{n7KFeKyUw!#wq#1SF)!&|#yCTSK24OY=cV@D}QEF4dj79ki83fd#BHF);$cAeJ8y<!gs)VOnnTn3kVvz!fl{7n4O*u~lK4I?F;xI;Ti1*~T>#(zbH~&>RNd^ZFfu{xZl` zoJ>sprJpUnHB!$M{5#?1WgLSH zxY>p~^XKz5I0YlzSl4Fe^EWjn5t{Yp-0iN+H_Yc_oh`khHxT|RC(-15d;d3`xo>u^ zM-8AqC~agn{69R-gg*RZJ6r1rs^)obqZqOA1&5yK7REYQ2f>!9NYRzd5k!Bc)|Aam zjRbd?!;_0mq(9Bt)6viDz;FB940dD2|FfPm^>lKciyDkw{nva-9j2|cY+O$JI)n=W zr>qr6*8Be&m$&gMHUS2@fIcb%nym;Q9QfTW%4%f;DyF4uUb81k*JU>nKXcp2^o3nO zU&sN%fP()!tYbcKw+Ri#C(~>_XDIj=dMagn&a#+7f&LS}ImGUR%n8y!-5~K{g_fX9xiXvIvRJK3+@5GP-N}p^#(`MlJ(YlJSy-j_%zk&z5;$)>O~?kl_;Wz-j_-RuC$>%eiBMU} zj8)4nQ>L9l9}=ENKo7^LttCAgvej0I_Q&@qgEsZ7=jks(-bI@GauXX{S7}?W&0Ws3 zQCgqo!4rP=%#&4Guj6(t_b(h#6c(e-3MsAG@wZmV@3_md<{`-H4^|p-fk1rmt{HxW z8wnR-tfK<*?TaV(Tk=H9v7P;7ozXfKch>767{h;>iP$42@P-nNWo(*bAdZW zBKBGnLn(5hC&mzis^ed$$ruuCdfosmf|^ico%ZuO;!%>_cNIzfw^EkY?i90wCS2@gv;Q>8X@ zN0l&fC{z-nk69SWVp1O~tLU^Bp~h%%X=1FdWih@kTw_|tL!6Ez=LC^S?@QM9yN}uLAy>T`FgP zH)kUxPw+m}c)w?vDbE6uSg3K&wZLqHXu}GPZodt$+rg`kej6qLHfWY@#_%9%vRgQt zi4gHaPxffoJHd&Kf*Sl-O^JLX5T1J707&nu5$!yVDbgh0W0T!iuIdrUkktEjR(ysu zGb=vMLoh3<@&;=LxOx%7{ZG$RHPyMtBH3gQ$UdU^{Fey%9r)_#w0SULWPEjg2*kj! z(B*o7D+R7cGVuk0aVFYBDW`Sbq~S1f$E^ z6M2%o5?X#)@HZa6WUHCRi;w?~P(Nkk_fQ_xcS&&N!Wo69F)Mf8e7}(E6Cf7?-<{9e z#?JxWAO~dMYwXA~5m}zs*Z^jLkowZa-))I4o2)iw@spU>Jq2h1k4~FeqK*7#7KChf z+nEA@7MSm}ZgV;!vyMwFN)$bS>Flk}_a4hlmpd(marCLzF750bnw#ElVO1neh{wXJ z{OQrjtENW}ZEfgrO&@++qIa}l1%$bLzg{U?-x?Kb>ipIMTa7cUSHl5vTc{~XRFw`~ zbIG=$xo_NFH}tH{-&Af)&i|18iRhU2be?_eu1^d=PJuteWijBLd`4xQVR;Sa>e$5W zvc%;>DmT|l)nI%~c5gq)l^!@^A_vqtH59GvCBAFIs@&a;*!W)I<1 zkO#Nc9T~vg!)XI9!_Ep2GnktgHR&kFg$x>nwJvKcjmGb5QR-io4RBH@>@7P{bzyP> z!$96J*C|eb9Arw86H08-Rq9|Rl{xL6JNcJ3DYG}xZOi7X9)>rAoOym$Np|sD6IBhK%;GvNcc%>X@+Yqc%@H^3Rs~|DA?AWW}n$ zrRP|`S9+;eK48pq%ss-4sVyU8)kn6=;ao+|}k){%@n7y%BPW@S&V7C^)vFQdAs!c*8Evw!B&W9?MNEd7?~X zp|B+{dc#_#PMwa&Y`#+MdsCW5=lX!~7e$+wlZ6JcxInp1tp*<& zUX2teON^z+^ys9ONP)ydJlD5Rj}BzFg2@(pXC%fO>q+-hdW`G@M~B1yIW0B}0IcjJ zL!!;ULSjZ2-o}4YofZS}&{46%=ygpdtv`eCpG>I#K9-9_IryR6hW`304Ytr7ZZnwMF(d9R=r}l|adY8o8KS|>5iTIHb<~}m zN_gO}ne1*Ox)oGNjOVQR5C#YrzZbw>C|t=azUH#N!uqk|f)U7`QtIUl3iVEQ+ifv( z#{VXr!XWt=&hL8Abbd==oFme>zNlz%TC383=!%aF<|=n>jXT?xOYxJ@oFL2V%EH_s zSi1Q!^%qm7l-{IUlg^LrN~@r*>>Q~E(hJZ-&(l0{nHgTC#E<-mv!yJ0!bX;Y)-2IN z9M~Vz)Y65cB31F$#@02B9ermU5?#77Iq@}T>z=cAj&J@el|`cWy&m5-qsZy_QGJwk zYhiA~UiNmM#|{N=Lg8xZRp>s$tR@lyu_}EZUo30Vm#s#f_cd~q`jFT-2Ro;!G)o zz3}v4iTEy<=37kVpvg!%Y!ic&F1+t=Sr~RH^Xf<6*SgJExk9>Owq|#`idui@|EhHt zo2s%}_o7;N{l8g*cGJ49C*KEp-Mj8*YN_C z0^x!!*dJu>_1?M1uDp2H`-b<;Di(1bTE!}CEqk75n;5LP*$+bhfWx#7A(etyJmKYR zEL?+kSH$Z~%jLd8bvRXdee2zuyf!{97IVj-@)IX!ACApLm+mC7-Yap6;&`MgU!EDo z8aFaNwqSloZcc8_j3e8s3VoSpfiSHRHnT&!H=1CoI2TaGxquw!ymCgo4I@IY7bi~7 zN3PGz-PAKTzLutyL`S_GU0RUqbnG8(QYdQ{)+jF zwT+47q?$2m+CtK`OrfFwp-^tBCMYDu(iG}cFk9N+4r#!rDw5-Ojem*8dpJ((5)IwB zMKrh){vb}SXKI4n@mJPC2*{Ua5RJ>bwHjAJdW&Ll+qr8JJ8fwVxU6M?Q6^By# zn!%}9P~Ah|0>ic59aOJSmX(c!X5NL|S zFSS)f7nOnpPnFRdcT;y`1&*&>lWKe)Vn&y)jgCg)t9%0rmqwj4;V$seh%;onyBgw*XVspo~zX7ZP*%O4i{UAz2H>+I>X zmITS_wVz6mAirTVI8|jQid`nfN?4tg>WYuk8C1u>q+HbpyBq_Xb8QNJPSZ={%h!Aw z%Z)BwCoX@va;><0<{;JVjYrGjbM_FQ%^ToX9q(A!Q+(Z$!B`vX+hP2p`o0t#9c^ZX zqJ6P(K7bJJ86h~9bv;6GH5o@$zM>eeGsmkT29?wEfj%m}rg3=R!6cSK$+7i$u+bq6 zN79mUPK&NPERGX=6Nz|D#K?>VlB{djrl3(-yp@Yd0O1#=veJcIkKDA5;$_j%?Uk)F z_wZ!VI&YNamd~Mz+{(Fq$Wxs98Yg-cmw3=vU5X%krE=xWgVk^`f|X#o`j|QY?4V zo2+wl+k9};KF0ZGmwD<3v$Gd}y{_+>o8P}=Q{UXzly_9_X zUp_s0K31ml6Bil#(6q!9^E*e8Nfx{eCBKYLUG!DyZ!k~|09#q8Qv?Q)Qc@CsYx7%s zteJ7Tvu*b|&O6EAzUZqmvL~9p8p01G)DDE)7)(GD$j@|DYCIn`WyW83b1y@& z1YG5tdwdx;)Sh`Un7!a*C!pP7Xe?rQZ4PR~h=LvKtLR+kDTDp%tOY-R#5av$7ptKa zL}5;!-uiLRq@&gh-1uemoO~06yEyuXHSx8ZKgeAR{mP?%_*?F3TlJ+P%*q{A56HxA zRELNkl~bP&WfBW`Z6{7R^E=Ah^yud;Uq$DQDb&AG=R$KlWr8Lroia(?ilv}pU8=tf zOU9%9U(cbTpTJEm?QxE2{qPf(h%p@{G8c9BwRuh@)y!@t;4uC_l!5&;%Lz~S5WZ)L zYN7@ao>!kPz1)x)2Q-d91}nU86O~-$!%ai}jl1V+CS0*LUHSIR1LI#Yta~QTB}QIk zfYY+s*|Phr!e<8LH0DI_TQM{5g!sfry4_cuLkqRQc75^dT6k*B$g-7)eHh;{!NU*1 zS<12%%-<7Aw8LUk%~{HoQpYgCx0S&o#`i43WaQUmf^QemWOox2y650x99|v<8nVf~ z4wmw*1^%MqpLj#ds4=>rJr5Q{DfhI=YEh`F9M+g}l( zkWgN6bK}57UxxoAgCdF@QMdn@%+#Eh$&t(6c~ZT42Wm!*4LUd>Qn@zjRPil&MJ{^) zHYi|?R;x91L{VR7>$LiPoUN=k_9c^9!!5Tay5iNmb5{T1E-))!k2;?-E|U{`#3y?I zjn1-gTs|PzCQrD<+0y&ULjhWUth4p7`lFn!)1ytlryY;wJ6q3>Hr>x-d?htUn{MYZ zb&p0lKHu=Pe7+y+o4U^ANY8z&U;1j=7)J?{tu5MgHCf|r2j<|TeOwMp@P?~dFSA~$ zsq4`>E7EzidmX9}SaY-Ud0gpCPvsn}6`yq8dmJ=+X8vlWbj4M67P)4%n-qE5)5zA=C zkF!j)g_$!g?d#-bH$k&dPI6vu!=}@;yVH4;`-&wk+prviFU(2z%q7U7w@MC4kBWqJ zmwh&^&{|wK0>$55`#CXTifxLy)n`~yUPFErN)DT!d2J&L@%G*h5+n<@ZH@q^tgWMdNNMF)RBG{G6-YJyZ0 zj?uPKb)j=%u_w>QWNnN-#lD!KyuUG8>pozU!c^~KXZ^7%BUsiM`SUxTAHN}j#(6^i z;2w2D&$)f`wq#LGAcfw(0L)7Ul)V8B+JZ#0Elm>(@OfBKHCJ>%mzR4UBEiQ!aUG5k7j`heYWi zWgJSB$TJ;%l(}4CJk6xc^m{uJh|x%YDDJ}OqV)T1qlj<9YC+SiCUhC_$v6fgp|+Sg zdIrw{XLlRhq$WFu*+Y5kLfATeclT`FLru?$ZF1l{VAekL`(m5C^pff6#@Piq5E~?; zLekJmZ#zS-K+c7w)6Z-1Xi7(PFf)4E`j&**(jvks5w45D@ zZyC4|*@{P|yngTno#4|b6X#iS#+PWl1&IM!DpBKm@+SH#UiQlaUvJ%(S3B{v8g9?< z2yNs`cjNw9JfJaQYYg}?%f)x_b3}3V_m*&}b*Ecoyhy*b?nCxHbbYipuLKO<{q@l- z%hd6qTvm9mz5p)o^{bG69_EI<433IEIKR`3a)OPRxOn2%v}|8_#2ogdTwu@_U%r26 z*4PiE=_o9q~re4Ij!q+;>_snS<%HmdyWU zu;amG{oe;W{;^JqwGSm;G$JbAP?Ua85~!`Jz}$hb0dfW8FAK$QV1D%_)ynKVMh=zz zkRJLWPH@493-{1ftN#DMMNQ{}3P;ODbaZ59n2WT}Zn&uRlRRR7&CTMX zJBM`7MUEhD$3=5@$VDIipgS%)PEf*J^h0yVKwQ+#Y!@}T3yw1_=-;|N&y0cFg4r(b zK#OZO^S#ynUo+pMWc}YWpV<>?uQJS6wH@;b>;J@jdt~P^%=bH%lkUg2cSpU>HjjG# zZ1y9{XJ)gi*bZj1c9p|tEfZb%=NPJ!#I9?z@rDsC`)|~6_BP0jm%|B5U=!rZo*>kn zG`+%N({+w)QJJGS)0I6(`s-?6rXQiwp0@6J08VyOvfUm079N4H zNj+~MSz0q2THU>MOI}rSu6&+wUSlUzaJ|TXd7Qy$aOne4IBHW=Y@#o{zDH7 zELv4|N*HZ(`KtTF+o|Q-tL|9zvZQ~p=dJzXIdpGtc(_~HvbSlAj%-SOkRRrTKYAq5 znwUEW`s)0#)Ct>F-He*Io)eeI2hR?i0|J7H8Vx$1kh@qvPG&LD*EzhFi2|6O#!rTALI zeB#t|=%>Q>^ z7f*x5?*CcVXbH4|XK+Z&R-+f{oCD6JL5RR^cuH=J$Zf6kh|6800ExLQCXGtx*~Xlf z0-W(+Qal5Gq?6=foi|&TINCxJi~m;|a&LpPal7?3I@;Qjs8z97P0T9WPz^=W}#sm z11-~8&>=Z?%Hy#-Xa0&R)!TrvUAt+$;5wFRu2#_~q&ka$4@|K;br3?yEUqz{YlRo9 zSml@CPMb)4Is5NemkU|)u#FTm7W}yiz{I^Nk!VxP?7kJNM#kGx*4*0II-;>-?^#E) zZB&FYn){$njV>K}G)Kwa$M1Sy6f5WBRS!5URZZ%lp3`*E~2r(w?o zNAs#G*UY@8VpHSr-i>uVrbe6O$(gRhEA_pNjUDS7E;Kbv?NRx+nP=!Rx^z+${~G7L zmcPnMJHMlm{LyB4fkc-M-xn{g_gehK>q$IrJ^vc=!M$_C)vxcU`JNmTJWkiaN%;%;HxQLfod8#aZ ztI%ZAy=P9V+m~JDqj3&6T0Ds~DTA3!<+-XHnEGz`6(;`|qXC3c#2J+ZYi(6Gq1zWDlokfC z$d^vY0%_*PQ_o;-T<}vnXtQUfdvI|^9&%cWi|)(NX_&$4E|^-eZu1xHKQ3p=JCzN< zLsv$B(UK8h*&xobAY=i?s`1A{17o{bso9692T{fdW6x3$w?`o*^{#)x#)Q~Q!(3Zh z@J4rAT8Xhb6@-{5ciMGew#@Fd#gfa+x#*-b!#bYh*SLp0g+CBNc34ASyfvSKB7&3=7lWz8b3znE{QcNi6InWwS&m#i_R5T-~4(a74qqYxn?%tQ(5R! zl|D^eY(B|W$`~D|q>DcYk|+_2Go5@(&?J4TUu8CStCaTPZ!{uEX@DBGK2Y`5a#=2V;<#|SP^Y$-SbeKz^<%~Teaoi zAWMyE?WMrV!o(`#PfTQFezwqzOb);ay`}kb|CEIuD{Q)F)!J0<%CW(Xa@j-g1DsJa zWqMIYE~6(gpwUO)iB>2xWjcP78}#p6{R2O5_!Tgg3hJ+994XMD+um;C+n$|RW`Mx!9|8;icR8!%Lm{*2 z{q$=1rF|%_L?5MfZ?O50TxP;2h;nh3(x&H|3=~oD5lnCT6r%zdgd>PU(@lvc1Aeg0 zhIN%_0MvnlYLA(tlT9&JHtJyCTEF}wdeln=i(fX#QAyHdaoLUIxVJ(e!Gv;Kji) zs1w()e<2V2_8iksD5G9K>AWTSsQ$$uuGy~$HG2`w7EzdJr-`B^??O>+{gjC0d?}2B z?{J2+zAkwlZ;nmmEvv)B&2sT&*{GD{=ua@Ba|L7lUt^Sfg}clNd098(WT=VM8CZuq?69yP=!qP znfx!@JH%SsmSmHFN&>Ygxr9UUIXQUI7u6rGW2B-l@E&H1!)gB- zSjNf?@dff;f#mB6&*^JbdS&tn6G>EZ*3K=;RW4kVv?TVN<}V8D?Ij64a%`o%>E9(W zU5Kk3l~kzOlHN1{9$uw~c$L1if}xQCdCWZ&q{9y9H|ZQ{<6)Sg``AuobWUnE6RBy< zuSgL_UiH^xs=vvr{?DwoyRZIHWd_0V+0{RDx2^sOev?m_P^nZPgeq)hrCms{XEqL- z0q2omnuo(tJH%m-hr{aSRywEvWIWo#;V^^4-M7(T4~O6PwG9r@>z7`VM}t|J`pdlf zm$GQ@o(2yqGc-6kyZ$GCZE5faev{6y>pg-)gF{r=HZhY|UA`a~SF7v1LREs5SOhC0 zV^5YIA7Y_@^&vZ@!Cy+e>Mq_Pb_E`GkF+u(_cxFNUBkW4gXA&OZlWXze)}t-e2nE9 zO^c@Mt_(68Ha#5_tq^#L>_Q?z6`(sl!O$_im*M(jRMv8Ri-+=$-Zn|y@bpwc23`j? zzw|)?v<%wVUvl95Y1BNdL@3@YTDRZIBooNsl&vLc21e1BcM2*GOr%G%(W2Mh&tihbE&# zDm>c#;?t;Bf_WQ@BSd5mzOtu4Lbq>R|0 zhM0=Xl7yE;@p5J+*}p>^<+ui*{#W3*cUpG7faE}kOB6?&k7bC^6`4tw&My*(Vc8%a z0E9VBY$B(nuQbox>vlMg&(ivoQFXnt-~N@(zc#&F`pndQ`bPicq>TU9VxCM5!(-{` zsq2+KpMU9t$X=KpoSwx@bYS`lrk{P&m-wjsUf}j6EZ|fxg^c6%nBK!%hFN~_$=1Po zpVk`&p!J{fYP8HEqhFfVoe9WHmUKS@O_R0xI-IW_e^&6AMKU(dl?%8t#xVE&zAqP|QU zsv;gO9{Hu@NqEi~6l6B~MQ@u~7nZs6Oy*zR>y2VkzKeK}J)*q@7Oa|`cNW+@u(wXq zsAcPv)tjXs_p+HuSj}7(8{%dAotKRxwrbu2aw_(P1ReEVWeN)1S1=spHqgoUp?x(i z=JhpR-Fr~pl1@xEJ*_)bPlj%X2@*N4SY{W+#&GYo;%w5K5j`*i_-+>uK`-22HNju!p;WOjL&V%zQ=I^wdb(oytisQpgog<+h7R z!XilJ_O^N{akOmvZC}Hm#?0YK*24scudlE(s5mC5-19VQB$+ad{g)haNngrz|Ievd z9s4E)Jx#zLDxE*`Gy#uh%;Ve0ERY#C#o%U>mRR9HTPFKSnOe$KizI@#Qk$`scUl0s zOl`pQ8ZuouX-FRUP>nBeW`c|8bP2y6I;k;Wldep?2&GdW@Q(`21rIMgN%~IdQK`qh z#1NdplusX;5{LTP?^O1^%-hhI30IMxlfF8=PwK`@ai1g`m~zvXr)RV3vz4XCrY~V} z#|ty9{T)Ks-X7^QJb>wgxuMrX>`_XGaQU@;^kXx#dacp-$f5sz+wCF$0KUXfEjotPFjNXLV)c z@ga0LV@xaj$^O*`nCydFbvV(cf$J~ctX{VyRoKyefG8Su#`KG$5VURxIXRuTZVYW^mRW6lRL@w(r3%U=1wQRa1w1cn5U*dGO) zt9Pa_XXsn`6ZCin?p-&j!ZQ`EfC`miuk4z(*!%``c7@7(Q8zVx208St?Qz4&rUmrP z5vHcEw{P0R4B*gUxPc0H+_cRfo2JojAMW1~l2n&z>7~>!Y7)AxDON`789ze5SM+DC z$2Q@53|lN-p1&H`?{!V<8V(?r3>%eAvGe$8pkqHH@Pj&bI+{r8RuZue>Oz?vs`*K$ z*1JF_gxI={ZH%p3WCBz7*n8K-RZsK5bng-qC|^nSFW4Tlb|urajC$}IgjA-6KN^BA z6H7qQ_kU{X{5HP{U+07FX9AvgyX;?LE=N%5`Ky7_E&K)#{;t4R$Hf7dbWZfHN>@s6 zHN|6BwWU5bNg)6FiUnzV&!{p3Jy@$Av#^dcu>S7F@fNISwg9U>R@$wC0^Y?7sw2WP z1oTxQCMtPAUABKf$M7VCIGbc2J6^~0n)>7$(w>nNQJsD6wEH)YE7ckAStXKBNUjL* zoUgxk4!LNCokP9`OzKi#(4l6YzX_v5sy__EbbGEz1lY@*3!~EX==3;0=^2t(`UJpMRk8dK$`)RhX@j^uY!k4LnmR<>}o$fIekT zRB~B*fRc&Wy_1(cJuH2em(#E1XVem+VP6$IHhm;PQZ0)9eDo7xv%i5eG{zNg*a&i@8V!9yBi!IHc4Xq19uuE?H+)o#X{KNFvfr?V}Nq`+c9XBLQ^&*_G_Ss$@P0!h~Ter zIPE;PzXWLtze(rp&>dQ@|J#f~yM|#CT)CE$=G9jwNR8iH-+HKKa@qRKQT~k!ZGA4k z8H&=#hS>>qM3w`~7z%3l3}j0%-RzS-%+76xWztO}?f{s{*A(;VwZKafP_^^hN5Va* z`pjPVNNyl?=Xj?myV(&_7*G~lLFZ{9>5S+VZ9W|)NK}^|TU|n2X^Gc2=)MAGPc2-` z+QwcX;wv{Vk}T!sAKtH6Bk5df1Mp}m@DvF`^jyZV`J_xfBZO7zNmg+tEIMjm(m7B1lltrlgFn~|`s{mWl-+)8XOw$?&IE#) z#nU^hegWZ2v{jexYrE>Z>oeGW!E**XI|l!9IMm*9N%z!_;suVqz#D+HhQQ9po(LOt|#j>qt0;@xJP zEknn{m=ZbJD)`SgccB%{y14>cy;zq;s~X7?oqGJ>7tksk;d(6d#F(}`6NK6Htv4Qz zVj@6*G!iFmXA#ShMS{Vb&iA*omAdM|U~mxozhMxq3Y?g2&pw!)!;GEJ%fWC^7{hEI zgAoSFu094!Vw-707}cg&3n}901xzCr+i24jh}vZ4)9UZ6P3%lbV^(g`4ZW{o<y6iYns zridThl@EIhU#)~T1KkXOx3m#wX=54%ZM?=D=K=la14a~^uaNv?V5^QclG8i0n&9FW zttN_z<=_*TY!C7|OJcKDg=oOue)HxUf!ZI*AO|9|rEzgqo#{SS6;rh@T!#!Xnx%*4 z2%8nv%y7hEf@KUi>6A6+gpk^Wk6B1%bhXnDg*ShCVbv$VeL=7+voFWlMV&a%{7IH#A02) zi33v516ec9xPJFep#CJrDu7Fc@A}1bzK?XnsNKa zwYq(Kx9=^fO;GQ+7LibxRIZ6S^Le2Uhv!bBzcaUzR$%S zxFQ!GDWZyJjm!7eMsh}*r65L^mh2%{;=tt_+k$oZ=3sJB;PySYb$vnf$rkJU-DkP; z!SQ|mCim}m(-#TTGRRYA6Le1e8}}iZ3NJ=u$aeXDVLO-a zqQK?*gX81x_Gx$8BJ)ubb8@cKCTC|)9K3twyvZf)44XkzIEY^j9kGIOULHZV`JZ(5 z|SySos26HNeK7y=o~<7)=4tk|@6%k2F*ATZiQH{?RK_#)WFAE5}^ z_&1$v&C=4co_p`E!O$TXX~Xc0D7?5#_=Eb>In!;)6;Tv^43|`Uv66q(3Y=hmevM5pGRfLj^gy* zcFwJ_mA9#(qg46vs=Otvs{6{#3irhDam?%+7bgoZO(dac{2XtDzA?Xm}t|V07gGw&Z_8P9_50-9K|HA`ITuZCg^bs z-Mi1$e9>U0{g>G>zqaVsa}^}C{?gsp zAy!dcJA)vg%9ZW^zoAj8{Kef-MZRe9GU?GtxYsy-Gwpd7Tmr}-K83TI| z<-B(T|L2+SrjF|~@1~xuzs#^$o%c-?I44RkPo=B5g|8m@6q?lnE{o%ny#w8FZ3o)n zIJCoQ-DrmzX?Q_@p$-o;M0B8JWNfyQcJj66mBfyJ`AXv1*(HoZbjblU z={FpKR9nJ2Vr!gsgmuK7qEGgj9#@nqUr&4gFp4dK+cUHt!XdRFg_&Tn2dd!Iy2{@_9rduTqp zQ}(p;yv%85$iIX|YryUEHp?P#%?o=o*nM1JR1KE zLVW6?jw<~t*S}I09i0E6*~PVP>xqV?WNT8~1@ozJvioo**&!J+mezIFb#iiu%Lzw$ zMe1iHn__GDTxTxxbIT9&Kb)7aPLG_hxsC5fEHbv$Bkc9K73=z}j5gmxItoDS(OheQ_=UGUwHOlX?{sLfw|sOZxeDO3p^$N!{qWTq5ZHd{igKPIUBUn?8h_ z0wpHDv0;9*5vRcnptP+x$lf3 zV|axD8iSNR%hb9bPcfZU(djcyf5Jf%{m$c$?}QqNCG7FDr*ay5Du60H@x@;MkFvLc zkMgP#|K~|2WCBy30Y(@~Y*Tl%nG!W=vuz@&O+wyEc}Wlw+NGts6_M>KkeLRw(1a)0 zTpq_&sjKc^e_P*n{qMT2uTZtWHWM&OX$1mZ-r6nnW$R3bwE+~8P?_KN+-D}4K&`uc zKID1kdG2%Wx#ymH&bjBFd+w8(wWHoCCLG~4YX=4U`1c%uY5*J_>z&G*aH*WqDa22U zhvbH`!|VT;m=9iMhe@}Wcn^2$$JRg%PhvLr(Z7>=qW;^u`s79konEtnUdx4FTZCzv zQ_Wt@De7`~t)f5NRM1O3P{hlBe{1|}1-dIqBRZ1jfRfWDVHaf6=C)QPQ<$pe`0a&K ztmq2D$zcrZ|F|ZZ3yx(M691yHOnjS5{L}1?L@1(Kv}7Ak5I@OjAZGy{%*e_Iw_~Ds zgQ;DMXXwG{!G+FU(ii>dYObjD)NDv5=@~Q3a<%Nf5g;OPtWly1^nr-2ZBGA5mvc<~ z;8i=fghetq#Jfbba&&W%y|u7x#Et~Y&LRV2<1#!z;r_bd3|IILcIZPJ(#UzEi-YfO zZfR>>o?7mZJIo0?!5LL~n*wU|;*dIb@o?_SqFGCVr2nn#vrf3$uP-~CR#-?zK$<%~ zDI9eu(=fQS&rl=QA>Fmi&0DDBFIpJhg>nRCa5)C?c;|+H(j_7CE|=$*{Bd=B542|W zSEth7UMHwclrKAs;M*=Oga<-r?Ug|rIW%|7+)ZODW7bKRx&1yyg>l;I<)}4jTyQc3 z2-#gl3AR4#=CA9lhJpv^a4~pL{X2R!B4&4hQf0lyWki~1Mhr%Pf!*ee+6VZ*g8y~= zFXw;I`dFA{y;@ea{VGRoaw|N99EDzs5)P_bA8wF-zxA=ru7TQzT~x;TM{q=Q8x1WY zE5bL|Y90nznl=OG^~IYVY!Z*5vRmUH;2Ut0+7sP8i4QHGFzT{`&k~P_T_Yz+zB}6B zkJ?fTgGo%4xcPDJv7axjkcmw7)u}zIH50As>irH-AcOX6;-k%W1Xe^F#c^I7eYDdB zIHWaqAje%0`Rrd%?=!8%u!7xIVmEG9Lm^b)D^hd?DhO9;hsSPvxNA&^U_K_xR)g3E zC1t~Qhu2<%s~Q(YQ5jAGDmA~-`yNVE8IhIqMf{TneD2T_@+HUZE*#!LUhm=1uxfnR zHgiD)>ftRYgnFe2*l@6-CDr0^v)L_L!{F?>HnOfYmVj&_SZGk8L;NbuWs#myC*B4v zE>KrkF@WhP22x%8@Q1bZAfM}}X=N$b0$8H3a#>0EKBMvBgaMyOCK1>;bh+}ZS$me* zP;QOneE=p$Jh#Q~XwmFtNN#ZP}6)v+0D7BsRt*Gs2X4x2lk;A(xMgwvijyAuD( z4~_%NrMEH~XR#b(of%|+_QeO9-_8U)y;bCZSNi<|tTG`pCR>WXm?(DY9g2OKVp=E- zaVU%yN-;{qkXoF+jZn&B$yQy(pOi@Gbi~mVS2*N|BaU^E5j%6TIGRf4g5VTu^u~t@ z#{~~xnme>&osc?%9GypYuAxL{Y}%32x6|usk@774>6s8IvnC4!EmFQu&Fj7hcg6QP zUBy`ZGAD%e8`d$$x~&egb&{c9&CsuA=vOoJtAqUaTaR~B7Zmp^Lv3`cEqe6V=+R%} zv%b|MZ`A>WfI2wPCCe9j03fkwFR4LfoJs<#HR+u|P28dwz z4p-|FRW9qFH7_N0@%zuphJRh`aEMHQ-^!dtS=LL^lY7-M`(ARA%x?H`e({O27Zx6Q z^{yL^$XN;B+24Ls*)wY7Vhl1}j@-JJ^5x6)U6 z8U4RW0vvPk7P#9;JLHe=yUP()qV#@$-x?C^Wh#)Z^&F=C+mW&hm6zKW?JT_6Ramxj zHK)6*E;G31aLwVG%Qcs)o2#2^9@jjsQ@Bpyn$I=g>h~mn;ecqU?BDc0y>6bFs+s&Dy!rTlNgNUJRF3 z_)Ek24awh^J(CnQ)7nhR+P3(KMY^f|?%Oo@nt(A(BI;iW{g{#mag))?$XeG+?(DhW1yEZOY4C>VJEHy07urtPybJglhDP z$~Q4WJfQ+1dXLi_ zddZdvsmE@1lVN}y#lsvqe^3Z`r_89@w8G~|_O!wW*LqKAL%=AtI2-C}ro4)|e*BQ` zjX=23c{>eH4&I^+9JE+p=2)tciW=Q{9L`V-d9=j%Bw-kot z{1M4l7CKltrY@Vc=NLq}wQ^W)E4lywi7LTSMnX*7Q^p1v#_a6#JantNjMTt5a;t+j zdh86jTztz@8{Mh03FF;FB)g56<*cDchXzaQg}W);~rp305xxg+NGE?!t$aYA&T;?BO;tL7nK z)Ln!%_|-xWpjH#BV);Lha1m`>tZMu+&0$qB6)8eC&>mXi=1V4rYGGhUujBL3rvq^6 zmkkiG9Y7OO0jwlTX!gCH=h`xkWJJm>qE2=&9V|o_kb-+4NDSrI#5= zl9AzF&yE*h0@@r5-;OcsQ?nFjg5Blep;s-GV{iQGF8ZNFEo2^13N~tCA*DI$iQ{OJ z1@k?Xq zF2`65&((J1WtrTz#y{(@9>e4MvS-HUlTxv{qc{gh;{!u@b-jyYY8_B~aX|d=LQe5* ztq7LSXTdLYh`Fh1Xi`fT^TB%YO_LjL8pF^Tg#Un>SHHj>{{vAs&eLwEY`vGKr!r5? zZak2wbOq(}Neo0KNGQ|`BT3aXtCkhf8V8z~5PVBuxC7Db{(yW-rsrP940!O8efpV~ zGcqrkayTzPIq{MxPv^^`%*(|SFOOwj7H3|5aN^}JGcQXsFK14?{AT85MdsxnGL$sC zJ2NkhvfgRi%4N3B)Xo?*4%w}EvZl4lX-{5Ckhi{dmD;viL{XEE`h3*qE*K1Z zL_JuAks`p}Z_l)A z-P|pY2aS8W`dUDPH&{xAu~#Htc?pu%A3AI8FEskpDeIUEr9L$GvT6N0 zIGR5=o~vGp{VrD*pJDV_M_tGhTylM+cj2I-`a>*eZ$Ii0;m1~+?sI&^r0GG)FV4}N z(LJ9}5hYGbWro;BRX$RSGyHw=Pn&uQfnSp2fz0lmfZ#w2oB7J(;KOC3w-6*O4)aa& zyxzml4ZH~7vcxN{?A7v=YUmY@lF70!A^c&D7Mk1dly`C{-`P+MJ;BSuR_($Ap$FSi zZJC*PK+56cv-IesfPa=og>@ue-nTJL-g9-tnpNS0;qSH39D6%>Ra z4wcfx$$YxV5ReH9%l=FPY&oRKk~Z0q!{wkokEJwP_X&F)LpYf8i zXc@JBrf=x6=j0}zp3@I>x7qj$IOA2kw;J|Mz|Msj_L9Qb%QCDzs)D~V3>JrmD+kTb zok!l&{1TKjeI9yN9fweh5x668*Xz7Qp{V1bVQXZuxxJs?Y7B)qV#V^Umq+Ni2dr3~ zV@C301>e*C;xX-2V?%FvIi>Bw(2+M##<3%>qXo*IsoXnv2n>qN?My6mCNy-oXpT`CXi+{%jxTYvPEoy!I2Y=+uA78Q{YAJnN1kHSHE%Ck@ zZBsRJ7=h=WvS%mmiU-7&X!not#!7MH9&Bg23-FsY;9h~fxzGyFA71!U?tvaL8p&gZHRo~n( zwO8%O4SPwQvoc`3ni zv{(VbSUi^=D12xctG{=lj#ltVi5!+9)$+d@Fjcp^id?Qu_fWnf+LJ=mcD?K(pqSq! zysi!n;*lzHZ7ShGb)MWNZxVK|5Sg^t+>ytkok$6sM}1`N(nrLwB|ASZQkGM`8!SQcD_W4x6z&Vu^%#Z}b$D zj*)R<1a4E8=L`J?K_?mqAAGv?ae+Wl9a@f2Rl!g5k2QEIa;veF920o zh6z6B_bl~t8f4puy}IqKO5Qnx=6L%Q0iSG=f_7b7++NXk25tx%u^C4w=AHXedvJjS zO&*;W4mO$AUS|-jLyWWYH$YoGwtr4?wm{*#LL9*a_;)zZ+dyZvK;x%Z9SaQrW1YFM zPmgJ{_A-y_G;21^eaYNK11g8+t)`ZR`+2ikIL;Ug#pcruIJ?DA6X_(0gkS%V({De2C{Z{TMR9i$at*_3#%W7rkaJiq8ck2<3I=7S2yE%JWufu~cc zJMcy5^^m#e=xEK0-9R<#pEc_Q&I+g{pif|l@lml1Yb1w#r$5bkyXO7dA5+W6Id9h; z`ezZz2>+o<)+t%ep_n z{~{ShMXE`L&I;930j(?4hN`vBsf5+VJZ@G^)u6jr<%rR9r-xM<3=cs0qMddBiV|bJ zMjIP43QH3aj6)eK@xQK|JS&fbqlBe=X6<-%1f;_nabqH=-(vV-Ji+17mEN{!q_8y_ z3AC=C!t`ssfkBemAi2KdkN-ht1f`e>hSHesT8xc zWtb>l9zpf0TWUS_=Yt-8-LlAC5W|S-)_L%FSK+*qkDYgOtgT)ah+-7+@sP%TrLTJ^ z{O<8dqM&T_W)DTXR+ofS-_x-M0tbZ4&5R+$QH8|8A9OgGMe41U&88k%5#8sB{ zV6uHFP0ZV5Aqh#fKDlo@}Un&Mkt&{ zS>UEgzCmswdGvQea0T%)OxBwBjB7#GE+0rnCx}gK3yQ;%j4!4}${ve+Kop|LtHo%Ypb>8dNW!>?QuFcMH`A zsiTtz+{$J_CR{RSDiT)%lTb~9blaQxTyXtT8tVTQFz_egKLUU;Urj8I^e(BUmw3$` z|0qu*z8x1Lche!#zjTPK8$@?KwC9hq52s1Zj_y+2t5$b(SBMY+)#{1v(q?a~oV})& z`gKS^LjWpk;x`nlh7#3KI?y29?TWe|p()H}F$O6jtOB~yYZ_e!iXuW7g#vmNGBV;1 z$U1F5uJa2ZS(dU=8_ez*B2K%jz7IrL_TAE8<<(r=EY3VV{;luo_gM9X$^G#s%d>`k z)`@;c2tgJX8`GWP(8%qNgHL;YS#LsiO9??`zKtfw6zYoyuv*5QU~(9>H6Ye-^wF<5 ztzg%S;=rn04v3RB(E`6+Bh2cZEy6?=vR%aRog1n@c@16R*m-y#*OPB9Ymd@ zF>8EKwQW#sVO*Z*M>lTI8Rt|-6=2<}qe8XSsm5ykRg?2ooAcFT)z+-qR@ep}M~4H{ zoOJKEWqQ9Y)B9~+wahQhE*55x0yD(VRUB%!gosj*4#b!;L+&7owaP~4YQ4-s7`TR8(Xvdsi)bsBWO$7_tv36WOKotA z6QaozwY5*VNtR;{Gu2K-DpHa1RHQT&DM>|&H4vTn{0^b;zEZ8d=g}B}CVN2X2M*p% zwWN=VxiGHDi&+mC*J$xXX;#C!&Kv@oC=ppr`{TXLNky%d*!LDo^XzN1gA4IY0o4~e z8QtS5Wq$We;z)k18nS-{cX%NquyM#40EN(`h?G=Y6GfP*slsd0dA`S*okjk(Vqo- zx$slZP`SG0F;|aV73Y$cQ;A97`##LHR^tQ&!9A$mQc-&6)V>_f&(_ zTZK8fS`CXVLdw|ISXD;7)*1Yo&v!J3`GC5;opH74hJxf_eh7@y$&F!NYdX*<+UFc2j z)Cn~PxY9KFL>`KnBL0WPa$vlJ!7NHLJ*)y!p*qB}B;8Y_4lo!9$^-#I^vlF5hv6Bn zOey$}B1!wUip1U`Vo&HL&Q`BF$Gj807rCA9!#H`~1&npP759qcG9^`%IQ}-vH_lU7 zfwyjY#@W$M#`#!?BTYU4GwH=UH-ippYfht7hR<|R?UTYbAQgry!p-q(PN(}3Y}{t| z>wrkJd>WAlS>7F%At2Gd^0B!+CWYKViLdmAPMOx{cuKD^(S{f+Si)isr1rMP`+*Hu zAKk5E7Ca%*&&R5HKqd0U5TjO_* zd%o#^v->yHX@r@qqVr_H77g)}jj8##Jo=f=&O6@;SfBSZ9h8iG`Wf%$ zI~jX9Y2*0Z!)52n1}WSv-#BCMmW>|dStkz)j^47xEjtzqE;3J&NR08hk;wn-Rb@fp z@tY^YGCpDWp{y-I1ulPOnQkrMN2Y{Yg)4MIh z=HVx@*7R-|fBNlc!}uE6wDG5(k2Z`ij{PCSi)Qzx6ure^(CO8<7bf1U(r?Ds>0+5T zT7;S13wRBG1m~mea_eQq%7Z~?9d?CcJoe5#q?Q(`hM?V0YA-D}e=z8cCA_!)5yv3Q zl(^5#-GiFTGN8CsZl7zhY%X$~I1jI8x z>3NNRK9LcJv*W9s@`NKSXz{n#!>ro1w8a+=sH3sh-Rx&{-)6QwWBNHp=r#`#|1;E) z*sFOwzTOUB@3$Ym-p9dgYO_ym@YkvqiEDVL7XB-dvG6hH@=Avl6OJ;?ZY_cAZXAYT zoB3Xop_T>~H26(RBxvk(j2pnq_+j>=gsDD(L3w zx9bLcWvR-B;M`;8uD#~&OKMw@T3Rf!THRNo28@GhTd6uW$MS+8(piAK&{vJ?e~YGA~KK z8}IsDdnrCdFEUk!1uVxVPe;#W5lBak>3u{50kC)={ovuqAG5Z9a-0@nRN}X?Tg2&S zZ@>lXuRN*-<{mV^yqC!O%5&IOyZ4&418)x;o)XwI-U+mva7@QkyZ<+Uo84)w-R}gt zg(xDgy}@Hwd;ctOCvu2`Bp6`h6E__xagUqR-m@bm4(L%y3JCg9t?{U~w+WKSjIA;W zrxo$j(iUI+f);oZlZt5!J7o#DYUiE2k&xz$(2|;%8@^}a?bq~MM{w~rz*~3bEvF7O z2!H6fgx{Uah}U(`@Hc8-tM4KF7ok-Z3DJHX!OlED58kC6~rlk zLRzq~q66bsid^-fq~q(^qO{dmO9SPa#`JHgBxRc1zpW;ld6(4>Vl~` zGQo@ljI+@&(FJQc-ur!G9y1y}YN^*+>%+Abz-@$pC<3x8x;VIs`x3dg;s#_kxBm`f z2+$&m>%hwmY(NB=hDvY$SWGmDF<_yy5~G)9m$L-3{p<48K`b1xF^PZSefiu`v_f&^ zFi#$oNliq`^z&;K@SB0Mno^6Yr%J1-CZ1NXM#DRn@hOWrTrB4F?Q)OBtwxvul$hJ! z&u{830#b>(GVMd;cDTckzZuVYemKVXFr4>GNKfcp~R7MU;6gVMWtVWliHt9K@M1W-s% zj8E<lY9vpGLHM<8Pr`_n8)`(A3W&w8ov_>+q|5$F9 zRn1>kZnss>Ypal`#?8(1H!m)G;o>Q+a_07y9Yp_(0MgvCT^BE$zszs970qi4*o~$0 z8%r=);y8ZNbP)7=y-ET_$jfL~^ zr#Q6jD4pL?a`C07dG3NP!j{3ZW0?QlGJ`5RTniln1oRd@?+i9c17Pl!+KT}zK4)4j z%P(YEOBZ>RAF(&5z=g#^QQ7M-#E#Zqt>&Oa<9O;cjOiD5&oXa+Bj#Ognz`77Q5#=L z+6X$dai^Xu_B8tFpCZ}K-r>Q#kPmMo;ZJhl96N=q!@7B3;C?0gfSwj^$v&D9rPTREr>IDVc{ zeL;S(Vm?ej57WMIho08qYus7u!!;8iEAk2=cwQNiJz^Z0^{Iii=Ka0r%niMy2cV%o zGRVC9yt&O=vDSQxW4MlbE35%eG6A9e0x)@p{FQ>l(*!Cnwoh?+D;kp*{oXqfgdTWKiD-!UHABp3FVkY54xZ4HgAm{}j#H^2G%6BRqOjD# z+jSCH29;m!VlP6e0cBieeGiHl03yl z=ZFsoFAwRJ1HFffbpk^oZCaVydz$0(*g`E8TiU^}#b+=eVcF2|f-U~Yzp(-Kf%C{R z4P6aKz5&a;OAuq`CQ%P;OlIG(IHTSc%>x-tzmKR>t=v6P?}zx55QK-^sauIw!n08X z;?s-|Tdi*w&77XWu(sXe&z`3YTW6{>(ANs|@l2tNetW6U-o~6q?JpQJyO)WWZV*o? z0h5wb)nm5?g+r}a%5D|U0)~RmI+jw~{LDdQpe;V+jOUqrsvU=!6@m3ebLyeu_9>2;Mnl-Z_$sa-0RBs3i@fT=v*LR1*I!b);eZtI$v{ zIh5#^rSbg}FC|S8T_S5N;#d=V(T55YUiH}x<$6*nGbY_1W}Vn0#jpdx0<_c^k%hcU z5ePG6)v!?EfM$5HT}p{W$KNbVVl2!192--$_yuKoH4FVN?5bJ|6?9t~WagA+%C{94 z@qeE?Au9AdvZhpLLa;Y@=i$ZQTsVI-^TCU!enpF1=&NI8=L;@H7IVbS|Df1=?Ty9Q z#Pg@vOTF`!y4e;nzco;H0ey7=eRZI$x8NvpESn8wlU9aB7Gi$DB8<>^cEbi3j-Gxn zYdyePyTPS*{aw9Bb9_5Ysva09=dIq#f%f@$YC@M$&pu~sB&#c}>y5T}GT_YnE>_C+ zgz$ebV5WcTsUU(dXJA-Z+hM26cN`vAfVf93R3bK94eKUm6@fX*uSeISx}zjwOB<_ekYYZG+5p z6n5ZfZW>S5Ctzgr&e05A&l0PwNHDXWZ%C^$MNN@e$i+jk`1S9=L%-rH7zkrB6~0b; z=^h~Ov)_`3Tz>Y)*zoY!6!oQ2KbrqfrK^YzL4u5>h_#T35a|v~?_Ysel+fg*DF{nCZw*#mpXACqJBcff_vci#MR_cL(+s z2^FK(63zqHA-X@+H_l>bBY_i*#nvY({ye?EP57#;0Djndq|_C;9v#^hm)W30n-2~& zmS(q;*XhkA#5PINmP(CTQKt1so!`G5*Hr0R#(Px;?4RpZv-_JuV6bAWeWEmr)J-Zz zYRATay^L5E-!1jtvLTG766=u?&g4jU^h)VxBC0lxcP42F$kIswgpP8a+~qH4_CSP7 zq|5L1iHD8OUQ=i{mfOoJ@W7rVeN62MtVq>SuGUoiZ<%00HDrd5tNkK0E)%D8^?qtG zIXJDMx=!L{tos+kH9nD=go52)%!3ja?q?|+NM#E2`5&zx%~%p1o55hw22#=ZnQXi{(b7w&N@RFW0A%3iQW^EOr64R!X?7V{Yt zyS20^WvyN8x?NheiByJ5joj%^xL71SayqY90{EBWTCF@3p0#$s-QsfBCeIVqSznl# z4>;_RfLYwR`FrH4jc|G^{{FSqE^BR_L`vYWklEKvDMuzv_VCCgo}CIT6xP(;F7}n# zE#4A)V?d?{3nJc4@0R(=r{q~pP%JD-JZxonqLWum8z3X%CA(xMn`y}dT!?dsry`5ah8?NwC5-&v| zC?-R+MJ#I%ohR#(MHwRPCAAxKBG!#PYQthm8@H9cus-)5CgsO7QYs^%-jd10mbz$T z>UJNE?|6tc4}mFrDL0l1hxK*0vyfE#tZ{ay*VE(8uTH*ZQ@ZA=4W6J? zqK-1)wiNHYlha-n9eL&AVVShvFh(@A^!(-`yGc8Wz|q6*#4rZ)2G+@|3F%FT9T>7y z?lbp1w$ugHyD&Xcu8y1Z2FfoGJ0||nVC=V&xyc=S-9rbFM|Ijl_}f!(fWZ5y@?Kri zuiu;JmsV6I@5tiO^`f+vrVR6S^FA*VDBw^{l#hyF_qq z`dQfvi5GDIhAzQ2vW^!p_tZ5Nv1SQ{1Pk-g|KbCu1|7tAkqW3r*KtvuNbKjeO;~a> zR_*-e(spT=F=X!cPiK?bucQ(Yo9ei6n9c~?aEM<;(ei0VKhUKWo6@Z)m)e|q-s`j^ z-5azRLgjD~)@C`2a(V%LEI9@FC0*vUQ#kZ;`&1fHWIR)LJUJ^gCihYA65VEAv-e-7 znR~lN1ut{^I$Bxw!jD8oyOWi~OiqhgRYG|+@{|kh zn2_iKvBYV+j7l&{e1jh>r3)3qnu;4Lx^Vu&XY-v_y^C*RFK7BkT2XL5IlgqJP9<&? zM&z+NAS0A1Un~JCgY5koY`=72@r6gn~(m7bO4_@wM>y(UUzDlT3hg} zJ_D8w=nhlSyNg?zC958IT_=3b1{Zio%xU@RH2pfu;rm1Cd@M=*CkV+nA@I%ZNlJxY z(wM-PFv{k2>S7w$4Nmn>rkU_%u`Y#4Qb-VINT^F1-f{Mh95=1614|9+6ZA5KT%W6H zT=s%Gm{w(Rr+?Ge zCt-d`8AfW7bYH5yiRb0P<w>dVqzvh} z4K;$T&T<4@^9UWP`Z5FCr~wYMyn^GL9e65(HtoPaNHG>g59-k{Mi|@}Tko98*d*s* z;7`sAjdt}*xcPdYP+L}J+~l^vP)_& zEpr>sAY#Tc!|k{_Mg!cNeyqnwv8FveAWD0`HI_?GXR~&H?B#r(`i!Bj zSSRE_wF$M%J>_?&@pw-L57Y8Mqzo=o9l{UNOm`ZW%c>tC;5J^+xD?(?g{(ZNW7ehW zO+Sp@)r-9*ur^hx14F;FMz87kusVCE^{Qb#nNAAy% zIw7$tj>JgpU>sTfm)5)gYO*B$IL{|gEEpVmlTgGF5@C*p2A4*TpjI@Sp!cyt99iCy zhVZ_LF?lc3BcO;L(S%>%jLQ+x3ydX4=Eachc~S4J$*G}B#sxLV8r0dc7mRc2K#JBx zz9nsSuw|VYH9>WSq`>S-(F%hEhxo`ifwXRK#u&&nGd)OjMmUD!E^x`%37I8C7UlFT z9NYPC(4jEX!}b@teYf~B@8|vM;8S{aMF z^Ua1nc~2181t$Dmmt1e9o;G*Ix}|5!Im&k~ors{aH%b&h`OYRhvQ0-$^T}rCw;>mE zw;-|Z31R0Wr?u+g^L0m(0wi=C%6e5g^1Y^-l0_F+@O@1ww-t7cc=FiYQNg9zuBqa( z$}xbN*g(jy6*jh~NcWl|F8=7}L^=Sk6H4-fvCEHc{X-s6=E3Oa#4g}23|XsqsMqe0 z5Y=?57z_Ti@bo(p8$5lad6yyXE7*%VI!~Eub@49aM*yCAJgQ}jAn$0jS8Yt|m8 z!;0wSLPxBbkBT6Ry&}eySKBC=b|%*IB6LIviXrK6|60|(OxtPN3SqnJOC6tZ%(4Jq zO1%?Q0`a0`iyEEJnn`*`83)^0m!?YQ#%0;{%hY|Me!c@rej_~rtsz5GLehB(I4~6D z_L-t_<->!}v+XyjBfr$d?2EmTXY{RAD?VG~94lXBJ6$h86K_nVIS10sA+`Hwikx0n zqa6XKpB#rwwTH@_J#TA33?a}n5Hak zre!%I8l`1$8_@lUUJ6MGzNU56IqH}eAtUOg5Qgl(QA;+btj|e^J6z}@9~pz3D=xb~O1&=%VV6{VosZ-+qJ5zLy0GJ?vep3OAd33e(n|I^=MhHpF~t zV4NdjwBur0Z3|+4vCqAzkq)P_)Iu7#@1|WD4OvT{^2!T9bN7@6>hu-Fl7g03J*zFumyDFA;K}w6J53svCJj>} zcngsS$!hsL%>m~r>4yV^1ZS@z!3l&RnDtu+4Qz;KH3@*CF$)I^!EB?DAa>f#yyh~m zgKP@JG&TCnJ?<9AWaMdS$9j=l>E^?j(j94*>{BDjX1X++1eY}lr1=b7D%ql&uZ?!P zb*YF#hX8=QqHB{fjq<8f&e+BxkY8w7_NB)hVhjo~1}RktF@nijO^gYK@EW}`%t`KW zHAh^+4uu?j)&WBuqPsyt;AnCXHY^<_9Y!GH4M(6CuP{UiQ7}$U^q-K!d{n_Q(vK4) zF?W|adhcAaeS#xU1`bb%5YQXcGca`UzZrh3v&VyQ{4MC-0Cp(T-wQm51bF2eLeOA%L$ zwJANe_@tvn#+Cyf5R9!kj#fLGTp*7@5N}T`j)5RiX-M#yJSqebe!)9 zm%-pTuAY@XT&v1k0AI+=f8*_X8X7>z3xPmgoilge<{*C_pAUK#q=%waw<0AA)v3@i z(-JW%Bz6?ye$m95H`XfuMnIG#cA{rULXs^a4?6gzS?B=-%j-r&!{63+HGza+(v=Eu*9Ks6};{er*UJTwM@%OYNS%mw{sXzoUZ`A=T zAz3{aQ;m|~6re_$Q{KeY4;S2ULP%?zH=cz>WO`Sco>Nl1<638oh~SjgWeHD-81s?< zWp!{_&+(|cn%6}}ztt~pE}W7GRi2cZ|1MMiLM zzb(Q`LJ|%^MNuDx6yI)riez$r=eb`?D<>aK>8ty#7W=r$**u@2B05V&Rf&z&O6sZS=So2o8;G zLc|En$7_wZ3@5V~@Z@qL;nFnjg^jhbwqjXxT4V30KmZ?2okIxL9`lSt7=CM-!M%d| z>nKo>_^E&r(-B6&A&m9#8EFR$MAiXnE=qif5~$rFF@*PH;jPJdYV`czw1`W(O;37# zL+>&1Jh<^{25KI6UQ8f`m!}?6@*&FeX&$cW%sQU zY#FGIQIf%1iuxeQB~6gJY6<@obGK7kBZ$NO@`<^}=ZK^ZVK6P}@*4~K73v12??Zm< zZC~N^i?q)eqBe%jR7VEL;L_iijRoSXLOd*9l%p`i`1pi67dqKqqt0cI7snyzPkxvr zN<#6FoKpe73>K>d3o-pNCO(G7@$`Ta2b=g~{7MXet-qq~nzd>}j-#?2XDeSzusz8E z1&A~yVM(K*2Q;C?w zp~HS_*~lW!hZR~mII_y0c0l+=nQ8-L0#kNe&|6g1{SomTrEQDD=)Q}gQ|&WF24ri4 zq(5|GlKd4^CCgKZbP{^M`3`DX2Hd(O|!Bi@+M!cKeZ;j@vL18au{ATSS z#WR$h=b$w%clRc*k?IqY+DdN335L@EZt&!!b;ThjXGhxSJgs|jAogaSF_7j2bsj1o zOZO+^dcbkm_{sP4;99jM$KgA{it(srPZmX|1r?i+dQFuv$@CLl+8L5beA?!;Y(>7?4%4h=pLq)m)cp^6z+8BO;b)y zqVpvwB?3aw6e?58qV$>syx%d~>0Za6N)PaU-OCx%cPy*6%U9KQX;N)6Z@Hqj!Za^| zgVcrrKoKpV((~#}ZH`Vql2zN$_L-9mN1@rcXFgiSIK1=7>1q+_h=?rqO^>Q9_LVJ&KKd6M6pj!*f>7*UC4N&! zL_`ZkHfT!|pX}@_(bddFmMua+Wo99YQ4NSNfjStS8m6|bp4=cXbykD`PYYGwoq8Aw z#yjp7Splnr`Vxy+31GVJIFeK>JtUBqvbZIyuz{$%78k+HD`xC;^0-=kmST*I#j;SR zTQM4S&lEwcPKsz1^VaEJXC9T%8CoHh6%&guGuFKmW1S%Y%MQKCGR_DJ?b7uc5C2C* z{045gWbC~&vY%5RMC2Ka)wIJx#;OoNdup7y$slZVDs<4a&Voa>KL}rqgg-KC5}e3F zC@g|M;UaPp5{bNX>RcrGkQjyV+#-M@(7mL!_*IFx_(g?H98*@tNg5}a=EyE!>1V;{ZYdu+CW00^@=|gu ziN+{OdXWWEw3@6+H%rn$IOhvpY8Yrj<6OZt;f_tdejO6NPn4+VlKA7 z%NaKet32aav^huf;>^%lQNwwmbI}c~6|!GLY!ND{s*wf*rsWFGnWWEAOwN+oNm{^u z;`SNYLTp+%1dnqIimB zc=`ws^&<25o1WeE>1qes=kj)vK8tPAIDN=fs zqe|7(DHcIk0Kw!}MBa+^Un3x!RgKuxt5i)D7b01zC5|F8l@*c7zD>D`@LQ=n%&Le) zh&&vB;3d8KSk9sfS>G?VFCmRLahy(}=uLk&a54NXnl zBBD|D6-k`31pN|_`KPzJ{?oO@is=2e1lpw@@;He=eAZeIQPDi`jX&_YvfxPE-dpS4 zs|ZxhW2+{+CR>cIF@sS1rzIycx!j3IQrp}+3pz(ncNCLp|0e}%@WMF}Gy8g`?0!E# zF7!0yn7jLaoOglM)O|e-hC~pK+_z>TU%ig{Ob4=?yB8U`Q=is>QNQildx_A`u7PxX zlmvsZ(zUHAd^<>!aYZ8eoiw7-kf{3(i6Z1#b4qselR%UuDl^Y@4cyt_Roj|~*~`Vo z%4*oFthaC5nt~`77Z4v$7{OM6aY@ z_sDA&U~hN1s$IX}TprgiC3&K`aEK?a>Zc_IomtD0YW~GzHymWcL&FHkhQT;*!8U*R zeNI#4I3YIxWw#wq+K4mCG){{8h^LqR!a)Llr_j1Nl%aQZsq}Xq9P_Itg2_Eu`DH$q zG}4Dbb&eK4lt(`&KN!hl^(|?#87=$Fk^UTaPp#4Ou^f@pzMe(7v3Q_IGIeJH?$WWl zaatx@CT=6l+1yQf;>=m&UiJ{?bC6~f`mlfNU33y@qzPMGpV!(PZ+D0~fu%Q+pN{a2 z|KB$>l2;rCcyx|*lSJ^X9jMMb?XvDCgu2(Kh&Vic>}?`Xomg#FGr!4)jC08fGmc!q zzD~9_))xX!f+i&{N+RjxPByywY{MEUFuNsA%Np^R-S7xOa*`UXY;4-ffY~kiHdLSW z%4KVelS(yX%*J?Po2O)ZB6W2!~>!ol_MMA=Q?J1SV&F(eaRjVm*D|2d}C?HvH za>tdFkoJ?J%&6STraC$QLz5uEO`?kTg7b$3=hHY<)X}oTotGXb;0`2uSbmlkEY}T) z=YjrCY#}5dA;SB70|rr#;)^5ImZ!3x1JV(_WxYKk#u!}8hs56&HnX#eRKd*0B#}~a z{Ca>``(zalqWX<%0Yz?l)}&Q=5dFK+qb`Sz=5F+=jgm@i$Je9=!sx&<*X$PeB3sK& zMc!qNxFe4cr}bH@D(H$t98O9zK*XQ?puGj8D%2Q3apyX6)s`xDHzDDr)`;J@E_And zef}z~+swK?Wsp}x5cVaGu#^rMC*Na|L=@b@8ZL5t%Pl4>!STsCm4!jn7N~2M8!*HX zg#e%6|G>m31+F{(#BZHJpyjb1WU%sKKVzVBeZhTJD$jgWG-hu16A!Y-Ep@uTW{Rt) z#obMUtjBq7_6SSrG^Ri2roSeyH?c>a@9vvcn#~9KWA0U=Fnz8SK?(tjLiV zviCFoYa)DLy7+%$Qe{xlSHY(_BM3hLE>Y`0zRnI1zWLI0m+QGn@23l{IvK$Q!(ba| zi$^tkkm!c&;IQ_&lN@B{mZK>)vXN}2Ai2-aNiW$IUfq5|fn`T9s%dm;2m07G*fXUe z`Ce;uq`gWVv<~J+8x28c`>V8$2zwH359Fv1b8d~a&g(=W2?c205C6-c&UD-PeJiPh zvul5Da(g~3b=P|?kcDQNjX#lE9-JjuyT`G<3g4+&_>Q!%v__}3Uz0|9$1{=lB#D@s z!1=%{Z;LZ_q!@F8GW%6WrEf?3-P0$b{@MT1sAuXg%#5R*Gf)ZjXON%x0>5t%{o3JX ze$hYlJ3^(+?R_Ey@AY%q%YFp>B31v|_l+kA18|x3eX1{XuJUAiP(@Bh{nx3L@lfAW zM2@6F{guQfKgO3AVg^YvAMqrwWfN%kgU%DP`x(AxYj9#8*T$#V`<%M{99w4Wd(U*t zGkWbM@yeLl7~`C-XYy;Tk!eriotC3zur*ra&%P{O;v*tjP8(KBhQqS$t(gSf2JN<& z4D(#xZ+$V!ct#nB%@85q_m_2l%R9UNGU&EO+aY|ExyhfR?!D}<9*GV_~GNw7cUI@B{I874nx^3yeH$(aeRa9G0k_ADWT z^cSZ@mSs$r3GwwUIORh9c^QlKXJjm%#sJmwO!p!A`#?Z7yZha9h@;DpDlOm^zv7Ja z$@D?*+%w%7FAj;WQzvCuOd`>Ry}IdcQdgZCdei#tBaD+VBu(XhwKd-U9`eDUS+l5j zNvOA1Q|~&V-nE>9*!`mO(AgXV9d$SO4YrEcS3e|{Fh9e!jw6F*MsxXJW} zAK&l_KYATTfu$NmIt>oR8ISYpeVev8jP{TxX*94Yg;NJ=2SwC>azc>iHzG(skX)E0 zNMSH_?{NH){}eRY3I3eiB>W=0P7~m9x7t7S#uEs>RA}s>GIMvmH>(}SMe`{! zfR~fuj&9Tk>xopQ^-e}O z6boR`UM>r!dawghfuqFVfG!8P+8_chUMrjo@Eb`=&Oh!b#oT2$z=8I-U-m@3; z|A4*Le%97AQzKQRm4_2MV>vx$qZ&;v9dHLlnZ<9^5FBf2SQF9td<~z2fF8f1Opr;7 z(QQKNLLrCTba$&X~|7RA}IYk$rC@XKMZc_A0@=rO* zG+9wIB;&oz#^cCd3<7^UjLH$SVfc%a|FL2DnrK6+Vnta>^+(Po^E6Z5wYT7rbc=jcUtW^=Y2JUvzmRIur!;z4wzr< zGiwh#CCqOwJf|)pGEjD}LNgeHc}rb?hP~k!b*VZ2eX^=&7;G{=@W+0#U!ddRcOmEB z0)-P0FZ9VcTPk?TLcmBWyk!0o@1`aOV&$k=JLp(cb2G;c?xq?Dm#D(2kDrjDMY0Dg8OjMEW^xQsk?sV#neJfC!1$$t-@) z;5#lK_D_LE7$uN+y7+A_L+Q#x4;7PpXB#Pv-I6Bxd!UtVd>lIg`YU~jD9=NEwR$`{ zMyo_`H6dukl*to95^}X5s*=@rHkLM$nmDdH+>O*|){kH+&XL{{ltlERe~-qW7rLI~D9x?I zuJC&=)SofJ6d)^|2Um5yuNuRDd=`X^`~$@yb-z1b$egA^pW7w!bK~)MqUUGGK>$*S za%oKb$sX$MXZgV`PxYDc!Z!apz9Y6+cFJmKqSruny0WRMh)T$8XW9=UT|B z>jbv=Ovx>cF03Aw4)WR7i-3`N`jq=7&M}?np?I#wXs21$+x?8W<0s${wJtx#q#6}f ze>!U2KO6S0j|+l-gvG@5BNLOIjfU8zIpKFh0(-NYCY|PS{29tHk3;5li-#!ss|WZV zw01Ta6rSyMMQKg`|gJbaypQETx(I=_zdE2+i%?e||s zO+}ZSjz7R$QfR&U8xDC-D z@XV+sq!9d9YC1-4&WNI@HTo#Xz>W^)$>QuM8MHsB(Vi%|@LNs;=I~sgZd>CRxZpaT z^kXWxPGEVvgU=lhbfB7bY`t<{rfgTn){p`p!67cqX0#0BJd8hx0})X=#V*BR$xwMse<9e_Qi|NK za(l7caFN~VWt(*leirjat|pac>iZ7B>`v$F?D{6@+ies|t(0U79PKC&?!#v(*V#J^ z+PscT8uF_t{q*1Ooq)ek!)KxGiuPpm)i`fnE3Nu_xR-9sA-#dLOOAkvTCZ~0WOF=8 zgQMF@dD0fYo_0Z4npUKLr!4)u>s;f~#S8z^m_L7E!J){tc0);$tdO9+np`WXpFWJk zqB;H@fz!||GW)~0bk>u+nau0)Coz}-sjV4ClC|03R6)Cmzh>PaLf^J}r47y@yzc1A z;pJ`3sUZi68psm+ru(S<^RG!BU_3A%q)v*W>Z8`ootILr8Dz*jA}^8% zNDR)YeB7E^c}5qdnP2-F%@SkbzSUWh*)fSG_0LO}r5pZ1y1^1O;s@|JJLNKeCzbyp z7xy;DAL#_e;@W#FCvBTem`qAsN-W0-k=g!fK;1X^a*mwEqF{r!Jz zzw-Ml@v#LCw$r$;cnbP{IMwvlmT6Y+@1@!Q!di!*d6?@sni=wGdS$n7fdfxI_)@xk zpUnQyMm&)5b-Yo6&m`GB_Lkv#`umLF++RHhfT;DoZ(mBatvA+BYmS>kn*XB_uZqOs zGETtsw8cNEyVldTero)HzQtE|MtHD(SPC@9M-J5f6FU8}$0tYnY9 z%)Ow=9gf&G6M>Yy3*Q_l$qA+siUX;Ud#jmA+0(JT@71|=>YpSvGN#s&GvoJ^xk;u86Ud07H3+s_!1O&a6Gr?{p99r z8nHLOMdW&;dqIQS>^4Qz{kP5H|K=@fI25lu^zcTB=0HzK#LhabHotn1_$ue{jzT%X zqeRyHr4?MOxfopQxVmg4rQ`tgvF7Zj`wUqe)azqyz+0DUk;b98v+PZh1>vsyP7cvR-g6#Tyf@#ap-I z*Mb|N2-dK{^J0)FvCbL=G3y-b{RR8Y9p7~d6ea#YZb*sv-`a?u=y>B8sT?w zDR)J-aw#?<4{<3mBA*6oVe*sKA1?#<{_y=w=Os11-udt+8}cWqM^ofPGflbWv_&0F zHItZ+)@T&;%zLqBi18lBzu&|#!GUU4z*%XlzST(1QX71#DPT8Ms3!kFbx^t$_ky)KkQ2Gci{!cSy5uG^UdHw1 z8zXQS^SgR+Y1x}S%<2~`b93IxQjcAR=U_R>oLb@V!eli$5J+#cA&82(jsvn6Gzm_d zec_S@wc!e!NFUxj8K;b;rx82H{+i}MGWj<6+>^$K^g%4KHF!F8;+SvIDm+R~3f3*; z$&%yX+Tx%34aie$rA(F4x!oezSalu@&(0LNONyl5M;@$f^_ks&FTgmAr(5Qy_%;-& zowt=Rmc*)GJJ3)rPf0Q45jBh(W@`ZXxLh4u-ik_={_NcLm#*-~I=7X(1{z9a*;S22 zHYM+o?nB_*Xit&LV-qkqyAWqnfQ;dsqz()?yd+sy+3Jo|kqq4k->Q))On!i)iH%6{ zKtqxAV)A;RW8cZCt*!o4L$S3jXhf!3+vr($f5WXthNRgYd{zHWy(sO+e4s;w>#FvA=z{J~r#+fK3SHqU zuoV*xrbue#vBY)G+X=6?tOc~jb?npHRlOIX9E3bpeSE(9sXu@x z9Rss1rEh4+yvkUZ++iN^EpguA7xrs~j46A65{7gysBuSHX^S*T+Ovq7@e}D*waOY$ zLFNANTxnGa88IhN1+}n0S!gc}Sfe?SJjn(bL%0evWzdyr&A5E%I`g8KfAF466b62; zSp)td>D^4{l)+xfF36FAo>+u@qT&Sl1e36V9Mp6wv0CP1OwjKbz{v9EtN&Xr$KpjR z_#2Hj>H8}Ew^~0L)c1A#)kDmtkD zKBu3ocvGGn;vR7Fn#*g><@e6TO$i?QolDTUlslI?F45@y{8dp0(klI=Q$JbFU%r&r zTsG)8pVx1k_ucx*H}sPp{!&O@N2A}@kDM2e>nBg>C*S2Sh2-_xfgSS9aP{x_C0EzL zjwiXuKMM46JFw%BJm+8Z=g)DcBG18yn_A30X4mMNdpLmc(~@SYMt+}NvqoYu+H$OO z_pB}0A6`v(%BCB;?pU*C%{@-$EFOesKf&)cx8$3jvl}zi^$SdwR9Px9h%$OY6cXNTk%q>A)8pxne}N237Znlx50sQy(++`bf2D%I zB%oh;#_Sf|-C6Mgb4Q0Ra>(BL9Ah*3rDFUzU1RzD?Fix*k=Vfa3Rp{^-6eCyiu7Dw z)jwDEjCco!qb)^v`1|WjuVL<4VP4av4*>4kUkzunW68WGx@)n-7q2i`F*O<2hqw?? zbA}6{-X`86r@czIH!+*$0yZ(7>k}fAX)2(uZ0Z5QCZ_72XGpNfC>!u?&HQO#ONPlB zJbI0}UGfb?t%8RgCjw&yo5DjRp)0;%pEOKD5ffjRLd&jkP*||UIe{qrY5dfkV{0PQ ztbyt2ku|#8sAQr3R`aP!YoOmsUD))2o|R|RLG!6OR$sq0c3~6iCmN3hTZbbFd+RWX z&K_fL&d!x*lDW9{1fIM5LgXd^GrhC&1318Or0On;)<3UE!@VoPEHvGt9V}Q1@h^!{ zE{XN>5khu>9H>KRj9U5pK)p2GrIx%nP%l1+)Ihzs2DmuJb5z)WK~&hEFnpn{Oo*c^ zpVtcnq`DqR4VinE<#oN>3z)UmXmxl7YfyLkGexR`sUf@md3(w6XbZ{nUaTB@=>1)> zmm$BAqHPVM#3y8&iiux~Kkj)!I3QK&Z`8`;{caCGd>H?@Uym!mJP-c$l07v?(l|fI z7d!rm`UiH%7~_V!%(!F3**l~a&Va_^(9_`G(0ld{kpR)C4EN0QpX=u$MI4EedHzlP zTx6CbzcSBv=;tCN9f6s7{5D_$?(FL^F` zI%>Uphh{P+U~l38!7|5rATtn(3DbQMlEjamWsq-#PVpBx6f~KGBcVUt*RuX1v(1m- zs2$f2nCue{tM79RL-ZH;7+iMO*T752_K!lW&&f0SH}JV{r0>*IQo{b+I(|pLAd%gf zmhIXL#-CfPpRdY#{#pH845H{4O0u5+wSN8>(4${?oWB`3cgb_sTl-0(?es|{PckOO z7nP>hM;&^7L6E_8ctc1wQ$EyBk|!rDD#!llI`bq|OysKn`G3>oXfsgAARfAb7Ud(U z*!kY4?mZL!DDn2zpzS@^P$or?U-j=W}XVTVFK0Z;;x@?E0VC71$Nm+VueYBEa-wb7+ue zL_cFx?%njK4&?rt)y(L13t#yuppMwgrakG;2#kD|IB z|FaMvU|<49K%|O_N(7ZCN|qo`vH_IvpaiUyYOPvpt<|s#hy*w6Mi|$rC|Iqv)wZ_P z*0xqD;6sr_ngCj!N`)%bXlb1_sRpn>pe5h;xp!uEHf#X-`1$<)`SE&@nVq?F@44rm zd+xdCo`?7WO2?X~8&wxjLSfeVOa(QbcBW=wdAv-lR76SMPXAIf7-T!E4HeseU!xbC zMSNfmb{CvQ@+E5ymThXyna-NiE%y}GoNlexoNisI##)+9vQBeaH}a$YS|T@3>y}qH zwp%_{Y+2^mZoQM=m8GwAEx0oleX0(z)^Z+TWmn1xcBKqhBAB>48~6KW{4MwjtFqXE z3$-O?>_Etfi*h4TR&SOy#SYwH#0ODHUFc~Zf{m`_=Lit70W$yL1pbAm<`24qXLXbh zWJ8@5tyqU~8dg?zq<6GpeO9=Kx!WEF4Vj^5gq%)hC9DgrlA?7XnIY`G*gwif4cj2r z^4Uh!4sNjiP0oV!F$@z5{yr^?GCLvac6WwEN|M{EwxP50K;l!|O;CIsW^xDR`FS@A z9A{RPi-6gr$eRKxtf<{?sKC{f96{+LhWnN?lgWiU-l=Va6l1i#J4TUXLE^L;m(03BqqwU8D=Ea(y$GbNeI3B_gAAvnjG6`5XW{ zK&=xz>6v*$5l|gWRIHOw|JBa7In_qhJn3JVop{kD%u11gE>|MZ1wNvjv|5kZ9x3k< zrJ@vAT9~8RKB-slv&H3GshPuhw8JOM0 zaNAd1#$$eL=LhEj150?dOR=1Kt0doK!pC-s)lO)61LxKdrY!G}O?&9jtP$q%HzDE$ zxzUOp@Ra+dl>^ig4DE`{Pw3?Vp|7&H*Wtm8jjzwwIdpm$08*0Q{Z5CmGH4Rp`f*D5 zn_;XRYozzt=nBU{%0ta%*#U8vQJNzYLlUd_mjWzc%7D>R`SMZO?Hh#Ln zi2aCPGNTaAN}t91;dcXQIrMCz^m()NHT0HhF4l#frAx9p7DkJvMg}nzjTQIb&k!u; z_*UHn7@b>Y$UG=*TKrvkWrm(b2r9BdZ&{_Al>!kRl@)qcRD4$GX)ZYydQlN2LQhKj zWzSGYbph@rAnOT|9R|9Fi*j4{1vkByhIs%d2id2QanbeAvh9)DKhx z>!g9D`{f|9+3pXRf`+L3DbF^mX9{1HUK{s1Xqe$E_zSmS_<9XUM-I}Zwu^m*e!?>c z9$~7zctslz@>G82=$~D&X;7HwuvT^H$%}MNHUKzZC&hL$R>wTD&7#Ek+=1hBs+-#} zS7K|J|GUr=dXojif^P}I?^YAWh+j=B){vqtEqG8^*{e*lg0RilWMLaVIoIrnP07f_ zUD?6?;m*;KEM*VUP@=-dih&7s^_j9_hp$b{$t|9f7kQKZiRsxvA_>%4xg(3=ANMF7B1@OLqk~V(>5@Yr_;=wf5gvsENp`IyxsQ(OjM0(Ug|#?0}k2O_gh9WmCd7 zc2~AJA`#lD=G-c5l7Va3IWqjKm;llKf~%*Kt2u9QY9o=$vOh+fZ!jLM$@w_a0a9z| z8pXuIc^zJ+vHWvQVGUK%dhG8@)as1H{+zx`m)I8pj@=&zK52arS&ZenoG#1tdFT3! zbA6I)LvM*16>3_nrh7wfLrz1-hHNF}*Xh2>mp#q{dXzS|&-We2sPl*^oH~?e)0Icx zI15j0vkn)cNN%*~PO~o30r}1x7CcPUV*HF&8?oxz!gv1wgh(6v61n}$3;ojHk|nwb z@5(!mm*!!&H%!*I{JeCD}^M&cYCX(sYN%;9TdxzRnp2Hp;o#^ap#CFr(RUcoomOAPy*eE z)&kuKln7dy8-WIzpj9Jq=^8<<>JeD)arml@tn3Ha0Jq*x5SUsfl%yoT9Z3mNt_#Vm z%1U&XGvW!P6e40#{C*{Hw6pGdJ$5)~ESkel3~3X~Uuu*M!+S0NEL=al9LXWLY4-Jn z@5=2PS44+*nQnys8hn5DNf?I=?{gJ`Rp1SN4kHdwmi1R zKOAfBJg3_$0XT^)E(`b3R_wrJBmOUG6qqpQeF1io{4b)$m_($}?3rn?HWn3g0Pd~U zP4@G@*Hf_p2{*%Poir$ZwCaYYS2xqC?#VW)JLwqJotIu+H>bMNHmW;>ta~)*dZkzQ zIy57T&|!ROGIh4$7}cGeUfo?zb-!(+x{r=gUHkOv&UC7~v5o4sQ(dg3U3nj4#h5^B z%@1M+^5%4VIWP)~&!3VKu^G~kao;VZaOntPbvvcAov1FlIu2)Njr~Xpbqh{njory@ zG&sSi`m_6C;Z{CPio5O6aQYx%_z37*FKL{Ln@A>{-gpco%ulbbuT$Mu+Nf^IF{+!J zUfrKw)X?R&QQgF2R2NRKZh=$XA5d{->g;%mTVnz;3?0#|3CF;1BmRi+iPeK+wY9Os z`;1s3S4lUNLX|4>xTYPm71USr;%KNZOoyh444N{+7qtORhhuc^%=GGh>{KUiBAGh( z@0_DU_oejeu6C+>xQ*&|d(~-@T`2nA&@SoFG(NG)cClp790p5+tvP7XC9h4DJl`w% zcPS}Sl188|d10#LViaXm*jGKNmsV!;#M1J)YHRe>)F6uAqYXg}sD0G`ZG3N~uIJIX zX2RJFin|0MlrWES*o{ZusEr=lXDs{{KNstZs8~gAs3p zK^QCgMBmsvW>oZ0m-4?}nfx1%U;@U%6*7J21;V7skol`ufbU+W!8w_F6J?EwS01N3 z#jiZcU!&>){-StFJRwRsJZ0ar9(bBNEBmtGo8hyRx}h&yB_e9u)9DtH+af8+;no=Y z-|}GQ4&*A~E^~gXn|T$DIO^KqCge9Mt<=LAymad;+!`yc3s|#O#|~d+EV@dXs9;T9x$QaD)Wa?Rbh>)Q zxr|mGa^cZNs~^0~H(Ia%M#FuWd6sFkK4UWa$>&ogZ7Y(LsmY8ME}9gRj-$2uZ>sUN zI>BjmaT~3!_gc-oV*ew(x`QBANG{k$buS;Ix)0K;`;}AO$1*>>gBowUp8UO6ot{$f z;^F8_(_iz6!{z+*D0wL(vw))qKPsO|eWvD}nsJ7doaU9x-2M6K@E&?zcYjzL@J{jI z&0O8w^y;2>s%v0gW$OOKV^kMTuWqJO-IHxpH=g3PEDRc7YPnXct{uLR_Vt22oo}5r zS^|j48oi>l-l*EbkNEmsEi_0r>c(l|<1>+`T`o+f%0Pe(df!EJOHJMdp~Gsf&`mewal^T_nq z>KlCsCntD0ZJprFSE^J4Rq7ZyNJF1f#~~i#NLEtT)f20#9K*F_5kl^XeLfkB!sM^f zDxBEok5{HT0&CAo{))dRR@EHo$jc`T$pcUFxfq%|brb8PLSXT1d6RxUQ)aFiAP<>Xi>j_tN8C4~>oG^NW*iyQXAbMscV<$X! zHjBBh(<#O)D_L~HRbAqPiW!uZ{MQN3qiyPNM9*lJ=&a;VPPnSOIRH(HF~f<`&t;FM z@WYarmF#`OkX+)UY9y$v=7QL+G&=aoeH6JZe zNmjBEiW+0q8mmV*h6!CuL=GJ~Cb%*3u{tkhzg&@a+>(ex!EvUmq!GmleJ0FFa2UraFNEPwwsl@X|@KLoIgca9$DQ$ZhF|((=c+ z{-(f{-uA?bz!48@D${$dsk8aE)+y^%dkqVwy|0*89I&#NaUs=d1C7uRhUowLTxU*&zs!7!Ok*zjX||k0lZKIn`*2i_$ei%c z$+ypRzGp^;PvvWM<{RlQRVYdO(X;tj8N3ftN?Uu`o1&L)vittjuT4(b`}So3bx<~R zptrsyI#3AB`f{H6CmsU3S!C)o7s*YcWI*Df0qV&BbCKNWnp8?JbjiUj;r`gz2srkt!0ndC&!KT0< zHk^${Q=&V{ z?cf$DEF2=QNbCS6h@$w89hejuVwDs51^@N<1gejY7;jXKm3Elyy%IBbNrW4YUb9{h z7YsB~S;?RCt2Pvc6-L>8kO_hFm?ryyGqq*Mo3e@-L2TK-%@!weTV1G8V2M^l0mL?{ z4$CsWQYkQ2Y6Zpz@d3CW0+g;P06)7KZj#8wYF~>TCf+dTK7w;jLtgl$J`KUP*;t6_ zH>Iu&#MbwVHKV;!XR#GF`l(k~w)8-JV<6PS!5C*$d@+X`t?BxgSVn+#w=7G~G*!Z}jH8c4RVa-JlX6Jih~TiA>SL9DBK7b^xq_dO;uowmN9_gTq3 zz~fL$Ou7(1%wzWRkzIu4d$dM(<{eC11e6bXmngHN^Rh26;(y@>92HLuJOu)Ql!cS8 zKPf{J?E9Vmyei)v*&piFU6RgRfKkPfh9uZOMgPOWC*~uVR&?WF7hBqHWG@mNG|W)& zSIMHRq5kX~Xh;0hA?6&0Lwazk48+{*(~PQSdavn1)P~yUnX*WU6#xDOy7w~r7 zo+3rKF~CSaOtEJkm*c^m=F3tCeYJ*k+H%1Bov;%tdy!cw9EA|M_~vuA{gBc_c1-lb zY0KOatYJDB@gC@g0dLZi1o4E3KDU6iVQqUCEDl>d-;*5J;k| z^AlSi5eWau!-UH78dQBZ;@fxo4InY5&@CM-djJ9A)AiPzQX zvRI;vQIcbcJ_Iqu#}L*+5A=0`r{fdiQ0B18B0XZWY-4I2v8}0jj%7OYD3fKn97jK* zW|A1EhYb#u4W^Npq=O|$t#Yj_u1d@jguMcG?Ng&Aub=Q++3{+;UV^GZ?06H` zrwL^4dHNunfD}i@-(!0XH3sx4bX~XuK|2xcwi>JV#A;V;*%&+A$ykKl8HTGbeI}e2 z!_`s5U?alk^xT2dbFctqQ)Nxh$EKg?dV1d3H>>%A5SJq}{Q)MI_Afr2L~T7gG>%cJPQmz=1{Mkn|uOBqeatO-XWI1f$t)KZ>mu)^BT8 zQ7FrZFO=sMb|ww-oD0C4Ls<5m-_xDBS;`-&Jg0vtTeq_^*}7S=J7gYW?j|_K(*d19 ze)7KpYAGV664sNqy${o&$CILS1J^~yW8$QS6R;0&#TvY;9$kKpECdWkmn%CmN0+;t zTUoQK1O>8dUYGoFdJF%YAaaOu#$=}~5-cpEbO%Oj|Dk6Y(QvklgWDffGwbFI{nwqx zct26LQ#8c|#>z0h9{&^@$I6Y`$dL!uOG5++VP*4|FIdpi$?5+a_8ib`m&>2Ot@ayh zc=9Z=xH~ysd7a5|Pj>M=IgwdnqS;+y!ZLYc)mSuLhWK(C?puU%o(0&leSppa9C2M{ z_n>};ma3-M--8Bu3Bwr8(!%+c1mc`NbqeJ9gGYos-7nQ7G4DZ?cmZ-{8BVmbW@MXF zvrQsG=Bt!%90FhydsMjElcg$(Lkf26VMD zCGA4;AjFxE6rML}JoCVM^%=qQd?f&Y=WgIxR(}uD`~J`hyY7BL61A6ZQvkD9m;rZ@ zy~33_iSk^`gEm#S5ced9fGP{+XpC54R&FIhAYt~UI}6q!Qd@T!v41uto=}YXDzH^} z`2n;k<#RB{hZ$8KZkAt{#x_b^1(@Y@JAbJ&0!I9xqSZ!5GS4;Z#{5As+p=8^WAqod zDX*jV7#uZjMtrUQ%5>w1uritp9V65?NXj(}C~)yt)y$OHmx$D}CImMoB0Iw8sO?(Q zbfP^qavb`LCBnk7Ws_mY3-P|(f;##PgTpXixw$l&IfRl8zF&SJE54Qcee+6UR_d)b z-O)}SRzl3hT=(*)QBXIWre2CYS^CRG0FUqa`>*Sz;-go+adGLVZ;F1_y_QBlMV?`< zpHr=USaT|2a2aU`PBj>rn4rXo9^&n_0t3{&;`zu>?-cLjJofImII^rt+#%Vc;fs@C zZRnlI60!5-G@{Fb5N?IkAi8`JMj$#-EY3&p6wjY-`H6~pF1-^KySVffE5iBR`XQM1 zhb{+T4Yzmk*lvSd`s}M`()+J?cyK3F3Ll=fVij8oALKxz+8>wg!madj zQ*E__Z#w49U(HTvZNVf|5o!aC?XS{6Bv|ksnkF<|l1p5OWF^=OzKN2uv@u*@s?&0N zo)8De+>faS9+U6=N(?^3c@!1Ea8E+bR}$*g-&Nn~_YM8n_?Hm-x4VW!bO=}(=U62e zzU6wmepS0zCXYyz^s}Z9ax@!Ci=jIvx`5zcjkr*dIjLVlt1~9`H?@KTO@~%zOd4Qn z1qZ5%l77jBQoPI#{#E>A3LLra>4${u8~s`ct)y^NA|?G2lls%Mpw}~vk-3)oj(U0D z@FnS4f9aXXuv$lAl}toO(r_k`lZcut8XK+SDCtixPGa#9f$2`9s74Xko&ph}A!uta;3w9I*ayXWO9`f6U_rQwdfcLY+7YJ|9#VL5@cs>KX zH~(Jam+&VE39|S?05`JuAqq!}Z;O;$_Xf;h5R=%XJQ;bXc{tK3_C`BQh2J9(X8g}Q zHCCU_QGq%mkhR%SD|t`LJC~S+!MCwDemi&=Ls>#-FRRIU$EbQtY8=7&(s#L`4038* z9u?!fbT2p7tblwNE{~45)7F>aM$zg0< zWR1!&-+TZ5IL0@hXnJ4R{5eUTAnN(k2b5(P-}p;y!h75DGEYTJj|0Ec7JY&E{l0{wbNJ~g znc-dgLYweDiy`VU>EW6Czd(4;cqRpJ@67P#w}N+&S++CfvMuJ8O2Z?rnmFiWS>Jn_ zdaPHM%k)5U#!3@c7q&lNbs3v;b@Vxe0z!g%h)$vJbIdrAcBLj)t)o?-8`5=>m3 zL%N`Wm9_N@NMI|=amm|!U{06dNd#NFoldc@H9NB0OqZC^XhCxW)$D)?QBL5Y>nhdz zzyig;=jJ6OiWcF^r$|gEQss6yXAOP5HFjWBqyv1qp{rMbusqJjZ3S)UE=qsuD9^#k zD9&cGvIt7+b)FmPpBG>5lV8&}9lx;uZ_$Beh+lXFK3I1s>8;p`IUe~`9^SW;6&{dP90ODha#>M|cfUe8Vx!{|3UO;mi;kj)$*EYgK^voW`9~VE`pXs{F znkSwIKZR_Ku_FjI;xrZ?#Pr6dg^U;3wZpOC=qta=no3ZN?_Yuyc#}26#7oZ%8mn)> z_5k(9tXTEtVs`VT^;6+EpfALMZJu7cR}ve)w*Au z`i<>{Vu)k1UT8V$x#Sanxh_Yvf6i=<2`Hionc_f$IkYTL)_1c+Bq(jvF5v|!=!Prk z!e|2%kI{&c=T%e1*Gmm{06NMoEI)35bxC(!oXoGkqPj1{8@TFd?=z9n)^e9bCsyR%-# zI4Db59cbPxad8&p5ErK)Juc1y>G+H(_Mf49mo1DJUN$vAGxk-jTbZC9kMykf`TBMJoD{>!}w(!ZdZPiv2tkT;cLP~t|~6v7d&XhH_)Bv$ZG(| zsH)~3ePli6mxb$Po^F(v>ZDlC9w=irCuN~k+o;6LY68#6w!SB{>zvnJU~Y6z6na&{?&l(itR&#WVdTmUVZ&WVrgBS|=hqkUf1O9{}ou zz#PD{C;go>b9xrOR;b`H9#K7Y72i$lhQ9%!XpcwdkjtKkVs>Dw9Q{`~F{NO62*5k( z0Vi^jywlvR)K2_fYRFu>{cdirALVSz|rN_wqC)oNclfO3mY> z-e#j}Aa9fHsE6f7cz{bNIA-L zrpn0=Zt_GB%8nf@AlcBtvm)&iqvS+`Q-x%`U>EUWRIV%;nuAYITgLn*A3Yq9!jP-C ztCq&yb*xqvF^L`0Gj{-Kt$TK@{2;4|7R1uyL1pRDle|8*d3{gPiTBL2Dx)l_DD!VM z$M)=MW%pEvADC^0FO|;ZR|y3b?sF0CToc(tNmSk8oGhTYJc|wx6|y!vxF_<@%Jork z;t1^`?RE!=E`V8t?r3<3RG6zP+?rltBD(7ZImQZS$ z#M~0yLJC)Mr|>0Pvl;jhD`Zs=AyR$p;%X z;bZ=i*$c*1&z(b~X;C}o6nY^$7(x5aSsEMANNUE4#z_z<8MOox<7CcCl#W4cwMICY zkhO?~h!`EQM$u`FB}NA};K8Me=)Rj9oycCC{0(0-6Sf$Oq!F}H!S61nVlAlzak(zF zBd1wP?s7tgSfbc7tL>}*MmKj`OO@}z&**-`Eu5&sA_bA>l&k6fb>z?>Ch~n{zb$fy zE5OjdCc7V407+hN7)h&d-j;(__7d|Qvr=&6gh+XtMbK2JGdp^lRhs$H4}_mJ+UJ54 zy$x{XSI>TC-jg&EkomqW}JIKu6tuK;GR7DffD7fkRiV z!}$%*Y`x1CKpcZqEWZ`X^DX@Zk+^;s6rzY4+pV8mt^97WnjA5uGdFv}{vA)GGe{R- zI)BtxD{HU(0r(0gzAXIleIq`XnaZ}vsQL~!){KDJUCzmF;sma8HnHqS`M*MCK$g=zEg!C8D6^9F{D~d9A#%FjHa)zI-^CA$+R}*U z$v5qiow-C05f?8@-4GWq)EIr^_2?nO;=R#jW}_q%mt4n8#)iJaFRWbR3oH)2KZgBO zPZ$H+xAUw@fn@^n$D^i6Yqp)%e=0G~j znjFBMEb%>oEU`i$Q?V+8yN%d)c%2ygN_O&AZj}F2!^t`baqcRZv;^oy%5!#vo-F)| z+7Y&>Kzdkk5+m0k23dWxs8eW5DX3iez~eSsCCFo=H80Oxpk(5~EQ!d(=|)gJyCVFG z0B6OPiAVa_o;iWHW3@TvCT!i-K*(l|*(B@S3&4g&bDICbL-Gt8XEhLJQ^DrS>Zj!q z$+*^_8rLBd^nT(LK&2{A_f80f7v)iz&4ib}47pR$_Vs2B(;4G_!fT>va$+c`I*846 z5zG%|bhG)GLaEDMG=@(>e4Y4WAXVe*yd zMQi>*1jsqJiCp?y$V$aPulgBx(fhIo8&y5I^DSqd%FI}_99r~|*bl+Dkk}`D;ISPz zrl~Z2vZ5v9eBnU1X)UEBX5yo3P#KBMe|5j=XmfxQ8l!44P>aaBN(mKdArtBToJ$x0 zm(iW)v^rN>brl};&53{za(a_4xO>Q(H#+L`GBt~BT$lwm1rR@zj+HcZFo;n(l z$nfM>1SA5W?fIte{1mA&Ll8YNx&P5OU?2z#vWFG?OK3kguHRd(x*`!EZ2__Wgwcz? z>;!Jq{!KX!lw!QwX#e{!^dfElmLdah|8}DT5$COK(13PQaSejI>-FI> z9Dd!iTAqbZB-p5$Zz7Oc<3s_1ZXTVo2$&Z!w3))dJ-kDB{j?D|B41h)xe_?8ec~&G zaSQHHb0fS!xX8gPu>6?9-T+relA^wYO$m<1-;t5$QJ`?W#G$P>YZ|^@@J8%VyYdOq zgJUCORdnO(&9UYVb1sWDw+|PZr90eD& z%;Ka4_2O`~9W~!^LaJbWlEej1R^d(2=4=HfrRQwp;DqzkF|uHAw7Cm4WqVYVQKoIU zhpy4?xlVC^nm&_ualkvGUHj{s;H)F@J1N|n9L9yJ?fXbsWp`l|8oJCAz3{ho?CP;7Td0-{fhKaEg zi|vUzlpiSY1hqGoC_zo+Gk-p=Ut#yk$`)OamlZ}tYbdNO$s@xE8G}(;ZHRuz{wf*) zZP>SB_o|&CTDCTHj5d!l9$76Rg-RrCVJRrlU>r9Y~8=F zq}q#|j#;p3Zc;89f~#|#EmzA{g{xXgWSfS%7YdwwpuY5vC;95@n_gdDT79kRx|zCM zeT5$%uRi4ABhsqA{G-*E@2gMFgYHoDF7Y3!P|ni}aVjtm73?kC%FLhDMWn4e)Pyxw zcD(!>vye$1T@&tR&fLifX>I8BtipF2&WMrNw~!Omh+VLUXMvYsA3Kp`)SjsPHFM?~ zvtk>Y*TVISiDgV6ahu!`h5J@rE{iUVq4Sa@<1jjF3Jb$JQlr@fOy>daslqkze9B40 z_x7V8v1Em)FZ&u;W048HWvqB`@9DhYRCdl(VA>ygi?tX*Ac0G7qHNvk-?{6S@=J!j z{I&3R$}hPxyED4oV@-p{FnNZx$~>aP$dp^*8Ai zF$6#!-{E6VjADbZ4UM=suTRh3@~Ma*V|>zpv9hJ}_R5sM1e9fIfs9$~;H}{Sv4hjX`LTl&BbU;qLmkNniOA&p`9o?mR*Vh|zbkUL z@A2$@jMmD)<=?!6tBScTzrOu-Ap->J2{M>GxO1+&p2~uc?fNoUSGmgYBXm<$tOk5^ zAhxbw?7-ceaPZsL!nT1~S;Hqnqp^ye?Kq;$A!n@}$um}uY8P8m8#_Q)!aEpe-xp)f z)&zrTdzZwR+<{|qR21dF#?Fh@360VPt8W5`Ln5)Y#~Zgc$(=c3CS9>V-?TjknA+{^vgHg5Q$up z^U61G{?4tJOvxs_Uc8E`sLA47N*&zE1Qe;xIhz~EYx~7IX`o&jsG(D4vsG4a|6zj~ z^M)Ikh7c?PqzW|XLW zUPo{Vq~L@0o##^OJQ+-^MVjrWp7p97sX(wT)zESQ>H?k!#}YQM`GB!{4ML6cPR^4tb)Yco zo`rG#Q}&LfjrNE5P9;B(9~F4VEQ&+6az>(Vq`{hBNavQT6M={1t#s;I0p_4&AITj! z8L{(u72f-%>W zekWdUYtdn*p6RzUJZ-S{nQO##mm}DN=H@LQ3vVaAmUk#(tlZl9pqF2YBO>ALH%k~C z+3}&4!Mt?w_1*IO2k<*O#o_L~fKk)eKV&naCqxze0WAJmJyDc9OE|_cDA%1i&GvOn zhvdo71^X%=UtMd>6TT{L$rWoFMxtL>nO<}G( zt*aDsZSP~QHyH6vvNKl9b-R5g5K9efh0bosExsX-w1_a*oe7xhUnQG@9ax{JSQ9)D zsWfM9b9ijxD;o2gfjC&PO z%TA?P2fGr;uNCH&dow>pdNj)JfvlQ*UZU$rj=0@VQQE&*E$q1_*#uHiB1!&SSwRY zCnWJtt#`|OQ%iI-YQbGA+#EfXGV{KcUDTiZeu&c|1hS;&z%VgTR_L$qQi zjc)Q`?D0JsW3T!#w$hI=mk}9N-%7*SVRkWs>sbKfVC+a{^c)6Mp2R20taRC?53M`X zMkrj?MB*0|Ff$ea534arvHaLQNW6wtbIXxSkRG%^BJ1ufnOnoD!EKG8%Hz#-(crYm zXf0Izm_!4r;c!Sd8kI)n1Sb)C-rwS4T4bA9u?y*A8JXW2Cg=*La4xDLuUe0Mf#PO1 zZxzI8-;d{e^|k1A?VReut>~oD>rwbPI&!;og!4gn{8${5-T2h)m$e|r7f1q^QAdvN z!6zEd@wkyY7`|49Pf42BtbvVmOMEpu_}9p$hPU0?^cVO4NWNI7nfH&;{754zd6C+4 z*n;TYa+;hb*0N>KvhO|BMM}Kkur$U&&PT7)R%v6yRv&Jb>$x(hI)wyOYaav_m%ijk zo6cH8BAu7u!X(mpU6`@QMpFWmQq!|@1u_37V<25|HWa{TExqAMLc#r!eO~e%UJ`*# z7R+2nJXR5~o&^<3JboXh3!*eN^pGDl$)8G%C>&wCgK@P0O+ z`ujalQ^RVZo3+@Wa;&6IS>~V5XilZP(&*ZdnYo|iXeS8F=>o}cB~tIU1454T7%+;8 z<=+quvq*vp?A>6M#E~G~RVaF&&SpL)NAjt(s@2KghAl>m!jZgDvIGQV!Fu{hXt`Ik zXr56unYXDIi&OwdB^8`Ue`K|}E7uyIGw?2sq?XI4r>q8_-;f6QaT^m{P#ycToa)L@ zWlqF00ZGgLK~#TqiT=nQ=v>csuBSQIlb!2H&b7UB{nmW_{oZR-qjm$=l#CBP1){fm zx=KO!eAs8NJpj|Kl>WkJ_~f_O?tis#ws6L?Zba45%I>KmCqdAGrbH((qrVTucdoHg z`Q8`B>PPw%8G+3mwBnRFP*yB18VnXtWnbY1eoC1`c`DTCy)7*%__2ufOqOoJ=+xJR zl6bg+Fyx?li1(1)F)qiO0BOrIwWa8bXw z0RbFS+>MZ{|8z5@ulB`9c=p~j;8TWY#7FRK4W5~zSC$0SouLo1UC?77K8$=P;Sg*U z4uOzAxd|i+d|`S>kA}rQq(`1e6F68|qX&ZsW7g8oq)%$gK|&e^L+w1oHHlxn8Ku5% z4;{~$#(UCx=#G!Cf9o(5^$kv1|GY>wYbWdet!k@(#DCDXb$KfE1HHnvL&boA$rhk ziM3sB}mT)q>tC9S|-*vtR3yz>}rulC^IzegNqHy0d$aiKJ)hs)OHtTn2V)UTpq)pJ8x zSD2SGc>B`nfb~aSNVrMS&ss4RJUz6yF7zPVHR7}8g%&60r zW74m(9dE5MU6ia?O!(LM3LapNfGqebsLH|%nFeAtCvoPT zG9ph2B7Q~0j`4af<_k!f6%iQH=&Y-gQo=_oy+eNyvPJJe%pyqv3|_OWzTIMPB7jtM31P+HoFsNf@h*Dl-!9`w{t@T z3L&kf3uVjjNIfF%be^i3CC{zYe1n`jR9!BQYuZzZnkAj8^alD7C{fKWjiPu@iYb!r z%8i<0NzrelXxNfumZ3Fup|$7$6#cD9ifvx1gvv%9db}2Ufl#zA6i1tSO!-E4kN7#j|+qaF9n9&SMF zr8f=cx?)bd*uK!Moyj!(2lshl+Vd*>lR*#T=Vt$TT0L;Nf{LhLb(iXEn7_PKeU&H4 znQ29@R_x)~y3q6P$GQKWjX{;DKti_v|k7$1J$eNsbBc4TJk_Zm--llOA2}_H8X{@DJ=$UBxylw}jnP+}2q^I2v`No@e&Ncw!%#^p%6y{vdu4$Q$dy=gb zUEeY_=Wtshg(r5Jbz^(xqw`?e^^|Ehl#2bFvb(XcKabkxloI)$w{37r8zl3#4Nkd1 zzioq4KCj=l!6_w4I5oGyDevO#Q8}fYi1K+GobreIZI{e^6#q{7_N2^jIp&wQShi*2 z&{ycUT{FKuN5Acs`K{OsQZwPnGu50_6pBkk#Sh3_UUE-9X> zlEH*F;|+>Aqng&68$zkqDyL9rU0vucSz<&eSl4iF>a|L>Q+1o-Fn92mMNM%Sd4fYT z)*H``LGyEl%cOWMN==bsUcZ7DMExgy>yFB`f;Z3OX&H)D*M3IqU9>$r{yy`tMNMGB z)<}o|v!-BA>|py@xkOw&*e-l}Qna|n%AS>bZk5CF6${$M_D{RDGhv_Vs9Rnflo!a1 z;cLY#=GKYuXJmq^NBK?}!{AE6x+t}*?&ykbVlq#p0sYTdjex1_5f&b%PF6^KS0YLF z-{$t@r_#0Q${4SEu*Qgw;LGT+au(Ry_88jik!R}sSzs^cx4u?`f{Hl;yiA`0LQ)5)IX+nCq3tp)^QZ<4H)*NNA zSV$o33JD|c1*@thvOW>y+e=`r+VIyTe7w4E3YTg0I~sar{UO*k_mf^?E4AwY&)Yf8 zFKu)N#v31J+{*h=?KsK?Ysu+BMvn#wCr>4exUEdNd1r1Z*sh0VsZ?Lugy(<*d7KB1 z4WpLl(h=>Q{GK#YBl0W-Jd8jX#$D0uU(188%;!40A(SUTR$n8-@KI z`IYy8^u`G7u|I3Vl)sM11EHpZJrdWH@GppR`Ak6NQg#wIl$Pzxw=o1`YnMELD%u{* z6!rF#3N>uD`h1hq33OnmYL~jbMm#DMTYM|IK)JE55tkA6Hn$6juIPc6NX_!t!E=p8 zU*>^iLR|LP+~+Z%I_N~&ajZoh+_!uvCaR6fPF4Qc4d<#$df|rds+9AMDr{YYL{sp# zlDj^Is8m3ZYsgHgjnPV*8gdl{l$iU22e3yYocbq4%XX*i(RM3Kvsvvud$cBwJ8{!1 zTGp&B(!Niv*cvpea@VxSK%NJ&H?oPAZ=PmY=!aANLFXiy4 zw|d%$fM|r)8KGK4D2~1xy0FD{qqfuPa@8tLPPcpOCSwP3jD_z*hA%4{xNff~8@TCW zfK#=O$DCQ1HL)6e^mb{}w{Ef8&SLjgW9}EPqKrC(p<)rJV&3Wqwta`I?g^aVOQ(1@ zfQfiNmF?6@5?QClwYg5+q3B)|zZ@&4DSpu)U>sSGs;ytTiVX|d&(v;LRO{(6X+@h( zOxmlkp^~-bnp@NYl1|^OAH(qXQNG0mFkkTmVdXFu{)HQY*&9`Faf5$+Aa?LtoTV6v z*ul9NB&l-WB-^0eIId))U*;HWpJ1XZq%Wh?Y+Fn#U%=NsH_5esQO7pQ2W}Pj8gR}K z9Kg515CjeckmCdVWC!rmzHq<;Nl^m3SU$-E_7^ z=vQrbeVi5)yoYbhh;tRfOYgt0&W!VX&WE%HPvKl~Zgi;V$O9Y2T?^A5c88gn zWkQ9i!Z99U-jW`v{Vz8-eRBIV zG1Zw>SjEDDCuB?hJ~96IlCcuwk8;!?c=v_zf0AE!3w`XOH6#ot5`wUVPKg=0182BN zB4%JcgScZi^ma!<76$^$O(x8VGBD8=A6S|x`K;M~ZGo_k@Glc{a*OBWMetN(7D+u38I>$S{N=pd?!g=3m{;(dV=~D6Gz_CsF40Zq zVJy#HV|the%>B9ofzI#a)M#!>mO>AzXU2>*MnPy*a9!lWWG5byS4HSf3~6>?tJ(we z8QFa8kU~!1SixX?+IX|Nxg9a^t;zX_M$%5=HKF0sw;J+Y+{je|HcG_6XwkKiD`u}F6L;N52#Uweth<)^Zcx(ep~mDOzH^xaJ_pgFt0QNt zX2JA!t$h2#QrbO;3BemkSnnF~YL4s4%jO5gH+u#X6v+q0CZOV)gU^xJ;zQ-Mw81&#K}&wx=vR+0ci z1*vorsmwzOQ(k6aqct46QZXtm$rEcYB7>IXdSOA?AH`1tlS(xx`H?`f_yV|7 zXwwhVvFsxS@8GXkfrVq(k*F1!Rswsv=|Zl_oGwJd_pJ~+Kgk$k3<#|Bj237=b+Y#SZS9b!MS! zoCp^hmR!keKl9*Tm!@oa?kHW&x=4e$4o%EK_^@!7g?z-DM0xJOavh;-r&Ugbu3gqk z%0&*7UU>HQhO1P~4xQNX!3?t)x*BoqFbbn|MtU40{Z^uEvyMN~in|-}anO%4MHdAi z1CHayFb!p0sEIk3r9=mTc#v5O{5|Qd{34z=$pTrQN$84<(a=r7<9tKZmxnS0TS-M1 zu}_9B1zJ&edbA>@zB;zZR7qNaJ12q)VheA8?a(8lE?f69jh$Xgfg z6D_(catio*F~C^&Op21Ta9?t*T(+vPzTBya^gC{lMn*{uOsAb{I;~+viar6^dXiXW z5q5Dpo}@RKKDj`^3(wCegbh~l0@oxeRH&rl%!2llGLO_z`8F=_RP3z9GJ|lJDa(xc zWaYp*11XCg;{Z=Ez*YF=-{8CiUp1oDtek}LjkbvKZJY9-@Xqt;=k7_f(dm9$m$He!| zc+G}5V zx8g2NXD8j-8Et5H_^;Zxs2B0agb17M?^JLhYa1$ZB%J8(05L48qMUg9xMr&Reznl= z2T1pg_)Iw{KXM1_u^1Vp3p0<>_2O_M_5n-`$6u&}9Jb3QN+UVB!`k`1_n@8zP6 zTmC8s)U}CD!Er=hDCUQX4SKOWZI*oEzoPEYPJ!^ZJhSwopz_B4>UX@VO?KijPGM?; zv16WgHjB&WSm)_lf1=hGB94AvA&Xk4P^&hvzMhgP9Qi%22Ag%R3g=G?CX-8!eod|dMQas>R*p!4>yVmatWb?B6a;q1 zs`FJ!86ml7#jY$PezFLi$k>@+@>D{1_t$7YH8Vik>{%1K!$vYq57Lqg6BQ`12F4j! zs4_*iD%MrAed$j$+5T7n)1zj@S2L)JY}M%UEfyleJ#NDjRnPOV6tB%pL8E*W^z*ZI zS1^igi-Nif1--3;lk2VZ9z2`Hfku(uNqm^XmY<&0I%~HF zPE3m8~Gw5%4{z{nYR3sE=u%e%VpAlKG$0K7Ha1U4HhCwHj+pigykpWwRL7q=aiUB|BS-jjqPFZplkX(`Fq`4|YKzBe&D zC%9+!SDeu6`$%eEvfG>`q1RD^OrK(xvEk!G0GGTNByffo>LBb518^)&OwNvftPeIDC7aAiQvcK`w&kx{LW1)ZtfO$fLu1RTYqN{` zC9plXE?|-elG!siUjkHD*Y~MD&?iu>2~_Tb)w7E~&sZwY(W;%`I?3FH@*AN*>$-Ld zVj_eE-<*AMWsR8M0rVE5WP=78lmPc%2zBbA1b>Ds0rAQ}Lr3IXStTYxT6zC_q&3}X zUXfNif&NI+QU~i-WuVx>ZBlFt$5tN2z6548y-L3A?3@DkNDmAD%SVi0;#X})iC0&W zFZ8PDNpc`K)1vK0o=7zkp5ccZ7UWDx6>kAVCo4otcq*N>^W~4hA0FGCoU6bqzxO-W zPr2G3J3l_;nsNVCgvKl*Klks?hd|7%Ku7oY@_YsGe#jB;2iMG(sfmmU*|Z1=#y+l;jYi$KD^5 z3RR8`_=@x;#ko(AZM#`LoTWvvZ5sY>A8!Vb14eOckNO?m)C0g~SIM6!e_VON8=rT^ zGCndmn3M^d>hgHC?IO;2eLXS1M$v;~qVSzoD9lTW3Crg|;U&5!9ty>z@{2{GyCAhf z;VYVU^s;Bts(+5Bmc7K3JR;*=r;;r=tI>Y6tk#h3dbv9{jexy;GuNkTSNUex@2Ump zYBE7jB|_1}o|wCFPZwk!OZzrt9n3h9-mi?67O0~1w3r?GO)Kgxvgt?3AN<;ir0 zGP6Qh2byxIoV9t zzfo4sKTyhE#UJ_cf^&V=xjyY&ALr^$nrR}qJp zZh9bp--^;(v%haUxn`6w4*Mg3w8Q=iGq69#2xP6aE<3cR5+dYs z6th6%F655r?5;<$3hBwkcNrH_Bi?!;>Z?x5{FC3=thGJ4o<&{b=VxNb_P;Q>+MWyN zX#iwQNT!o%RTuLA9i`;@oOAuLbNxP7dl`TH`f_i*|9CiGseEM7xqYQuV#71ux<~dA zD!1VUmDOq!;q2R7F>GlMO($wo^;1ozw0E5LM@WWhM{A5kgfRo12Sf?kUZA@kx~(K~8Yf?7@{a&dx8jiDCz} z)L;2akg@Eb_)4rCawG#NQR3M`5iR6pUiw&{&dTQQFErF1$PT@0kZ+M%6%(gccj^&< zY`;|=5Cfu|;6`@UY0yn}_ND*ED#M$_vKTPCW~k0H&wxwqr$x%sTtDO72_LZ{FaWW+ zy}{BCG?rv&WoIj0I^-d$1$TmygStxqPOiCcIM66sk+T)&GeJ~7+hUC<%G%=Cas;ki zS+^Cgx~FOlmufsYNb;``KcJMK z)D*iX8$A3)*w@?UCIS@{u9sb3y;-rV;Y{BF1E$nMUKP8rb{SnfnbR1hV*T^JP(9XI zq}bgVnc{BR*|9@xZS2_3Hhl9fqA8=H{StGFOp-zU2z(>?&`~j9%+o0`e6e2$84r{* z8)seNm#IinKoHT^;@`hyaAfBL%9Qx0OC`m=TJ;LXXVXoz$emA(sre)cG|EI- z9jXV;tmI_wU0s1t&X?(mT&FtM30z%q!qZ23{Pc;TDSnzO)0b#WDP~Hd*i6i{Bn6@& zmZ0+85uCK6%Sow3^o6ZCX~18J5-X*Wu{qh{TOg5}Z@J?ZH3l6)xZCbaL6za(jd`gfPAYr2(yGO()fc;U@PF|m?DSQ>*iONOohOz#T zO=sJCleUx5uA)x+CHeCk`SToq+8&>Sm%8I~)Ye)nPE*R=qjs-?g9_ohaJul#{_YJ> zt3ocz!7tGX9YMWqu(%6-)%EdLhce6A&c8|#dj)^e`ISeHU37na0*~$h%etDn{`taW zd991r0c`P73y`PVf>hcbqt;kUshf}5=s16)zY=EQBaDJ0KyL$CfmAKwJN-4JaDU;! z%`OXbgC{v5Htc;FJ~&96`SeEacTf(<`IhPslQc<95* zvA2i+%u#*uwuco=bKNC$`Ty$&3AgFi^_HRwO=s8}!Zr{+k?Y!frv-j#(RW(V$6uQ| zto5B1h}hUqm{PxyirKZ-%nntfe?2_rru^@ju)a}a-MTItU^(B}JG-c|W|uI`eK^#W z?C}(UEEcHZ$~&dwT#j)C=U)zJ6^MvE|BI(Ldpm0KRVwzMiJWqziv9SJ{xg4Vcn;~> zoFkeP(ubuZT}cAI7sZkRFwPv16sjipAv8 z+bZnko5EjLT6F^J$pIN|MRG)TaoUz#u;lLL>asQDNPRGr{sQC#d`BYWJIb=F<e<_1J~gKxmF?Ajm_et@-_BrC zx0ST3WBTE&Vv$Hn>{x5Z_R1~AU8Pso%6}>+ppDuPod?!S%Oz%8xEINHdgYsAdx_%` z7ajMo7Xcr8VX)|KXzfGir5V(?`10AO@4$A|cfOpmmh+!4Z(~pZ{;2lpt&HSi!&GFw z3AbV!Cuv!oAbQ55W4jrx?B}O@KxTli=y>28avbm_lzsY@neD)=rEf_Xmdy6YE6#P1 z=)yN&jLsz3-4o|2{SXr&S0{iqE2qe$S0PW7&*UCFA`iA>X<0kpN$^8lld>=d3Gx3> zhYE92c8C1LxWxH+6N$_>5#dB^GcFG94!_~~!5FdU_=pUTFGNS&5cw6!i5tzq8AF&A z`r`oP(-f0ROnd&|w^0`M=$dsp!D><_h8ziJG?}YtvK~{uL14>zEcRH+nqLg8k|(q2 zO3f$7f5%ujp2sD+LmML>CI5xm#rmr1VV~e%jriaAZLBVi)e&qV)Wdl=#RO% zLI$vRrmT*0h~;4W$8ZW~;?5W*(+z`DV_1j%V9JE{lFYWjM8?X-`A1m@yH>Q?&Fxws z0#vu%DfZ50ugwbD3|83TQ%D}e5y7J<0a6pgK`u8}Xkrmdfo_m^SgOo7p)pA9$wpwDm)Zg z^k7Z3e*yV819h?jbQ}JBy>xpmk@~4q@bbC_UwW0%OyXgeqoxL+_>e7}$)QyHLQYyM-ZhXj10gW9qQhp|b~qN$OhQD#SD z#r^kFT9V7Cn}Cjye$!HkT<)ct54|P4VKxO7?(jJ18ZDX~$)SSe4yv^l;JfXmq4Ws8 zaLw?kIyLGF5K4}*J6z;?QJ?L`E$N=(Rd@Y z<)HB?sZKeadT6v28gntl^r2CFOvU5WM-%lanh2JlkG~Q`6Nz{@F%yAR#>^^>Dr~nz zcG}l}T_L+JBtk(J0p_PmBIYgOo1(#~k;{m_-Uc@FA4$jNW){mqsn5?QBtqnLJ}0m5 zDLR4zT<-9`SvL}fkVsJt5eYxDI8pXs;&+O%y)46Au%A2%2ptQbl>x~Ao~d$+CzwiQ zPXg1)4x*r@kVj1f+QP5nVc~zt2PAh7iI_*gRAH&*xun>IcLv|a1@vuv=r@s&jWlb> zNih}^ql)O)aA;P9LMyb^ifpzj-m=PGV-`%AZiS*#X4o5hs}V^~6=G#_T*wH?^<3wA zy1rU53Hz8H?qxELUW9wO{%nO``DiyVbG2gI?{8grA^oNBMXAC=&d@Esra!X#^Sgm; zvqW~b7b~)E$Zuf(m`jaQ>{}}S+tScZ-diA*woW;fwh&TT8Wsy`C^*Bu>*cJJ{w@{o zU>(cwG3BAPpB-Bs((=YtnHN!O=~|K?v>|VloZedA@X2cf(&6*uO@z%<{PF%8zR%}B zHnEii=SXh<5kON0fWVx|f9#Pj3Cym1r1jCrNAs|KGtIJ9?oAhtDINk+=Tri)gx4am?3NcfPZO=T+*L`gR}J6f?f%UZhh zUYP1j-+%B>i!pYO?oUPIjOkPDcR2H9I$``9n49e#ZQKkVWJ~SN-{ES11AMPwmkDrK zOAxK>384clMOPan7+zD0Fh!!rM{2D6tyvq4)u`CyDbH5R9%Yp*p~jfntaWQX%+9J= z%)WW`WKx@C_^`eE;St~L=9}z{-*jm6n>~EfG1E8WI!Q*++F0|xmo;n~vk(z;1-uPb zX!qi>y;kX7Pqa}t#1?CLpm6bBEsMKPAeD1)ow>QZfjtC~GKng!BEam}OO%(Uy~cI& zaI9nxxmR{XD%Xo7d8s4uBI{?44aa-d#xl@}o(7-o2nP^~g=Qh7VCp5WB#&1q)^P7M1 zO>V|-y0-bvCw$W_(>LP?ciT37CKs1|YL$L^eDq1sAqhORP9hN5E?r(O5u+7dN)9)n z%YH(ab0MG4PnQe%Dl=UY9|O{bF29p>=yIZ_%N9Oy=+eEo{N{R>KCi@hQ`2X@v9R|4 zr%xaM{QsOjCu_D3gFk{#e+o_KWuocH-P@c8vL5uv^v$@Fk1-E+Tcx}8JZOtQ!=ASa z{quiS+8o&RxH|_{IdkBAnFC=+_4Chx1$>ox4yG?zF-B%ivBGJ2a}77GwjOQ< zmpIVUS!cv0G+6p@*GsIYr)01Raj5g9+xvmd8|;^*!;eb;y`C;}dnz|=_0%Kmz<|5aa!!n{j+^@KZ`HWtNcIi-Ud91>iQqwO*Y9UtjvND zBZ9;>DhMJ`R04=0unAHFiISiqDk@YE5yCF-!Hu&KhH(@{`(kaYEp4f_l`4jafZ0Hk zfKF;;-kI6iWD}yl@Avb=!drBI*^kuDTKFL`LjRyry-6@gAO$BS1;5rTk-*^$TP2ORW(~ zk%AQ4oyTMnzVE@9fNB5jYA~yO#;km3L$kVqN1O9943}#3VY*Cf`b7{|7sF)Ax_AXN zb&;%#e4y|^+0aCNL?%TL2+KNxERlLzm=O9c?w-%qc1q;Q$?%UDA;RlpMAS@e-GK~? zKIyv4oCYazTM|FBl-$fcFUe2eW<_ls|b5XBS~lu{=gw*hJ7GpSX-nP^;@KWgs~;G_8Bt85I%R&ptQ>ukC|?J7k^p= z-+Yn$pYazmSGYo`k53{czaFl{@4|K=SFp7h!l5Y}rm+@Z1G=KxsRkph2WE`H zmtf;f2WyaB^>Wc6N+WY+RIW2l^hkcDyfc8bzQ}bZmmZ@dtDyCz^CY#L$^(?Ky~SEP z($K?b^^%&A=VoTMIE>?7v)(Vc5ox#-$2w^(J(OJ=mHf@b()Z&0S)#0GK{J6J z_@Pcm`dsxmKvzG;gaEb0-?2Q2-!hL z&`!-2&i)RGu9W>4Kt!U zE0#6$+tNOe(ki z!SAAu6YRVn8cpy(KS~-iWs#lhLa`rWkqhSBBG83?#h}o9()MCxPzL!#C?;aoqq85v z&gd%7f(3X;@mf&8waP0fCBeN=!ZE+4ETlrRkVfwClA%%BR;)_ga;bd@c2=EYXaM{5rfM%nwNSBN1?NZ|pXx5WS9j9oZCs2U zq%nRG`<0#iNh9jVI7xJ%TYnyIzq%^QexL?<2%}~hOylr>_PM3 z5lZ%;B3SC|@&vosio7>8i^Nu|`yNcG^0WA%lwjt_li3cKX-E`KM=F&jml{!oH4BuLLyIo{r&3vy}3?iVKM5Q!s-l8i&Pj-M012f6Fw~NoRzO{z1~& z{Xyw{>nGx2ELq$B37Tj*?*B4Qu{}4WX2?nLBa2k0J)L`!2*!GN?tAo=^`um7h0^{x zTIRkUa?tzU2)L@Oz2~AY5dHO&ZP?FRvQBNo)pALj^g+o}`t(EQ-B0-ZyB07+O%R^% zfZKNF@(IB7A|q%9&P2`~siCDoNgXOy!=uHH*bCPR@$r2!St zyw6()crBdv59tjI&p^uU=N@c z_wt3aq02}%CfyXYNSKTK*Qxy%;kiQXpGVo!Wi(TyYW7#B`bYPy{@BVKtAUPKET;;F zH%)!y?#o#Y#fcidF95na!SgD7FZKR{D`O7E3?}`-{hh4Uj|4Tyi^cP+gbOKi1%3+^ zlMa@BrLW4J6ddn8lU*`aQ)G4D_uZWGSm0KyzE1;gXh1smKMdkL z|9E#C50FQ8q&t*jhLL;c`X_7klVBXuobAyg3N}vW0m?(lsu^(`S)O#6H*^Sc4QN~N zk;IQ8u#eVEblS((PITJl&!VtEr+fCJ3mJ*~DK@S5KOj(YO=B-kDp!>GgHba_H$!dE zDtBjsQZQ$dFlE@>SvY&aEXF(vIxEJk!a?w96T+IPIt4X+!q&+2-1hF$eH%+Qe z_?_JT1Mw>^OSQNcX}w7?2>;8d-hf=OUeq3p5PmVbGY9>#FJ`^*%q<~KkX|x-5qgut zrgiEMAanIX;42pW%!8w9;`VmH&mmBK1gXIP7s0gbOiNsWWEoqL1-kr}5ZEWeoXC3;2Ni^@Rzq%$^Rs zK6ZfPm94}0J0gF@Kl;E!L?u_vpYYL;r|vo&(10rLaLMA zhxEnsx^YXZf!4S7M=0WQ%ISugV;e;R7-mTtdSVdt7&NZlNS91p415iMp8!6yz+%1@ z0u0=~;p<`%e7_+qm;-0DxokD&GULph=5huA;&ZtO0t}nWAv*id=A@7r0Ck7on7SIL z)59c<;B0;BHo(};>$;HYVzT8p)Iy%8h;xMkW0{j43qIP3D$7#{Mv`YxWAyaVYkbnE zaXU#{-Or#9%R0c+S7S561<@hs@S09CUTMh+m!GdgNk;Q|ym<)A>40K9LVTiQDfDm? zBkC1LzA&r$?hkaFkf4RKMq~p#ibBeyRG>KYF1GX?Lt4A6vBap6jk&2t#7Y3g11#>9 z(cB5VHa2>%(yDSVJU?m&nDEyfYV{RIU4hC~4_y}0ndD_hb@TBc#5J^L6gVd%c{shvj^yKnfop6Z&MTr_SPaH`kGbNfc*RIUOhFy=>lI_$=xvqrfVrHDxGbmh62=O?V=!VEyx}gk zP#rWHHdbCkGcnWL_AssOyC^j*maM@{t^^!0cTkT^y@~ECIvx6q)w@|=b={u=Nk$W; zx(0Q$xmpqi0V5hTi8Q99S`fTr?FvrUm`L2q>oDyMXce8TrAF`~p_3}dOP=0< zC3L!`jHfr~oY3iK=K3j*e;4Sy=X;%BH*rIqFUN@FhQ=4pV@Q)0~o z%8MCeCJ0ZKUJ8pC(A03bi&lEf;YvJ2h6~P+yyylzHcUN{N?~Iap8PFdbeUc1 zADmG6{CJJ(MTdT34KD0@t1I{(CxNVEZjyN&9>&Nq`XV6dRIZ#J!bS`;1x-z0(NuG% zO3u#=4JK@e`kV;^i4B~NcxN%&h|&yke@G|B)JeiODtabT5t6x@E77HE8lFplTe|nb zU3F+bY})-Cs-TzOX!mCA-lW}+Y4=0geV=yUt=+e4_buA}HQdchrY^r2>t$Or;n^X> zs{vZ~MUL9>4(w{e%xS;5cD$4Q(3F=nd _YzEw~!u6EZ;EF2XYmV5O?d}5;Om-?I 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

>UQ>pysbFtO2hNl+$A2z?$`huMFa5 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 xP0H5aEp#8EyQ2r8!t6Rxo^8z*{{h@PKPLbH diff --git a/android/lib/x86_64/librnpushy.so b/android/lib/x86_64/librnpushy.so new file mode 100755 index 0000000000000000000000000000000000000000..197c935a75866e6732dd1bc39cc940fc151e332b GIT binary patch literal 338168 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Π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 literal 0 HcmV?d00001 diff --git a/android/lib/x86_64/librnupdate.so b/android/lib/x86_64/librnupdate.so deleted file mode 100755 index 0cfa654a323aaa5f97b8e1157864b32fced628df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 331440 zcmd4430z#&8UOv<83u;Tz>rKrNZclBlxP+piQP>6|M&BM$ItP( z=X;-f?m54E_B$DVzGC%Cmthcp+_ad+Vnk*7L_EvGE?}jUjsNdKyHh4;211!WEA5C* zjICGuDLj^TlLI-}h17GIAS2^&b9ry_j{D%%a;=oUF;7JGG;=q6Ez|VBxXFKrUJMb+I{ErU& zItSkEz;AcpcRBFCIq=6E__GfDMF;+x1Aohbzwf|5ao}G#aMc0qtX)iS;6HHSqv(Hj zmQDZ-d1pL`hQ2c%a^U+r@YxQ0z5_qRftNY(BOUk&4*Z7>yw-s?Iq+r&{!<5jo&&$e zfpJm%p4h6De?f%`FB@3fvc@Dc}pr~^OJfgj_*BM$sj2Y$W- zzt(}@>A>%E;1kXE7@!sJ;sBot=%_wn%@=)S@n2hpuGD_SMw6(^Qwryt>da} zH93eNM=vOYj}>=|ct$#|e3UxhMNslgM+gxur_BcCd6%KNmf^l-isJTQ28ERGaR>)| zLHYe(fBMIhPCsnPomb5}ar!B1e^OL+*_|8yv){z+$N%wPzgSlLT*czvb>Gd%_`aHx zsGvT3BOHRT0D=31@8DR?bAkx!v$J-rxSI0Ixv!dM?TN4$;V6V-5!7dqWy~^_;dnWM zntSnQ4}EY9>}-ZMdpwS_5#}H)Lr~>D7=b_KIN-_ad>pI!*kK4qAjr>5fLR)@w4GGX zbhRyhAdc0Xb`3&>=4)Y<-s-aiVTE}_v{c(8wcV9*?c}5%EK6`SvGj+Vi*9B#L7&M@ zdsqhn5#L?JcNPr+`fMj=;F#A_jQ8UMZKr6vkG9ibr|RQwCj4K+45sYtCEsjWxRVzeRI6i?JQrE00RwxKy$ zN8br=2v^lKRUtPusittMenYgXF&1fVh$gF=;}IxRwLG@5sUa4Q92ZWWQWcKJ8#Yyh zQ#Exf6S2mXNOf(jIZ+c;nM+1f-#WdThG@8{Iev6QWJOadQ6Ei?Cxta;K94uEw=9;3 zR;`bw);7oEu|z5wSzcdTdqOmktdBK~CoN8;33VVj$NB$`;!6p6=B373V@5L6W#*F(2u zqCR;7ns4OTXfhsaLc<$JCAM8%hubzp(-*7euG+mRNMpF6Ay%VWx7id`v;T1t)e5aB z8a*XOwW%l^pj)!Or3zIZ*;wC1$xX?I*m_F0E!8d+P#s5|+0xBaZ`EU^*yJ*5im9fmg4ax2v~yiR4pY~m_mJ!bzPmPNcCJ?WbyoTj>mJ zOqdj+tDUAQ+^xzi4dhEE!|TWLVI`pz;B-}fYoHqPTN`gq)lj6N3Y}jhucM3lIo;6G85$d$ zCpf3yFL;qoe?ahp$yWMBi+_{p+;1@&xC6 zgaj|s@j}UUd5Z*Z)x1>jPR%(z&JUNjT=*~1`K%C}%UdmYtB%(RUZ(FG7o79iA~@%h z)06pZ6aL5Oe6|bDMA+bGh0DAJqBp5WM#z zEB~E>S7^@V;QVuWx`qF3`nmTA&d;}3@B$t06Z}P;&Vb;hQ*?hT_~0UIRXF6phaLEc z;KMo{()Z!=(qb!pui*S#@&xbI{sn@we@Jj1Hwy)4eToFnc)=Q9SP#x8KbJD$|I9xu z|8l|kewBiE>3Fr^taF_Mk2~-d!CB{4!TYstZGy9I?Siw;9fGrer{JtJmrv@}E&OL| zoqGf?)bT#S3-Yb{*)KTjHsHVq9r%#otlO~Q{Y$O-IU+dgKssMs-il?qK1;6Wb$Nob zZd^W2hwEEN_}6OP3I%7~N(FDz@iM_#w{izw;lL{eXWgm=uhu%$3C_C31?T$KA~^fE z3eLK5`J`^`!vA+#w+_Ksw=Tg)bi7;e>JzQ!+aq|d=DmW4PO|*_1aH;6U+`Yd2Lz`d zTImc5&bkc=&bkc?&bo2=q;53TYG=&v)w+2FXWa?}KjW`fe^@AZ#Wvlq3O@HQy8jgX zfZHry>A>p*&+oPTTLgdm4vV)5&i);OC)JBxe7Xd$ddT8Eg8x95t55Ks>2wAJ|Kd?A zogu*w(0oMjOYXG%y#+fymqWB}1%mI@Yxx%n{)0Y?mkPf7trjmAJgC>Rm4dq-v;6A> z|6{+!TLi!235&N0ewuo*j!%c+5v^yJ;GQQf{~p1Aqw8Cr;JuGq{sV&l_yLO#3BEwr zw-LcRbo$z>syE57iyim1iwk&w@2_RwSS-BM`%3<1iwS?hYSgRqfTc;@FR3Sz0-Hp|5v*H z6bR1g6bgR3eqN=5`*nRT7yL0@e<}rU)9t!W@Go>f(;|4*Bi3_l6MU7{r$g}H>2h@m ze$+iyIz58#uiI~*10N8)N9#P~z()ix-_6pUwB>Pu=MP>7p69>|1n2ofNbs_otnsc; za30r+1m|(ERB-k$6P(9EE+3bR=Uo-T|7$%CRtnDJV4dJSIvy9Cb!&0ptq#0RaMrC| z@WIsIN& zs~vcq;H+C*@S-~`-C6`^9a;rv-P#0a|8~JyH!dGPFV?M7_@AS7>k^!G>k-_$hgIKt z1!vv*9C*J29}t{%8x*|gE=#u|!C8l4!CAKv!P%d5IanXojmyWJb;}d}_iNn>1ZUj} z1#i*uBEea=QU_k?^-6{m9UQ4%1!C8lD!CALD!P!49IP1pcle)DE|Btn9ZGy9I z9fA+(c&Fg3TbBdxcHljNvu?eDSNzS=txs~jFVQbJ>oy=b>ozDj>&E4ix(y5eJzlcL zg%QD7H}9T1&i5*HJWp`et-yhY9C)GNtXq-b^pK@nso<rUDw-&+sbi7q?)~(Hfw>$6-!CALX!Ku&EtxIs$p<8g)tw(V7?-iVN;$1UC31ZN%E1!vtl z1ZV$F!C5yhpVX~e_`j-k>k*uF>l3^nWYxER!CAKf2R`V)hXiNch6Nw&w{#m3oOK|b zFD@_Z<`ta%^8{zzxO|)r*SC=H_q}Y53x$HSZl!{^>3EsotXsJQuW;a%g0pVbf>*z6 z=~gE=>kt>5b!!ov{aXcR-MD;Gw|3#bNbA-iIP2CW_=t{o3(mUrIPhKv-X}Qg)-QO` zprzY@;H<--;H=w_;OsvvIP1pcle*E29p@Est(#YH)~!JBIvo!Q&bk#k@FE9ZDmd#_ zCU~#btz2-{p+a!htx|CIuNItj z;01!SZXv-tw_Cau3eGwd3C_Be3eNszg0pU1J}wuJ3l+lO|B5v(R0__z)d}9C<8i@R zw-yK9>cHCsXWiNbuYTLotwV6up;K_ytxItB?-rbOE;!jb;uK(bt@2@{X>GYZiRw#eJc`tgVwE7aMrC{ z@D3fX5S(?Zbl}wvyiRb|EiQQIb4#}t!C8k^!CAL9!P&oEaMq2>$Ipv(>lFUiY2CU6 zXWe=P_wH-ew_d?nw>}5n@4yEHXWa$`FZ#mLZAkD=&4&eN-9`jw-AI>%^lM6P>(eKA*}pB_`UPj*1_Wo_ z1_fu`xO`H#Vc}n=bsG_!b@R^Lah_bM<9UL!ZUqiJh9bqe14A4{Ju!G|^P z7MykK5uA1F6`XbB@=4wLh5s8`w*kRfw;{nx_p|EXu;8rQhyy2m9p{Jry@IoDd4ki| zmTm=tvkoD_S+_#L*}q6|){V=@`Q&k-O!)6HX!UR9g0pUwf_Le7wcxBnodb_M@D{;Y zw^qR`T-LuBZIfKTUuYMcb?XqEb?X$Ib>s3$-MWSUFRZ3ytlNMC zA9UbDg0pVJf`{CeZX<%T4y5zN$kJI7$783rgTDL;MS+`Qb+jP84 zaMrEdfmb;2O2JvTYQYCRmTq-|vkq~=S+^F!*}qkA){V<2b!!*?-CDN}!CAL1!AEqw zTX5E`$AR}c@IJv=w|>F9GcDZ)1ZN!v1!vuc1ZV$Y!C5yhpVW;Ccbr$eu66SY&bk!{ zUZ>+B!CALL2VUgBO9f}$$^;+Gv2-gJoOP%WoOP=doc*f>XWh7bQn$G9&wY)|PmAEJ zTbtkmI^Hfg>(=4GI~{nJ;H+D>;H?2mw;sV+hhD*1w?4tyzh7|Hjmsx>8x;Plv~EL! zvu-1Tm(Q~5D{0H=vu<7op69>|1ZUksg11hzbSo5`btn>?bt@H|{mTSr-MD;QE*=*u zgnx_Htx|B-txoVB9ghpny0tj)RtMfDIP2Cfc)R++D115uXB|2PXWhC4Xa8=&SvM}9 z)U8+eU$1rR6P$G$ko*9vz6}b_x(zw-VFx}UIO|6GKAivd$(C+j!C8kq!CAKg!P!3~ zIO|p@IM=r#!C%(8l?u+fl?&dX;}wFlZj}za+JV;z&bq|~ug&E3{&bs9Z|Fv4T0>N3gLcv>fyhw1?t<-^+Iq-79S+@$wwQiMy zvkujQvu<^QvwvK0){V<2b!!#=ztXz33C_B82tK6aor1G&T@Jk4f%gc`y7dY^INhpm zeS)(N{erV@1A?>vpx~?(=JL+Z}j^ z;H+Dx;CVAF-MR#49l8Z)-FgIP|6ajaH!h#ltzYGJmrv?8DEv2T-G&5b-9`kjF0$$?Y0K%eZe9nT=fDdDXWc@A_ZL~Z6$;Ke6bas1 zV)>T}&i-YBvu@>r^SDqU_@`R8O2Jt-)`|7ubn1lvojRSk;GB)-CcI~;hY z;H-a_;6>_(+41QXob~JxylkQ6-zzx#_X*DW4+vgZY}L0x!MVIc4t&^wj|k4?C4C=$ zUcEa1Ucov4d4h90EfAdjLxOX8xqN(It|vvpf5Ds9xKJuM*SB)PJ9NB4aMrETfmb{5 zI>A}Dxa0>}&%H%()}d8!9v9jKXa9D=SvM}9)U8wa*J$0k1ZUlP1oxI$^{rQM)~(Nh z_dDs3$-G+t#sMc*naMsN` z-)fhfPNk0L3C_9|IPj1IFBF`0D-xX7r=^0k4rPL~Zsmfre}&+z8<&sE%k8vU_?N0b zG=oo_;H+DV;C(vYDmd%b=D^z>c!%JuTc_ZxTbJOhL$~1Ezx4>t{=I^;Zd^X8TfgvM zuXP&`oOK%#ymWz8|AqyRA8xgy5y5*kCw(2~CvTDE?-jgS^E|;jH7^i+Q1g)BtXrYr ztXq-btQ(h)^U3wCO!%L#bt@N~b*mJ-OUJ7P=lWLXz~c_QMR2Zft%8RZTROK1&N{RU z&boC7&i$Bjj z1L=Hmd3oOJ6`cL^1ZUm2e4Gx~w~+AvT1RxLR1 zlh+B(I>ZI%`qm;i`?m_tx^elWZtcRq=xu9U=n$NB>k@oK$GZh*-Fh5&uLJKBoOSCL zod2D|fZ(jdpx~_Akl^e;EI8}N<&(P6K|9VX>a}iO!CAKg!RvH9Bsl9<=)j8{c&Xs5 zTbbakx}BB_&N@^G&bn0!&i>Vcvu<2Isast5U!!$v5u9~v6MR6&+XZLcIvjYX1Md=? zb?X+qLjA!we0n6;`{ccXvu=HYvu^!@vu<2IsoS9NAJDoD3C_BW2wr}$RbNS4PJdXJ z%PTnRnI|~=7f8OyZR!&eoR(O+6$;+3d6D3(TdClzTbbaj8<&sE#p6PS@Si+nW|Jxf zXWi-q@6qwN;H*!J18;TUZGv-sYZpAe!qTlnaMqzyaMrC$aQ5#OoOR>!N!@yd|0=Cp zpWv+9faIlCeH#>@HT>pOi zh~TUn>2k0>tQ(h)IqQ}u{0Fse1%k6~g@U)}c#+_&PpJbhbKvEIbA782Ja3()TczNv zL$%;s-|7Ts|G40+8<$V&)++obzGICGZGy9I9fA+(c&Fg3TbBdxcHljNvu?eDSJzm& z^$E^8^b5|q4G7NugMzbeTt2DWu<&1|bsG_!b@Lv&<2<=i$MXd5H2?ZK{+^%Uy_$yv zAJn{1aMrCzaEe;Gl?u-Pj$5S(=z61?;< ztNslO&bo~_aMIUte%RkDIO~=tc;|Xcw*tXghmhc`TcP0WUnDr|#^vLD^0-hY{QseK zD;Jz~s}#IT$EyWr9qJr-+<~_U&bqY0XB|lAi_6Qpc?DXC_-(cxhCpha67o2r#5uE*7 z1!vv3d{Vb|;h)gDbqLP7bqPMAxCA< zSdyw?4sHw*kqIuX3y_pNl`)skOqm8(whYR%(FE)bmmes0Kt7Ygn<)w*wy;33UR1%Kx!mVcSx(@wK^x!{le)Z!I_zpZ(t;FErC z`Bw|RRP#E)@6_qU1%E*E7Qw6EwbE}Dyj}l2**3u+)qgLkTkwi=tmo9@z-}3KV zV%bbQ?Zd1g*8G33=2?hYHOD&HXX94RE#7bA)|)Ad57@X>b1Xh+<5mtVK4jx6Py89S zag`_jjMzB$iRQVbR;tQ3o1J03Ha@||^K9H_;{`VExABmT=h%3mjpy2Uk&Opzywt|? zY`o0IC)#+qjZd=i3L6jFc%_X`w()8kpJL;6HlAL#`m}J5gRYGaauN3|7Y2_*TxU9@jM$p(8ddFe722;YkJbP0*!bwBIY!2T!PSNy)J8{* zqv?l4KlGlRLBBL6w`S1$MmCN=GtfPq>++qELH#au@Oe&g_6mw(tzBd)v;+|=d{ zyzi!q-Fff2=~}mc$W6Dpe};P@%|bd4H#pCjiQ)ZW!~3R-o;Lz-xachdo$bF3-wQ7K zrRxH?z&DRxz`+Yf;P)JVF^{wBaxXP#!%vqxW#{~L}A}ngBq$i&0K0B zYVrNqpfe4#aAtYyiRyiw2Bp&F{iZzU(y2tJ`ff7l7wL57)30#jUm4z4Ty!pK0^M%- zUUJcW1|)gGeDrS{!2uV2Y4{&e)u0vLN~;$QN)RP-J}jVq!~c2#p=xv&&}FW`^#ydj zD|l`J4Y=~3no1wI^6#BW54wZhQ|T@D?w3!cJ2Q5>Y$|<~vBx=6soyj4^L)A?GdNg4 zy_vx$3+Sax|BVGSlsUb#fX>JYem#}Wn2>+gRJwdZ@QZxf;-B>FG`iCt*fx#c_6HuC zM*s3pyloo&I@kY50d?n2{bDLTlpFkXD!r7O|KU{nI5+t2RJt!P?{5WkPTsuU0{X>7 z|K@4*;v~G)-{W5e^m+aTm=L0TT+efV?V=$AodnoCY9wm( z;YZ9{FdAK91mAI^rQ|&4rtQWWqMKbl{4RXEdpf{%?hTes`_K(|)Hk@M{W*gkbOo^B z`MrC0EQfA#2e8=dbzh?OtU?Cr=Uiij9RYBwvg_@75BKjk7m-}U6UTpq$}K0dot-S?rm`R zXNK?kOx$_;b(wUXC;#G1>h;{FQZ=vjmhAU)syx~}oX41U|CKqoSzOGCfHqh_?+2y-BlkRZ+5gsqPr~DPzJrQ?0Jp=Xriws|9CT;fY zO?0(q(iNH1f^ zJ1c|kQPui+!#C>2)5`tGO%J$oKXlVmuBorM=^d9Je<$ZN7o@S${|;>;+T{DlLz|6j z0dH^x|L&nDT>d9L=wLBnXmk5M^x#oWea%Bpx`R)9=skDvaSwH5OntyZw`KTm^U!@6 z&vSZr8gvzouQGh^2B_OWiJmfiLjii(=!N!|WfWW#pj$Ig$FA_?KOdlbJi$8x^t^fe zsV8`2fc}yh0Po9;0-xs6U;TmW1N4YLaA|;E^ylO3h(GZA0Nt3QjvvSg zoEM;{bM8a_EKR&c`KQoIbc@h=8ll#&@uA{=|16a24a4_|K_8%*Xx}`#8~AR+`<_7$ z8rC(t=-A4Oo#`GhCOwzwKHW9xnN0U}=u|S@ue&Do zXS&aIPkAEK{fv9kW0~%2GrTutxqCAFmu0!1%JBU<%l$z{U?9_dhG+UCneID0ySgIqtQ$F^s1IcAjYjy99X z`_P~>jEQJXzc>7^8FZcD2f57%v!9>Jh{^(WbTlTPqn93K9A4;ecexh?Mh*9}Ngo*Q z-*E!R33|g_<9D8Y8a@xp>YMINfc$>Ec`vEg#Fr&c=p3%mWC) zhgy4{>ecaF@<`RzYYpF^fqHK--+6}TR)a1y)I0?~6OK3v)$ts|oE9POR}1RHCdcS# zOh^&mjZi)J_M!>T_nvFea_<=i{m9!)wQAmi^Vvr%y3nB0=5X035hnWkXP*PteKDJ; z`@T8>zx>EOn1kQ8O{e~CEj~X%aoYH5%Ntd|YrIUW?c7JEm$1e9tGhT7I?>6?h z+2wxGcnM{=-R;A4xtG+dpHA4e%b>W zbg{AfJsEVXQS?Lxx|_Z3%7ET$pU$A$-2Uziy3dVji9BA~W*D0eoV3~N{=ua8v)m2S zFUfLu83i|Hx<`!QaF+W9S3ysf`w>_0gDm&IT+_O<+~>Q4?`F9lb{E{3<^D}Za45@t zdqx4O?bjK>x3b(fc_zP*>Ao~GuszFtUFPSw#~;1EzkBIMZ{Q&>-KFZ zx>onPF2kjpjJg9SotNcaH0jrw?o{4u9`|Nr&nGdolwrX3`Ux(C?MZz^}86 ze`cbBnzbAa;kC4W)2qDi8`PNn3MNtheuJ(wvY#;MdZW&IUOzQr`};5Vy5|Qj^12%* zpXqg9ZUjHca^GjHpzwTe8K8TfaW z`=d+^9;lP8xO{dz^^@YncH`^ zhhBG|Z6NZ`408#G>vAYbl=ST|2mPiwnSIXb+&AtxH+A+?>xG@ow{3G=+nhL;)Esj6 zThx5;1oIiAUGFgO9X0kS%YH4BK5+Zqz`P*C`*J2`A(LLsqz^N;q{oEAbbsT$*F*m> zynP-lLW&;rP^)`ds|QPtX}|E$&F)EOK|XijTo3&wBY?A8GSEGldM}81@Agoe;p>I8 zhVM@v>N5P7d+1~Lp4ce7G$Vjip2(PfgNKGPe82V3Cu&{*z0Yx#2j9)16Z401XshA7 zDVJ_Ba&OC}Cyn4+IhdLUx98AT#-5+&U`CbybPhd_@jC~LqTrJ`^dHxrpXJb{?)>|6 z=vjC0-W(co2k*(Df4lemB!@1}$iF3rp3Vr~ltXW21pl0aTD0d!IdqXH|H>TtyC?XE z9NO*)Y{{WBGQAh&&~Gz?r{~ZgGXr1xsXH@&yC3tg;8%WnJ2NoiSJT+v<_0t``zy*GK*w=|ktEJ_e#_tX9SGjblk$ZXollkBc zx%7w;{8KJ{Vg#?v#SA`h4X$JL8>Px+FVzPA)y09r!SZx+er*$)Wcq1fI&F>wLaH=h9z%x!Z8o z7wpG_@a=}Dda*xvR}Nk85B?Q$`S-@7dCi}HT@HQjzt^mIc>WI>gw^;;-v>E#%uJ#U z)4#-1!K@rk#y)4~(v7a*8##2ZYdZ3Kw%h-9j+&(1hnnFI^ybi+8FODl{m2Mz&7pHW zGw;r!ZJz1B$Mg0C&%^Wf%)C8^{*XES+#Kr94E`mD-pHK!Kn|UsHT`O2Jxe{^KY4>+ z`{{0P@I62M-F$xAz0)7|(-qmlhx~MFcHnPV0%lL&hGk!N@Mb@~J0Wz_X6@S$WO#pur?R7&9oF5repLEliZqMCn7vOeW ziR-3X(sg029=zJ1$Yi|oZK<`=oNcZXd>6Q=9J`O}eHcj+I5^MnVG!S9;P9`8?_3w= zbQ{gI{De)f;_NUTYOMiQQ3X+jAMH4jf31g3&EM*wb|Z)`^GYM|Wd{0);G1gaB7mX$ z3RmFy49tCkBN_CnJMeY}ou3iFl~-n8Mv*Tk33 zGD3R?E^!&flYi|ps`LJB81dk{hH<75_=jQq&bSQeSxKt$@4Ym8&_i##eXo1ykqqw( z9(pq)@REnF@npW@p&LBdWkK1H=8OXZ*SU;CCSU9_>I%+w8LdX}O9PE8@Qz_zVM}!M z(kX_2H~)8y{j(PtMcBpRdtJKFm@|7)x7%1e^>VlIlS#jI8^19o{l{foZtU~E%ec=7 zzUVTZH3E;gjP3Z3FGL=52*q9Jy9Q%&y4-mvFClpG9M9HsJMZD16fHqhz%|~vo?4o( zj~%$5uqi&(S4w+ZW1Eccj^{)Ov(UwVZFqj`qF=c@=eXz`H7&(G^3l5x!Yph8^ckMV z4SHNHX7ss#;M_k9560k2T%OBabh!%^W*p}*>p=DPT;rlnm**-MU1hsYE$#khc+Pa8 zKlhyOqSMEDPA$EjH&iY0bs4j8bf(LLYJQH(gDQTWF6Z=P z0vMvI%ZNISSvY#!@H}N;&BkS&zBYg@pmkW{BHvfI=u(%bQ{^5indSY)^WO{H=Azo4 zs-=^s%SC^5d9HTR)nnJM_Fw3tO6;>dVtCqAsXf0`dobzrzv=uMKhpaFHhrEkJlJtM z&*edS7pAYzFUP5cH&st)chhfNzH{6VaO~Xv&gZ5R z)*Hv=-Q=P_8wcIuqW28npI!7X1B*FJ6YD$_zuY+JN*BFo`0#YzvYlT`v^LN2yq_@F zo9!v4;>k$w(nE}5Yq5Wci_XI4f{U&({5ZbD@NaQpfI!FexiJNY=eTl#FLCXeZeN$q zKt;x|G1GshVH9KM>-$r1(6k3TsQj8fXe6`zzcP%4@cH2s93*!1!JI3*usFTPspeqD z0i|Pc^a~kzla0w37~{pp{+O^3!UR<8yVPduQ^wTOUD(i=2ynJ56MfEkE=-Bd zhhphh(C2yC^>GgUCHsKk9J)Ve1_rTCd!TO;#}nx+Xmi#SZ~MOVyD7g3aQYK5 z%n?H7e?0W8u?_QlbziJ2SI`3x`vI@-#Q;6&ts=THd-6X5v}J<#{s2Z{@5=%DcmlRq z=|aE%$pF3N_udeyU*Wg;5+MBhvK^v=YGaA9}Q`(Qo| z1^rLu)2BhTn|n_FjA!zV8}iZh;=J`S_rJ?$)Tf_0*4;nxVyE{^1C8D+=Y*8^tV}xX z5|55goWJ)k-RKWywqdY#oo^)tJ^TZPcQA_vjgCz7y6p8{^t-W>%^RunyFYJWl>fwd z7ndOJ+wB(P4TGLAJ1fMetj#{tO(%Vcv(LF^obIO2U8vXinB!K4$7f_uAPRbRPv=#Q zXa7g|M8iATyWH3viz=}&Hg?TKBb%_iIl*(ip`rO)GCX7NRW6-|#UtiI2%b+2 z;|8^zo6akADD)g}6nlSY9Ad7UwQk67hG)02`~SI!j~)a_c) znSlx2-oMMhb~E0pJmB`=@L{*wMsnxl@Jn|AJg&*`Y|AjN&#?6)W&!ZOx^*=tL=(yS zSQFKT8tw>FiiZ(4sC)i>3~=!D~r z3nBdwA+balR~)#AHrCXI6ICf{Zc5g#Z$fIxI%H@p+7N46A5#CLP$XK@klGZF7KWQs zv01b}np)Wq3#X2auCGs~q6tc@i&Lb&ws!8x$yigUDVD;`nwuiDEEeCyS+9vTrJ_x# zP-A_vF`TNY3l-KRYUY>BLayN&t*u8EXl620n=W`F+7JyVqoKy;RI~-B4xJe}G&D0w zW}d35YE>4BOG-)PE>zzbUSHo7PHduv`gP4s8|$0Q>q2vI@dR4_y{Z-ERTV3$YMYyC zaEnkpR*#$|LeZw0SOk)p`AxsSP8#(WpwGeS9 zIWL^q&^#*?Yfgob4BE*0=!6N>(%4vBLd#aINH>=Hr1{K>LwGFnZACO&4huilR_N$N zJt|1Z%Jf)uMNLe_Dp2SotqVu0!ihw9Q&m%RV^u@6X?+SMYfjB;XxPv=C!UC%jCMB< zkE5ogCA_YFUNTWLFP^C1fErMx8j5Okb8F)9v>N-Rj}AXPeRx{>Xz^m&6i+psLaI%c zqERMOkwXt{YHnzVr&JrQI^L|tRmVn?&5hB*S)rP6)BY(u-Bfd;X_xxyYEhM}-HE>G znz77GZk^d`Ldj@2f%b`(ydj*Z53fU)V<})Y5!LU6Q{lOkC|;-@#=*1(4L+=@T604< zVfImwavnOlD0fs%;Z!}UPPC;a8c(4c3~j7aJy{$*Rg-E&>V|M2T!1c3^aJ6VA2);Q zet_%OqOrzu;DOK!cc`hV2`5vuE*5K0ebn)*S1eVnCQ*#p=?0pM44u*x+lbB-&e4#S zkm{4;;hIyz>!aL7*EA;*=&3kbn}{{4jBz|%gR-cmZg!B7STh8oP))2c-hgguS54Ha z=T*@bbc7MJy5ak~!B+G2KC-t82t_Mn$a)t45nZU%}6*VUw;>cmy@7lQy3X`mS&?8QNH% zs#8rd+!TtfQ}zD{YKk?@*-)QIHHRBQsk-K-Q`C4xtD4ZL>m#9XO-(eJoRO~N`|U@O zO-7<48?QxN3cKI1#DRgDb|~nsD>_x)gD@ z6~YrjR_v1n6ssz{F4F`ezHRVCFSt^5bE=y~&$wP4VMZ0kbcB|tr*2KC%c>bDuShf+$I0{qJo*&k z_NrVW&1MpqC5`o@7#Y>0Qxl_^;j{usN!2$L9Xd9A)6f-(HezsXh|W7cRo_sb+BCP0 zqG-d-cpfXpTFMfuleQ|S*>|gOx7CNhGg_G zV;yb`Q{APp7)C*J0)ZzMB1|8Xy3X+k@UwJj7h{qnX0PcvlQk2nilZZqmeAO=X(wI5 zST1WCVrY*M^U3IHY|gw-!dw>>HX2!~x?V`mbI){E=BAJ4q>rp76^TWyc?yP~M9S<= zL;G`C_9s1%*t(;!yy__)H>3aV_Dam!V@~qmYt3)b2bQ*)vri6sZ7#<)GkEwlMI#v)KVM1^4t7@Hbn&Cmgz zOcLX6bXHoW!xt@9qjowUO|ei*=|NQoEeM%2{d6aiB&?*&vC*t{;RcLa;SlD7SccGv zJ6Qppw6{YeLe~_9Mq`bMQgw-FI5J0dUJapiF{~PZz7_3Mca3HzIyOHtyGv7WHQ(ij zdVuN~t%soIb;x&I&y;l=5-X+kX7|0bMpc95R4QqE47Cl-$-134E5*PnGHzUIJ-6fPc2`YuY$EaBjdH9_CL%3rq%fz;m^AY|RL^>KWl+61)ilk6HZ>`0 z!aUDvImvm==HhZ*dW=`=fQA(P;2ZqShp-H_T>I}jb=|*X1yoa4ftk6!2-DR>*c_Hm zKqs}aNey6Qvjt1~U9XJN!^^5vxT(Imak(CDFw7+D@Q_Y9E~e%J>17Q>#ng1hE@yyZ zF8vMbn_WG^Z?pPD7t=zCL)618QU9B-{%1z9#uytu)VQS^=U69sESfOpWGi?Lgc=!% zw#>Df>&eNv=A4h3o9iQ_`qw1>-<-r0s`UB)?c=y26t&c-?oi(qS)DuLN&(!`4?(rh+tb3`u= zVM7aD3Hn~FA=H+RIq6J>vHqyXARB9LK;~1ic&HAgnvDr{3VGg$zCC2k2$UC=Q)WTZ ze)gJYpWN=aD6kd+hhmC}nK~kBw<;A{5L&k>g^?Zufm$Y;cZ@Y*j9L$=W}X_EkX|3{ zum)(1rozf!?G=t~2ac@>V)i`?S=DrxZ^Pku9JkcmtXZ=|b*2qP6A3lBpEB`ad@VEPN#-PU9-Po)WDi6-TlzvYAjt$82+O>j_sYxv2<~>-Z+Dc4Li6jIO0uDW__ zC)XTr%!U_jz#w)~ioz*XXRv6o?>g~TZUi;Re1nDeSIt!lfbU2OM`t-m(bsrCAfNub+6=Mlk3+=MoZ@tJ1_N2H(L;h0aQ8}TCDPPp?5 znXhto+)izT4rI^(rrZ@y;Wi@M7-ub*Dd;SMzmIBC2M6DV~d9^opsyBkZNwN@cx_`tSV~ zbf|dggU#qzQ*HhFv71AZ|K4}zGOInmbnZ?Yd&z>erg}9K!3#$;=lZ0%94tNv%fVf> zH8q^-#m27Rp=C|4f+}SpJ`ppq) z&jQuIl&W{#7cIa)M>@!$UoAA~?+6PKu0{NX6$ZV6@G!!II=IUXQsDrEY=k`!GIbcW zK0jw`y+^Q{_uGfc-gXhk2FYyqfzcb*bS=;Iv2-pAr!AMXfr}P z!f^;&5V{chPBdu2568lDI{y8W40;*IW1rz8tYg04_sh(9*}0Z&yWg@WkC?V~^V}us zeE*~x({6tLBGX16e_Yv6Ri|qy?9hhtgO$DF{OOIbWp8dNx&pR+&j;>&4tBwQpPk}g zMy-PfZ@PcUGU^=o#rGC$SVnzo);He!r)9M0yz1?huPrM(=hl`z{yb%Q#fPsyw|)9| zm+z=o`YR!XZ_1dTh_?90wB{!d{{}{VI@Q0)!KZAg^m>z4n>;Js*1HlEX}} z-FKWz9U%Ak+7nUURnH75+nHEXpq^UUsd=CL0JinPtv~yXb(8z>m68t;9!Gc=;rDJA zY`g=A4eWKkmg0m*E}5m5dK9gT~t**7Csblb?%-OW9L=;M%>eWjXK^3*U7Y`kBnb@ zq?OKVu+0dMB8?TAMPZNE$M*Yw1g7r)2U|Yx0#o;IL^uyYomZh`HNGY*!iJ;%n@JxP zzXxII8hn-b7#DqSt&5h}!lB1n@w32=#c%(7_f!|nf-OZ*)*e=hIG;O8@FNhvxed?v zH!fOs4!%Z<5I);Q3-C4VTzo12L&TqkeF5yWU$|%jY!AYzf55*a&|x*cUd_kfZU)R+xN_M$u)io~K)@hwP1LqFA(nUw=cnm%-A^hP_E-FT_ z=dtl}7j?mxneTd(73>Mz$9IQ|4*2VThrJy5&V2vhuqh7rnFanCJ`dva{Yp2v5e`KN zAxuJ;i|{-`?)TmFF)YDuhusZ!O>s%pk*kkhx@2`#)tV}FvGvwwb$Z5CT)Y-vyTf~} zHJBKw{`MRE7p%cta2$Rm#mlh2bAq{!|8{pMRXI5hz4bWmQe1SD`4(=RnJ-zeGM3ng zFA5x|7yifcRC8SSvR?YEz`NsdxmRE!Ti-HX_u>jH(Y}R$=@Ru#E_^vAS%VF!)Oc@G zbX2r)T{JOH_k-6&H;&V_xX9Wj9H)EfGHi~F)3Lf46LO%>*=NtHRCk8^f)$Z=}pe!SV5e+<6LT3=fqjf}Hh zmM+KKZJfR(s>f5`^hDJ^TK_u?^-Rb0@O4|}>&A17$Bgc^h-!dir1A{>UGeD*<@k8ldYZV1Z|f(R!f`~*Rzu@&KZgbxv(M98|q zO;Zs*$MFHMufi&yhY+4e2!P!K`!>Su2%`vlfvGg^xy4P*2$|d5Gy~yP93Kw*J%l2J z7{ZreHLy>^et_^@96tm*1-1wFPS`rwM%bSt9E)%s!j%YZ2)80c5Uxj9g>WLmB?x5* z8xRggcQlsk>1a4hd%I$;Q0TmumjZ0ylLijVnHUt%a`+*(9dtmn=T&K?;aX;z@!leku zAS{Ew58;}J+_VY5kEz1eM=g6gY#G8u2!}j^dIp<~pnO%R!0~4ABVm7w@Cm}C$K3Q4 z>^6i~alAk5Tkv@t_G`oq91p>U9(U6`*Z}NFuv-yI5x#@)I6^-BkA(032nmGG5k7nv zot=D)5}tbNvT?ne{Mj z)v*fI@T4)VTZCs2k_gJ@XxQ}#HzAZE{2XB+!X*d~Bd9bU`y1-+ zgZPOXghGTh2tPnrh7d(qfS`Q#hMkLW9Ktk&LlGt;tU{|L+}2&%5$3_FUT()ba=dZcj;?A-{h2+tzChVWg4e_3I{MDvaPFbe(LLa2?B+gfOFn+-0$+Y; z+l(Kx#c>DhW3XMYgRniYpThRRdhz9mLD+^me3RoB_|gaBD_}biZ}}A%;+?RSu#do= z2KyRpJM4@$qzk`0e~ljjM!e`O{2UT&E$j&F7TDeKtH5`{9uE5mY$fccur08Ao{js! z9uA8ixTd^wFd?cZDudmQcoS>}euKOlwh;Dn*yXUU-{5zO;MW6t66{m3n_(yZ7QV1Q zfQ`WKr?B`zYPue_6ZTP9{J1p@!w$gaor`?J9t*oWe&wSbwhXoxHUj%E*f!X&VYk5M zw&R|#`@s&tmcxDuTMO&ojp)$xP=4J1WY{vqJ7B9}Ux3{VJL7lA2kdNEI+^Ho*do}k zV0*!L`#r9QErT6_Jp*=k{IQE(*fQ9E!A4-ehHZh(KOgsiErs0%y8(6p_G(zd@BZ8f zI~jI6Y$fh9`2yqv_AS^_@RAFmAMDMrn_-`Wy&iTDwikB7MMxL^hr$lR`a7W6DMTw_ zx8r;Y_He`}UyL#!9)iuouRzto&W7CvTLD{o3Gxej5^N`I3bq&a0@wyzUwJ9fONjpr zb_?Piu!LU|dj@tg>?g2=umxL)R>STMTMfG!b~CJT8J;`rXPx+^7F_?^Ymi^Wx59o3 z+YdWA1ivoi1@?5<2<%(1Bk*7KC;Y|`;u~Q*VJojky>B4e_Xb>x_>W+RVcTIR&%nZK?m5yun)kV0J|Nw1(x>aS}NbiiBp$XzQ!dAn640{^v;#*KI z*lnimu^G)GvNcfFYK$Z<>1jCv}44(U?Z^C!kz|x>)-GkVPAU?&kxpk z7-h!!2<+r0r2i5hKzk=;3PaMzhebhVfV_~<# zUJcs^TlP=<<}YjoEPfW2+F@tIW`2P3;<}4r@dF`r+lSB+{9V}7V7|;2;=hukCz6%>V0NReC-X>5EGN=skgJ7#+Q?Q$1x5BEQ z=EILl(e;Rr!1lwQ<}zpmwiC7u=YQ%pD0Confn5%JJ!~cHbFinuW@X?M zPjLSP=`XN(bC7-r-~EK$3R?+#$_#u*6!tmTUf9gN4H|-70PCHLegL)*wgV^ASH4 zwg{0R=&b#riE-2a?|aXsSOVfzrTEJgi5{6g3f#1A?QdLq67b{O_f*o+eN zgRq6L`G*@cdjs+dyBhI|MW}bM9k8dtZinrJty_%rVb6gbhTRIAHy=Ok2YV8(Z#x3% zAbun4If(bcRv`X1Yy{R{hWY@T54#1n47L~c8QATxt|bP21zQBW4cGU>PF{fib}7yy zz7)0;@uOf@!&buPZA3r449^qxM%V`MVc0n0q2;I#h#v^M6?Qr71F%upLD)F#7WnPA z0{Xy~!F~#RDl9ETzXUrO_HNiv3(*I#t6?8miF|+$!=40NdL-&U>}J?4uwHy;`2pD3 zu&wa_5cYk3nn)>J{R9 zJ5%moA$2F**u(zCy{J>T>pkAJe z{;dh^8}_F$)GOFK;`n|w?6M!D{lQL8q5b>>^%8bD($8;3z7hWbHiCH02DBr@{~y-Q z20V)D>f^J!0aipdDC(+ISBn}HF%;Aws98v0A{#|TjS5H=Fhy%o5>1tlXcEn`Y^4_a zrma?5u}v$j(V|9$HVB5OXhBg^wUXDOPP(Y56rxh{{?475oxAw}`aa!xf6XtJE4&U*uz5Pfz~ZTU&MPES_d7s7(0N@gj&!FXfV$( z?uQPAJ_yZ&Hb5(hzpRpa;NJR&&uHMjbUXQTUjeO#wtR@bpdHW_;eUi2&{}A440`<- zzX8p&kRMvxj@(f5pR_+{P73`%>!8`^;(wr{p&dKGL(NZ+AKD0A0WJ9y`+=51+n{yO ztg*-k4MS@`L%-1aoy3Dyd`>*!e*qr(TcMk|{|1`1kp6WS<%PCDXF-GiqP-CwhA!p4 z1e!ID{Gj#R*F(eHH$pdYZ|$ZXav$77zR)mq8Z-~O0BS;)K}(?x&^E|tIY;tJT4>&BoWT@2obbiqMiGzu zQqC9WtSdB+^UgD&9nhuF#zM*gt>9emb_wUKZ}tRek>ALNn$W4x5@;zj zd?EQjbD#~-(#gbwcEpHRKsucN9SY6iZ0{6kJ#+!I5xPw1#eQRhgmdoKl=5G}Icx6g zt|VR|^cuf04ca=*Z`4BTuSGs+$87WjZJa}T#0%fRc~)ozbThOSx>xw6q*IB!&=|B1 zS_W;r1AR|K51a!ofR-$P56xTXH&zN=#MxkIaIxRWnnZfg(a^?9zcCA1cNg!Xgx3Dt zZ)}1FIh)%7ZCOFRnaKGFdWDv7CU+^cj??pFZXrOUEH_$0!HLw^yFvV8d{sh=cAw<&=t_UKCB@@TcEq3!M@<95FctnJD^RZ z*U^tP9`0L%tc60&Lx=}0fwn6TcFG3-sJt*&{F6cXd`qpv;(>wnpcEgpcT+% zl&9oE>Y)VrpyQzRli8zynlaLYmO$&FImO5gZJ7f8D)PCMwLNG~3Hb}1#=EzntELdo zzMw783TVac*abAF0=+@QKSW>9ygR_ppd8RC&<^MUCoLaV7)^j~ogdV-eT3$6-%#Ig68}K&4W&bUkhCz;Y-j1GzU6` z@LK3r?k#AA;1kpXv;?{ret0Q+7~GdabE?55!E+z}5$SRtybrtQzMc=tg}+PqPg$pi z2J2|Y(AJ*?j0U;?Ir@XuD=p!Lw;_2?No z1lkJCg?2!vK!fb>mO?9_OQDU>2B^6L`+$}}cR)*_#w_#)jX)cr`B3xM0pliU{mOvx zpzxs$a{nmx0j>KDdWN<_2h67YzeOL=I_MN=2Xq!RSdShh9J&;m2VEun-=jCVhg#6q z$0`3DaL;4c(9$)?4{cpbzR=pHfbkx*;sxyV2JTg>Mfm%=tI+*&B-(Z^x&kniTSeAB?p z*$+nYsRUC2CZeY^zAA7zsf6LJaKZ=b;ap4HHH6J2Zbtcud%aVJ_XscRC0y!*;j*!a z@NY@llLuyx9~e~i%kbBzhQC$#ZrLuZ>bJCSQt8P5b22C#&^Oywvy#Om&Qz2&LgGwv z)P*eH1sZ`>O89kzkC$*aO~U6B9wjL$>ryb4U?vG>v6BXuQr3FH9wY2f33KC5B(f9U zLind;YB|;mC;e$aByEfE&j~+Mk59PRNEYrOt6VK{OQ;dyFAOgP?_^=P`6>IGt}+#w z#(~KO6VWlGDRn2jX-;@l55Jv2DKI?2RDu~n8t3a6#}-95g24?LCYTJ_l`JuOu`;9m;=Ke4Tq#5w7<-fe3G;kks57dbRJb=$JQTm+^k+seXm z{gAMpY)kYqltAL;J0NFf+jHxBkIYfH|8q)8*?@w|t4r zSOUhaTd6<3@nbB4*IWJVCHywRyVhTXxZ%F6PZE|PR~Z%W*zQm;cZj6NFT&qYcwu-Mepbn0J3z5_6O4R*M)|+1 z2WCg{rBe2p@U!o9Y>RuTi!yk!t~H5k-Ook1T}Iew!uD6@)nKN9sh0Szy}M=pp;zYj zz%_!C@~3fK$}D!0g_2f->&;Gv626M?p6n!_u(Accw*yuGV3vUyCvxx;UIn~Hcqb^1 zt>>li)*m3P1~41I==HM!-gEGJtDhY5u)s8dc}nu@s;!Y-W1x)a<}OB_4pUgXQ_&!=VJ{jVOkSS#<#=_FLY zFdBSpDeK8Pp0c_9)l|ag5Z+taL_fT}+b9Fm(|AGTtRwtx!l^d(i}3#{c(=hjM>t*T z@FqkQ%w{l4!1U&~B<)>bR)RT_Yxza^3*!8Lv!8gP&-`)gwG|stB(+U&mwFdVVIu!39ka)9C+e8^sl)rWFx>i8<+8{8 z60ZTwi2Iy&#l6V00p3J-6Sy|+^u{3(ZrcdEnXvuoD(f)%F)$2EynJ0<&80$MtNI7G z9o&I*H5FVNxZZSCMtCdX$4h=!WXj8TGmVFq(N{@Wh7M*ZK|}|u!8`{>_nj^9UOYfN zzOiYvfN|>~B6$pCp9$Uwxz5OMj>=EUIuwk=+h4h}!NtIB(9##)On4%zThGEPgSY(0 z?5}ezKWPuO4o{WIm4o(Bf)o;7PxvuEQQKpDG|kbO3^bbU{-lNQafJIML4Fbb-h+47 zBZhIkFx)ilcA^YQFh+>a<~`A+9ZEBG`U8=7D44;|*m6n~;pM>_0*@h-`iYD&c=^vd z{hXU0Wsv43y1R++X@uV;G2HONs(}AiFTV&u%fUSbZlaD;axVgC+kPXMx4~@EF}lxw z%1cvZIy`FRFrSsEkuJ_St7sgraW z;YawpiLiXa^0`ijQGW4xl1mQkWniX(VL0w#+_oqaTc=(k1g`;mMGNC49gDuDj};if zMjQXl0i)(2+zW3P|ILGki&Q_+PjC>Q|Acp(aNN2ft*N9XadHU1j&RimxR{jp{uJyS;-$-j4*b_Dh^mhmnB3RBabN`KOnBdc z$Ff^yJTWX-QkH5kFKp$UXBUjLb_rie_-k)E`gL_l-j@>|A$)@qo>A5=b2ST$MH**z z$wQy3Nm|*1SxkIy4Ed ze#bDz>fufsk@%&Ao9}jCpK|-RTEZt2F4%NgoH`a>J>ioG@2X4Jf42}m@$bEt0W}yq zz$^fhC3&!(kKJ-t1qY*uG9IcdQ%;a@*{O%HiN0tG5#Nsi`@Z?hQ9_(!Iy@yQO8WG>bull zrIZ#XjrbzyM5uoX7sJ8IS?f25ccUK9_03YJ6F>`?aMAbBqZuac+JD;--Ne8h1?~(z zUFuM*QNnK`d??`;N%#z>zlae?e>WJ`Qo=7K{A>xo)UF@NeLDo1YC{^8yoyPl@r!i6|d%^7J!x&vut^nDvKBZTJ?e%&EH z;{vYJ>8iFM3;XuCY$}*VU{sp|7U8cHUIV-gU8{I9*|0H7!Mp(G+u$?P*5e!fhL2gAeuXfBs9s$APJq_^xhUf2ge|4hL5UPV6p?LpS;w zs_1Yk|1Ae6vgtT?-=K`}rG%d-;o81Igxh6=O&#FtbzNQRO`ffo2PR|w3-8VY#M=R8 z0T_J@ArpgJ;q7k>F%(P%n4gfhlqWhcTot&-@4wG>(aLw5U@S1oex3E-!N6z2-`9m7 zfnNcC^rCPn5Vp`wuZv7lj#-4?%9(4uzU29nh44-$JZ&SYJ;;d0ZVwNF zSu&_6jEpvH+n487mV)WY_T?FtM#3g{%fs705TV+@9LVc$ocG{`IUD^QuG6yNucU7kAGVk9(+Iys z4|n~Zz5Hd5|4yXNz#Yi%#lX!2*IOI9iSSawRk<$l)(b@bTEgZK=K3b#JqT|aJnAT536`J4zX@Iiyo4}Z`MmgPs}*_cz`h5T zX5wM>vFtbGW_S0hd@bNN{Sm*X;S*xan7Z4-GeNvNL{5Hp);;-@ENb` zI9-lEd2&R+OaVXo38#O)#i<``PS#4+GtL)G8JJ2i8Djy*?nH^I{9qmgbDUltE#E+v zS01Ua7Vt}-&@T})6>;#$N#05uK1PF;@qFxSN*j=TE5NJ))0+%+PPkiEsn1pLr2MDo^`z~~N_HaaR&Y(v zdwLQZw04k|f&I8Q>`&bE)pCMr7xGMF={leB zq{O+{smFBtkvaYPO|Sj6SwfY6kAV-q)J4b25BPrucnZ?X0Xn6Z3b32D^8Ad7ZMW~G z@N(Yt87~UYts}iWPY~Owrvw6q)@}p+jv#`X`^$h)T|DYs$g-_4T>1kS zAV#YBMtLr?jOTN{>7`x*JH!vu77!r@w&P15&q4Mg&l!F<7k5EKnw;u0#UCyuejd-f zJjHdoJbL+ml_}dA@GamU(edv1Me5TjhomjffyQ`_W{F-7T~{N${zUL$2A!*T&L*oD zy#Es~eX(B?{L-)Sc}|;AeTXJ|;1fw-iYlxAw!JJMPAP{FpXo{d-+Jj&%|<=gy$6Zi z3U(RK03A%a#_9Bx`wk8}9Bku3V5N=AbFVR;J1P_X@sl##B=HUZLCIAo@qN6rUn0A0 zA>H=;54qZrbmbY^&0r6vygR|p@*f;_2!_yckXRG!(!hb!727J~zetwf;BhgpY`QJJ z>Di*_awYhkef)+rEBOhp5#A1XS&C!(P{Z6;Jga z^8E4+;#}Wz`Ob7(x13TCwiIliWCV|FQ$Dc{JbD=*>r^YstnBVX|o*!?!2;YI@S`v?<_}*6IJi2P1rI z1bDg*(>CB=;es(!qXO)Mqy5Hu9jp0EeM}v*lK{*N;8dElq<{NusOUkZNje}I?g(jVk`%D?II==ymvQ=S&^u`vf%Ua_|h zkq7+$%AnhAZ-`vT^84OJeU?=jp^h$ z{0(5gr?(e9kIUVZZJUmKhxy@jp4ZgV_H6nuZt7BAd4|6p?0gxtyE@g%>(6)5w#~^i z{vFpLx2{VKA4s^`v}IWZzG9Bw__Z#JTh9Bvv_&VaVD}y*Hft2~SDr=P&{MjrGt
    @)Ae-sOE+baSKd!B{Cfv3o9KBp*aon_>&HzGdJfz#)@u*`1TXJ6 z$i3y@+J@le-3M*pH%jN~rmx$`x3ejs!QP_~`tiZ|%kv@C%wl5&PH zL=k!9Jq!zY-gu~PyKWwzdwGaHXMwG}n`d(MJajwX2R4^Nh1zRyB_bl)Ffo zIEY*#%Lec}YbY<*>H2cpMO(VKO75LtH{8QFyY#eOx$kvTx5raMSfDa%{l@XS9k|#N zq-`qAyzJ&6vP>aP!F_yNOHbd^=L2pIf?WW%b=kqSrFyW_eth8eA?a=f+xD}A!^&ae zSv((ppf)P?G90W0mdCL@J?rh_mtMV#9MizpKIAuk#C5lNk;6UC{A?(}wP1IEy+2cL zJnt5`%hj3S8bscQ`G%A(!z6hwE^wNgyWm>EE%+7R?COsDqmGjU$b(n%4JzWKWwht) z>3Ws2=YWgx{QDjqr`fQ-i=CB#fA9&vak5?>*LDtdOJuhtd3VMNI>}$_X}k8@#jiJj z9m;d|Om{qaopqeRHZNV#!FynXPw}lfJzZJ(XXD-OxuCzYNjiJJ)g)0R|f7dNt>UPwE*5c zcxUQ$?X~%AsTCPZNj~$yF6Vs+uSnz!UHhMPbCNXcz>QnWdlK||_R>tbH7(c;U?Uj% zBYK*yUbJ-(!R`dR66~g)u&!^ zIzJ`V=qX*|EFezf%e?EOr#PG45_)k&rUv3H-_)fYx@G;q)u1i^dtggnrC-+T#g%EL zo4$<=vVb+oM#$FdA&-7Tz_1JYDMW9ajRWYkBvJ`TG8G;#;c0W%Evp zQF>ph`_;W({-T4`;3ID_cGqR~Y~x86Ei$x$-QMaqF4T2k`%5)vm0HOL7d(&hGw?oy zYx#*>L*NDB{ahHCwt9zCPPZFYXOLsyE5QF+&r2(ZI({Mz!7q!ss#z;LlXuzde3y87 z`MvV|*c}Cn&B*(1%C`A4*L>aj|CN)hXEJIHU^{WL+xR}Bl!Kq>r32o8?SA8CVPuv~ zTD)}ZN(T`(ji-WpxI50>7fS0ubT$S22JpY`j=#IB&IDfxzTiXpz3zB@ja11a_0#}< zHF&oylEwyj4e&TB;gv<#``2l8D}C<*zw9H{C3L*oE-Jis5hl3^ox)(tDUW|qdc#%h za2#Rvgk`LGdiC~^o07;~3U=u~8B1|3zX*Q|;MKvqTo`U0h|jf;$thV^fY}P>jGkmY z!p*_1(@kJod6&z2Jw3Z`dcxI!=xZ0a${k&By1umi5Gm)-eB|YwFl}6?<#cWC6*pyj z%s2(?R}p!!26>x zTz#hN!&@_z_#I$}@ARklBZW60N3+*8OW+dMYk8F| zbu^DStM~Ygi9T++ls_=svuBa#L9neIj5T^&fBSCcJaiNI#(lg)OP5Ep>%iHrOt!u3 z1z+pu9U0`6mc_G|hh6=O+&L4_Pau%#*W7yRGDe*Wb{W_M*`cIc33f0qAUM$cL$IsB z)`2}PpvjvakI2@V-KWUBwiWEse!Mqc*R!Szaq?guLu1#xB^MKrC>LKeMZN+>2}%cSq^q){{v%(l2#MgU0{d#H5ru627>xH zzyh~-K*0Ext`8g6*VTZemt9DDhw*+DT~6`I+P+g66T64*X;IoL|xT{Tk2rtQ)@`QdJ4NPBJ}&e9_SMnvT1C%pII)xrCg z;@G^M@K$O#DRb6D`cHU;dVY3UM!1qm8HR&v9n8Dsb(|;HC>JaGDFM6pNZwH|dAsdg zrRncBb`lwC!QXTg-`eP2k2kvYC^9sF+s?~5?$OhA?MM#k+D$<92k(J3k2$zD8=QoF zf;~{16L!YkM7#?5PtE+qZaUkS>3^9{rEGWstlgCgaWHJ-brnhgS(N zW3S7$mmA$u32quVdAHiLdOo(EBo8G}E@9P@UWD&@=(2nAyyM8@n!74PBXOqjzBY#T zo_(d`1Ritc5L?_1Hk*aIe|MMTpN<>_ZkZ!s1{X0N=N(?(*YWs(I~|bdB@fKFia>hb zFb7@?ULL$B^mwjqx{(Q!_!VF`Y4L@(6kcl%?|PE>{Ddd(8Qcm_#-j2Qy{?A0c^Ka` z5{7G6>9YGTLrit9<~?wwr_ru;oFk8jNT-y1Z!0tY-npHU#fUo79c;obXCy&7CZtdCWt^~K@ ztblR6j?>qk+SAFZG1*q|%g*K^rvEmsYTMb681jwfyE8iWYDd@3dXv~=0k~xcz@aAN zCUAA&M91jMFA$0Z+;^xS0RO1&pMQanFj$tQWq>J`P+dxI+cUPk2+{&4M>j zaqRNUf;SW1$->j*l4VF~Yt@9$BYcn^F3*K=FLk!k2~YM`|949L+ihht*sbRUjLUVu zsMT-aP`5X=<&_CgRzBZ%k-YhdJcHpG@GN2YAM+0IaVz1Y3E$jHxY*xR!dLJvN~YNv z<(05`gl*^{O!U5#FpID|^mv|MQxD3Bj#q=rAI~>)1jkQ!E%27YJ4A78-h1$B;fWsQ zC$jH^R}Jq7VYqeS%(q2`?2GO2jk>O5_Bp}8)3%-^zdUfm3mhN8{c!%|ou?+eIx%K9 zZQcJJ;rTzoF96?I#5*v>fO^7*`ctp=fJS6r1-@l!z$g~k0@*&jVhUi%yHz_b=lf>5 z?AU*qlZteplA0V3m9f7(>L~a6Ia{%}!Bc1}S28EjZO9!<^!I#?=qn%W%B%R6T9-Tn zQ$3uNwG`Y<*U-*;D{F1gk;c|#9r)OsfPp%D*3I$mDBEr$Et3BC`2LVChi>=kytIwo z1$O3Kz6D3pX}xQ6BYz4}2okv?mtgNV^1Y(o(*3PhPSM>I@Vjp6GDgtZv{eIy)HOn~eIB@dLM#*35n{)L=Xcb`E+k(~BcAHS!ny zw*8D`*7I5%C6hRI+r~xT+xdG9>{HOJUuam}|Jra>*1^azl|mmQ_&YVc_)iBXGRPQX zA~=@5jI8T5oRVQy8XO_K6zo-C86NRo>8@B?&r89~pkq8!Fr&I+GRxEmb|^xqG995| zdnpsIhc|u?UX|&~FZDN{D}Cg0~!GQ6wddeG}Qu(e=c7kQu8u<7*!^;SovG11pe z;4h*=RN4<~_#V=(1A8f0mG)u{+e_NAO|lF8xgyK;8eXM+ZMrVR9#~#7a?jvf0fL>R zVZF3(a3ctwVZL!9La!J6w|m4VTs&25;7*Nqz$;w`G`yy3)mFg`JB#rPW7{kpr~CJQ z?v4=s18Fx9=c94Fe}*z-b>?~XsI@Qut4O03Vv5p@M)WW5Y8;Y}Pv<)84K1$PyYS!T zmO;uK&f;4#<9Q#9V4v5po{rLMS%NpgpHxU+BKU`U#4pp+uK+)hIpcc4SM`X`&}lt* z!*q0dy@uCxDspTF_awN#NxG9YoG16MTsfo;WRQ3tjq)DaN7k7dUejmb)U+DaxO_Bm zPG-zI;4tEh(&Fg#_MJoBY?RM0CC!P#>ixy(uoKL>*H=ot623@o4_Z*E1&Tv z4R70b+Ww>r9bj)P<@q>~N4Hm9p0_h~HM}41(Ylf6sioY1(bCt;J=K#*@|j7Ti@wkM zTBJ@M={ZhdO=dkVC(d!VVCy2AUME^Uft8uEwGc;M40L3WIC|UG%H!Yb$(93rFL9n@ z)8HpuXZTE8UumZ)b&*55CobZhM^g3)noslW_Zc_!(cnwK|9&y=5fc2U9`Uz>S38$( zMk3QP;w`Ik`iPJguZKQj4cK3TRej)Rnr>bDSnNt<+u#oH->qhhf{*Cc22b;BQ0gzj z;D2E)?|SZ94y`WyuXy>0uBH;_=W(7L=Q`_Dtqk70Lmul={i5Kj!LM6l7;(v?pN98z z`xh6V1AaC5W0yL9JTrY(Au|1V8(5iiekii&`t;KNgPXRuprtLH3x7w8yh3qj}F8FhnQ(uCg zq~Yy0Q|YEIZD1PMO<>PewxeNtX_G`zeZ_L(4gV>=PkhGFT0D2ocw(l%*Z}_UI=(?B z_;WP8mQUa~&tHgcJBTy;L2O&v!dNX%daWoBbX$VpzXTYoiP z9%8RM!7sx=m?mY8pOk+|cfqP2hS0xPJ;|I=%AohzZat_|NcMz4${YjV{0w6{?69{! z+n?@*Z22pRGx!DNx-;W=ZNi;WD;sYB|5NZQq^^If=~c7wz#VQ)*m-Ox&Id0#{i0rX zUYq{8tEJ(TWAH%yWQ#L4)7z1UPq&Jp;0wSX`;s#@yGE0#%h>EDaAhw$&Pz8v z?v}cG5d0~xIDNqh8or0VK;G4u4_5UBo#%Mt;vV_}DPsrtX7Fkbuua4FB1=w)_4Q4T zEYEBB9%Pvcb`w}7%P%x+53-2o#Cj)qe*xV@&+#_ZnLuKufV=5*QaV&y{-PrwGg|l<`HM*UmY9ir^WH~m$ng-Rkkbd zYW)2czFjFkf!i&-j3~2#K>^(}5mmOjcTP5@#N9o@i$| zU*hO(OONxM=ijB?R}$whJE?#1Lq}*n?m~4&_hc6>b}jE}%>M$NN!d@(u&&SggNwH9 z#5kPCaCh;}CgOG(tH@X)?H5G$;b49L;+>=|3w!o^2@s#SA2s!V&6Je(@&tqlV8%WB+hO7 zs4q!hpBLHbzv-s0+CSKMC*O1=UItcld83Q8eSRz0x52hZy3cEJd;R-&TuTtW1P5cA zKA$}{)90J69`DXfKM#CPz-Md|S@eF$(_{JshNNE#KKBNndcH7Y{NVL-?k{OQrEZSOmY^W|;!`$DqDYH?J${&Zg} zetF1|jNxwgsqZDs=?)ptQXk0Dr`8y{Y=6d3Hy$O=`wOJzX*TT zV77xfQOa?umX9-r5!;e?HST0{{1EXQ=V%zcZM-S-^hvC~v(`hL_lUEKhqL895 z9B0A^!#{I`arp>i!3cv*zY)eQ(8HnrD@PbpMi?_j7$w|1GQ#*F7%CzXpv7(^h=t4A19 zM;N!O|J~E#BaH8kFvzFNKctV1u*d&LQD=YP`;DTbgtjKC>*(ZuX+svh%1bd?xA2Wk zS^t=?#nIbrljp;w9gZf>=#PEs%zW0BS{&II%ugq;){Er04R$M7H4gYj^TXut4xq$--vhS;+-OO2TPE(iPLhJl!ick2AXd2b zJ>x3D4F@*_+zI&5tlw%lO;^`D=>{f=caiD6oLCYnJCkadg$hBDW?_POUyHZK| z@~*~8&Oh$tI_p{u@23BTm%fx+-qo0&#W(gO{R=d_W~+e$HwSxOx#6`iBe@nYLrltJYxt&+X;(JE!HsgOQiZ@xOmHLdDrqJ@Hlz(K?HPIQ<*PHQ; zRxQ3gIjOU%!+*O!etuO)AasAzdX>qQ(JP{tN2gw9R_!P;EQ^@xPnN=?!Lln;C!0Djtbtjx|En%%F_I`1wW2MZsA7 zBl&Q#5sRmalXLQ7@sH)51xB=a;uIsAoU{*7LRA~U$Ktb>naQ)REf5_nth0VbBr{oF zXC|gslD_o?_tE$U6}E6Dum7yx9;$v;Nx02Sl-F8xT}E{i`Gl(1!;V&U`psmYA6zc! zo%Q!|kWj%+GqG@)bv(Ke0eq>c1oa)?*%?cgH=sRhsAL-77K`t;zDwI7vxat=7n5qV zxe!L8u%#$o7!G9@Hbz5(3WK35n;?y5)$A4{RYsn^^8O-ih}fxFr2hFtr#!3**ySO# zkA$8_XgyOURiel2Or*fE_-EF3Cab9-0RHHzV~G~MnNSt0{8~QUoLtyw-Nc1gWn&9B zms5$YX4Qt0YogPl)1xz@*G^xb>YF+ti8GN=n180TtqS!>(tXdxiX?=(LSbV3l z&fWcd<$dNpn3-K-L;AQrV&_g+u-4!zrrT zn3t-FB^-f1wjMnLn2D+U96P2ls>U*HpGf<$DEViEOM0oCXfv;(vn{w_sB6LnLo;j` zWTSQb^sd%)Q7qnuR!cQ&vQ4Ejb##grvpzMzxwm91Or_E~t!paEhEC)tw6)-3{N&U9 z;_J4w*Za)GmDK5$Sg7Eog3!}_qr02%ZL!1^!BpSE_zTf3|12J}rF?*5A7UnM%TDzj z*|gs5Y?ivM_mv+z@^y2}7Cc?q@dZl?j`kItn{`zA5oYHLDa%YO&bA`tr99#E^`1R` z6HDA4jE%iLd;UN%Z22BiQB`v|b*S7uCwKAYSbV;ikz+*Sg}cP6#TJN_YsdP%+;xd1 zX8Vmah=CGEzc{9wPnS1ud#_XJbinNPYRBOPtc3Zim0!sw^hs*sabzX7e2f?CYug2n5 zI_CId--lRZEdD9^TP5NJ5|e^Or}vxNa+QF-D)OOh5+(edSp0Ll{kndu{Zy5@7_&r| ztw5FSTU}ss9w6;+R867yY?8C2J2K-F?8=l{m9Fq-*>tdG)djpSPGTvITE8X@Gcnd$ zMU5!e9x$t}&&C%?t!bKX{K?Rw`}vn;j%l8Ml9{|S+gdD9;{nOXyz%8c)3?ryPp0{* zm||5I3E)|YWk-DN_A`~1QA6Ifq6S*;V8a~qg&CUkh54L<4K4DUV>X+i@l;NW%HLwN zW19}WsNp#{>A3UE_$#=vqWB)&#kHA9I;eQiOcv8oA7jQBHqm{zNXOn>*lHAGZ{I>b zaY~CxQXC9@E?wGs(wp9xdY{(Z)I2HdvnCSkr98HX*f2b?_eD&El| zv46#Ss*}*uz$KwYPC~X#R9-GJ^odHes-|qIW8EC)2CudL@U@$d^#NlGGI{wqIgR?g1M5%;_Iaf$Gl%Q5ZBTo;xJz`QlF$f zk=^#ir`#smN&A#i?xgq_0z%UAzhG49Rad;QgNoc^F$$JS9AJ;`#uj&!_oY19)7M)c z7dbT(#VbfIjxmXa97#T6Arf0z2-cDMh|Zf9tJI-&x9)h=+RYF^_4mp7VN1pXW@18a zQG8;q+v(f2?c^pyT-Cjg*(PP*NZC8BL+N%?pA^Ms1hrhu#5wIR5THt%JntyRNLGLz zPwqwTFD)E6nz1Eg51tm)Aabl5H&3*+ksrdCKtr*Hec7`<{}?dfHQ3|GB3; zf#^MYN?uUnnj4KwdcysB${!rsgQu(@4e^wBGj`dpr+n=9>et`%l!X#C?J2|EJ>^iU z#C+C{_j@90o-*8nr@Y+$_37#<|Nd{=BzT7SzwRj~UxsPZ1|3fs{x5sVz05tWD<@`p z%0pE##8a-@BQ`5t^nd72Eb%87AiL&I{@?!MnZg76i!ZNs^u#c>H-FJf`$yJJ>nE3r ztov#IJ-2t==%l@e+wYj*wD*Z$JH3pQyNi1)#GTRUZM0Z2$>`}kC;38wosR8=6Bnov z#8KAwWa^#>n29{Qb7-G?9q!KVC#b1&JQv?fX*Wx0U;0-M-cG!lS_800pH$#$Q$(rF z;q(C29n-wX;2`Z&?a4g;R(evspslgwVk~D;&}8Tlj!u)2;a)R2&u86B56pNDH%(YT z@ngx^Oo$kKy%39kWyv~EQDVVRhE=<*Nr=IOwZW{Km`wxNX00I9OkBfAV_}0O$DO=f z#}>AhkFo~~^xf0!-ohR(G+0&_ZMT-I;ldskfUHZMdb2gaq%dsH)Gm&gHM`50YyZ{y z7wtTiHL{6$Ks-=%<7;V;5}zzXG3Pd{I?%Lsl-skg`Y9JQ7u_GJ{ z+!<8f^JVK(o@j{0?+g|t`qF#Rbx&r#GEhc(3`gWPyC{AUB2UQX9?eb;bDzyU?g33Y z0|u{$RJLQWL@ypxj6{}$`Y|myi**ggnI;}t8>74ZX;ETPwn^t0!dqKK@kQBI`Ngyj zD?KvEw2~d9FSC0*GlH& zn-9`T%x+L+C0kh9w1)Fsi_=b=k>l@qj6;naRXf>jvG{H1gT`}t%vPM?{X|#&S3hiv zk$z%ej5>|Qn`HLm^ywxG4)GUc;zS~LKD1(6a}iJacwsAp>z3xi&4yX?QrXGr0TgQv zBw>Brp(f=Fqhc~P`o>m0RSG`ELd)ah=!%{TsMw>K)sk@VOCw;;RT0(0Fy-EM)-?EzXK zZI7AiW?M8`V6L=4hL1F)m&NxyN+$pPR`|NI#*9|@I13lrY_I!h@{06;qj|pcF1hVP z-TAgVr$-)LTDZ9MhjN`@@Hk$Fvo0ycf$Q*pkdom~c zt1O;AL9vUfHsqQKrf*g2XhOvesrNB5AKnQ!%rMs~27@6rT64MZvJs~%MwH*hh#IZ& z-EgWc)vyg=wK-)`-h>r_-D)x-ZRNDjIy=>RhdmilKE#>DO(H>iiTPwe^mzEe_@wMm zcHhvTeyV*j%b1gGga%Dw`R|4tBb0qnI5g;DJmkb2kU6126A74;W3T`Hr{fxW&plS+ zQ|UcbBR>cax>2V(+1ISkh1glQO$ zM4CudDr;8BwVOKkbw;Z~tb{+hnajDp==A4gOU_=mkyVtS6M?=TyZeX{f%Ost^;E0q z{u>_pjLI~7k0sA`7S?pKAXh#xk(6}zY>6K#+Ym^Vo_207Kis@)gNUoGDO$5gM)`4R zK2DM3nUH9_C8J1mn51vswXYJp3*EmixGq%ljI`v&<`dQg)&-6^!5q^sR3oo=EJ*Z^ zCZiu$b+m`>Ue0|iacQtv7Jcs(eEb3PtIp2ErP;~xf2rzd3f+AR+>uR1W7d^rCt~+T z;!A7h$CjHv&|O~{J3Bi= zclRSKvGge=#a$%P84BI|B`HQ(36&wxp+!}T#Nls)XU3DIKw|N=Ga+XDp%S^f@zViC zRWA-0xjUAeF`#(N-^=og5;KAYi3OvA(d5P3s=jIq-TfS7w98aXSAc}Uf3=7IKp(v;dd z@+B5E$E*ugee4z4ym1}lJj?7OxtQ@9$u^dll0EXJXkt90CeSND7bV8y=#om}8$TbA zh~);^H;cdV#y=?Ro;N}T?<|SsW<}%gN8k7;mK=xEeL!h4(La{BE?DH-RFD{+TjYB+ zy63HtyNkzsIRAo)i2-Lumt34x5N~+!@x@ z4r``jk=PuQo_D{xq^l zyfqFBZ9ihOYJLZ6V@)1WrR*DP*cMe+vE=txC^ZzWU@x=5R=}s$LrzNHb5cS9S2?UJ zghed2D=FSMbZ=dxuvA zTi(^8Q1W1@nOJLEt7>1?F3es8p}bObDd!?wpd%YE(^C=O7O$9GTOoqUqxkK+a0zn< zM5oK{Gu75avW1oA={16o+55lEs*Zl4dmna^LegJ2Ny!7Ys+i?X7A{34U*Y9g=D@s- z$qg2-S5mM`JXo;~Q2k4YYu`H6y=2)jrQn7W z@pBB*DJAp9CTpOl8#y9V-BixPhpID~XNs!+jT+h+tr&AreEW~M12A&8wZTcz-dx`! zUPm6RCWRk3DTo@RF5^UYjM<9hGq&0(DE<Cp)_JYN$C$j-^Zn8e{HBGh~(FNfd`eE}~Yf72Bu*C!GsIPa9PoCzYL3)iJH?^w6Jo3LrTF zWdl&DcRyZJ^;Q0DFF2=Y?Br#V(S9*mIQcsr?bBF?ED~`phch|z`!C6^e4)AW>)rGF zIk9D{x@G>b{3W^hmCc*;EB768`w;WSulqBNc+2#C&32Hv?$b#579=T(_f5SXKZ3Hp zm^mV@+L7bc0>k^NeZkOuA7ORsT+TPvNQ8(bM#U00azf$LP}M606^5QZC0e!jr1DdX zk`sNXFgC`Te{JaLVAWUC%K9?{sQT)p^6jZ&W_SKrd{pXh1@X43mPl2{o#nIXAc=ZS zH1xoWMV;)^vW&OQ+C-xGv~?f#sd{a?FvipBq$S;lJu+BfOD@w^LNzk@wzbC;DaW(f z_I^Z-CJTmc9@n4o9eJG*dSG2OBl?#}i!9A&591UT*Ni|%HTYDaI=H2xj!NDtTI_%8 zQB^OzS@rd~p?lRZIP}PtP}Q4u?9|KArVsl>D_@-+?c9hS{zW@)kOGyRZFeKgs%JN0 zgWK4DwpOv0D8)z;8J6_;rHWOyNY3SCjg#rswgScmH>d)a%~Q9#t?_om8Uv${h;%7u z!iujO*;M^f`F*Jii--NIa3s^`&T!c{Guh{ZTY1w+VrW0+SJn(VilQ+u-g+dqXwR&Q z;v1||xXjPaWSb$FV%o-XKqw`ITG59xxt!DOwVf4ZFl+S zwB65m(UiL@`JB9diHc&9+cN*?(95G*KKiA$t0wKuI@x%(56`fQ zQSW7fX_^VY8E3?uxQz~aezv)8Umr96w)IQW$2=Lbada$kO_(n1TGp8xi&g>ni(T)V;PEryiEP13J*vP@#@$~qolncYNEFVOcjB=X6uygp77WPSD` zdwo_G^6cHS_(W~RUzBjT$qr`K2KKMr(+2CUw&CfuM79WWyDXktCTspO5FOUR+PQP8 zg3}S>%|?CGVX~QI^Iukfhjoa=9h@+0LS&gWpV6*NM3&HRmP@wRt@RA;Jk^aYw8|$S zm%YuM$v++Ivi$#WtG3Ci?G{zJSad;VZEA{KpAh>0rCCp! z;;Fmr3>_^FfxacZGc<*K90l8}@I9O?dQLi$s^*A&vS_p1^?0&KHgTjz52we8o7g^9 zPwh1gu3E8OVQUf~|l ze(ou@bz6P^uGV+m9V)d8J!U66aaB#bSjf#zeQtLTo>eozdP}SWdrt2~*}6UmTjXrQ z>F219qqEt1UKQmsSVx%azV4IWn`Bh-mGyz-;qFb&RvBV^5y$wlF`~5b{ji%w^}097 zHc=NlRmOJ>(;Vw*bYc%@l_R7r%Jw8H+d)>gX^gCB$0xDM%^qRZoG>ffbT;d(v7DMp zT%2v59x|W9H^{G_7{s~`PLu64Llc|LKeyTZ#pamL&CrAw?2})IiRRM-&YpK-)>CfJ zMj4)|qjmFHv!(l9_dy@i$3E6&`?FCwi@B$0*xO>4_OXz!tVc-ozh#)J1ojT-PgR{{ zSmr23;``fsaWpuWTo&Wa6%SjBM*m#LJ8!s5rel}iiL_>N%-P^{? zgl;%xP6IfjV%;#*8+gc3OttYsAGj!J9nNy5>JN6<{j6Alv-9Ge3VG~J)iVFHQz4SR zWj)!U(x;Dg`tkkmKp$ZyC$-4{Kz5?7aw4a;tBC3TuczJZE2FAzy}cRTcUZdbI0(N$ zW9xc);iY$FP_&;uYV|fsDSZ?ZG&TN-s{JWE6FfP=AidPPfYOd)IPEaAT6=XAzHU%e zv)^Iy#!8+fy;QuTxt~w>6!vICwT0$>j0rXdtuIH&1fx|SfTg!W)Hs_FWX55R&9TJU zF%F4pLxd&Y#^Ny_*^hOw zR3U@WhCvMQo-S;(=kSF*Iilw9Wiw?d<1ss#sdBv!AxSQrTFc7c|Ats@AvKlA7uE-? ze<)4vvra%GDF(u4H6139av)4^KCu4cLUvnwX=AAzAkP4iRR?y)t%oH%S-yf~taoJ& zBdZZhL@~0(c^4OYm257*I(-N=J&11(*ou~+?Db(I#qn8tQDXwJQ-`Focn$(Fh1Y1E z*)2s?a~0dExi=yKV@aP^-&MPS9Bk?H#ajXUsRXv-o`!9e@lF$_X#=?bjod%TOlx}T z%}p7ivntHgjT^<0a zspFFI{6zZ^0Cmd>xB!gyt2jeRy*Bi=F<{rvypQeqvMh!s%2!nF^Mz{U<#w34nY^48 zTEAI!o$Mp5mE~%wRqHRGO9QJB!DGn=5tq;oxx)s-Oh36b75FLPS_?vHgjGG+FYVY3PV&1M=rIwVTaonE?b);xsC2F7~09^`Nw4(#I;wprn59l z62}m_ds3%Q1<3NORUiSjtQ?S<=?H2jACTOvg(O<3L`ND~5h1)4ky&Pza9~pCkuO=_ zA0}ZBNpT2M5bE&zBUOwxDdc0PQ!sgSsz&vRN;_uKtZ-`5PF3X^OR60WyIyzKNJa?E z10k|hC=GrY?+&k2a**6cTdD>-XVHcu)m-0I)>}DBDN=02QW(T~i-(gaNTY}~*cIy? z(h=|ScLMP)rvb37Yxl_4tzkSZSE=sFaf+&ywG|TmO%{Q7D{<5M7PUGW-CZe_?+aDS zlUrt@VFh>Xwi?fR_DGRQ)wFfrE9zSELrgIZYs1&+;8YA;hvaq*E(%w27oOOON?BD% z9~Gh`bW^z7OTij}m~J8`aowIp8G2IfS-jSLNsS~~TO;Dogk-%ZG^j?3OR=)0bn%*6 z36r_8y&P2asPK6@ka9Mwhzt^IrewsN*)^sF(-?(s$k}OEkq9ak=Go|qAtF?(E|i#* zC)7@nO&3anNm}?u`x|K8sUu}ZQbA%yMJn0 ztV@Z`wN#Te(Y}^eV4Z7U=gRd6`&u+^ousaL{OaM)M9NMp1x*{boT+ntS0Xo-m`Rsl zvP6_DRVr;V(eo6!Ow^Rv9J-PklS^Fb3S59#Z!GZ#3Dmn^Gx3z9AX<69FP^$`Q7&gg zsvZ^f)9%FX<i{BQpthJm?OAW)a%J%IO%Tn4!hts=5?+5B2tn*KiloqaN zpA}HKsv_cu=(E^$S4CqqHZ$93Hv!m#ARfk4UIv$XKb9cQ_>}wTi~lDXIGU2)(J4RG3qV+j$_>d>#$RPtH-H<|a`yTc6U597V?x6=94q z!czUnCJat&sgUy?@keKJ#dC_G>bJzlQfArK-iRegRmXVX7-ya}^7T}N#dO)c>93y5 zVtShDyTxKe;j3KW>pU~G{Ds=f8)IXYk~=Yqpo25`RFz9F7a!D<1{JOPT9F?qfa7Q>l#Q5-OCPp?8bm zii{V=3&v)L5OREIP!`in_O&lea$zgTk$QaX)Un}_O&2By7TVc` z+fO7wIJ65f8*2)UzH;FTqwEaFV_;;qttD04NIF)dnol7klOM9;o1#LMyK0sS;aRan z(v)=LQ4~;EPq9_u3+vHfqZm=WwU>`2V8&7|>wJ5>pz_~t^E-s!YF|sf)+YP9LikPg zb)8(V=Gq(mvLYX<`I{K3<32e7#GSS{-v!GXP7G@|!-FpT2ZTTUWt_tiYLIUWI*H6u zecT;S)jN#NV5v^xL}A&Rplel6k*zUQchSk)XW2}%Dv zcsMQQN#-4Uzu8BxKD!AwBzdenM(P<9dv9M@TR>qFP1fsVosm|k`c`QXckl%&rCu<9 z?20LGla6}Nn|!=b9{xzL0Nk~sm9j_UuNKAM?*3fI=2&u$kK7=@`qT2q*CwTqG)57EU88I- zsgABlndjQ$G)WDAlOuV(M$@ZQ>C^8&P9kEIzqQvSatf8 zH+g5!`V~8RmFHc$iJmu9BXy`wtYsA^=440ZB)^P6w$1UNK&r@yv$#e5Um`b5RGacrdei!Y8)Su)5!G$Qr zrZ^2Q*GlxC5S$^p-Im^agSK=IPcSR{xZ*O~7^KZqys!H7!;~6!TaOGO`LnR~zINw6 zkuA|HoX-6U4g#z*t1REG{VEsq?>w_?ryYrE+4XIyqt^7Ao^FDTD69wLlgz(ig_;3H zE}F;?I#e@2I(un>O&R)$x3)iu!O%rUPz%Es=IEj&M_{&bC#s_)?2d=-ll?wS%0f- zV8E!#8&uxEsB`0=e8us9r_RAZFnq~~)UTpmKbNlNC^R8bHLJmIXb`*SRWrkx2IoM^i)kxT^;%n@qjI_k5ykrWSg%tM zRa!fotId)Wi5~Jx@{14JMG2CjDL^xq0ld*b%V2N?H%*M%|c+E;-B_9%* zW63|*YJI9wm9%Lr9^V~bC0S%^hI}}S9%==*?9_jJuVt> zQsp?`nPrRB?BHr{W!&39>2@oRD=lu2gI29YPUL*f)5kSUoZf9hA!V1lRdU(@*(>El z=UI_2WbXHX@}{#G7+a4MgU&3WmawF(a;!lH3KPj`t}oSJay?hB{m~iib>e^Q#R8_z zVs4__5}vTlXx~hy=Fkb2O;rs&RKrUFjH8_ zeYdxys0d|IwviMhl4A7M9UODCQ@_bc-8%7T)mODh@R3}nZgxxe3~%#HO>^&l$K8?| zB}XDD($`A$NwiQl3#&;Hm8pZ;=^Aj?P@k@IFYR19VL|$o#E7l^)v3d z7NM=AeXXkaF1e;P{SX@6-Rxt+RVi6jUrbrl%bMKO`$_7F8j;O*aNO8Z*}ZeB+^RlA ze5=3wOnEm>*FK952D54F(r3X*U7>pDv-%+%Lnvz8_8EJu?F@Yr90GT%Q>@R|R~eXc zksFTe;t?JBLN%*thj>_VftrW4M*^Z$cT^w>w-%C2>WI`pci13lr>?TWZ2}&a;vk3& zA_Sf~PR#^Ty!vB(DkA@#Y6mKjMv|7R=acPgrRQVpYvsrfoT%ugM;}hZwm|ZkO$Z73Vmwr?t@2{cPxWi!f#}!1wc2(@3|8)V!tN(J zRM&xjI_ov*>aKU#{|h@~WR=VnTg;L-JIO<^$KiKm5JjgVP9cxW$}uBC)xVSE63Sf^ zB`#n{&l1Q7Rz2No(b!2m_z_px$x{-os!ShP&7ZS5({nfBjL@uR9&DzUu93&1Xjq~z z^Yp?xo|O>AEXbub;w?lwI9|5i80g+ij?v2VnX4QsDoEIi#@{;J$Gh&B?(MM-=Tds+ z{?K-*2+`Xg$OuO(DJjQ+b0a@db!d?7TiXAD4A#ludUY@7kzsfD(*CRnFKzd%!8=rC zIlhHQkwg{NU5x0(#mMN^QiErEB$(n%`)Ae>UM zx5aa=;;2;Wk4kWQg+^s^f459jt9!SZR(CefJiDz<-hUMKq=^@{Nu|g$Ow#Sd7piw1 z@v^tFQ_|1liW9nw)i(3SH^MRB7mSlpsXUi`)bXMXqR4aEf56#z>B>uw@Hrdg1dV#c zQ-oi**}AtIN{KmI#N=bBwwN4=s@jp?#UEP8baj-2-^n9)`K7wpkuG6zya3~yO#vl& z++w4g94-8o2v)vX{LZ><3cT5x$Kw<#)(u?fl3HcQq^4#tcqbh(@0FNpH6&k6@Kgm* zhEs{}tZN~|FnSqj<+6iZ_bEDnbHS1cFPHW!;KaEY@nN zR*SVNwiV+AO#qXC3PG#jr4XsYtc!9{LjYyJ-#PQ{EkSF)|NncQ&quQFJMUc1oH=vm z%$ak}l(_GCOeS8qs8m^`qvC)fb{RKvyDmigjejFD#xBTPcAnv)hMh7)b;qg`a+mox zwC@QWq1m^XuFSv43bMy_7&FCr);tT`vYRM_8&b=7Tx1dMh1`_}cbP}1g{T-QI+<57 z1&G`(vo!cf78#{NRO`ZlD$$MDdRr->>>PcEEFGTM%F^HynbJzAMoNh&!!jXkAr5v( z^$arGo8qNa$-^dxF3Dn$^Q^!nod02bHO);=>n7(4n^X@3=5m`<${tFlv38!#!De$X zJ6*cOrZ==ez%VhoAtd-}4>^O9@QSkk@P;gRc#>4AHIMQexrzJ&mItt;w`8)tm0h2i zPHGKISCQeKBZ^l5EZou_lb0aDnnz=ulG?3Fh>7S|!$rXkXg^6Z-)1x0nw?=kk1}zt z=K{FYNrf_Lp0v({n!QqpIfe6CGZc_77>_Rv(R%4t11 zv$a;ncn>+^DraSj(@98!!p_c>^~}!Wh$)yp%L3cH_<<(#V`gG5d`rjiaO{L!mYP~* znhndT9&kq0NrfLJbE{fj1XJZ1-jx0oepGQ4${1NlebTMdTZd|1HAAuX|IH%IE zmrLRkU>p-*w-L!2uHz3^%~ul>!X2FFnU|S2=nVDk63xZMP+e=;5?9rs)LbYOTK@-a1z_w}S!Ii{uL^<4UjbXu9 zZ;nURigIqez<;=Xo`o+A@;3^BE#^_-m;~MxaXg!OTRmeT)6;4UwwlklB!(kvxO9;yW_3qdwn&flBKOFE#2P)VY~w1s zm4|M~BiaFD5+6LGhVqJ?Fs-P9eh%!OMa0V-91o{~&mkWP4|xcs9eAi_3oajwp5G9d zRoGU!1*zJ6+f7DMOPU=#N8NU+tHM|;&ZuFLd0%s}mcGqH`dHs)7vO0rlL>UFFi~wD zl^UHRD1{*`330hd&j0MY6SucE9=CU)xuHWtDuz6>45G>+NTIL=u{VSuh(NQCP*=D~ zUI<5XwA>u{Aun}S)H1s`0=IA`qF=J&=eHxS9U^EUq__)+_fgQz6Wmc)XR><=dS@O- z*c?Y*`Jih$4t7-LMpGQw2A1upIui7c#HUqI{kuQQN+E`j`Pc)S^Kpw+o)*`2qXo7R zugwktAI?M6RHZEm166N+3INfAv?JC*g~|?~&PHfFz!sG-v{s!ACEbx{^~p9o%X;&C zo5YKJ!xuiY8#~ms0&7>=YVC}Q%paNzlkkTpyUKAZIj#dW>O6q__L?{8Pq}Nq9R4C| zv(FLlpwG=eNFLgd$qf>T_}h+~l3)U%GhyLqih-j&mmjaPtwb(KmWS7~dWy1?Nr|#_ z7HXQJzspK~GBqGBR31im03XR>8U$bYGjC{mPPC9*SAHy0Va!6s>t53hQQTZip^z|f z(PW=Qys`*<7IL31)!wm@YMYV0R0@&fPaN6Uz)qxIDyn@gqlCO*Y(x)!iG3BiB&)(T z+FO9<<3@ilV*W%~JY58;pLjzv5PC^QGXKQ#mWVqkalWxE!L}w)t>UcvaTa zDU@ba;pq;ZYCehwZ{BKd7MQSAwR0P0v)2@}kgyvR(98@zixHA?Dl_tHdKI7ESM$77 z^DW;T04zwTYoiv>adry=9Mk<%taHSwjIi4lcu3%md!?cV?!#|0Q$uzP7SoN z$b8XB*ddIrf;0Cd=?Uphlo+80j2vxVq*Q#ru_)RzdNAh+R&50ef0y#H)*LKn`Mu(+ z=t6S`U(?%BKKDi~d@dJ%Et3~$pex>6&Elxiz~4m*_?lGCJzRyE9<^p~l5yYQ5aQXpLPj1lP6WA%P2^D zN?HpS-S%M`(k81oorbN&QtB=G()|&kuF8>4r5@{j0qY|6xHxJ>UT0e;RbODMF5Hw> zb)Sw^ms7P0w)dkXNGGh%k$ypxPyom)Wr4~5l1FE%zV)53YyBGWIjwHkp&gpdQcN}( zXc^GQq@MKQU;nmNq@)m_qH66fRF2t*w5gbPj;;#Y&BEu<dolNI=op!*B*AvT7M_rU-eGfe9$n65Rke*$%%^r04rSqJWO(udrvV`)P zGl-mt*)2y@vyB**HG3DQ;H zV!|Q~G3cO3?Nxo^i8ochI(IcvaQf~A;*`G2D}5iu4_es{^Me*8hjH&ytjP2=o$a%boSA{n zGctXTbTc|FN{lbj<0_T@YcImLvw@K+qK8Jg%prP0^rGm6Hk-1jrIPKKXrE*f772-3 z;wN6(ZYZTjZ9Id<(IhLmI+N@d_RZ@GW^lJ60!fz1k@Gp- zX~cIq-r3t0!9S995j(wo5WN@13u-Q;pDp!CnDUM#$z2c@PV6qY46m6n+!b=;B6q{DW4I+FZXKG1ybk;nZN;LZCnbfkcH2E)xZVn7g-NV z)ugxIV4PB9J!r@-nAaM%WJo)}nL4#&ReU6JD$-@fDd| z=YTVn_Efo^n*=XdW^@ftoB(WSC~JYuwN^r78qlDM+3ra0kLtvqu|YNdB1t6ckys3; z(r9jqu6%UCgO@j0VGz1__psUa}n@TxQ0DakifP1eC{ zZ;)lX>KI8{HFtMH&-ueQ0vLx*yG#tZGpXY~9-t!Q7=^fWUS~G8wgbKiJN4Ragg#ks$u7YSmD%L#{v^SF5+*&xF~_#%;+qe-7^8E=_&8gDzz$GkvJ-po82 z`rmRfkCVW@19>5@Bji|GjP1A=a<(_tq)y1YQtk;7kcIVU>#4&6$|ho;*ib0r0w=J~ zieD0xqKrka#N8g>v}2^rsFqHWz+7Ufc%y2TwjIED@%-?aCwm?3(qc5Ns-78BCx!x} zHH_;Dafmq9(^{6HHT_c6n`}Eap}v)qmkEMS7j6@=%41ZzqB%zgYN<_BAj8Nsq#<)) z8kIC-zlL@lYD`l%t^O=^-UdX9=`^4Kj(5!v`?GsJNt*I0Gd++J_Lx+qy^Jo5`?qK;K7K zs8(~%1A1t}iASSe?tng7q=9(&scce%6B=hh+<$VMA#Y3rxx36 zUbOkMV1ANuxs&n3?dci!nqS+DxlYE1oQ%(>WfXNCO`2=T%;}YA0tQF{3#sT(uGMle zb9-7jS(i_~EhLMK8YMi?Cv-qaG71^6>4CF=B9wRTnoj_hp3LQnXKqD8k5>Oxux>KW0EcvF8D~gpfL<6#8yl!GWrXimQ|aC2lZRiueUQq)txG zk9FJG!S+wr52WC&(Xr7Rqt{2Tjb0NS6CEvfe%c-TJ$hBtD|@fhq>IyE{Who5A5*&k zG32Q9v{M0@lS^5#8snh94;E$mnYF)jKyTnd@ZM`a(<-pPQ`J%45DcR+c9B@y%Ipy_ z=VqokCZ6G9G*8~wDI<~rogsOchj@`FRV&QBJf&g8ii>TJ!G$i_Bm!Kc zSvx-|N?3kEG>l{+IEU^m#L{PpTK#ZbvsmwToGlX`E-zsx<(y@4Z2l+-hQL*#*YEI# zkbmA|jBq_DtNFCdeZgmPPEl68t4D4DbzydXAT?BzYNH=@raAr+mtSC2B&!_ILLr=$C>HIGt@-98I=BOhuEj(xDlH_Qv6^$9JeKQ5rQ_;__^|Ba~zN- z_u`0OHilVAdQ>{yyy=Yr2t60%6Rs}b-WlNSqxS^pg#n=p5EXF14%7{>5zp?`fk;HK zlanvKGctmnE5@CXkv06v!em$f*^ROunA3pF8-8W6JomNF^X2(4eV#te^sowiHjUE=7u9uWvl%ClhL?#l zKvVV_QEHR97Ab!bQXy8dswyZ8?htMKtbZo*n;R4=Oj}3WhehUM9;#>5W>mRl2M3_S z*-;Njg>~jkz9wPfz6f{C%XFO1OpI?u^g24x?{AHskzf!4oFUYI3e%v`E$Io1%zG&b z!Z_XwIgA6xlQ`qB6m>RQ-YE7CMHewZLM$hdV5-6}jH?`mF`gI8Fs|k)4Qe|h8Zluo z$A4rQ#-sP7>IFogOqM`3@IQ~@_>14l_<+t9YD|~^A(Y+%>^H(%HHw$a$JY`B9R&8k`1PV6VQ=kR){k(9g-F!-@Ci@f8X6u z6Ydva8#Jb6zXRP3b-Ap@2Z*l3MCPP0hj6XEkrY!RE!{?eM5Lupc}ea655xm}sY6yp zRnzZ5)d?S@@fHMAlY^8BDxC=mLUe*2z;y9P-2Sz4L)u6Tc5eTgaIf?vCC1~;Xh3X( z&R#O13ObNRAr2-k_4$gg)tm9-SsFu-ZWB-C-4j=OQAj7Id>XUITVO+=N^R1+RdC=3}7pNb=HSJBhJ}z!3GcGe+ zMi*-xbNjsX3Adx_6oz$xs790}HJd9sA%6lmT`mUU)%Z;V7L%LFA1LBAL z_?vi|^d_FZl#80AToRXP%$;Gh;#S#`(7lK=QA*s|loi+7zge3e6$yur%{Vv~HRpOhg>Eu8m z4fEe`dRvKrJgue+&shK9poL&?N`T25p6)e$c^KC?lm-Pqhe)#6BBcvQk3mE7xzoY~ zVy#KES)xn1a|iC@_NBisJf**R(7t$i@tPnn9`}pG#*PaP9ZS3883b(oTFpesm16v4 z0&`-qGhHcH2g~kWMC9N;Gl5RCo$oKJ^=Xgk_Wmb4OFe9UI7*a2XVbmX@jebH@~sEY z(nT~e!f6}Fn^W)9ZYmSBrt(&JHZReFbo9vII-EM;TMQWDEM&G5!y7De>2GBoXx(i# zYQl6nU74qly{!oo=y+uwuxvN4l0fH6^HO@hlHPAIkMYFWb}P$x(<*h#2!CN8`kPPfLm#3D3ew|?j=&qIQPHK~Ww7r@ z66Z8`Z@q)ZY(*flR8$_GNvH9OTcqQ2Is+|Ok#RU0!HzM)>*kf}41s&UxoxWhNu$^N zw)%SpB}+4-FJF+lzRhlwN{l}cSw?#ZZ3c{X6gPSZH-Ls*!e}8;18R9R^A3u|EjhTBN#aJb) zrRv&wL&wfL|Jtnjs`J=2h~h^!q~hLKsDr&>*bDy0v_AlDn7tn=tH>S_o`YcM*@ z1RkjKRJXc3Sq)VO$)Gj_9+FSV&dBDqSdce+rSv$(z9{PKjm>LRpI#tKTJ856Fn8D5 z_Pp%@qXTO1_rBY{Sl;$4`(k<9FL^m2Z@W}-IlQf+)2PJh%_SVSj)J2e&>Ff0Jc;s0 zcUQ~JMp?Zbk6JM|+-pAFAyBCjO7rY8@7R=4f?X$oUwDCNwb+WOuIg7DgM)8*mhOK1 z5y-Z6%2>V4E9IoPd+CGKppMz^!B|!=S>ge~7)dRVmq)g+)Jv27in_3bp1?6XvDu14GE^vzt%bLu#>xN8jU%8Bdjm4X^pT5(`XZ0WQcc_}sbNvS!L z+M=hY=WS!DY_Bu=G(AnQY?{yr#`6g>nrD39Ch(`2Ea@h21}Kne*p~z|aTbOng{_g( zm9$rwvAo-T;N?7}_0jH`UPnD;j(Xef10S5(UU6h+Yx_y6x}v9)WYibQs*8f}$L6>$dOX=P7V=hmI|sJK@ z*8G77U#P40e7{wqrH*oQ<%q~Tb_xOXfqFzgU|vJ7P3K(hn%`4OS$`d3A5wv1-rj+k zIg*OI4RX9R>XsGar}F14`E!o^If6feq;0!(#%b@&`eg4u)@OS6u6@cKP&3*U&(Ruc*uiXR61`4=MOz!$AN`x z>_bucmj{jM2RW68%b<*&J?fn%)TiQL`vEHH`H(Gy1SaPMd#ITbP)yISYg0?K@PXsc zvax(QS*D2Ur=&=jy5tLl)N{>?sb41Zg=LXdzGwf&ln(;heCp%;Pon7d{G&{TM1AK{ zip0|eHSt70XAx$M^g7(rZ&{87m=8^+)T!&Ae7!lXJ3B4ZXv%v&{YFZCW&e_IYFq-8dtqm9n-7w8Xd93k+HoUPgBrYo)rZS(%^PXpp_pe!i#9KqHHQfa+4Q8L~S|y9~Xc<%63F-;ot)oQPy1B&qG8`SzcJG*$VV9rjtWn~!P00mf_~Jz|9J z>=_mufwAWTL7WCG5CT&Q5Y_()h)=MbjQmz6ae9r@fhnaogqPs(gdUmSQj^SM z;`QkHS{$|$zOSbL2wR!0k@_U7`G^2;JWCJFTKlXBdIg(%4G!0?;f-pGUtSAhoTdK< zhhseyVTVIo_+?59=Q0G*%EEU%)iLh;T3)!SdInJpAEmBE z!Em#Z=X55S)37J{yDR#Sgs?GIa2T>}DQ;(_v^#;8qQeq-6&u&2d_M!YqIaZ!ADr^t zE#I$7|9%|bIaK2w1UU|i9-R29t-EY#ZRwkJNerkN|H0AjYU!x)#S`TeC-q|H?;Np- z7__SL`^2DrgymE*X!7?GJ|~lU(n$^%l*iWqLL1FiS48e1@C>OYsc%oEL=`$&ySmdYEHU5y)hUOp zxz{{PhWH9Mg+p;ItY1cVhiuOQ7Pmt-|EBlM!02$&D(vEF);eh?GYA=iFNB!&3=R3f zkffO0wa!>f)j`ofOy()sXxZ(hdHoK378)^s=Q)l1>}j^0;zDJKDV~@Oiqco`9Er~c zXUxnms4IRjoighbs1W&;KsHlnv~RpJD5g+K9WDFMcC%H+*6dW1N!=EkZjv*3$gS{y zHC+T{;&k2ieY5eA&CYD>^%upqxrYSv(ImSmu{c~|-sIg*$aRH8}Um zX|`*Uuy2L;&V*E;*Ig4k2T5i59PQK@=>qjiD6f$Jh_iuR7by-Ay* zY(qlDFM2c#Exj(4fx8C4(Y3F))3XgQzoxJ^utK!YR>>3*j+liY+H15B*CbM!2n2;Eath}~l@8zd;%`b+$~RUj-%vknvN zB_C>pd=_%`lRFG8L$EK%R1!X?f-@V8Uc&9dJvT}Wu_P}$o~h|%QC>D7Q{IJ_x#!@| zkl~%6!3McM+geeuan_ij)O7ow@y-wKFwIgVrJ?dCw4rWbA~t`A03(&*%1Ff;Q~{rn zTwgyfT5`xfiHFYTs(xi5PwITJTCF-!li*3Z0sv0a>>#P-z|4Y_|SoADt*bxHF(;GDn(w7wT zbrbD5%Ys)%#ZD9RE7*xlHuIY)`cP};@sKv<-8J}EAq$GLqD-?S_ zQi+KW20mw5jSGTE>^{7$m4C>L=d@zEY5qukL@Q5hrK?ZCuMyY(- zZrtd_36PaPG+VAva4#jOtHfDh1e0{(iM3c_N+!h=cxlSoXK~kRU~op|;pQbICPl*l zM*`^n9@tQutCU-`IC(5FdEI1EPtP}3%0pm9j!=;1jFhd+$apK%El{^V(3UyX!@@HZ zJ*xNm%-LR7Q>#I6V=lS$H_rrB7 z3hPz`26w3{z&Rx!JGTC;Ar+&n@qu^3`=h+B)pDa>xXXguI&**R@a35LbP4jDIHwR* zQ23ZBBn1X{tvZ#%Fn?%Pi9hrUFPAn{9u4B<#9w~8M5CH`mb&lwo-%yxKFR{>0T zUStDVJ=L=^X}`fiaRyMZ?Y!&&$YIuK% z%iP#S1Ne*%wB=Xid#)~Z55d?p=6jW7N@QdrIg5ABh#~Vz&s`MuHdpWIKB>2RX;Yy7 zy}+JxrXKEdKmOL_9D;TU!cPMzJUXLqds^RcRej@m!L{V{=)W03_wOwge~eI;26dG? z9nKZT_k5C?MSm`<95P>rXbM}ddb_L4H@YZMp8@ zt?>D8li;lI|LLZ1oWvSg6=H@{9-PG5T@;>_C&V6fjhxvfM1r5bn(7UfkT*I&^E=f+ zs7vZwKL(n`0?qX_bwFtTXSb@O$3hqyXu1MZ>Jnj*r7S0lvNeSD@QD<6G>E}Po;;?>-)UyM;rX%({^)4Np!v`u%Ghc zuibMfAjf{0d7f}dTcEAW)Wdw&m)79QXpnPdA=n?elPsP<+f|j5_ zR(Pu0j+=TLv$qNKS7ZqaWg3 zvcUm-vh~52S8tE>2Z!bQgBRpu&h>v2BEV0G0AKJn^zUUkzF=yI03RC{@$4uMHk(87 zR|m!eZ(i1;rb<}a#+~?NUU#(FYS!C7M0XuJiwj1w?0q9RZrJNPyv55WAA*vlk2hB5 zfYu1pVu`|$NT99c$EWwtd1Y3#{)UqYmQe+?rAU2qfdRPf8k|h}FMbE)V zZ*Ea=&pAURsL*X$kyETF^){1Dij1d7V`tKw&SzoU(1(Bd{2RbOuQVE&#_|gR4tv-Z z`q_^t#8pFhDW%3L9Rw$dY)u= zO4@3og&0eDK{>NlHaxF@H>R4HFHVw2ClJY9OF2=lV$r2SsxNn!t@9VJa|d3~!|CND zRc89R-i8|uy7#a8C7$upAg3i=OM{Ii)muS7UWplgh9hElXzWaHe`qvE>uB}_VKPKN zk$p`1XjW5RMl(87+AMV6a|)oyW3l_*E@ve1F}S>?7TQ-jIh9(LP2Gr>>mHH#{Uhh_>n7$uFDo=F%5S~hd_017a zYn{uzbd}Ftw#r+))*X0VMiNCF$(5POl8Z^UB{ech43BC0GLHb07i2}3f)nmhnc<#; zwJLj}nYkP({G1X@A{9-;&rH*~1Xr;Vs?4chK#-4yUp( z+xds%Z&W-3*shr6Od-!du!E18m;S~|Kj%|-jZmHKM2!!yBlCH;JseX-Oa@snm|sNM z$j9YYI;NQ`Z?>8XGg>S!g>7sxf1!5Kn{E5Tf?a{?=?B3+<^W*Rq_U0Z!iq6E{d)<_ zu?uq2Ipv(mv}^wHCsEq&@fNJZ_%n|57i)o$mu@?;e`5VfC|Pz|S!EYln97 z1ooa@)y4C?D|$;=@Lf;!zc+cR_mx%NRDS(CzQA%qkF-+fin5w__-QQ5TD$vQ@5dU;f~#ewcv?R!bHDaZw3ocMVo$PJ znAkg|u64dxU4+xXSb5m%VowNnIbldOAsPEsX6f%~RfpJL8eZ-T)O9Kk)<=&mtoIpi*FbTx4`8L@iGy`qcczg(h@ zG)x^H*z@@vLjrpapLH&(lv^6cxv%Te@}y`UuIf^&zjxHtta8r{QUYI~aL;!U;dZ&N z%&d<*O%gi1y2xWZNL{A}_8f7?$$>p5&N@Eq`J7X&Uo2)b8XB}b*(C8-cJC(d6n~<% zNlt4coYuw>zDZ8?cDYYkg>IwEUee9mkOi&UTgHlZe}KwjgaUGPW>fS;ulu?EQeUG$ zf4o!QUQW8kx$mf>SeHjhE1T0=iDKo7F4ywX$UOjdp|V=Y-sk6xbN4P~MD{!0xa>_%R=e$JF6nCL82|VeYeFX6#N<#C z)?gkaEqxBud@Cyl{Gt3tBt+n9_jMFmT?k>}I_PZZ%m@KnU;_*aZOVyPkc%tKTbdBL_RM#k=Eqg}n z3-8Fw_l2kA3v;Q3v*EZ?g6^cm;S=wY6j$}3zeblBGiUDv2YM<^CHaVg(wXWTtWd7| z)5dPFzKn+9j=;y&B)y3u*Lyf(*>J?N;a*i1zx|SM&$tIfy3EWOjA;B-q($9^E`j}l zw6m0DN^D!o_+>-V1p-K8RwMPcEz4mMa*oth?IKpS%d=V~>I+<0?~Iwqf^ufB!2YW$ zj|l8X;uV=drnVsFA28YIQ|_hxOSmaXi%6wN6T94jCh~d17qP}ADs^-CM%)nk`=$Amq^I3tt*SY5`;W1br*n5?G&J#RFB%+q@`pkR% zuC`dq^WBw|6LCdmMANARean0_P^Cy< z7JVB%>iO(wr{{aPUn9^H@ui;!-g}T`%Y);xN`vOa4Caf1Q2Sj>=(f~&0^iMY-zCct z-#xRxi?I+)J-FU~4T^okxW)Rle zHCZCN;C<;05l4%upj#T5*&b%LC)li_X5HjtomJJR!a#iq7aJ2OE>=fyr7VtEP@-j^ z6}PkG0Gj`!K)5Jet>(YKyjjhEx^JL8FQ7*)PJTHYNI6sZ(H^&>Qax_>QP~fA+=`Kd zkD%aaQ(MiA+B7cB80~Bl31lQ+6TY*JyreSBA8={@eTS^7to!B~lyxKVYj#+km?;Et zV$2!FW)nw7F@W8a9B;FsWgD7{>?PAjvUOa+Hvxgd7|d ziDS|*K8zcg!N|V!vUx0Y`pc%1w|LFeGc+_-zix>$t?;3&oVz&5+U0$DOy#<=BgRy6 zmv=J}zc9OLQci7taj|oLtvap)`}(c}Z>he%oRq=s&(GmsmUqHx=M`1SfA;lVobdG> z)y~&fIMV;VukV98!Ww@n?&~`X5hd>H3qrp#7~(-hiKuh6uOx6P3)_VKqaxcJFHci@ zVTvJ>I^~xn?k7spjs}a6+YeY>32PEW4<$xT5&*pn@7b@p61|dpl-3Ffu7e%0^o{a{ z%9pT(filaNL^n2+HH*{@(aKp?xd1384i!8kn<4&#hKMUktdrIixYi8mkWcCJvN6!- z68wP^I>$6u;2W?4(V6^3awMx~^~tE}V%So1J}&kS-;97>l+cKC=!g&@ZZ>E{N#zSR zMaUSh-Y*Bw@2jUV)h-rx=Awxo?`gbPJ&oVS(j)F^e2MU~@I|h|y4Pf(_tZ8c@_1f) zO8&mQioby`U6XEdFFmq#g|44h%K91ghpx%;6@N5&gfBcAjng$*tuB7vl^xubImop~ z|HKoX(9Ah`N%eQ#CmqGhAGp_)m#&j~^749V@LgWIOzmFZl3D8dD0@S6q2-E@(OW5! zf>%z^Wv#2zljW-=YSR9M^+x1$ApYLm6Wiw&KQ|qx1ZT`m4!!!H&uD^7FtJ)iykFsJCiA~s)%$Z5!(6+w8X(sI@BnlP~LBUj?`Ms z<)H34dodHW>ux4*y_!m(Iad}nk=+@I&;f0mhs$#!(F(jmf(jV;WC z)f3|@LUMF_`M+;;M;~Z(UmBGd-Cuu}8W&V~Pm(>q<*iKxM)>o@h#z-Vp#jqe?xYX@ z59neRV2ee9Ll+a<(Zw)6|0udRrb9-hi`px|`yqHNE8ZQxTSi{XcV}>L5tqU27R5|i zBy*Zb0~}t9cylMt6*^-a8M5mitqgfJHUHmmY)7S( zmW$8T=;f*O?U+gru+tJDHi;+ZpFjKyRuZC0A-PQSjPX9?+x?w4Jkez%b|DUjAhCWL z!sa_JKw=%?41T#>GV+-;ADRKn5H@GV^NPjqVsBtr4x>XX0A2h?GwEk6HgkDNwkzj5 zMTvPEw>n^j!{&#~qdR2QF*=lPnOpCV_f2rY3cBBHdsOit(GNJXmobR!fr}uY$*i#x zCq+J+=-3>k%4eGG{=5$IStEM(__%{PB*H!j*zdF1&J~3VqQzR%45vwz&l0oI%4g2& zkCM;kC*-qfXBunbe?`oCP$_jKlUKzo$m0jZtm*AI z_xFiemvqRdRPyB|P>Bz(=EQ_a6SIy%o{>qDkb~F~1lb+rbj3+P<%4)wsK!26XZ49Z zE6!$wS3Q8mlZ3hT65^Ai%EtLBExq27l$M+`e~w@D{;0HDhT5QW&PYHDlOp9nk+xUn zUKKi>j=YhdC>ylva)ySb?FNIFUF~v|R`j-TzAF$f(8iBCvwk0WCL0NcNaK5_3m{369IHN>D zSd1kN*jfT_S&O2$E0^PPJrlR9X9kzA``lN&-W|}}K8SP5Cobi?AZG~rvEn&((+=V) z7D5+BWTROcE;)|_?_;K(TOJ0K>0nRx%EDE% z_f~^k`~V&G1_Dg1K9Wr}=hpF|>R2Cju$OZO?&1}lJtqv+6`iiE`c>pp5XSY?8-(4g6R=~;3=G-IjN!{!{Hd*Ax zb6faR)q}27?_K1+a}IBT&4cSV18ob?Hdl1MvMjhVdaJE5dIKHJacZx|Zu3&Q+gZAM zKK1*H>F;X#YdctVw!+jY4wHqZsxLW9i#w-+Qq}X^9RkKlp6WgGC+7l;&$YI6?u~1a zc=56}cjr42@0XELsEN+~S~6z~`X&FnftGIdEeCr7pA7cYf6~K~U2l6(n!Q>&0r;Nm ze?rQcp4rUljEpHy%wC>>>2m$&-RE9L6W^JWsb88a4{nnM2vU$%dy^WSD@?^tuvA~c z8dS#@-Y;fu937&ssgHD$2Ah6$6c{C9`D|-g^cdjaA7_&On zZ_aTqt;}-OZ^_Eu#lU41Hs92w4b*7^k>1($H`QwcvZgIDGf)pFCxI-0SCtli72Hs7 zatb%xR5xLDv?f?zAL&_Gf77a>XaBZ5*d$+?;0H*yi4`)czLIvGTw)43)TtbB+XZmI z;UPN}#q0=GcUfCutGO2JR@`u9;XAu`qJdwI2EM!vlfx$WZ|f}Ik-2MLI4eEkQQVlp zFs2C;`D9mQK67E>yYE`(!>vq`c1OkBKG^Pfo~7Rxx;me^+TR-ti+>=ak07B=9NwT_ zT+OL^K95;!D+$I}>svq03tNtjdj*pAl zf`<=#X%fXI%olX1Ym}p*2rb9}MJD{Xe0agy1xN{VqmhMcnIaJR^yR2<{N3i;b;7T$ zGuCxrjpsg6!R7jl7fLw~f}%1>UB1j?CfO&Yki9#5H=2tySgdc!-_B>|^qkAu>t2eN#f2_eVivogiVGzOJGUW(GkbeuP3Rrs z%a(`+x@^VPM1pxKN&^+UvAkqH$g$T*kjU+56ap^Wux@nA~O+!phAM96|WOV`?cw>mNsF}!S1#VG47ht+eZ$>(zfD<@?j zP`Y3i+A}XnGJm0HvQJ72AJc1wSF(!DC2uKAj13Y-&|OZPCx>|X3j{M5LobIDb@@Qk zu2@yoRZbtHCyets=a%{U;i@hf`l}~@6gcOgId&gQhi;|eL+3s?D?+# z-mwZL?5R!SDpS9AFfBIka$j}WR4Ni<>b<_c>wVd4siofU9@?hSC>+QeGwi5jCPsxb zMxqAFpM3cm20V?aUd(O`ntCh2ytL3eLXUHvwUo(hJGp1fTws+YB~K$*9HD!6$;o{3dIK!0|d-2h`@(@cx+6QBIun2C3- z8irpS*6Em%PxTT%U0}yNvhoZYj8O0E{Y;gsD~*cI$jYBd(<~C4uDPFWV%@> z<<;zYGuiqzDXm{(TfgB~$<|A3>lfK1h4-}d)~~j$i`XZvPfu&zrfxF9WF|8`rS(rx za>mE~J$)`ZV`j4T<^8qqN82QA{W(oa^u5Jamf^JiU5gZm_uZy$G6&h#<<)$*I@$N@ zQ(C{mw!Y@(Wb382DH#}{lq#Ac&`%uPlPDll`9ms%yAETFwoFMD?xuy8E#`nh*z65y zfJv&%+DR6Ac{Mjs54N=7qD3jS)Sr>;5Bblr9Z^zw61zBZ&xgmxLHbQHw*b778dCtS zqJRKgkOcUWl){&5;bkKofd9TJ*)s0h4#4%4r8Rjqe@El50QXF(B_|1jbTDW;r~rQx zR)Akg8Q;yPCmIoe50To@HQ!Cm9(7gKg0E7L%kU~sr@Kv4limGOvb3~yOiEipiU@CT z*OapMl!s=*9BvWEF87?Dk$|8iHG3Mn3Txs#SS=O^2|G-}#tze2|J#2vdfvG&P zi0rc9!c@eeOqbF58-;Z=8l)=Kfo(RA0l1)eVUvEbOl5VYf~?fL^EBk0oEmA|ofFOy ztcDkq$Xh`tcfklWaW#Du)kAVsl&aAzfhQ!9qsVYBzwX{6IIpbfZ}V|vStF@jO(!Xm zX@F!Z7{QTcjn`)4)UrlW$s{SzjZPrJ+IB!?L@{r`ss^%yt?~Ss%r}&G=2rLBLuz6h&&^IzTl5#=|WG@V>Mb)L=4Y0WLf0x#P`K~ zH$$l|0u5(GCq*a90Y4F5o*o?-ooU~ND@Biu z_KV(P--Rh6DgGpSwS5;>ZvNRo;^ADx=fg0dj1SSn?C#6vQ6wEtui}&MaGs-ul22lw zkt!r(eoZY-4jUWI`KSx*ZSs*ZxQX91{Mv;!&%;7HEAIcBP^rw`wt>xyH@HA)Be+ax zBUzdSm;HfM@39LnemHUJ9xl{9T&R1vQ1@`5?%`fU$`Wtzg&eB!ho&IT9COSs*oDM} z%x~mMF7>hIqW+J9qW6i!+6?zklFe{+hU z!V(^0xD4s>QU;%Wo~>)TV)ZRdU?>|%Df?2gthDjDw4q4W0uS2)pUp@%HaE2Z_LCIQ z4MfrJZqiIU7;0+N1!aZ}fOSzMi5N;_Dbm&MqSTTnv0Pw$+b}v0qSQP^PROfvx@1D>YAvvw} zacT|h>+G(%gb(6fScd0h?;1fZ_^Z1u+1Tycn6qkbHGiQ(=>!@8n;WLPb~|@7qpPr0 zd#QR3cY^O>E>YKs*Cp#ZEwwJ-XbM`EfHpAGT>}k6tDDsFE8D02syWT3 z$*GBqq}X*GMUtm6Gtctl(!4mymgWh~mgWi3mgWi7mgWiBmgYgIMejkVaflzxmtHTZ zW}F&3QJdY14ng-Y1RJy=n0X9=R}S$u49OIGQh`#&bNdP@rg6w3vp{3Ky5VJq z9K5PO9Io>XX8=1U|F}y)ax7=Jn#2B;sM4HF9Z4Rb9Qs%AWq+`R?U%5N6b`LZmPpr( zTXMWdQ8z)z7X9~Qa8b%MJy?6WK-Q!GW(+0(J)M+dW=y?4D-o@zftw$xtn9y~jHS0G z$L)@jq{;>P|0QL-XCaYdrm-#w)oDQG3tgk0s|XU!K?+ma=o*o@zlLWP_x)vS&y8MsJQ@866+JEP6xqI%|=8j@;@*!Vs>^Juh0GQi%+X=`NLobe)V2 zwk<2OzJUtk{Td~eC$_)ZUYR5vno?PAjLMe1rpVCs`+1(zW}RKPZ!TutZmjCKL9S&Y z%1O?9SRtVck{%|Dt1hVMRd5SYN%cZ5^(W|X2&ZhNF$=u5{pUNCKebGd{JQy+mEyj5 z{{5yQ38)P7ztPXi9Fsmwplm?-m}}}_!~{`u{6{f?!WOFi<_r)jtv$a?>MR;z_e@%K z4gf$+@+@TJ5g;Jp7s$ybX`J-wDW0u#uO&9lw$lCO)HMHUowb_YaC}Nl+s$rD>FjDS zOKCo(f=8SR#!^8W(_XIAvi%J3g+%u?)EctvFJsbBlgE=?$ZGO=6fxfZcJfi=_+OH}$@H&(H^ct1lvt*>HJ zo@HE~0wmB-$E&lVNZ6Y0MqZ2N+Hz7GY*X@>zO2hme)GyJT2`y=Tdgg9V>yl{^-6DP z@Bv#|v{hSLX3M3v^rDP_h0I)(($b3YP6M{27cT4nj`8&H&VaWAMNFqF!L1H%Rch*O9st5LOsY(=YN113Y@E!MzdRWg`= z6ykNrth6(O+2#UdOH7R!BG@#PIF|7xNF^mmB_&8DB}gTrL@e5VL$YhDj#KcuR~oFt&|dEEtk)t`|Xj1Q_BZf&kPM?qhehUe1O_u&piOke)kS95RT5ca#NB z8ZkXmz?(EfiRfNVQsNL_qu?#bC+iQ2ETwaQmD#S9f7qI(sClwBiG&{7ij6q`Yn!eN z<4&FK#7U}wU$NYc^KgUF@3U0?J>TR)m&~{(X6ljN)SdXf9D|;TgF|(O77@k1VIV=GiS$;LoIRIkgB4`Fr`oF!aAYCSBr{_H8aStmyJo5m;``pv zkpA9*Y{}+~(*(@6_BEExRTf!xk6rJ|=5uJhh<{7?SI0lbqiB}hyiXJiJ$aPkG=pb3 zdikw=?PF0aspbY%2y#`RjVj4_%2)Fp{a`TldHX*Sm6*$JSGv^7efnH9XpAxnO*+dq zATvRR^f#-eWNPI)M;6)2_4$5Vxt4C5M&+S_Y|-a(>b?+=Mp6-XS-1=E#t)S(=0bAI z0m~L*9 zOTWpPfM)KRCY{Us=+t+Yi&S4#E8_BNM@UaL3C(@=H)rht+&@ndaEsO;t4aJF5yu~h z=iF~rX-X5`P{{l^G0%RH5KukTg)FcC%QUvUSf0Jk9>rwCpov9l6cN9O%*xg z-7X*}`t?prT$M+lyXaKe+Y=a+*Qv6*=zNGa*r~8CIeG)jo2v$3V3MCAOQ#yL)S3^g z(oxPbAjmu6RFF4wyhWZ^myh=F;T27t?e=F#X>MFS@lzpYloec-a_fA^i+Dg0mnn*=I zy(n3cPb<=SE`%qBL$FWb1wSYx%^e~#QoQ*Gq69dR8M;;~oI_DxIwezCutC3WWJS0Ujjgn0E zTx7h>1oO1tvMUEvT2s1wOHXu4$b%+KY>cKQukd zSHKNFnBE0v=9(qbg*$cixf;uZGr5LwW|r5r9DiBtO_h5cH$#vEo0-Q$vJsY}sxoWl zrVbqGU-}7JJt96i47a>PVV$9EC)1Zpa7Na?SicFeY9BZ}XL9zuUURX+A_l5d)N_w^@RP3 zlI59SF#z^j&T!QdZ?Nl#aF1MXkQJWLDqzD4Hazos4Vg=7Obm}VnQUrHI6+S2CE2vN z2C?970Md>Zh?aH8s=eEB5_mZOdhpQN%~jPioO#yVZr&K~VQut2G@K@*q@n`2p$jgTZ9qLp5@J z^zQf!NrZ+}I+?L336SXT((IbgI)GiX2N{86FgdLbZmHH zj(r4z%&8XvL1%%$ivjMDuHdeuIrCWpQwM8i&{BHj0j-(ysBr$|V=+_qy51beB~Q=# zY;2SY)Im(?2!c?GEwko+&)PBrX#JKRTzsmg*x9?R9dn~6dp+8H?3iUW$(ZuA*fGaC zW5>+H2F%=ompv=iAl<3oGka?cEs)|AY`kD^C%5k+wmmWeyOA%gWwgylX|ZF%JqlYM6TjA^bq*Rqo|lVaJ! z3Nu0_+u6jn&>`MB8NE4TFp6Blg3D1q>3aXc}m_=8A`peATAYv75LR>iMc#DlMg7n8r2c8tU-(gy8x1VmQI)MrM?T`MDaQ9W z!NOSRW^c=3@*}zWI$o#MP_|xhmZhV*5xO%j1t_j0(GTIv)|-cwGuyMtK0qXVW5#+U z+ozb<_I!a|&F^`kx*bd%(ptAiP)f5GB4~QtYk8G-K6bGohIvvM2qGYn=bH}>+JJ1$@A%-(y3xY6;aeB z-o9W;b}lNNnC+wEl%cKUQbU|Fw5dm^CY~UmoBiXHIkeF)QWCV~3Mt}{kJj;KA_v2} z<{*amA;uW=Mn(f^LSp$rX>A>sn(UlB!V%cGx~rqW=BH!r1h#PINaBUWB{ngnQHgCo z52>{EA0@VXdxLOCVyo{^SQ*N&W9io)#j98dGhJe1N$52WcVVI-S)pyGKqAhrR%nZp zvXm0{CM=_oZqD|Gu+T2p%MI-pZ*;3X)m9SRoOIrD5yj@b-#G{xM1%Q;nK04P%f#2dM{L*kWjzoC6y9>Ktf&B zA*+u21xGXPPl1NFWG9hF6r>z)KR3imq>P zEA^(cHLA-vrvlM5zGai}xbg_vEslQ zQS~E8g=#coam`#ZPM%b;GkR^szQ`0NWkp-$R{8lRGM*o5td$|KHJZnITgQ>3(58I^Kzh4~nvR5+~ot!$9op(k?rib?cheth8?aoVD~Y0~pL-|TN) z8Pyp+_mGt%!h`a?vm52J+0W1;>hl$MoDBEf`+%gprqw-X7Y~9I3YUjZ?ON{IM$css z1!BD_=87C?`DW>4_z~@-43b)(y`C-LC>)W$NmutrJ4tsDwBez@qs_9K7!F)&x|&g$ zRk1hfMu6%OP(!qg%JCJu+0<%tCURCrM)rn^Jrc;f>?=~0blxSkGu8U=jDQ3> z_-2{S`_(9S*$N0S;mXNwUxS~_UMV!1qWB6dtEGb(6<85B%yMDinMyO^ko#otd zq2QFAO=rc0(-I4!fWZ=49^5n1bGhfT*b9ruXh!COj=;*?!c`z=L49d>P?&tN$l*dW zc4)!YTfDuNDVPHt6T~H*;gu-9Ms@+R^&)6g--_=dGHdyHm#Qmbk+&&JxZk+Z*mu%475> zf4FEg51=e|*u^{q>kEmVM{LRl-FwQCgc9v?4^CPGaa3109;gpCCF5hn9qIaj@ib=D zP$O8+@D(>zmT1_Px5dXi99}I$7+xSBnSS)s6T4jS^Aq<{ErDlFmr1?YCVF?T^SVCp z5?inzGdEec+BC=owN{dmhEqtfJbWXTaN%a#%A4_4wn!^fLqjjjUM7SCb!JU{imZ~S z!6SOI1p-?dPk(h zuxKHG6@rt93x$ zll9vhzFQDM$`b#;8MW>J;l{9Gugoj)h5nHzy%FwEu)|%mlxH6wvV5Vd@^XBk2l5t? z!VXco$qe)sd<9F$t*_qWsw%D3z89}xqHcIup9??vi!H;UtdsTjsT&2{Nmu>&X=l-O7sry>f!jHAlgV zoXoiTao8;{*zYgi;peghU+2m^Mhw!}Wu6_`DWlxAyS%gQYI)H9%9VX3zJXYOx@)$` z=n&(#=3hMc0ypH9;0XUG#Y~1WFs`5I%mAb@^a$e zx9GltP26)5XzH{sQeA)0yDjIEl;yrVzz;Pv+bMS$5vx*asT}`$Z3)xmStZQ6N-pbN z!L`>SVXG-8gFlF_a(Wg4LYNSb3z0D)0%Ak2l(Mu6C=dI6m(EheoD4BD z`Bn8gmcr@#%I2!0trCHV774#(DRwc%qVJhC7aU-sO zr3>M^1qB@^%1D_g(#!9kDAM=;a-v9)|1eQ#_<=mh*M6dS4=_>AzVrYSWu%=bQpfj9 zloDs6)RZSCigZ;biu}q%87ULRdw_{DQYVUz|9>%2_W7ZpklV+G@(N;)9!UgR&ysGQ z{3hm@C%BwI0iJg^dt$50`hJKyv&rLr{LRT&yRE|kzqsl|idE*4j`erFuYPkkPp}DX z*{t&H<#Sd|`@kPWi+iwK4&@D=&F0M;6ffH@Xt5aA;W;aa7R=sAF6;ET@2_K7@wk7> z%3GFIUv;=n*3Mk)!O`1lQw5X&BmsNY;lJNjNbaV|V@l^`b}h}w>{dFjw5zK$qqLh# zo;t}>Cwb~DPo3o{Q=T&Asf#>yktd3lcIzrn-Q$3xb+a`9OnepUT@M!Uo?sV!cab+pU*LmpF!pXBbw>$Jk-Xl(OPU6 zG`8Aov$=7LgCAmF&dT){Z>0xYD_oMS(I4Cs8!2*4c6q_L+;Z1Ra%7uwVOIhGCz4U0;AJaW zMcb(yn|}b^2ucT49OSuL)*9KY{hM`zs2zfEu8+feV@8uV*o~_;`G_DIDqm@OASd#f z*qvof{sQB534%RWC3(IWD;->lfqlDcD%SXtI#N|mm?~MNTvz8Nnj-R~M$N|0<0;}1j_afhOjez8erwc76sWrLM+HcA%}-owTk zDIYj3YwApPDV4Vpa>Gl!CvWg9R0T3gr|2Y=@tm1U079-wEDyHDuE_EQ%kl-c!+oL4 zvIf;OclCZkv=o@^&DZFw^X>eFR1K|xG zB1pGbCLUd4z0qUIiIkp(fsE*@-iHIkS`w6^D$bG|;US_QN{*U@?h6e8_+^W>BU}eg z7A}LJctwskT+=K`!Qp*sxeZCu>D2K2^6j48@T zbdu%rq+}x;+_`JMVS<;c0#V=)*lm0|+cMS2o@cYE+oyE4JPr{-9s3cSw6iom)Jrx< z5-ma-P1DH3zAzW8C98PHZ2CX6oeg|c#nte4A%P%~8!%w}4vLyBek1~#2xu1wBlYoi|D56%0_;uIy z15qKMkoSM)-rZ~fTl@Ze`TfYfJ2Q9Y%$YOioH=vmjGM8fCy^y0AGE4;JgiW*j#zhX z#J;{j)&CB~S9rxQP{q*_a@&xIOronF?`ER)D(p!gwm8>$nFpY9wq{CuW$IpLr<+;U zD|3XGxxvjW@0Ho#%lxgIS=lS|J%u!_-gGmodu2Z7W#X02YPumQgF3RIO&)z4)To;^ zgcqD#^oe#)O{oM8;Htt~+vHa@f36@#_^s`;w2zXrw8{W4l>wOdEt|C3j>K;56K(Al z-Mq3$;y&hc4`Mnm+&6CoLp2jZossI2)#bAUsTNAa%6|u;pL*!R40Yjvw9J`CDN?h> z0{610JFwF~;C-6q5LoJ0K}bY8uwsJE~w-zK95jCGGZ>r-$AHK9744Er-cnLlcM(Tjc)Pjcx1IIzbRtM+>e?a zPU#>~b+r0Zq&}-b>Wf%+6-34=)0WoIU(%}{lJB&7QHWEYu~Q1$F4LCC8}ce*Zixi; z%cSXuDqkCKq4KO`C!XpbPQ2A6!Rl~Hh??VYp$Kxtx1IlYTr%Vx8P_2AGZLj(E`lRU zqvjcKOIU|LYA*Dp{zJ8=I#JU7MXyezU)^}itWq?NnQwEF9 z8*@$!+fzrNbnJw1E~yR&5L3I1L>uu`lXH)!IC23dC~VYL?U@Cs7TRR2+%}d=Dh!<{ zJF``zPb}jR*EyvixK{B>p9v@4_s_W;@YE7zT7e9d+}eoB(jcXrS=zR~Oe9{F34TKn zr1V0$$jhQK}Pr z8Jr1lVR$YV$d#kr=dT+oL(k&a&i|YH3S-KDRK3bAxNF=*Z2#`qT9w^bl|Z1@jm(cI z^TQ=n7vtO{j`f#5hRs*QP45(ixmeQuE@D=y39?-lmG=hvh%)_>HyF_XhL^5L051$7 z#^cBg+Y3s?pc3dZ#@9is+LAp?(XgG6rMW>|qo6gf(!lg4y$Q62Fm68BRJSot;V z%H2`JLdr#?VY#F3XD498&9UiRg0Y2T!b0^q*oe5uH@csR1*GL0DjHPAsVO#ZC!X!GcfIClM#y=rYEtLi3rOqYbxE z)Cw97^o|`l8S%Gr4^2dyL=#QSXhlEiWl+C>z;Xk}fKBsm5$%GbMo&~r&-*^&;n&YBo@rV>d0*>sNs*N|KGUlIZ(Hp4KB@NRw>-=i&x~lRN(`2;j zIo3}tdTEPZchIjje8(>!x;0g8XO{)F$nC6M2xG}`{5mRt&oYtZO&CLf4UgRQ@ zo2c+;Qy0>=6s5{U15%@BEXFJkHlRvx_6aw z2}PM2VSPw;gbjHuz1lgpn#s;JCWMg>m9>g9e~yh<*>Rti4laI5)PY`_uxf(EkDQJn zj%97BRy4hw(G@wt8ng{HfOWMm9;uwhlBJ#%B8oj+G8%{tSvp;DEBEr*b=z@h}y zOcGO9?}Lp0FwR>dWtJdlN-#`TAp|kcF<&dwDBkT@bM0x#sM#lCU%NJH!Vd`tiNb-C z^8e_G8{xfd{GxwN2mb``W1|3z>lOOtH}`Y?yhnQbR4MBkJ+TnyBkpU6x1m50GBC=r z==}oMnnILrRF&@dT1RYe-@KZzk10>ai?4Qt&rRhy)p$cQTt zm9(-N+Q?_VFK@2zh?Vu~IOhxDZ?Y!igk1LpF&>ob5jD z;vtJyp}+#(y>`-(iWi))i{9%E`>PZZ7*)#G~THp9^Ja^%DfU*56K&ftBr>Vc5{zT{M}{(4ESG?lzRC zH#tKp51GE$Mv~knAgYZDfT}GC0&P?#BHZc)Wre~8Sd3BIoCoN#4D4_jki-Vm_BT=6 z|0;ll1E1m57%?3+wP9D_!V-}cW}RmEUoy-eD}%PVE=gji8gxQNkWG@))Uo6mMs!HzHf|ih^Ruu7W*g z&{66Yj$h+C>DQDQ<^uTo71dl-qVC*+`GKqwSoL)nrv8~xigmB_ribw$3nC_#xTL5} zNwTyh=cu80PHnchW;EsE509)>hKfgK^AHQo+aI{P%K<)v35e4bkR;&`%AJg*JbIja z5J1Ln8^u^r;_~orn80O4>`P1XlPbA|h2}e5Vf$V+UY2SjY~M4T{ga~*4t?%v^|_wX8XV#^lTa z>}VXvQU*dU6YC|Kw<|6k!k304dV$c&C};v3eF)9$pDhIw_V zVGfCy-vKfCRRW|rp{Qabl9;7h2s{Jk9u8M`$4i|WdMYy;$AnjjW{J?2>04-63zI0M zGTry&_GWv$$fc<2tfkEfj?U?c=P@K(;EG_N!$%y&bH$Ew?ICs)jG2MgqxJ*7a#^=V zs6xwPKggfY!^^C-GZss3x8|J+tiN|HF~zlW92I{L@i<; zl0gSy7~o!WTZy`y-N>5z+9XW&G-Iq1?b>|<$N;S@gFlV<-=r!z zKy@7_jfB?UN3KUqb-czfAF7rvct^O!Yr@y6CJU&f1~rG+$dGFJ$qdYBwM0B-68PaW+RVY^c^%h!!!5iv>>k({jqfdPrus z%#o9@98{`;DrPdca4BbBN<45APfRCIDw77YnJOBt*6=JP(q&w&%2HQLTqyDjUvqQ0 z>NeuobdP-yJx(gg9sNhDr8@Yser#)=~ORe{$>+JVPWh%n{5WmP-wReW`Y(tGJYfH;<>c`?qJ&phh%hqIn6&ipZfy zxJ2r04Bj5OJ9r*J=V}$Xf~sdL0F}HjMqR>!Y}#r<`z|v^PFrhKG{av8bR6-x<`4wK zA>KmHXB^Z$e1kJE+uQU5A%3vk?Bmb?)AohE6G{Ea;C~Qy)M-&bK*UoE;Ojqp0pg5m}8sENtOC0$-Met6syTpLYGVoa<;& zgz^cB>9b;f&xsc>^#WT$0OGa@pMRuJKDYyf(3RYucH|p39iLA}d%_ zkRHVEe2g1;Eb4+qV#DaC{F2p$r>HcZlhu`1M63(Aj-xheO`IMMbj9VRJZx8U1L#B= zijJLFHg|5gsgrwv@2NzgortLoqf*^OD_B>M9)LwDd8rjl7OA3!_7l0zUi7otu$_ml zHgUSJfWTJK1vbq8hEcUQemW9o6gjojSnZ3Q!2K07l_$b0PI@HU-Tv#?5}K~|d;#nZ zdR`pjImr)m`$_#Q>b6hZ$lD{+!Sk4p45|wFfV(l4C`E#O9x-Pl;qHKjZFfi1D0$4?5j7YiqfAyq*yq$X zfm#h5id*%iCvMJeD<;T8H#ic#p zlJVXSHK}I`kCYYcq1$_9Z0}*%c~7KRRR`ure_PnX&m@y@CKqOft-KK`WfS{h^M_J| zg-bbFHQkF;-Gax;Pg-&{%=Y+D(J&W3B^b;xz&Wq6VQ?sxMQ@Lq&qlD$%Ct74b;?cs zGr{iRn|87R9col;(_505FLe)@Y!{A3ZC)kHBdRlHJasW*&M9S>*-1nM-68cS9KW`t zQY4w_ErA+@^E1D7w&O+b*)8K^U5iYhp#VF3ZwSt<_{wlqi+0}&>IdS))8+zQ+L9z` zD)UiZjFAtCMAepvL0}$hKwSQ;c%5ig3%%`DSFE{*gg7!P-p}xag%NAvGHFL_@|OWY z5jPTI%6}at_(Y6r5CXg4nApVsqZWxP_+s>>=H+e`7fNeh(sQV96g(4EARKr-{d;!s zRvLYyE0Del5rmutRpMHR2o z>R*);#vW&#AjFC`lC(0+B@=+>yq+oa!*JpUBMN-+d&2}oU|(PX^|>xtBZDK1uoW3G zJ3KNn;tqV1w1(@v%+fHKc+NydR7z&G%GAkpM^J5{oySi`54=ZL8(8eLhEkO>txh>K zjKsEkNvSdN61I1#IZr+w8*kJa_Jao)c51iCiwacH46Vvh72K^pmyK&-=Ot=h@4#d5 zL^{Y;u%J5rHcKt@V0N{xd>Aq{Wc*rL(Drh%Xg6#WDh$6YMGO|iX0szpZ{?{TFAkYb* zWg^8mgU%hu&KA;1{*K=CK|g41E&E`Tuh09Rh`+PDGi+X0K&0m)UwWirEnF?tO#6ph z&3Q|GdZRd>T!+93nCrG!id&z8Mv+3m=;zGzz;U{<`RR=HrC#` zu`Zl-r}tnzgEN+h@P&AL#5x~`A1u$|wHFu2} ziFdoSHM?i2OA%&r{rMe9AI!Mw;M|iw(Y1RDN6*r}Xq%;L+u$6DmV)%#y03UN$AY+@ zcFw0^|Fgh z#JM=aTCys5#d%=6XvF{U>U~`dMS<;M6D4><8cG$LO*xM?wy6<@o+nbS<7h8Zs#O~R z;vOx~%n+yMlBjhnd-Yt3@MFm1Rf&-*-psM7;lOLrs?VZY&4=oOVMEpiu#)$j?~M=_ zsdU(skNqD-10RORUNfRJ{y$;~x&UtghZ7dwB0ZSi(lMa3_VT zDb$AS{F7Ve5|RudZIb@WO`=0co4ycZ-y2s~Bohm2h0P_|+iGG4;V&UxT49N1;NOI- z1jsAU!1NhCee$+Ny1-wrZIQ=0JWOW|;<*(VRxNCbU<$RO7glw|@m-Val`kWS?W8-& zyb~U_JAMLRuyJ_!7otcC-N3-G_MZj|Gpt8fgAK6|6&uz%v68WZ#?x6+IiJb6s3AS% zECvj4D>!E+>VNm4;UJpkej{wY77ctBt$G{U;^4tva1L2v5O7A*i>Uv@aMjbX7a^d2 zz`^cdZ(8X+;{Rp?pZr@5DBE0V5Atzs!!`;E=DJ7XFv;#4f*bp7!$H1K8I;=giSWdSMHF^Z-@bzBJKzTOgfFc9xx`YcnEug z&ZW@<$fG}ZaR$1t%ZC4xqc*u?eB~7`GLDx?#ia_zfQjn`3VP9xQ?Gz8E~czfq*lCS zMfxQcmHOfr2tnB_M{GQi#j@YxG$K3sjyr0xE9IX+f1!W(M)8`m#PyXv&!XK^UuI_$ z3V24=Q>-0iTsS~=ZrBPHhzjwh%Wsu<_;+HNgT+77baRJ;fzrsTXuRnHQOEC2t?(wRc zGH(7F?IFjVD2FQ$f}$+r2S4o7R{P?|A$gpWT@COoV6M*gs)tKsY?C7dS+~&CV!(r` z^h!KzMrOuCtN%ZOs4pLrIdoqE6Vupbu6A+Ck`13f_UMt)u@PjC^Top6V7acE7rJ9} zWz>wTLCGDr*FRU|RwCoZm{E_RF)hWFWtF%tK<`^)RxakJ* zpD5(w(rO=R#e&c+vHsrc2GYw^q1*z!F^1GKf@X*SSI?{M>%m51I9NNN^RT8|18cpx zul}vY`=mJ(nzeI+x)r~H6Q68ew$6r@E+q&Jdu7qUr&@hGh4e&Mo_62!yiHu1H)^6? ze7@e@95ScfFtIW3f^c{LF!!ZB6EUOhd?ZBBib*SK$7kzyXf}LoWyECjo*SffD|F5H zAylK)f52aSjgf_fcdObx=VT;m!$E1w3XK!#>Zgvx!e=SEm(-B8@CLY`yQPEcOgPbf z%>1Ev+|MhTurzOEO=I3ga*_tO`?tAfcm>(TqJC8EX3nBkt`3?DZm4gPo2QYND!375 zS?4#jA#J@x3oan>RZ@D+04~td8Xh2-^Ec({gWb*(%4VW9$mS3G_~m9(Fz~Tnh1d0o zr0m@u>AP?xjwc~pUY5wQ-caBGOQ~ekFAgHB6Ekn%t7})J=PIa@;lvk!*aT4Qw@q8+ zYHi|PT%>@KFSYu~(iA>u3Q6%*bGV256+nv(PJPBixWq0#4e!wRr7Xl)E~qc@fcyjb zQR}vHQM&x+qFqG;l)G(p>MkZ+(9hxBC6pkp*=$xka*nuS3!|K`E!j)545e;O`>wW0 zH>Zu$6VXb--QReF&m|eH{wMM&r=k3M-zdutR(M-?E^bcZ5gN9l1)|>Wj@>Y;HSbPe zo?NB3>*j%Jlu7+tYVNUj)E+Acn%h$%u`0HtM36y~DFLWriyHIg%{TYazm-1TJIfWc zPvqo`?>Q1J$Tt7)sK~Y+ElCgmZ zl0U~QFl63%gXBg1XI8L5q<<@99>*S0;whttKWzwFldjPTRyMu}9L=AH;!}c>Q)XRd z7=e~ZRg13G>`E*O`eOZp)>YN%V}sU|Jb4S5&x8V7^{P+i=LO9v!3f?|x_@`jysBCc z>WpP8)ysd8rtwqzV+pG6(9iDD_GjF0jdTfpM=>2nijJUoSFP?7S z{Nq_RYCrrHec@Wq0=?Cy!wLfnRnlA?f8@0sWzTiRbZBN;IFM?$rflZD!Nf_x$gDw^?W- zY8Ow?6W#r^`;MmF$NBFw+c|)wJz9847A{b!B}V7x!gY~?>+_)bd~dks=J}K9qF~^8 zJ1-=a>E<)Kxo^B!m*=cXae|$h_bfdR-d(D0C#BmZs`_t|r8m7*K+oM?59kP)Z-mS@ z^`^A+d%O93P+ZuSQt9JDZ{gM!A65dhEoA4SmVpB=L+;An~0Xr`ijF*6A?4pyDsPEym`glB81AgFuF+?wK4IECnTDkg7R zu*?zus*f7#buunyhd*iV7~UGRM-SBf2L+dNGLW30Dy{M$5t772a6Yw%27D4SH)k*z zG+zq_o}1gxzp-LRx+oObY!^yQEk-{bGCwvy$K8{kbADR!YW1W3)Q7+b6@;`$?@p`CYyR`6UiTZ4gjwI!QDSSav@8o1e+p1K1kZl{OfTunVyO{a`mrWh8MT^q>U%BditJF=o{G3jYP%_Nv~W z^9P0VVAac7LSkX)fsaD|cbV~hA7fAv6ce6rdZT~Dk4tV-og_$WaNpM_Kn8ba06AXa z`Me%LJSrf7Lk<;~PYV$M%BzY7CfX-nt3UxoAM1(FtLLoJ?OT$G19{q#G>w?4j#T2n z(euZ4Z`2cS`t`&!ee|tw;uCN+Y|Zxx@eRJC2U6b9rH@whtnR5|>==}k9BC2ulGyP1 zV@yRtf4OYb9Z3;fS*)qq-KvqLtyL4j(Zs5$MNeHixzEkr`gDD3=hDf3@GuZ*D0HxO=URCN z@x%tipt*6YV@;lFMt`pFZ4a6ava6>DILo^H2fPv65?NGJstlCYx5}*=Y%EJjdj_0GEs+aTsyy*xi8!Ty=P#!djrx? zH=i>VvJtvLnZ{cFgo9l z_0OzVpP0J_hVEwzcse!WU9&ni+T2B}SajCnln~Z}oYP%1RqGzme46UA>ld|kr=5qt zq`Qk?7rK&mBW)x;>MI^kK5ar5W1A6OLo;lTy85b)I0z~2QN0iMsyDp{=LfeR1-PTV zFW6YG;B0C7FyG&DbDvZmN$@9gGYNr@0o?7Y!V(8C<_}g#0#PoK^Z{+=J}?qP`N^W= zosju-DDbwX&a%6B*d=(_MRma`rHNKNhSU(Dvn@--2MFPW*5Y%kR3tVc+7sPJX+H|R za_cnc$A2H7TI~3TYQ+de0Nd>pm15ZKoPJW<8H^G0WYVA7n6NX~eMDu<%bS}bk z=Hpm3;2%*oXcx-Pq)#9IF|C~(^0!Sy*y$ejk)QASUj+ma(TNYFoCm{x7l!?M#mDN7 zLmA`U(&uezj4RzHbEx|mn$!ohtHG_!8QdUe>jOKr#Nd8M7};8^>s(IG;!2VB63Phs z5-y+zn)F1QKV)t)+vx|fC5!K*&mb`G&cpgEjRyz3r<*UzzzA;J>A1ozM5PvIUcZ{% zel@4W8<9>0&4W;c9@v|BhPL(#;50VTEY?BSi-Nh(@HX8ZeO%BlZ5Jb*6)k=VA-cpz z`^^fiGLMu@e9|4+mvp8{$p2EPqD?LG0&o_gBt6isCpH2=v)SC!+0Cl6hZ9r}-DfB% zndvR<$r>^1fWVx*a{Nv41|QvR8XpKYv7`tR}aq zLEY_k(`4$%n2!6lZoUAs&kqfMHe}}=7xH&XFLklFq01LHy_1=;IT&W{NjLx1cs`p- zNYnox#`8ap)K3}Y0L-V?aGJZkeloq=^`_2#q2Zk&wx~n?Ch2GRFa-bmquKfYYcv&s z9y&*bbA9<}hFzNN56$X!UP;j3CKL1squIj^b@NkEL1243d)S^VZjVH_mb8B40mc61 zF{FQEj@l=lA7X(NXwnkDqH5LIU_hpS(BC`@_LgcQIT%14VDy~)P-dD6)SSz*7OtvZ z8h=TqtB!OD4&S8vU)KE{NbutDKW9r7$?C>kc3!o=HPO01BOnz?e~8Tn;W_tgS3JtR z@o$?o!5keNH|RK_3i=S_Y%G7CxIkNilbixgt3DhM*XsXRU=lH$y*{U0o}*Qe>Gyb?wAJ zS8@n%mzR1(K1YDjHI=T6YOXz6k-_p1S7lUco$v~MKr*8%V(Vz()D4IA(8A`v8N<{;mQ-bZ+sa2$kvYXG(?ZoL^km(dI``F%6Rb|0vH zAtRQ}40K|zo$o;iN7L2_AJqqJ(;mIEC)`z7BH+O{si>vM6?D2Tbt4h{Zpbcybnp>2_$GW_cX|vVb9Wr;#GEdY&5&#t5 z*$e%-sE{cqC_rxFn5Xg>UKpT{rhh zAA@%6DvY|hOKCMI$#|hl6~Li;in0*FzoRUtze1<8TH|Y~!~ee4m=0|1!E8o{0<%XH z2AM|w4N2f?YrVRX)5;N5rQWUllYvqr1Ce+N@c(mHvUHfUlF3nvdPq^0Ful6+C8XFh zDm|oV-;qol#4`0)%wp!p9VudJVUlX=lQ?*^Ya7Q(wY5|4PO`so*vxgA(q}pz|M=#G z%p^+AgA>Ju<*97UUbVWKThyCJq>n`iXLTp0AS(_8EG{z;qez)qHRjKCsYv%j#N8VO zVAl&yZB?|S`U0+9gAJaWut6MGw&j;4Qy!l?(0E2}N19 zHc7Fyy}H;LWKXv@$SKhn5>21GNH~0HEfegsG}E%f37W`se(6mIPMKr}Lw|)J|v-t6lS$SmRjrQo}eat3ooZ6o^3FbJ@@Mqf1RShtC2-7_>8>91uxAb|p#%x&zcsKvQ-d6qec6HD7Xdu6fO?8!=i%;Hgdbo7;?tB4)MCMdr+$h2JV~6V01iN?`Rv^{h9Y9@sc)xOHtJfoUHXNI2Dr40#I}%M@Fzig1 zRDWbbbO@=kkYK~EWdP@myzV6qvh6$v(I%SGG1`xtt%diq6CGUmRMkN(@jWuSTN*p; zai~xIt?09uCtckNi=WA2pZfx>Xk8@mhE{(OWy2W65-oj**~ZS{W@}ozxXA{#W$ZCq z4gYQ(Z$Dx|pi@eIOwqj8D>+NhdbKKH!E3$9V_ z0ZZyR)s{Xj(fX;rUJ^vNzCymYZmh%O*#&7Pz8cfX{+y6?sekc4KYJ#Ri|4#n(_vnfw{%e5zRvmI(AI4H z-vMUZp511%w&tnE{?%*FHruNA>}j0TM_beUm;5~+OY$VY=kVnE#Th_$^Lj+hthH-OeRm@_i&* zp?|m$P98(^@jb3$tAGhf^Hu9lc6VRw;}G0_Ji+^i_r4S!{ybrEBHBch+qos;$JQ@0 zc0pyQ3+;DqVW(%br}9vl))hlH>6UihW7i?lVkX{pyz`EjIF(*z;?z5 zvL%lLs(YEksr&uD>bmZ-d3lW6hIqa>_Y5(+yjZLsRoAr+H1}=oZ0VQRIMLrYOELJO z#!LG)IVFt~iISM{9RpECjL?y8EsVcuwmK^mR^r2ClMQ6Od2>E)cX$uH>@356azi#8 z#Mr149{_;rq{s#*vCr=#%*CwMN%@_4=@fFRytOE0{G-QNE8|U!ht3AhDyzd-@nuw) zm$@R3wVL1c*kQgzu^aGpZuL)e4bbYZM}bdt6=?OGx$@y| zySzDS-ChaLSr!STsnR`>g8(f$1NC#U)GmS$*bR}HU5S2;i`76{w?NWqN`uLgqx%G`Kz@DxvzHNDm>mU z#@iT={5JeCnWHP_;ZA%l4$H6O6|B`Kh3{F5%EEmY0a$#sP~F{KempbhSL%sHQ}OYU zJ!;*WRLe4TZR&hgp0gfRxWL@W4;&%FX5I)Ecjx13g!i~3M--*3ZuXB<-L_0?kh4_^ z4R7(1l0Xdt=SZDUe1O_1J*wDJw{Io@OUl6U#)m<`?*! zCh3p$z`l?w1BOzR{t9sj#fC~0d4V<#KEdTjI_v<2C?;3ZPFSVdFm4H z5J&q&sQ|fJ`kcN|34zfP??AiW4B-N-d*k*~Z%C%*Ji?mJw|#|#}>wJFXFS1^Dt*%*NF=1zfj z6{$JbZN|Bq09#i7$D}Y}xbn682Fp0wL+5>Qpxd}UZ;9b=@9u1w)X!JlI6tqt9x4%` zrZpz{%dJhsJ9?hCmPz@^)D}t7*0cwTYX$wh9 z*8D?XeKrQFJ-Zqw4Uu;KH-FD=n7v(GQnx>E{=mi=MU9gNKgPn+_pNlrW30`6>2Fk5 z&d;AeLP`U_FVT5QQ)dyNr3-1J&-{UPi}E{T`Hz7Qf=F+8R{mx9H^FG#omhM`@3;`x z*F=(e&t%%`97l9Ybyv<^$2s;V@{UL+2-;l*trD%083vcc2Tu7~vUj=PIhHSw)XLjZ zF;BTOfI!YuUXW9od!6}f{XW&Y+rD9sfAHf2-A)k!IRl3z zaLG{MC&JC1zWx{oH)@K~+#|`2WNhsU(}F{_g#QqZDPCr#Ib;GB=#SR8mwYA`(g_+vC`)-t7$e)X)5h%R%~!n8$7El=QT=7{POZ)Zb-D z1X+oA8}aXThEjtnlvucSm;_?LReJGY;NwFuSrkq@=Z}~pqyB?oKP+=@0Wp0?1AVWv zBZA`k{#+H4^KVZ-KT|}-(dFKPqJDC9fngybt$9T$4GiRzmDeo(#bbQ`u=z)^gQ;!> zOh;rS68pR6LMVu%EXKqgH?f)XoClAMXu(~IO>!*b1?Srz3l*Ri)&Txyz#k?JX)wErz&q;Sr@u+P_^~OBtfMMRwi^dSgFY!m5_bKv7m6hCGTXV z*eT)_ialFk>xCaLB=2Sw+2u2Eqpj)B4SfCNrpt6c-E7r6K8jX-q%D#2a)w2`flY*F zq~n`b`PbuPg!Lw%9Jd$G}%*rS;#a!N$e7I8AFI@K0@Set~i;5)=VYYO}2Zk6+$-$BGuF6@6A zng$n8D|6a;fOLZCGq2(WHFn;`jeXO3;nkf85*+P~IA1FJor8eX+a_ z1ieKdB0eyEET=^Mf)g&afUE3wI-oap|0$+5h(8s5IKQ!PN{)gV_GB1Dw4J#Ob9hQI zhsS!DL)-jOhChi27HsK%cNs&MVhl|Z9h{{$jG+z2&?StaNofTz!FQd7AG*AeBd!Q? zf#L+{OFGAGATo*nj`j=^p|xk30R+}pQ}+T7pSh=-1fMN^zZ9RspTXoVnT5HCWWr?0 zNfC!4z@v0rc{)DQ6YnnK2okYSBUQWS(mHr1%pI|kT`KE>%D5lKxmVm%gviDTLND;@ zxgOTaiF?0rG!-pvw{si4`)4$gnbfXufhu~@LoEvg_m}{#Y^o7C$C}PF+d3TPfwn~S z4=;UQQMxbdNIBmomp&v8cFkQVJZ5f@JFXnp6FRs!Jz3)Rd)zx}ehQ+Q^xs=EyeK;ooII1L3hrv;M<4lp6I${{30FOo&acGzO2+4mK8KDEgxz1? zlT?#(N&%*Ev#BG6z!I@TfQ)&eOy(lhpH{&KXOaB-tF`reWGv;>#3ttv@G2oS%w{9- zikwQ==QoZ^8Uw^BxPa@z4x3+cAag4cTb&Gi$%*6DuBHKXz9JQ=J}CBj38tFt=ZB5Q zLELG>{2W58TJaY+3d)kHmUH}97Nm=WsuE3o^u|F-CVgDpI2zvqKh^dg zVBzmkpNAwFPXox=a_Dem>|oPViumK6w;W;Ecgy9cXb@f6DM2tHssM|m?&``|6*STs z|6qeR{A$qL@y^NyNCer?gtHz&{JJ^G6Zm+}gm6^{&P5#}Jw)&c-4lp%ulUt96OI%5 zZ(b+#q}8x;<$922=eHmSy*|j93`HK!Bk)Z%$l3XZ{LVQlgKfsSjE`8z6poM?)<0}b z9U)V1Q^$L-HKMq~B<4h56EwG5m55q5i~txWQPlrM#YQ>b{Zl;cCba151)88%LyS}o zcj74C>=Y}AxTcC5j=bpQGE66B;L1>7Y9K_D`N31co3)uR5`TD4C|SJasaDJ+soydA zvR@EQL9R3!BznTJLb!+(2`ZmaZa6r`mA(`G(l4?ZIC8ZR3J>8n#mJgfenj~`oIi=M zQi{)sB3@ipBRp}MCuDA=pJ{{h$Sl3PPM$Xnl>)AGw*JIfG8yEAY2vy5VSAz9`Hqtj z4X%iF{HkXn3ZCwRE_aA1IF#kABSv}#KN-(S_@{zT_wn7L_tvJX3RB;n0|M%XCQ}8RY^K+-q#|)>P-&ej>i`~8+Gd*kwmTDDAj8WX{PIOypUJ1J-_$a_*oqax|7q?F1b zqIdnTNQ>Cxr}BBkKK*na!KH%Jr~AZ)>UGcM1siW+gi&nYai;TK`VGDAfIoJU)GEq* zyf9PiCFGhlc`Y^mK7jL&m4Ne81y20zillrbVOEtLGaI*$axZdD0L=Yv#{mvOI>Q8W z_V~4%RN{kfqTfxN|CTE92{xIutlpf5enJEWBr_MGsJqw&<-b|w?>Y7Uc}supiW`5K zfbtK9nM3rW1S^0j=~a^cshd86{^YT4w#QGF)N|a_)0BCf#B+f%eIhR>yO6~@6f6=v zj>NHVD{yDJiI+;^2IlQzBFfWH(SP zh40L*PvGl*2@rlkR~d=>5ld1w??GtA9)H|RDs`ThdTI|~9^0Tkoo;2}%MkAswa#T3 zKqFSUsLF$=ZzCw9l{2U>Y+pB1hVC0Ks2D+ZID>dM9`lbJSu^Rr~f5ol(pQ!ik{R3ZnTCI_+T;G@+6Pg0Tm80OsY*7=P^X zay(F0ho0yEYW^o%LOc9qbxN_;&~`A20iOoq z%a{Yo_^Wr)Vr>1**Uf?15l;W{tTjg=|sj%V4 zU#3Pdz}P^+J?BH|;OvOSx}thl)VixHVvp|6b_Cb9Okj)XOumuumW}@jG(w$$X9yaj z-M>_TGYNuZ5Q3%1FsF_vG0eyaHzsg!1R(*q#L;La8WIJ426kih4*|=?b&@_^en+ii z4X$aSk{^ti2@6sR6Y~E>G+%bQARJwNDK@q4%V9C9*oPcQFwFM|!6bJwj1dTFUsVDm zu_Hku;7n=>j<^a0du>Y?8#^|lpyE{}t#>N~bG>DEZ8?|g1qsz2lT+ml;^R(&k=W(8 zA|uAJ`l?QR>>tpS*zF&%DIPJ1UsJ9QfPtpFE+8I-zbW+)-w1gA*eMmS@{ZArf}^I7r3+K}0*mSmsEEt8|^76xSD*!>WisXBGFJp42B~!`SI^Xs^*qz_5VdF-pVw^G|b7BI635L z^)iuWwbn%3CZyLm`w(@3L*_k0#W>Y1h;n0f-GYd(wI+yuO)% zz5K`xjiiuQPF1aLRZ3iChqk*DNDAT?Bo>VJ$12Rpqtj<$sfwT3T2m?GlRlX?&>ET2 zbIZDGsuK&w`Qt|=7BFb&rD7fFpCHcEL?HzJW@qxNB80IV z?F=Dn%-0)|nU!#CpzQl7P7(hs+ud|-caN6toKM+%tT&9QEn8jcP^m;OSl+}%qKIO2%htX~KVs(WNiEA~2AW?upAgCefg%S| z35H#(0+uhI&Ld*~<}P`dznSSiW=o#E{4N5`qd(ojFD1Ymq!braG`f!!?qikvSnEF8 z+{bqJ;kb`3_fbH7d|u){%G^h#`!L+cboViv2LLRS2e%u!k2){$LzURbFO)Ya!egcT zSnWQN?xWp(bh?jS?!(9Dd{E>*O5I1f`>1vwweDl4`?$k>)bRkMRq`;GFLNI&+(gIy zwUP(@lOjCUx{o&Zv7HB>`y{@nx!n6;mz!AXCU!~5K!X$!04330Ug_p}Mata7>26{< z4;nJuhm@Q}Fl!!uUrWQ)Jh>IQVJ1)c*V=H0r0|c#+1@KR)7SAzbMiprtixv5XU#HB zxG$YA7qa-!GdOsx=+&#@WjMGh4uf$oI54>2M=Ip1CwXuXp?)lN)?IXtYZMXZI0;Be zjHd^xcTr;TevQZci{)$v_QaKFt}C7t=QigorirTeRvMQJ=~}DBb%8k-s>8-?K7}^A z0=v;l*dV7CE-MdCMOV4`lZ0bYrbZEU-a+N5IB2$|it@47X(;-$O)$LInFP zfsfI-j-E5Zcx=XZZoU2bTV{OM7&XXvoaguE-G0lB#;7avjRBjq`v0aO_H_iKcQO>> zL6Fbx3Q-O>vLsoJzP{E)10D>mp*BTRp>{q(9@vUL$J#=lTEo!{o?(INI9fYGq_z99 zQdCcnGiku-Nj{jB=&Fw4NP}J)UyTN!^m{qUZC{4mAj)Rd?s?}C5#bH#nV*n3o7v6y zm|;rF8hPwC28i3_6{yVsfJ=}2DfiL0_6zFI=6y&CJoO-t6oI{2p6 z@N0m8rRm)Czz{?A))T4+c7vL4RjsjnXY`9A>7Gzi)mF38Q0XVS>52o`YO=fOd2YI5 zR<`0xZuq3X1V({?9|F2Tmyy$MUY*j>Z6$BJgh1T z)umrE>`RZ%Oo^(d*aB_M;JW=YFrOq^2C?o{Gr|10dJW>ZEp~ynzADk$lIY$u=Ug^f zwDlJxT3QkZ_skh0n>a*$mkCqV8h;1e8dc9L$2D^wTRdiyR60N$kQ&|;hbSs5s;go~ zVTyo@HMmo9%<|`C<>l7HTGd%s$dJ&3hQ}zDI$gX2?D5Axs#a-xx2jdzB{*0;zDyCE zGmd%aJWAi332^9ipEQGu>CR;q;{Sntz=IT-oJZ#qz^QF_)U)2bW{VRr7pH@GWuOim4D0)u4p=ub{#KH=z z-ch2nMgyC|d>)n015(tU?$=JK_D!+!nj+k~8L4_jt3RE3qvk6S>*Odb;S>U;ceqsy zjN%m&4Ll!i>h2r0ul7f)y5>9`uG*p{4$#xoc0_=S(#^bSYYcy4Uzi}i0G8NyxmJ%k zo0luKhCi!<8H`r!aqQuIDV<(UPQ+R#gC7>nzqcSlinO@$=YQa->Vszaz{IwYkw1z~ zL)>O0`4yBh26#=9jCV(^%KzT!z0Md$hKc0)L5Jp;QxHYJi0TCk< z)XGzz;_#{6r%4~|JfyBWwz;Inno-I?ZY^692P@_m8&CRubyR?XNPBp%w&X8lqhUx? z5>f?eB6}X6_U)=0zxVC$+-i&}GS>6FamIINg^f{nAbW7ZoxlzoLPhHF)h%4>i=R-p z@G&13UCYmbNNA1FX-YGb4ieV zz~c*5d{nl0i+%T#cy=EzUsf0F<(1OKWM?|q7T=V*Kz@6mWrVc{dclQ4dkfb}n7{{F zBXC7Ag(KF(E;TB>XtC0Z#w)ex8!jmh-|Ug%I4Pa03S~+0DZ|#GT})dLVxdQfg^Cb^ zg~zG8C6D&>Abw*?TsTC?5bcNe)qfW<6m_UISXd@bO;OQ?Qn#V#WU&6+1z>$D37m^4 ziHy7+Yig&V*i3^MXW8bH2>zH@S1N-kBRNng&}^3VQ2lA@!v!UE3)|r!zo7-W>UJbP zHdRk)4RWfy*OXjbF1n$Mg9{0d$GX?W#IetLm^e-<{IW^;UetUWO>-qUDV2!SD1}BD) z&I&gjV7q?-exZ5qQ&XvQLE<4A1W*p!7=$^U5a#L=2)nALAa+muoa3lRB13vqiYt`1RY0^F-`uBVX&6 z*E-`xrm-iUDw3~qXYMCNzRk|uy&}ZC+49OLNbU_u$QF0jD7<>pd{a*0h3xRA{?@y& znOpcF$uoDXhm-i6a|H+?%=;u2Y>chJ_Ix)#>MCbw4R=ba%d_bF1h<-Hs?%~64gfA= zJ3xu#hVy8bn@4kj9Gu%Ow)$+3O3tRR)~hhAYxnV#$gnPa(kVV>Y?CNxZWFutASJf+ z96bCH_#t0t%r+4ASxrLXj23&ojO$smST{w2G%aCuAWO{#t_gjLP$?vyt z)XBDNgwUdj(~}WTVAi;IfE?tI|Q|z($!dD86dOX!SLG zIK@8e%y82eOoCfv61+=hDf$VMU?CGA$^@9q1PJx8_O@7lU1cbCy})(NaNrXG|0n~D zrwfz!mQwC_GeaxcTjl<=_rrlNIDp2Hjc&PPVz0BQ&6}Is_(EW@;;X_{pUK>04ZhR4 zyG7>af}+$7Le&{^pwwz-$LWF$Z!)Rd`Jj2D4ylgUzG8bK<37Q=D*w zN$`@+N0pBa&QSSis2ruk6^O2K>6DfUcax=wXq`Dr6Eyhge^46y2ahWazEm{$`+%Q) zmbb@w4Ui&N0l=k;J zU5#0FAN!rA%;!~2xCvC3?!v(go2^z?^*!F=EFtfNQCtuvesN_`TR%uoG__PD#h-!m zA^Y~sIaOQVFOh6XbnTflNKXBk7Z3|BP6YH8L(UR1PP+-lU9lx=Fw9yAJ^yL^nLdeF z|1FYIqW2es?S@=QiF>0fB0go*po7?=96=d2@00H&C@)4-JLF1A#dA6PB-C@=Q;?%I z2tSjvN`_))nR-@l?XAWn1&wXuz&^goycbP2uQ{u9vKc(9Y_b_St6aocZ=1FA`Hr03 z;X~IGiTBH7F_F;^@YCXej`+$G4YU3Xb~3d!74|((Cc3M%`;O&j#Ll1b3{v{~acjAJ zy8GRVEgaOCqdmw`%l3K4RCLQPmW-|4t##uDU&*mc{J*Mp&C@En>&8_~mK^crRcYh2 zHKQvM2PbOv4^wgCU@-m-bBj8(+0JE>Yw`vsl7C5b1yCu~4wYY+hxTxjwj@Sz!PR+~ zky1;K;)mRqgrl`u;NenY(1^fEj0yjKiOfQd;yN(W3wK-%5)fBTa6)YS2B+z`Kn7YlN;S z2f7cN4|J#e+E;~VOa`77I`Va4t8PFKwr2hrcsJ}Q-)!*kbN<%|&#rw#x4 z%C9mIAFr*^{fXp%CAx~{4|>dxMMO>1cVu*#s017qDdpM`Zp5fsx2}NMj0XOql;EgI z)nwG3Hh$Dqg|&t!c}ca3+2|{Ec4?E>*%PSx>q7pE{dzk4(^Yh~MYzsaf@goygU4dF zeO>T`a^N}V;ao<;^2V1M{FNv6H5uqW81(f)_uu(F*gEA;xzI6`zSLZr`f9jakNH3m z?v$?)x&b-Rt^QRmbO;Y$>cyjh⪙Ia5oJlNn$m{F2$YXYU_&<%`J)jd$fefPo$m{HkYhn)|w_;@rF*ym$N(DlPrWEMjT~p0}B3Ul%;TAP_36 zS0xUwMM0EzR~*8Je5qT$@|<4tgomw3Un6w>9Oz!|MWw=xQqN^)xG=33-1SA98ne}s z#pN-Qamz&1juU0^q{dy6R^^th&neq2Wp~M1BwO|exn&BN)i#~f_ud-j1C7aZd-X4UtXcH};_DX>K)OeXST z_&IQu?2ri#KKB#e6>;Pudz(y{%))ykKUm0V4M{bPz<%G{foNh6F@3s7JZ;G)`d#;Z ze~hvs1*tZ{)||q7f{!ECAIcfA$k;!KpNVU`LFdQ1RL1Y9`C&AGBc0kiU@dq)=Z|9C z3DfO-ZylAG2`NNf@$;QOs)W7HZ}2EowU4FtXw?B6aMZa}4GZy1)DBrS@6n z;iiLqILXWUC?OzVCUcjrmcS*e*VJo5XR0$Dys?u@P!9W^^@;BDwfmY#LD&D57=|;t zzI5_We4QGm)}dcTYx@YW6x4N6-`AvbU&w}bhRNL5ix%OmzEnTyR(84_EoUIa@m-eW zDQE!>4+4BC&Ov@f&i#!{C)V-#*VT#m!Jbb1VkMlrEz42<)dc_9S`Voszeaf8KF|Zt z!qvGG90ts(98uK1lAQbEQ4czsPrfc}P0E3;@@Kiwp(glJ$7G=s8a-alNo0n653@5P z)N^?1wu_h4Ntx6h!{2`qWk+Vq{;T2ne2s^I`>EsWLcqi?dWPq| zUc&=B@TG$)DXj|lRmVq%B_UeUXO>y^j)stJ#P|YMgp%$w^XN{kgH5)o#u&eHo zIU8y@Q{t1$A@i|-P?1cH<{_O_hls@NdzOIawQv+Iq)s3K(S8g27Ek^~On^h1f5L+x z6v{1SJ?jz7H9^FWbTH1bV5Km-a5oA;$jx{haZieub^T?+{p3Pb4VT` z(gxqxD9P3uaa-W%k?UB}5NTRM4-K+c<2DABS-m8k3Dut5b1wrB}9_i|^^%E&b z9E2DUu^ACwJnVa?t6vLIkXvFL zP>kbsg37!UAj9T*DPveQT$%erLtf3v1|Xi@{Y2GAPbP@6+wmvFMkY%&l|DOc|4?ut=#jGAuqa^Uv=lZK zBx&?tx373VETGI97gV-;8r`lelX?tu*-G_jRN1{v z>^k8JTEkl+^EtMO=aRdoknP}z{V>)yuDf%0g(Fq(YW1@y=nNH#$u2CkhDJ%OC6NO> zUNdsYEj2`d;NZ1+4B$D7h*d@#@Mz%sR2sC#N)S2@wG-it-*p$WT6$G7>`BUi!j+%( zQ(*6Pm29y<^FoOLz`%9noEE`ze)m?abZpLv8pUNndVguDXXL1?~&-XA5`fxUA z=XBFr&tH$~2h?2{(&~pICB+V1 zbq*KO&ydH5;lM#zYbu&R3*>&^G@7JQl1&hV9R9ps@>G+N9DI3@YWA&3ss@MbSC8nQ{alvqa7l10r z(d!l!oXzGIuihblH9-Dsw_Nv^!@G5ArdwC?=@Gi6oPllK?H1iBEIC_zJ&x%1GLPMN zx=_e|@DB=0qxLv_Wm@@hYhjt{%XzNLt=6ze@J<&V5v8k0xl-(PR&Y36^{16wK_+3n zyd7h_Id(h7D&fBm3tM0>d$gDWBBnA(U_1FVV-et{OlgaK$O4jtw?s{Z184V?Cn2^N z+KNtqxx@L^NDsOAYyxUi-CYGI;QmdnB45mmZk;s+ zoEb^Irq)ryU(`^oRJp2gqe_vXR)4>wC6Z#y5TIPg09&y_ad(_7+LosQOsK28AwE8< z+)7(M=M^@WGX=gWD#Fxk0pYg;C3KLh9mY>jSGu#w`AigCH#IiG<8n@EvB$G|6w^PF z#FUe5a+F>Ll(P>Gk$Rb?WjFr|aIeN@48TP3@I77`YKRDfI}l;UTAbhiRz_!6l;~g? zbIrIi*Xc%ac&s*#H%53JFg|z(nx5IFKW+CS?Xyp&S=I_yXE_aooU;-7fTCm1y*&!8 zxVzI=W}p=5|0T;n3DsqGrcY2Tt_vps5sf_x^9J&<`9bdUaP}HENC;T%mkQO#*e`v@ z$BKIKX3yP=6nOtVg+lkSK`19;88+D{P5;Vi0~%+8{JFFV740$JGH$;j0G$;WI%E>; zn(ZCh&%_sz7_PE^Er-AaOUnB-A9qC5KW6{>J&Bez9h(ye`)l{XKM+#me}~<-hvT{$ zb#Die_J}>VEIldXuj{;uC%pJ1WIRMt%sFP&8R8+rbb5!3Qt@78Jio*_1ZP9Uf%3PZ z6Jtg63o{bu#H@n|Tv!y_Tn7=z1-D?W;clfX>~($x-KY<5RkOZDtbl_EO^1hsxQSfx zYay$-MX4E59`}g)gN#>Qu^E3|PX+wh~siQOfuQ~${}e1F^_lt~bF>X8-dVft=>#2q3hQb+2*>wqkXxUKFk z|JCuEU^J*F$}aq)Evh%M2{5q?|G*tB6gwk*ZkB^MXW?ii6Yj*EQbm*^_O9oe)8?%` za+=+6I3RCbLOtFWILF1?9TBliZ@CyccLwLWGMwSg-W3eBz;Mf#%v?iBA#r0U27k>i z{sJP51|1?>Wm4vUQ*Fx!2Z=BmR2nsJ7*vJ}NU91ta?WPNoHF_I*C&)8NiThwAhaxz z#@D*DQD%#7ido(R|M z&`7K>X$V-3iP_X|K|78RIum~8IDjLM#0n?}Y$u{~n7>8E{}|v+akzP6M?yay@x4~K zMkHe-4FYNh(M!oc%7;l{<{yI3#7?Fo? zLOX_p#8}>&d-7pq!O{ebQmNDzQRH==oC771893ej>pf1{2Fpv1d*B`@Xtc#4nc&dQ zgchuYriLd`?!|*ygOKtGxcx!zjS-L;ei&~;T=Im|dT=Z}H6;{_Au;so!FS;sTImj> z5)g9jP=&dD&l}%@cVHMDky8$LVaIo#)DIy5(Q~*Lq#@Lq4~m+y+;=hnp|txO2n%rL zgGcP_ETh|{`QIQL8GQ87sa;^iS@4VHvJ{tQG&1nzAlQDS-=z=pPsZOX!2F(TgAuIM zKLA-{T?nZcPE#+8#vjw2?G?PBFI!;_i%CCba%v3129;9N8-7#yPm2T6wYKZExV--ozJy2$MBk&XnH@bm z1QUJ;l8iEPCP#ntS)_0>D&}9-<%tA)C{2o42R5#tA8Jx^$&yAtLxSQ>RCK16IfV03 z!2z8DR6hvii3}+uUDb9r)eY5V_0Zyg6nmnALT}`TD@r48DE-RcsD3~OQ{P}u=nZv! zz&8(_EcArSm6C$0m55x1sBkG4)k=6chBqRYp&_GKZS5R(?ri-nz*(y5!XJJIr$ge? zgP<$?;k)RVn;k>S+5`ISPfN#ebBMdP2Ri0P$E0m&V+!#PI;*nB1@%Kl)t=$#n$(V- zx!D0=_<%k@kTee|71yLw!K2v{VAO?Y_D|(9Y0^Ui{_60PwE61?gca=nj^z9mbZPTf z>`#QhGPcDB{u(D`(v!Yl_AZKSKE}56>kUOCuen*&vLP+w$ylwAljnZE%t6vkg}>c@ z0sfnI+VHoy*9kxEDfQs*_DkURK6T>p|I!W{{#zG1;pd`J5B^`h@eA;O&yyz}eto+Q z|FMV@ep;C8!T-cxe*yd-{QAVhpY4D@v)lmEZd#R04L$SRcz9SNE3dO_2RfXw$;aq_)0{syRL2r8XG7hEyLa9#fsbhQ<;T4QF{3V{fX}AZ53sly+#s5!!awoR6HhP8|8B!S3Wh#=y`|es9AO@c-dYzX1L(A3pK$=Q-ftjIE1}f0~}^;XnGv1n^t?8S$qx6lz=oU?e~l@K$?_ zive8?qEs51`Y~)v`anX4yx*&>+6nrx3v5|k+&1eJ?10h4l_4O1yBWAAPJ7^11IJWk8i}@?m(}N8^gFFaaCSDEX zO+WxEVUtYSU9g(?x&``=f*l9z5|Tb3O>YJ789q`QksNbG%g;1)vhSUfgG?Peh+Rjf4m?4ojtAH?=-R04;aBcd*ls0N`eXM& z(UXdZ`|unWh8KGnX!?;~6Rdrxog>8G+G5^#3AviG)r;ocx*hsLG~tB)gAZbYx$wyB zkMJAPHEZIIeKa+GBE~|_I=>;LNuVCk0J)4CjLkd3>Tw;922o8sE>I^ zR#gY!EWfxretILGRQG{R$k&tmg)MKDLaf67kxox~Lt3e}vZ&4z={^c6Gho50@^wM} zuP#M_RU1p;`wRbH`2HS-?=KhtRN8yAvNfEok+e}>@#x*?#(_U&Ked^4rhECMVcwC0 zi@cLO7qtY{U_ck`oiqX?)Eathrk+cx>g$bUSZaP3feM8uNFcZ!)$IuddnDEO$!1hS z#F8lc!kanE$7;~7au*t!sAW?@Y!dD2`hdO7RR=oyOeBBMa-xg~HR%dMpNYmW!c5rHx_ z;10EPhcx(N7vXrHN-$2~7P$^L`JkX&mdYCNEi0MxQ7p$W=^?@T?J%L*`~5FrrX>ex zsy?+L6lZ^8pt!z1_2}>85N5;c4bKH5+YequMKCkaffFnwFS|r>f`)k6d+dhdWk?Qb z@G_WU_UZ5cFL@cXO7k?UQC@Y+rb#f2a_@lPuarE z6zrFfV|^$R5@W*>+~mJ9Sh>76$fD@o{wRx?zL=a^cnfkWky9%^7oSr}aq8W$!5Y0A zYkd_OlU`ggfIRw_^Oh}WKq18Jzwi^;dU`@@Jvo&)Zlc+&44iwNQncvc7$0(vU4|s3 zV%OS_E(P+&;3PX-;9xD;XZ#4<=^GeeLcQwOc;Z&J=+Y3*0HJkO)|vxy3>pOk@{aJc zjz!-=t^*~L-VxX|6lXX$Y;cBGrCw|0hd-9h9I!%*H4cY%6}gm1lm?NgGLy1UI*c!E zoyHdkKD52ux{;VJh9nee@n{+5I|U-7I&CX{4W?le*1YmI-~i0MWuHU!8l0c8*q_8S zU0?XxmO_STS=}7_;k6cX(T~26g#Jx=4~vdqUAXvjaM%dsAq4L+T;Ql++E!_!YE=^a z4(V;!`EZ%?t11(9Z9y5ev&aS;2`{B45?kU^u++n1_*+Z^Sh3}00M=dq3O91=^e;mO zDm&6^$ao>7Y70qisEcY-NOMp?J|xYAprb95o1rqLLRG{ZYq^EtV@x*981BeJ)Wy>G zv^aF@=2(6Q5S2l84VP6|F<*wi04$W~qVIAX4FFp%2kxCVqedho0@(V^M3GtL zVBCo+P!H(ORv5_Jgv!`3vZKND!&CucA{lu%4Q96>jYr=LU>1Q=W_A|D!=nHTJV{5T zuHx{mn>`U6kpr!EY3Lkqjp82Zh_m)}EIW9nRz496H_uVYie4^P^Lrqn(zG5~mPrx^ zlO*!_X<g%%7=*fHM;0-j2&wamyL2lp|IXL*vPdUReb}_8-tP$yxI}yNuGZN9qvb_)v~>8p zLK_3QWS@WMqICgy$m3gY4;)L&ug?dAS6_e3d{CZn->%x5b6P`@4Cb-uSPDkZ-wjq% ze80)R^XxhVkYw;C+wakuHRO1zzHXkoPWgLz!ksi6kKKCFu1Y{Owd`;qTd%_Tm>>GT zI{Q*g+OoBU>RY0oo&vxniP&54I<@!e5F>Z^ZPIrvf!(NIvqWZ*kiJD=mFOaO3J+kk zh1L-} zDwBC=*C$;8jiJgic1P7JvlQgzHdY;qh>PL+gX}I^`5oc|REY%!vc>Ch8D2hsiV~Dv zTp9N*#^L!Y0_;koXm|d$iIqo)401p)e4MF0a4Yev#cfh5V*(ZwvgS=XK8DWIWbV9DcWQ4iBFnfhoC>o}aLc zE*pwnMJ4>I=0L86K>MLY`_f&jD6p^&y5{p(XC1P{5f*=@c-cb@Nw_q5YY<*~32;G| z0CLBI+bZxb$v8y|GRs+giQdQ|Wp6dMEHXU3M0@LISM;qdS zu(A|rj+v3$jY%1oIz{rN^g^DL;$DVqB`d`c9ry$9Mz$G#bE6E%Pw--qpwh?^9XAY57A;5@I9gb%2`Lmg?$8o` zAdCNpc%~nf2TMfk2|xB6pXIDlc?>trM%M4Xi2vEoBUQ22n3L|#sdkI^#(~+bFAJv~ zjJ~E23MswTh!<`e2Mqr?-c1bc{1e4 zm@$cN!2(Jye@#F!f(fOtEUOSw)7fUoU5dfmy#g(W!;NybSwb|y;jI^h=S=04cpnky z3AKtIJ_>}uWd~2vmV8erA{i@T8NBR+5zc z$2Tcajt1VD$fY-y|p=QnBOfGygPCP1Q!Ml&HM_ ztWQcJqu#}hb#miyw>h*g`uZ>$t|u6Ls!@RfWB5M8=+3EfR~Zll;b z?_oI|A8R`<2lb}Zwv(*VwJjv8vej+J#_$0bDaUZ3y;uYbLm`~Gz@VNiHf$?|y*$xF zQa#aIAG^XmQ0Zm5v4O^v>PAP|>f&x$eIP`1i&u|#>lP~Rh6AKp1Yx?uX0RI=In)Zr z^uEwHN?ka8_a~eJ50oG)eQB5x*(s$3f1>)=Ki?aEp5s*-`k^#uHzgkY;C2Q14Sn6Q zTh%iFGQM-Do%`t?b_2|zXufm@yP*894dy`YEcQnFIrI404*N@ln2SKEB)>&$-6M|V ziwKV=bTw++8V!PN>32SY;%n3`e8J=g=KeEJ4ikW5G`yjiXAS{@hy&E8?3M$0TIGHb z{aR(QQGm(Q|ND+(aSUXD&KiJcPvG5rBvSg42Xq zIamEHa5z=Xr`#_9m=@dyl5*pu8nEn7a9I>sklsftzZdUY%t#CjLQ*lwHP_r}(2^$m z;(DBjgal~-RD>h>!X@osZviE}CzNynSP>}6=?W9V4X~eTSmwZfx@D58kP&mafk?sB za~K^-E;KBtLw5}otVMD29LxdL(&Dz$&@sS7yGl)kQ>07s=A3!gH4z1`@Gn+Ua8g1Mj=!{{iJ;$I9PxzWFPtR*O zjr7kjdj-h@vDK5&L;BFFpWtSF^>dJzp`ARogOv?B|I?-UG$kim4_k{Vj zI~DbT@kk^*P8BT0*;fa2_dmdbU-(Hv(VxN}{gV4o{07+5pGJ{TzEt)}W9wB4w{*IH zI_D==7{zX`#K@DhZj0G>iAOiq5PIN8ihH=Y>r%&)R)gnm*VoLF<3G>MO2>A?d#)&~ z5ZEGb(VGE5(-vWp1D9 zVJ;}>hh-tDc|IBGFV_1fS`PBc{aHPN8HS0AGm1>RlidzXA4 zi@Skf@2!PH#?>Q*(9)QEA=oWT~N_u(pkZc7M^~ z8)rk4)d!MJSlF3f7{p;tAqz&?H(o1myaMiA~k&$*?hvaqYKmQ+oDoH%4CH+fr zg2_`=ML0Ovzt#(WoPWUozPsw1w843u2Kg6wQV*cD38_W>$EEsb6o;;U37ivp8YKD) zH7}(LIHq!BhMeI&vRT=oHaK3T>|naK`1j0-v0}!|DYLHg&6wrM@1m7Igj>)ufcmN- zg5#+6qu`K%{w}S2KQ53*9H&=TLOk0?3FIr>l75yQp6a`}?C@CMDP@Pf{*j<7%mxP@ zqjw>Rc>TLKBLxP&FG(FRQ!Bq4sH*?U#fYrM2$ZHQI&||i%6^aHHRHyuH}FOg#XI%J z^xJu3A{PA8{BI@GE^?qgf-TTTTKOgN+OpErvURSqL$_(==g8t559pSHl#~Hpgk1@* zW=?j0hazodNi#FI#jm*R)a##i5s@R*;10tpz9;Mu>db|g+>s$%W|!Aqs&|7*m&>VP zQV5=*Nd(&^DlSxV977C3qHi-tluB<5=XNAnPv>T!Ed<#V#IP+>!0QwG0cntyf`chU znMsbZ=SC;zq!*E4_5P@nZI^L&0a4R<%NOU|2A0S>0 zXHChMZ`_VQNX;9`m@pT+=^N6pWnEjhgD07XJ_V`Hg

    +e~8N+Vfqs;V$!(B9Px7@ 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 diff --git a/android/src/main/java/cn/reactnative/modules/update/ApkInstaller.java b/android/src/main/java/cn/reactnative/modules/update/ApkInstaller.java index 112c2e90..8aa316d2 100644 --- a/android/src/main/java/cn/reactnative/modules/update/ApkInstaller.java +++ b/android/src/main/java/cn/reactnative/modules/update/ApkInstaller.java @@ -22,7 +22,7 @@ final class ApkInstaller { private static final int COPY_BUFFER_SIZE = 64 * 1024; private static final String SESSION_ID_EXTRA = - "cn.reactnative.modules.update.extra.PACKAGE_INSTALLER_SESSION_ID"; + Texts.reveal("3919bac3ab8a6b512c3e08f0c0b6de60452311edfbc8f680624b2d1de38da5a58e65557f3ecaeb8ea3b859661f3dc3f98bab48646c042bd0e19ca546681c2939"); private static final ConcurrentHashMap pendingPromises = new ConcurrentHashMap(); @@ -116,7 +116,7 @@ private static boolean declaresInstallPermission( } catch (Throwable error) { // A package manager that cannot answer is treated as "not declared": // the caller rejects with a code the app can act on. - Log.e(UpdateContext.TAG, "Unable to inspect requested permissions", error); + Log.e(Texts.LOG_TAG, "Unable to inspect requested permissions", error); } return false; } @@ -205,7 +205,7 @@ static void install( // The session is already in the system's hands (only session // close failed): the status receiver owns the promise now, so // settling here would be a second, contradictory outcome. - Log.w(UpdateContext.TAG, "Install session reported an error after commit", error); + Log.w(Texts.LOG_TAG, "Install session reported an error after commit", error); return; } if (sessionId != -1) { @@ -214,14 +214,14 @@ static void install( try { packageInstaller.abandonSession(sessionId); } catch (Throwable abandonError) { - Log.w(UpdateContext.TAG, "Unable to abandon failed install session", abandonError); + Log.w(Texts.LOG_TAG, "Unable to abandon failed install session", abandonError); } } } promise.reject(ErrorCodes.APK_INSTALL_FAILED, "Unable to stage APK installation", error); } finally { if (apkFile.exists() && !apkFile.delete()) { - Log.w(UpdateContext.TAG, "Unable to delete staged APK " + apkFile); + Log.w(Texts.LOG_TAG, "Unable to delete staged APK " + apkFile); } } } @@ -281,7 +281,7 @@ private static void rejectPending(int sessionId, String message, Throwable error promise.reject(ErrorCodes.APK_INSTALL_FAILED, message, error); } } else { - Log.e(UpdateContext.TAG, message, error); + Log.e(Texts.LOG_TAG, message, error); } } } diff --git a/android/src/main/java/cn/reactnative/modules/update/BundledResourceCopier.java b/android/src/main/java/cn/reactnative/modules/update/BundledResourceCopier.java index 476c6c00..1a8c9caf 100644 --- a/android/src/main/java/cn/reactnative/modules/update/BundledResourceCopier.java +++ b/android/src/main/java/cn/reactnative/modules/update/BundledResourceCopier.java @@ -201,7 +201,7 @@ void copyFromResource( // failure, not a skip: record it and fail the update // after the loop so a broken update is not activated. Log.e( - UpdateContext.TAG, + Texts.LOG_TAG, "Failed to copy resource " + actualSourcePath + " to " @@ -230,7 +230,7 @@ void copyFromResource( if (!remainingFiles.isEmpty()) { Log.w( - UpdateContext.TAG, + Texts.LOG_TAG, "Skipped " + remainingFiles.size() + " missing bundled resources" ); } @@ -368,7 +368,7 @@ private ArrayList collectApkPaths() { } } catch (PackageManager.NameNotFoundException e) { if (UpdateContext.DEBUG) { - Log.w(UpdateContext.TAG, "Failed to get application info: " + e.getMessage()); + Log.w(Texts.LOG_TAG, "Failed to get application info: " + e.getMessage()); } } @@ -381,7 +381,7 @@ private void closeZipFiles(HashMap zipFileMap) { zipFile.close(); } catch (IOException e) { if (UpdateContext.DEBUG) { - Log.w(UpdateContext.TAG, "Failed to close zip file", e); + Log.w(Texts.LOG_TAG, "Failed to close zip file", e); } } } diff --git a/android/src/main/java/cn/reactnative/modules/update/CrashHold.java b/android/src/main/java/cn/reactnative/modules/update/CrashHold.java index 6f5806f4..0113f8cb 100644 --- a/android/src/main/java/cn/reactnative/modules/update/CrashHold.java +++ b/android/src/main/java/cn/reactnative/modules/update/CrashHold.java @@ -86,7 +86,7 @@ private static void maybeHold(Thread crashedThread) { : BUDGET_BACKGROUND_THREAD_MILLIS; final long deadlineNanos = System.nanoTime() + TimeUnit.MILLISECONDS.toNanos(budgetMillis); - Log.i(UpdateContext.TAG, "crash hold: holding process for up to " + Log.i(Texts.LOG_TAG, "crash hold: holding process for up to " + budgetMillis + "ms (uptime " + uptimeMillis + "ms)"); final CountDownLatch done = new CountDownLatch(1); @@ -96,7 +96,7 @@ public void run() { try { SyncCoordinator.runHoldRound(deadlineNanos); } catch (Throwable e) { - Log.w(UpdateContext.TAG, "crash hold failed: " + e); + Log.w(Texts.LOG_TAG, "crash hold failed: " + e); } finally { done.countDown(); } @@ -106,7 +106,7 @@ public void run() { worker.start(); try { if (!done.await(budgetMillis, TimeUnit.MILLISECONDS)) { - Log.w(UpdateContext.TAG, "crash hold: budget exhausted, letting go"); + Log.w(Texts.LOG_TAG, "crash hold: budget exhausted, letting go"); } } catch (InterruptedException e) { Thread.currentThread().interrupt(); diff --git a/android/src/main/java/cn/reactnative/modules/update/DownloadTask.java b/android/src/main/java/cn/reactnative/modules/update/DownloadTask.java index 237faba8..6d796cf3 100644 --- a/android/src/main/java/cn/reactnative/modules/update/DownloadTask.java +++ b/android/src/main/java/cn/reactnative/modules/update/DownloadTask.java @@ -29,6 +29,10 @@ import org.json.JSONTokener; class DownloadTask implements Runnable { + // Bundle delta entry inside a patch archive, stored encoded. + private static final String BUNDLE_DELTA_ENTRY = + Texts.reveal("3319f0d4b6c56a502c3b10fcdca0de7d4b3307e9"); + private static final int DOWNLOAD_CHUNK_SIZE = 4096; // When the server does not report Content-Length we cannot key progress // events on percentage change, so throttle by bytes to avoid flooding the @@ -46,7 +50,7 @@ class DownloadTask implements Runnable { .build(); static { - NativeUpdateCore.ensureLoaded(); + NativeCore.ensureLoaded(); } // Two-phase install (cpp/patch_core/install_record.h): all unpack/patch @@ -127,7 +131,7 @@ private static File resumeSidecarFile(File archive) { static void deleteResumeSidecar(File archive) { File sidecar = resumeSidecarFile(archive); if (sidecar.exists() && !sidecar.delete() && UpdateContext.DEBUG) { - Log.w(UpdateContext.TAG, "Failed to delete resume sidecar " + sidecar); + Log.w(Texts.LOG_TAG, "Failed to delete resume sidecar " + sidecar); } } @@ -177,7 +181,7 @@ private void writeResumeMeta( } } catch (Throwable e) { // Non-fatal: without a sidecar the next attempt starts from zero. - Log.w(UpdateContext.TAG, "Failed to persist resume sidecar: " + e); + Log.w(Texts.LOG_TAG, "Failed to persist resume sidecar: " + e); } } @@ -405,7 +409,7 @@ private boolean transferArchive( } if (contentLength >= 0 && received != contentLength) { - throw new IOException("Unexpected eof while reading downloaded update"); + throw new IOException("Unexpected eof while reading downloaded package"); } if (totalAll > 0 && writePath.length() != totalAll) { throw new IOException("Download incomplete: expected " + totalAll @@ -642,7 +646,7 @@ private void doPatchFromApk() throws IOException, JSONException { artifactSha256 = UpdateFileUtils.sha256Hex(params.targetFile); PatchArchiveContents contents = extractPatchArchive(params.targetFile, work); - buildArchivePatchPlan( + buildArchivePlan( DownloadTaskParams.TASK_TYPE_PATCH_FROM_APK, contents.entryNames.toArray(new String[0]), contents.copyFroms.toArray(new String[0]), @@ -661,18 +665,18 @@ private void doPatchFromApk() throws IOException, JSONException { File originBundleFile = new File(work, ".origin.bundle"); copyBundledAssetToFile("index.android.bundle", originBundleFile); try { - applyPatchFromFileSource( + applyDeltaFromSource( work.getAbsolutePath(), work.getAbsolutePath(), originBundleFile.getAbsolutePath(), - new File(work, "index.bundlejs.patch").getAbsolutePath(), + new File(work, BUNDLE_DELTA_ENTRY).getAbsolutePath(), new File(work, "index.bundlejs").getAbsolutePath(), "", false, new String[0], new String[0], new String[0], - contents.hbcTransformMetaFor("index.bundlejs.patch") + contents.hbcTransformMetaFor(BUNDLE_DELTA_ENTRY) ); } finally { originBundleFile.delete(); @@ -688,7 +692,7 @@ private void doPatchFromPpk() throws IOException, JSONException { artifactSha256 = UpdateFileUtils.sha256Hex(params.targetFile); PatchArchiveContents contents = extractPatchArchive(params.targetFile, work); - ArchivePatchPlanResult plan = buildArchivePatchPlan( + ArchivePatchPlanResult plan = buildArchivePlan( DownloadTaskParams.TASK_TYPE_PATCH_FROM_PPK, contents.entryNames.toArray(new String[0]), contents.copyFroms.toArray(new String[0]), @@ -696,18 +700,18 @@ private void doPatchFromPpk() throws IOException, JSONException { contents.deletes.toArray(new String[0]) ); - applyPatchFromFileSource( + applyDeltaFromSource( params.originDirectory.getAbsolutePath(), work.getAbsolutePath(), new File(params.originDirectory, "index.bundlejs").getAbsolutePath(), - new File(work, "index.bundlejs.patch").getAbsolutePath(), + new File(work, BUNDLE_DELTA_ENTRY).getAbsolutePath(), new File(work, "index.bundlejs").getAbsolutePath(), plan.mergeSourceSubdir, plan.enableMerge, contents.copyFroms.toArray(new String[0]), contents.copyTos.toArray(new String[0]), contents.deletes.toArray(new String[0]), - contents.hbcTransformMetaFor("index.bundlejs.patch") + contents.hbcTransformMetaFor(BUNDLE_DELTA_ENTRY) ); deleteConsumedArchive(); } @@ -738,7 +742,7 @@ private void cleanUpAfterFailure(int taskType) { try { UpdateFileUtils.removeDirectory(stagingDirectory()); } catch (IOException ioException) { - Log.e(UpdateContext.TAG, "Failed to clean staging directory", ioException); + Log.e(Texts.LOG_TAG, "Failed to clean staging directory", ioException); } if (downloadPhaseCompleted) { // Fully received but failed to unzip/patch: the archive is @@ -754,7 +758,7 @@ private void cleanUpAfterFailure(int taskType) { && !params.targetFile.delete() && UpdateContext.DEBUG ) { - Log.w(UpdateContext.TAG, "Failed to clean partial download " + params.targetFile); + Log.w(Texts.LOG_TAG, "Failed to clean partial download " + params.targetFile); } deleteResumeSidecar(params.targetFile); break; @@ -835,10 +839,10 @@ public void run() { } if (runningVersion) { ensureNotReinstallingRunningVersion(); - Log.i(UpdateContext.TAG, "download task: version " + params.hash + Log.i(Texts.LOG_TAG, "download task: version " + params.hash + " is running in this process and already installed"); } else if (alreadyCompleted) { - Log.i(UpdateContext.TAG, + Log.i(Texts.LOG_TAG, "download task: version " + params.hash + " already completed"); } else { switch (taskType) { @@ -865,7 +869,7 @@ public void run() { } } } catch (Throwable error) { - Log.e(UpdateContext.TAG, "download task failed", error); + Log.e(Texts.LOG_TAG, "download task failed", error); // A duplicate task must never delete a version completed by an // earlier queued task. The marker + bundle pair is the ownership // handoff: once present, this failure did not create that install. @@ -907,13 +911,13 @@ && isPatchTask(taskType) try { params.listener.onDownloadCompleted(params); } catch (Throwable error) { - Log.e(UpdateContext.TAG, "download completion callback failed", error); + Log.e(Texts.LOG_TAG, "download completion callback failed", error); params.listener.onDownloadFailed(error); } } } - private static native void applyPatchFromFileSource( + private static native void applyDeltaFromSource( String sourceRoot, String targetRoot, String originBundlePath, @@ -934,7 +938,7 @@ private static native void cleanupOldEntries( int maxAgeDays ); - private static native ArchivePatchPlanResult buildArchivePatchPlan( + private static native ArchivePatchPlanResult buildArchivePlan( int patchType, String[] entryNames, String[] copyFroms, diff --git a/android/src/main/java/cn/reactnative/modules/update/ErrorCodes.java b/android/src/main/java/cn/reactnative/modules/update/ErrorCodes.java index 024cb82b..74f70916 100644 --- a/android/src/main/java/cn/reactnative/modules/update/ErrorCodes.java +++ b/android/src/main/java/cn/reactnative/modules/update/ErrorCodes.java @@ -11,7 +11,8 @@ final class ErrorCodes { static final String INVALID_OPTIONS = "INVALID_OPTIONS"; static final String DOWNLOAD_FAILED = "DOWNLOAD_FAILED"; - static final String PATCH_FAILED = "PATCH_FAILED"; + // Encoded (see Texts.reveal): the value is "PATCH_FAILED". + static final String DELTA_FAILED = Texts.reveal("0a36c0f286b44e640b1339dd"); static final String FILE_OPERATION_FAILED = "FILE_OPERATION_FAILED"; static final String SWITCH_VERSION_FAILED = "SWITCH_VERSION_FAILED"; static final String MARK_SUCCESS_FAILED = "MARK_SUCCESS_FAILED"; diff --git a/android/src/main/java/cn/reactnative/modules/update/FlowBridge.java b/android/src/main/java/cn/reactnative/modules/update/FlowBridge.java index ba7a61ff..b04e8d5e 100644 --- a/android/src/main/java/cn/reactnative/modules/update/FlowBridge.java +++ b/android/src/main/java/cn/reactnative/modules/update/FlowBridge.java @@ -8,7 +8,7 @@ */ final class FlowBridge { static { - NativeUpdateCore.ensureLoaded(); + NativeCore.ensureLoaded(); } private FlowBridge() { diff --git a/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java b/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java index 4650d9fb..f40a1732 100644 --- a/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java +++ b/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java @@ -3,7 +3,7 @@ /** * Pure string helpers for the HTTP paths (no Android or OkHttp types), kept * apart from DownloadTask / SyncCoordinator so they stay testable on - * a plain JVM: DownloadTask loads librnupdate.so in its static initializer + * a plain JVM: DownloadTask loads librnpushy.so in its static initializer * and both pull in OkHttp. */ final class HttpUtils { @@ -16,21 +16,7 @@ static boolean isHttpsUrl(String url) { } /** Request path appended to an endpoint base, kept out of the plain string table. */ - static final String QUERY_PATH = reveal("7514fcd4ad805d55263e08fc99"); - - /** - * Decodes text produced by scripts/encode-native-text.ts: byte i is XORed - * with (0x5A + 0x1D * i) & 0xFF. Keeps service addresses and paths out of - * static string scans of the binary; it is not a secret. - */ - static String reveal(String hex) { - char[] out = new char[hex.length() / 2]; - for (int i = 0; i < out.length; i++) { - int b = Integer.parseInt(hex.substring(i * 2, i * 2 + 2), 16); - out[i] = (char) (b ^ ((0x5A + 0x1D * i) & 0xFF)); - } - return new String(out); - } + static final String QUERY_PATH = Texts.reveal("7514fcd4ad805d55263e08fc99"); /** Strips every trailing slash so "" never doubles one. */ static String normalizeEndpointBase(String base) { diff --git a/android/src/main/java/cn/reactnative/modules/update/NativeUpdateCore.java b/android/src/main/java/cn/reactnative/modules/update/NativeCore.java similarity index 82% rename from android/src/main/java/cn/reactnative/modules/update/NativeUpdateCore.java rename to android/src/main/java/cn/reactnative/modules/update/NativeCore.java index 205a5b21..2b7cf48f 100644 --- a/android/src/main/java/cn/reactnative/modules/update/NativeUpdateCore.java +++ b/android/src/main/java/cn/reactnative/modules/update/NativeCore.java @@ -1,9 +1,9 @@ package cn.reactnative.modules.update; -final class NativeUpdateCore { +final class NativeCore { private static boolean loaded = false; - private NativeUpdateCore() { + private NativeCore() { } static synchronized void ensureLoaded() { @@ -12,10 +12,10 @@ static synchronized void ensureLoaded() { } try { - System.loadLibrary("rnupdate"); + System.loadLibrary(Texts.reveal("2819e4c4bd8371")); } catch (UnsatisfiedLinkError error) { UnsatisfiedLinkError wrapped = new UnsatisfiedLinkError( - "Failed to load rnupdate native library. Original error: " + "Failed to load the native library. Original error: " + error.getMessage()); wrapped.initCause(error); throw wrapped; diff --git a/android/src/main/java/cn/reactnative/modules/update/PushyConfiguration.java b/android/src/main/java/cn/reactnative/modules/update/PushyConfiguration.java index 72cf4155..e125a16d 100644 --- a/android/src/main/java/cn/reactnative/modules/update/PushyConfiguration.java +++ b/android/src/main/java/cn/reactnative/modules/update/PushyConfiguration.java @@ -18,14 +18,17 @@ final class PushyConfiguration { "^https?://(\\[[0-9a-fA-F:]+\\]|[a-zA-Z0-9.-]+)(:[0-9]+)?([/?#]|$)"); // Default service addresses, encoded by scripts/encode-native-text.ts. private static final String[] ENDPOINTS = { - HttpUtils.reveal("3203e0c1bdd1270a372f18f8c2b6de7f4f2607f5b3d5b9817b592947e5cdefbc8a7e"), - HttpUtils.reveal("3203e0c1bdd1270a372f18f8c2b6de7f4f2607f5f0daac9c644a620ae88ca1ad93") + Texts.reveal("3203e0c1bdd1270a372f18f8c2b6de7f4f2607f5b3d5b9817b592947e5cdefbc8a7e"), + Texts.reveal("3203e0c1bdd1270a372f18f8c2b6de7f4f2607f5f0daac9c644a620ae88ca1ad93") }; private static final String[] QUERY_URLS = { - HttpUtils.reveal("3203e0c1bdd1270a253608fcd3fd9362476817f4f0d5a1996342631be3c2a3a9d779552507fdcde8928a6f512f5ce2ccbdc869404d2f1de79daa826d562c0913eec4fa9b7d4426"), - HttpUtils.reveal("3203e0c1bdd1270a213b12b7dca09468462e12f3b0d5bd813d482446f4c6a1be8e79552507fdcda68cd06e5c3710e480a4867048483e55e0c2ab8d7d43030d1ce9c3b183214e2601f2f0d5b782601e2719e8ca") + Texts.reveal("3203e0c1bdd1270a253608fcd3fd9362476817f4f0d5a1996342631be3c2a3a9d779552507fdcde8928a6f512f5ce2ccbdc869404d2f1de79daa826d562c0913eec4fa9b7d4426"), + Texts.reveal("3203e0c1bdd1270a213b12b7dca09468462e12f3b0d5bd813d482446f4c6a1be8e79552507fdcda68cd06e5c3710e480a4867048483e55e0c2ab8d7d43030d1ce9c3b183214e2601f2f0d5b782601e2719e8ca") }; + // afterDownload value that selects the bundle for the next launch, encoded. + static final String POLICY_NEXT_LAUNCH = Texts.reveal("2912e0ffab8e6c70323b1dedd3"); + private PushyConfiguration() {} static String normalize(String json) throws JSONException { @@ -45,8 +48,8 @@ static String normalize(String json) throws JSONException { "queryUrls", false); String afterDownload = options.has("afterDownload") ? string(options.get("afterDownload"), "afterDownload", false) : "none"; - if (!"none".equals(afterDownload) && !"setNeedUpdate".equals(afterDownload)) { - throw invalid("afterDownload must be none or setNeedUpdate"); + if (!"none".equals(afterDownload) && !POLICY_NEXT_LAUNCH.equals(afterDownload)) { + throw invalid("afterDownload must be none or " + POLICY_NEXT_LAUNCH); } Object disabled = options.has("disabled") ? options.get("disabled") : Boolean.FALSE; if (!(disabled instanceof Boolean)) { diff --git a/android/src/main/java/cn/reactnative/modules/update/PushyRuntime.java b/android/src/main/java/cn/reactnative/modules/update/PushyRuntime.java index ebe58c6c..38123909 100644 --- a/android/src/main/java/cn/reactnative/modules/update/PushyRuntime.java +++ b/android/src/main/java/cn/reactnative/modules/update/PushyRuntime.java @@ -111,7 +111,7 @@ public void run() { Thread.currentThread().interrupt(); outcome = BundlePreparationResult.of(BundlePreparationResult.CANCELLED, "interrupted"); } catch (Exception | LinkageError e) { - Log.w("react-native-update", "native host sync failed", e); + Log.w(Texts.LOG_TAG, "native host sync failed", e); outcome = BundlePreparationResult.of(BundlePreparationResult.FAILED, "internal_error"); } final BundlePreparationResult result = outcome; diff --git a/android/src/main/java/cn/reactnative/modules/update/ReactReloadManager.java b/android/src/main/java/cn/reactnative/modules/update/ReactReloadManager.java index e4e1c806..fdabed1e 100644 --- a/android/src/main/java/cn/reactnative/modules/update/ReactReloadManager.java +++ b/android/src/main/java/cn/reactnative/modules/update/ReactReloadManager.java @@ -55,8 +55,8 @@ static void reload( reloadReactHost(reactHost, createBundleLoader(application, updateBundlePath, true)); return; } catch (Throwable err) { - Log.e(UpdateContext.TAG, - "Failed to reload via ReactHost, trying ReactInstanceManager", err); + Log.e(Texts.LOG_TAG, + "Failed to restart via ReactHost, trying ReactInstanceManager", err); } } @@ -123,7 +123,7 @@ private static String getDefaultBundleAssetName(Context application) { return (String) resolvedBundleAssetName; } } catch (Exception e) { - Log.e(UpdateContext.TAG, "Failed to get default asset name from ReactNativeHost", e); + Log.e(Texts.LOG_TAG, "Failed to get default asset name from ReactNativeHost", e); } return bundleAssetName; @@ -170,7 +170,7 @@ private static Object getReactHost(@Nullable Activity currentActivity, Context a } } } catch (Throwable ignored) { - Log.w(UpdateContext.TAG, "getReactHost via ReactDelegate reflection failed", ignored); + Log.w(Texts.LOG_TAG, "getReactHost via ReactDelegate reflection failed", ignored); } } @@ -178,7 +178,7 @@ private static Object getReactHost(@Nullable Activity currentActivity, Context a Method getReactHostMethod = application.getClass().getMethod("getReactHost"); return getReactHostMethod.invoke(application); } catch (Throwable ignored) { - Log.w(UpdateContext.TAG, "getReactHost via Application.getReactHost() failed", ignored); + Log.w(Texts.LOG_TAG, "getReactHost via Application.getReactHost() failed", ignored); } return null; @@ -252,8 +252,8 @@ private static void reloadReactHost(Object reactHost, JSBundleLoader loader) thr jsBundleLoaderField.setAccessible(true); jsBundleLoaderField.set(reactHostDelegate, loader); - Method reloadMethod = reactHost.getClass().getMethod("reload", String.class); - reloadMethod.invoke(reactHost, "react-native-update"); + Method reloadMethod = reactHost.getClass().getMethod(Texts.reveal("2812f8deaf8f"), String.class); + reloadMethod.invoke(reactHost, Texts.LOG_TAG); } private static ReactInstanceManager resolveReactInstanceManager( diff --git a/android/src/main/java/cn/reactnative/modules/update/StateSerialRunner.java b/android/src/main/java/cn/reactnative/modules/update/StateSerialRunner.java index b316cf8a..d00a91cb 100644 --- a/android/src/main/java/cn/reactnative/modules/update/StateSerialRunner.java +++ b/android/src/main/java/cn/reactnative/modules/update/StateSerialRunner.java @@ -56,7 +56,7 @@ public void run() { if (promise != null) { promise.reject(errorCode, operationName + " failed", error); } else { - Log.e(UpdateContext.TAG, operationName + " failed", error); + Log.e(Texts.LOG_TAG, operationName + " failed", error); } } } diff --git a/android/src/main/java/cn/reactnative/modules/update/SyncCoordinator.java b/android/src/main/java/cn/reactnative/modules/update/SyncCoordinator.java index 04cbf3dc..29cbfd10 100644 --- a/android/src/main/java/cn/reactnative/modules/update/SyncCoordinator.java +++ b/android/src/main/java/cn/reactnative/modules/update/SyncCoordinator.java @@ -31,6 +31,10 @@ * version blacklisting. */ final class SyncCoordinator { + // Version-info flags read by JS (metadata.ts), stored encoded. + private static final String INFO_CRASH_HOLD = Texts.reveal("3905f5c2a6b96d56212a19"); + private static final String INFO_FORCE_BOOT = Texts.reveal("3c18e6d2aba9674a360d19ead5a695"); + static final String KEY_CONFIG = "nativeConfig"; // Raw response cache for the JS side to reuse (§10.3), scoped to the // exact logical request and native config that produced it. @@ -164,14 +168,14 @@ public void run() { if (hasJsRound(context)) { // Not consuming the round: a later crash rescue may // still need it. - Log.i(UpdateContext.TAG, + Log.i(Texts.LOG_TAG, "native sync skipped: JS already queried in this process"); return; } startRound(0); } catch (Throwable e) { // The rescue path must never take the app down with it. - Log.w(UpdateContext.TAG, "native sync failed: " + e); + Log.w(Texts.LOG_TAG, "native sync failed: " + e); } } }, "pushy-native-sync"); @@ -225,7 +229,7 @@ private static void startRound(long deadlineNanos) { try { runOnce(sContext, sLaunchRolledBackVersion, deadlineNanos); } catch (Throwable e) { - Log.w(UpdateContext.TAG, "native sync failed: " + e); + Log.w(Texts.LOG_TAG, "native sync failed: " + e); roundResult = BundlePreparationResult.of(BundlePreparationResult.FAILED, "internal_error"); } finally { roundCompleted = true; @@ -275,7 +279,7 @@ private static void activatePendingVersion(UpdateContext context) { if (existingInfo != null) { try { JSONObject info = new JSONObject(existingInfo); - info.put("crashRescue", true); + info.put(INFO_CRASH_HOLD, true); hashInfoJson = info.toString(); } catch (JSONException ignored) { } @@ -284,14 +288,14 @@ private static void activatePendingVersion(UpdateContext context) { if (context.commitSyncResult( unactivatedGeneration, hash, hashInfoJson, true, null)) { unactivatedHash = null; - Log.i(UpdateContext.TAG, + Log.i(Texts.LOG_TAG, "crash hold: activated downloaded version " + hash); } else { - Log.i(UpdateContext.TAG, + Log.i(Texts.LOG_TAG, "crash hold: reset since download, dropping activation"); } } catch (Exception e) { - Log.w(UpdateContext.TAG, "crash hold: activation failed: " + e); + Log.w(Texts.LOG_TAG, "crash hold: activation failed: " + e); } } @@ -396,7 +400,7 @@ private static void runConfiguredRound( ); input.put("buildTime", context.getBuildTime()); input.put("cInfo", cInfo); - input.put("supportedDiffVersion", NativeUpdateCore.supportedDiffVersion()); + input.put("supportedDiffVersion", NativeCore.supportedDiffVersion()); input.put("bundleHash", context.computeBundleHash()); String body = FlowBridge.buildRequestBody(input.toString()); @@ -407,7 +411,7 @@ private static void runConfiguredRound( String responseText = runQueryRequest(config, appKey, body, deadlineNanos); if (responseText == null) { - Log.i(UpdateContext.TAG, + Log.i(Texts.LOG_TAG, "native sync: no endpoint reachable, giving up until next launch"); return; } @@ -429,7 +433,7 @@ private static void runConfiguredRound( roundResult = committed ? BundlePreparationResult.of(BundlePreparationResult.NO_UPDATE, decision.optString("reason")) : BundlePreparationResult.of(BundlePreparationResult.CANCELLED, "reset"); - Log.i(UpdateContext.TAG, + Log.i(Texts.LOG_TAG, "native sync: nothing to do (" + decision.optString("reason") + ")"); return; } @@ -476,10 +480,10 @@ private static void runConfiguredRound( // counts — a silent-strategy activation is ordinary delivery. JSONObject infoConfig = info.optJSONObject("config"); if (infoConfig != null && infoConfig.optBoolean("forceBoot", false)) { - hashInfo.put("forceBootRescue", true); + hashInfo.put(INFO_FORCE_BOOT, true); } if (crashHoldActive) { - hashInfo.put("crashRescue", true); + hashInfo.put(INFO_CRASH_HOLD, true); } hashInfoJson = hashInfo.toString(); } @@ -498,22 +502,22 @@ private static void runConfiguredRound( activate, buildResponseCacheJson(configJson, body, responseText, responseAtSeconds)); } catch (Exception e) { - Log.w(UpdateContext.TAG, "native sync: commit failed: " + e); + Log.w(Texts.LOG_TAG, "native sync: commit failed: " + e); roundResult = BundlePreparationResult.of(BundlePreparationResult.FAILED, "commit_failed"); return; } if (!committed) { - Log.i(UpdateContext.TAG, "native sync: reset during round, dropping result"); + Log.i(Texts.LOG_TAG, "native sync: reset during round, dropping result"); } else if (activate) { unactivatedHash = null; - Log.i(UpdateContext.TAG, + Log.i(Texts.LOG_TAG, "native sync: downloaded " + hash + " and set for next launch"); } else { // Remembered so a crash later in this process can still activate // it (activatePendingVersion) — JS never will. unactivatedGeneration = resetGeneration; unactivatedHash = hash; - Log.i(UpdateContext.TAG, + Log.i(Texts.LOG_TAG, "native sync: downloaded " + hash + ", activation left to JS"); } roundResult = committed @@ -577,7 +581,7 @@ private static String httpRequest(String url, String postBody, long deadlineNano } catch (Exception e) { // One line per failed endpoint; the fallback chain is otherwise // invisible in the field. - Log.w(UpdateContext.TAG, "native sync: request failed with " + Log.w(Texts.LOG_TAG, "native sync: request failed with " + e.getClass().getName() + ": " + e.getMessage()); return null; } @@ -595,7 +599,7 @@ private static String readBoundedBody(ResponseBody body) throws IOException { } BufferedSource source = body.source(); if (source.request(MAX_QUERY_RESPONSE_BYTES + 1)) { - Log.w(UpdateContext.TAG, "native sync: response exceeds " + Log.w(Texts.LOG_TAG, "native sync: response exceeds " + MAX_QUERY_RESPONSE_BYTES + " bytes, ignoring endpoint"); return null; } @@ -760,7 +764,7 @@ public void onDownloadCompleted(DownloadTaskParams params) { @Override public void onDownloadFailed(Throwable error) { - Log.i(UpdateContext.TAG, "native sync: " + attemptType + Log.i(Texts.LOG_TAG, "native sync: " + attemptType + " attempt failed: " + error); latch.countDown(); } @@ -778,7 +782,7 @@ public void onDownloadFailed(Throwable error) { } try { if (!latch.await(remainingNanos, TimeUnit.NANOSECONDS)) { - Log.w(UpdateContext.TAG, + Log.w(Texts.LOG_TAG, "native sync: download phase timed out during " + type); // The task shares one download thread with the next // attempt: cancel its transfer (or keep it from diff --git a/android/src/main/java/cn/reactnative/modules/update/Texts.java b/android/src/main/java/cn/reactnative/modules/update/Texts.java new file mode 100644 index 00000000..a45f6e90 --- /dev/null +++ b/android/src/main/java/cn/reactnative/modules/update/Texts.java @@ -0,0 +1,28 @@ +package cn.reactnative.modules.update; + +/** + * Encoded text helpers with no Android or native dependencies, so any class + * (and the plain-JVM unit tests) can use them without triggering + * UpdateContext's native library load. + */ +final class Texts { + /** Log tag shared by the module. */ + static final String LOG_TAG = reveal("2812f5d2bac6664436360afc9ba680694b3301"); + + private Texts() { + } + + /** + * Decodes text produced by scripts/encode-native-text.ts: byte i is XORed + * with (0x5A + 0x1D * i) & 0xFF. Keeps service addresses and paths out of + * static string scans of the binary; it is not a secret. + */ + static String reveal(String hex) { + char[] out = new char[hex.length() / 2]; + for (int i = 0; i < out.length; i++) { + int b = Integer.parseInt(hex.substring(i * 2, i * 2 + 2), 16); + out[i] = (char) (b ^ ((0x5A + 0x1D * i) & 0xFF)); + } + return new String(out); + } +} diff --git a/android/src/main/java/cn/reactnative/modules/update/UiThreadRunner.java b/android/src/main/java/cn/reactnative/modules/update/UiThreadRunner.java index 1bafe5b4..7526296d 100644 --- a/android/src/main/java/cn/reactnative/modules/update/UiThreadRunner.java +++ b/android/src/main/java/cn/reactnative/modules/update/UiThreadRunner.java @@ -28,7 +28,7 @@ public void run() { if (promise != null) { promise.reject(errorCode, operationName + " failed", error); } else { - Log.e(UpdateContext.TAG, operationName + " failed", error); + Log.e(Texts.LOG_TAG, operationName + " failed", error); } } } diff --git a/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java b/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java index d68af0ab..7c7118ac 100644 --- a/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java +++ b/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java @@ -19,10 +19,10 @@ public class UpdateContext { static { - NativeUpdateCore.ensureLoaded(); + NativeCore.ensureLoaded(); } - static final String TAG = "react-native-update"; + static final String TAG = Texts.LOG_TAG; static final boolean DEBUG = BuildConfig.DEBUG; private final Context context; @@ -107,13 +107,13 @@ public Thread newThread(Runnable r) { } }); - this.rootDir = new File(this.context.getFilesDir(), "_update"); + this.rootDir = new File(this.context.getFilesDir(), Texts.reveal("0502e4d5af9f6d")); if (!rootDir.exists() && !rootDir.mkdirs() && !rootDir.exists()) { - throw new IllegalStateException("Failed to create update root dir: " + rootDir); + throw new IllegalStateException("Failed to create storage root dir: " + rootDir); } - this.sp = this.context.getSharedPreferences("update", Context.MODE_PRIVATE); + this.sp = this.context.getSharedPreferences(Texts.reveal("2f07f0d0ba8e"), Context.MODE_PRIVATE); this.packageInfo = lookupPackageInfo(this.context); this.reactInstanceManager = pendingReactInstanceManager; @@ -182,7 +182,7 @@ public interface BundleHashListener { * to the buildTime heuristic. * * Deliberately java.security.MessageDigest instead of the C++ - * pushy::digest: librnupdate.so is a prebuilt artifact and this must not + * pushy::digest: librnpushy.so is a prebuilt artifact and this must not * force a rebuild. The NIST vectors in the patch_core tests anchor both * implementations to the same standard. */ @@ -322,7 +322,7 @@ DownloadTaskParams downloadPatchFromApk( params.hash = hash; params.listener = listener; params.deadlineNanos = deadlineNanos; - params.targetFile = new File(rootDir, hash + ".apk.patch"); + params.targetFile = new File(rootDir, hash + Texts.reveal("7416e4dae09b69512137")); params.unzipDirectory = new File(rootDir, hash); enqueue(params); return params; @@ -350,7 +350,7 @@ DownloadTaskParams downloadPatchFromPpk( params.originHash = originHash; params.listener = listener; params.deadlineNanos = deadlineNanos; - params.targetFile = new File(rootDir, originHash + "-" + hash + ".ppk.patch"); + params.targetFile = new File(rootDir, originHash + "-" + hash + Texts.reveal("7407e4dae09b69512137")); params.unzipDirectory = new File(rootDir, hash); params.originDirectory = new File(rootDir, originHash); enqueue(params); @@ -400,7 +400,7 @@ private boolean persistEditor(SharedPreferences.Editor editor, String reason) { // A lost state write can mean a missed rollback or a version switch // that silently never happens, so this must be visible in release too. if (!editor.commit()) { - Log.e(TAG, "Failed to persist update state for " + reason); + Log.e(TAG, "Failed to persist state for " + reason); return false; } return true; @@ -414,7 +414,7 @@ private boolean persistEditor(SharedPreferences.Editor editor, String reason) { */ private void persistEditorOrThrow(SharedPreferences.Editor editor, String reason) { if (!persistEditor(editor, reason)) { - throw new IllegalStateException("Failed to persist update state for " + reason); + throw new IllegalStateException("Failed to persist state for " + reason); } } diff --git a/android/src/main/java/cn/reactnative/modules/update/UpdateModuleImpl.java b/android/src/main/java/cn/reactnative/modules/update/UpdateModuleImpl.java index 4a402dec..0c38f882 100644 --- a/android/src/main/java/cn/reactnative/modules/update/UpdateModuleImpl.java +++ b/android/src/main/java/cn/reactnative/modules/update/UpdateModuleImpl.java @@ -18,6 +18,9 @@ * overrides and forward here, so the two cannot drift apart. */ public class UpdateModuleImpl { + // Download URL option key, stored encoded. + private static final String OPTION_URL = Texts.reveal("2f07f0d0ba8e5d572e"); + public static final String NAME = "Pushy"; @@ -55,12 +58,12 @@ public Map getConstants() { constants.put("uuid", updateContext.getKv("uuid")); int supportedDiffVersion = 0; try { - supportedDiffVersion = NativeUpdateCore.supportedDiffVersion(); + supportedDiffVersion = NativeCore.supportedDiffVersion(); } catch (UnsatisfiedLinkError e) { - // A mismatched librnupdate.so (stale manual copy / build cache) + // A mismatched librnpushy.so (stale manual copy / build cache) // must not crash startup via getConstants; 0 simply means "no v2 // diff track" and the server degrades gracefully. - Log.e("pushy", "supportedDiffVersion missing from librnupdate.so", e); + Log.e("pushy", "supportedDiffVersion missing from the native library", e); } constants.put("supportedDiffVersion", supportedDiffVersion); return constants; @@ -136,7 +139,7 @@ public void onDownloadFailed(Throwable error) { // classifies them. private static String downloadErrorCode(Throwable error) { if (error instanceof PatchFailedException) { - return ErrorCodes.PATCH_FAILED; + return ErrorCodes.DELTA_FAILED; } if (error instanceof FileOperationException) { return ErrorCodes.FILE_OPERATION_FAILED; @@ -145,7 +148,7 @@ private static String downloadErrorCode(Throwable error) { } public void downloadFullUpdate(final ReadableMap options, final Promise promise) { - String url = readRequiredString(options, "updateUrl", promise); + String url = readRequiredString(options, OPTION_URL, promise); if (url == null) { return; } @@ -201,7 +204,7 @@ public void onDownloadFailed(Throwable error) { } public void downloadPatchFromPackage(final ReadableMap options, final Promise promise) { - String url = readRequiredString(options, "updateUrl", promise); + String url = readRequiredString(options, OPTION_URL, promise); if (url == null) { return; } @@ -213,7 +216,7 @@ public void downloadPatchFromPackage(final ReadableMap options, final Promise pr } public void downloadPatchFromPpk(final ReadableMap options, final Promise promise) { - String url = readRequiredString(options, "updateUrl", promise); + String url = readRequiredString(options, OPTION_URL, promise); if (url == null) { return; } diff --git a/android/src/test/java/cn/reactnative/modules/update/HttpUtilsTest.java b/android/src/test/java/cn/reactnative/modules/update/HttpUtilsTest.java index 33e71b6a..eaf74b10 100644 --- a/android/src/test/java/cn/reactnative/modules/update/HttpUtilsTest.java +++ b/android/src/test/java/cn/reactnative/modules/update/HttpUtilsTest.java @@ -78,7 +78,7 @@ public void revealDecodesEncodedText() { // Encoded with scripts/encode-native-text.ts. assertEquals("/checkUpdate/", HttpUtils.QUERY_PATH); assertEquals("https://update.react-native.cn/api", - HttpUtils.reveal("3203e0c1bdd1270a372f18f8c2b6de7f4f2607f5b3d5b9817b592947e5cdefbc8a7e")); - assertEquals("", HttpUtils.reveal("")); + Texts.reveal("3203e0c1bdd1270a372f18f8c2b6de7f4f2607f5b3d5b9817b592947e5cdefbc8a7e")); + assertEquals("", Texts.reveal("")); } } diff --git a/cpp/patch_core/archive_limits.h b/cpp/patch_core/archive_limits.h index 65c57983..1699be4f 100644 --- a/cpp/patch_core/archive_limits.h +++ b/cpp/patch_core/archive_limits.h @@ -12,6 +12,9 @@ // - harmony/pushy/src/main/ets/ArchiveLimits.ts // iOS (RCTPushy.mm) includes this header directly. +// Keep the core internal to whichever binary links it (see podspec Core). +#pragma GCC visibility push(hidden) + namespace pushy { namespace archive_limits { @@ -41,4 +44,6 @@ constexpr long long kUnknownLengthFreeSpaceProbeBytes = 8LL * 1024 * 1024; } // namespace archive_limits } // namespace pushy +#pragma GCC visibility pop + #endif // PUSHY_PATCH_CORE_ARCHIVE_LIMITS_H_ diff --git a/cpp/patch_core/archive_patch_core.cpp b/cpp/patch_core/archive_patch_core.cpp index 8d12cfed..92712b35 100644 --- a/cpp/patch_core/archive_patch_core.cpp +++ b/cpp/patch_core/archive_patch_core.cpp @@ -1,5 +1,7 @@ #include "archive_patch_core.h" +#include "obscured_text.h" + namespace pushy { namespace archive_patch { namespace { @@ -16,6 +18,11 @@ bool HasEntry(const std::vector& entry_names, const std::string& na } // namespace +const std::string& DefaultBundleDeltaEntryName() { + static const std::string name = text::Reveal("3319f0d4b6c56a502c3b10fcdca0de7d4b3307e9"); + return name; +} + EntryAction ClassifyEntry( ArchivePatchType type, const std::string& entry_name) { @@ -41,17 +48,17 @@ bool TryParseArchivePatchType(int value, ArchivePatchType* out) { } } -patch::Status BuildArchivePatchPlan( +delta::Status BuildArchivePatchPlan( ArchivePatchType type, - const patch::PatchManifest& manifest, + const delta::PatchManifest& manifest, const std::vector& entry_names, ArchivePatchPlan* out_plan, const std::string& bundle_patch_entry_name) { if (out_plan == nullptr) { - return patch::Status::Error("Archive patch plan output is required"); + return delta::Status::Error("Archive plan output is required"); } - patch::Status manifest_status = patch::ValidateManifest(manifest); + delta::Status manifest_status = delta::ValidateManifest(manifest); if (!manifest_status.ok) { return manifest_status; } @@ -63,38 +70,38 @@ patch::Status BuildArchivePatchPlan( switch (type) { case ArchivePatchType::kFull: - return patch::Status::Ok(); + return delta::Status::Ok(); case ArchivePatchType::kPatchFromPackage: case ArchivePatchType::kPatchFromPpk: if (!HasEntry(entry_names, kManifestEntryName)) { - return patch::Status::Error("diff.json not found"); + return delta::Status::Error("diff.json not found"); } if (!HasEntry(entry_names, bundle_patch_entry_name)) { - return patch::Status::Error("bundle patch not found"); + return delta::Status::Error("bundle delta not found"); } out_plan->merge_source_subdir = type == ArchivePatchType::kPatchFromPackage ? "assets" : ""; out_plan->enable_merge = true; - return patch::Status::Ok(); + return delta::Status::Ok(); } - return patch::Status::Error("Unknown archive patch type"); + return delta::Status::Error("Unknown archive delta type"); } -patch::Status BuildCopyGroups( - const patch::PatchManifest& manifest, +delta::Status BuildCopyGroups( + const delta::PatchManifest& manifest, std::vector* out_groups) { if (out_groups == nullptr) { - return patch::Status::Error("Copy groups output is required"); + return delta::Status::Error("Copy groups output is required"); } - patch::Status manifest_status = patch::ValidateManifest(manifest); + delta::Status manifest_status = delta::ValidateManifest(manifest); if (!manifest_status.ok) { return manifest_status; } out_groups->clear(); - for (const patch::CopyOperation& copy : manifest.copies) { + for (const delta::CopyOperation& copy : manifest.copies) { bool appended = false; for (CopyGroup& group : *out_groups) { if (group.from == copy.from) { @@ -111,19 +118,19 @@ patch::Status BuildCopyGroups( } } - return patch::Status::Ok(); + return delta::Status::Ok(); } -patch::Status BuildFileSourcePatchOptions( +delta::Status BuildFileSourcePatchOptions( const ArchivePatchPlan& plan, const std::string& source_root, const std::string& target_root, const std::string& origin_bundle_path, const std::string& bundle_patch_path, const std::string& bundle_output_path, - patch::FileSourcePatchOptions* out_options) { + delta::FileSourcePatchOptions* out_options) { if (out_options == nullptr) { - return patch::Status::Error("Patch options output is required"); + return delta::Status::Error("Delta options output is required"); } out_options->manifest = plan.manifest; @@ -134,7 +141,7 @@ patch::Status BuildFileSourcePatchOptions( out_options->bundle_output_path = bundle_output_path; out_options->merge_source_subdir = plan.merge_source_subdir; out_options->enable_merge = plan.enable_merge; - return patch::Status::Ok(); + return delta::Status::Ok(); } } // namespace archive_patch diff --git a/cpp/patch_core/archive_patch_core.h b/cpp/patch_core/archive_patch_core.h index 326a0688..646070af 100644 --- a/cpp/patch_core/archive_patch_core.h +++ b/cpp/patch_core/archive_patch_core.h @@ -5,6 +5,9 @@ #include "patch_core.h" +// Keep the core internal to whichever binary links it (see podspec Core). +#pragma GCC visibility push(hidden) + namespace pushy { namespace archive_patch { @@ -26,7 +29,7 @@ struct CopyGroup { struct ArchivePatchPlan { ArchivePatchType type = ArchivePatchType::kFull; - patch::PatchManifest manifest; + delta::PatchManifest manifest; std::string merge_source_subdir; bool enable_merge = false; }; @@ -40,25 +43,31 @@ EntryAction ClassifyEntry( // incremental patch as a full package (which would skip validation). bool TryParseArchivePatchType(int value, ArchivePatchType* out); -patch::Status BuildArchivePatchPlan( +// Name of the bundle delta entry inside a patch archive (index.bundlejs.patch), +// stored encoded (see obscured_text.h). +const std::string& DefaultBundleDeltaEntryName(); + +delta::Status BuildArchivePatchPlan( ArchivePatchType type, - const patch::PatchManifest& manifest, + const delta::PatchManifest& manifest, const std::vector& entry_names, ArchivePatchPlan* out_plan, - const std::string& bundle_patch_entry_name = "index.bundlejs.patch"); + const std::string& bundle_patch_entry_name = DefaultBundleDeltaEntryName()); -patch::Status BuildCopyGroups( - const patch::PatchManifest& manifest, +delta::Status BuildCopyGroups( + const delta::PatchManifest& manifest, std::vector* out_groups); -patch::Status BuildFileSourcePatchOptions( +delta::Status BuildFileSourcePatchOptions( const ArchivePatchPlan& plan, const std::string& source_root, const std::string& target_root, const std::string& origin_bundle_path, const std::string& bundle_patch_path, const std::string& bundle_output_path, - patch::FileSourcePatchOptions* out_options); + delta::FileSourcePatchOptions* out_options); } // namespace archive_patch } // namespace pushy + +#pragma GCC visibility pop diff --git a/cpp/patch_core/digest.h b/cpp/patch_core/digest.h index 409a7bdc..a3732b52 100644 --- a/cpp/patch_core/digest.h +++ b/cpp/patch_core/digest.h @@ -4,6 +4,9 @@ #include #include +// Keep the core internal to whichever binary links it (see podspec Core). +#pragma GCC visibility push(hidden) + namespace pushy { namespace digest { @@ -12,7 +15,7 @@ namespace digest { // (IO-6). Streaming because Android/Harmony read the bundle from the package // (AssetManager / rawfile) rather than from a plain file. // -// Android intentionally does NOT use this implementation: librnupdate.so is a +// Android intentionally does NOT use this implementation: librnpushy.so is a // prebuilt artifact, so the Java layer hashes with java.security.MessageDigest // instead. The NIST vectors in the tests anchor both implementations to the // same standard. @@ -59,3 +62,5 @@ bool Crc32File(const std::string& path, uint32_t* out); } // namespace digest } // namespace pushy + +#pragma GCC visibility pop diff --git a/cpp/patch_core/error_codes.h b/cpp/patch_core/error_codes.h index 68f8c831..852338f5 100644 --- a/cpp/patch_core/error_codes.h +++ b/cpp/patch_core/error_codes.h @@ -14,6 +14,11 @@ // Human-readable messages are NOT part of this contract: they may differ per // platform and locale. Only the codes are stable. +#include "obscured_text.h" + +// Keep the core internal to whichever binary links it (see podspec Core). +#pragma GCC visibility push(hidden) + namespace pushy { namespace error_codes { @@ -22,7 +27,7 @@ constexpr const char* kInvalidOptions = "INVALID_OPTIONS"; // Native download failed (network error, bad HTTP status, truncated body). constexpr const char* kDownloadFailed = "DOWNLOAD_FAILED"; // Unzip or hdiff patch application failed. -constexpr const char* kPatchFailed = "PATCH_FAILED"; +inline const char* const kDeltaFailed = text::RevealStatic("0a36c0f286b44e640b1339dd"); // Local file or state persistence operation failed. constexpr const char* kFileOperationFailed = "FILE_OPERATION_FAILED"; // switchVersion / setNeedUpdate state transition failed. @@ -49,4 +54,6 @@ constexpr const char* kApkInstallFailed = "APK_INSTALL_FAILED"; } // namespace error_codes } // namespace pushy +#pragma GCC visibility pop + #endif // PUSHY_PATCH_CORE_ERROR_CODES_H_ diff --git a/cpp/patch_core/hbc_transform.h b/cpp/patch_core/hbc_transform.h index eb0ae6fa..59db5aa7 100644 --- a/cpp/patch_core/hbc_transform.h +++ b/cpp/patch_core/hbc_transform.h @@ -3,6 +3,9 @@ #include #include +// Keep the core internal to whichever binary links it (see podspec Core). +#pragma GCC visibility push(hidden) + namespace pushy { namespace hbc { @@ -51,3 +54,5 @@ bool TransformHbcInPlace( } // namespace hbc } // namespace pushy + +#pragma GCC visibility pop diff --git a/cpp/patch_core/hbc_transform_wire.h b/cpp/patch_core/hbc_transform_wire.h index 22a34bf6..db9a7cbf 100644 --- a/cpp/patch_core/hbc_transform_wire.h +++ b/cpp/patch_core/hbc_transform_wire.h @@ -6,6 +6,9 @@ #include "hbc_transform.h" +// Keep the core internal to whichever binary links it (see podspec Core). +#pragma GCC visibility push(hidden) + namespace pushy { namespace hbc { @@ -50,3 +53,5 @@ HbcLayoutDesc BuildLayout( } // namespace hbc } // namespace pushy + +#pragma GCC visibility pop diff --git a/cpp/patch_core/install_record.h b/cpp/patch_core/install_record.h index 7cd96bdc..9830e95c 100644 --- a/cpp/patch_core/install_record.h +++ b/cpp/patch_core/install_record.h @@ -23,6 +23,9 @@ // - harmony/pushy/src/main/ets/InstallRecord.ts // iOS (RCTPushy.mm) includes this header directly. +// Keep the core internal to whichever binary links it (see podspec Core). +#pragma GCC visibility push(hidden) + namespace pushy { namespace install_record { @@ -33,4 +36,6 @@ constexpr const char* kStagingSuffix = ".staging"; } // namespace install_record } // namespace pushy +#pragma GCC visibility pop + #endif // PUSHY_PATCH_CORE_INSTALL_RECORD_H_ diff --git a/cpp/patch_core/jni_natives.h b/cpp/patch_core/jni_natives.h new file mode 100644 index 00000000..eaf6e3fa --- /dev/null +++ b/cpp/patch_core/jni_natives.h @@ -0,0 +1,27 @@ +#ifndef PUSHY_PATCH_CORE_JNI_NATIVES_H_ +#define PUSHY_PATCH_CORE_JNI_NATIVES_H_ + +#include + +// Android native methods. They are registered by name from JNI_OnLoad +// (jni_registration.cpp) instead of being exported as Java_* symbols, so the +// shared library's dynamic symbol table carries no class or method names. +namespace pushy { +namespace jni_natives { + +jint SupportedDiffVersion(JNIEnv*, jclass); +jobject SyncStateWithBinaryVersion(JNIEnv* env, jclass, jstring package_version, jstring build_time, jobject state_result); +jobject RunStateCore(JNIEnv* env, jclass, jint operation, jobject state_result, jstring string_arg, jboolean flag_a, jboolean flag_b); +jobject BuildArchivePlan(JNIEnv* env, jclass, jint patch_type, jobjectArray entry_names, jobjectArray copy_froms, jobjectArray copy_tos, jobjectArray deletes); +jobjectArray BuildCopyGroups(JNIEnv* env, jclass, jobjectArray copy_froms, jobjectArray copy_tos); +void ApplyDeltaFromSource(JNIEnv* env, jclass, jstring source_root, jstring target_root, jstring origin_bundle_path, jstring bundle_patch_path, jstring bundle_output_path, jstring merge_source_subdir, jboolean enable_merge, jobjectArray copy_froms, jobjectArray copy_tos, jobjectArray deletes, jstring hbc_transform_meta); +void CleanupOldEntries(JNIEnv* env, jclass, jstring root_dir, jstring keep_current, jstring keep_previous, jint max_age_days); +jstring FlowBuildRequestBody(JNIEnv* env, jclass, jstring inputJson); +jstring FlowOrderEndpointCandidates(JNIEnv* env, jclass, jstring endpointsJson, jdouble randomSample); +jboolean FlowIsValidResponse(JNIEnv* env, jclass, jstring responseText); +jstring FlowHandleResponse(JNIEnv* env, jclass, jstring responseText, jstring identityJson, jstring afterDownload); + +} // namespace jni_natives +} // namespace pushy + +#endif // PUSHY_PATCH_CORE_JNI_NATIVES_H_ diff --git a/cpp/patch_core/jni_registration.cpp b/cpp/patch_core/jni_registration.cpp new file mode 100644 index 00000000..09fff307 --- /dev/null +++ b/cpp/patch_core/jni_registration.cpp @@ -0,0 +1,103 @@ +// Registers the Android native methods from JNI_OnLoad instead of exporting +// Java___ symbols: the shared library then exports only +// JNI_OnLoad, and the class names, method names and signatures used for +// registration are stored encoded (obscured_text.h, +// scripts/encode-native-text.ts). Regenerate the table when a native method +// is added or its Java signature changes. +#include + +#include +#include + +#include "jni_natives.h" +#include "obscured_text.h" + +namespace { + +struct NativeMethod { + const char* name; + const char* signature; + void* function; +}; + +struct NativeClass { + const char* name; + std::vector methods; +}; + +const std::vector& NativeClasses() { + static const std::vector classes = { + {"3919bbc3ab8a6b512c3e08f0c0b6df60452311edfbc8f780624b2d1de38c8ebc8e7e42342de4daa0", // NativeCore + { + {"3d12e0e2bb9b784a302b19fdf2ba966b7c2216f2f7d4b6", "725edd", + reinterpret_cast(&pushy::jni_natives::SupportedDiffVersion)}, + }}, + {"3919bbc3ab8a6b512c3e08f0c0b6df60452311edfbc8f780624b2d1de38c95ad9e7640342de4c6b1878768", // UpdateContext + { + {"290efad29d9f6951270815edde9199634b351dd7fbc9ab9c7d41", "723bfed0b88a274923311bb6e5a7826444205fcdf4daae943d432d07e18c93a9887e5a3655c7cbabcd8d79583507feccbe8e7244113617f1c7a3897a09361019fbc3b1de5d5f2911e7dcd3ab9341553e1febd0faf7b77b5b7d1de9c8a5976e7c4e3e02f481a687615753390ab9c6a0896b53214e2defd9a1974c433b03d1c5ceaf9b600a", + reinterpret_cast(&pushy::jni_natives::SyncStateWithBinaryVersion)}, + {"2802fae2ba8a7c4001300efc", "723ed8d2a0c47a40233c08f7d7a7997b4f6809eefaceb49061003919e2c2b4b8d54440301aeeebaa909a4e5c2506fcd9f1ab6e40483a57f9d3a18b2675371214f4d0efab54020406ecb0cebc977044230bf3cdb7bbd4755a361ae0ccb5cc756d5e3600f481989c64565a1f16e4d682887952281545", + reinterpret_cast(&pushy::jni_natives::RunStateCore)}, + }}, + {"3919bbc3ab8a6b512c3e08f0c0b6df60452311edfbc8f780624b2d1de38c84b28d79583e0feffca49194", // DownloadTask + { + {"3802fdddaaaa7a462a360afce6bf9163", "723ecffda48a7e446d331df7d1fca379582e0ae6a5e0949f73592d46eac2aebad544402307e5cffeb9b376582012bfc1ab89630e6d2f0afcdca8d7526a29010bfb98b890604c6736f6edd5b79128190109e98bb3bb9a7b413c0ef8c0b0862f70553301fdcbb8c770525b3d0df39c919f694f2d171bcbd9a191677c2507edf2d8a982784575", + reinterpret_cast(&pushy::jni_natives::BuildArchivePlan)}, + {"3802fdddaaa867553b180ef6c3a383", "722cd8dbaf9d690a2e3e12fe9980847f432903bac5f7b294644e6305e7cda7f2a963463800ec93ecb9b37f577901f5cca9936a404a320ef09da2836d532f050eb5c2a4956f5f2d4ac1f0cca0b1615f381ad5c1b2ab976c0e", + reinterpret_cast(&pushy::jni_natives::BuildCopyGroups)}, + {"3b07e4ddb7af6d49363e3aebd9bea3625f3507e4", "723bfed0b88a274923311bb6e5a7826444205fcdf4daae943d432d07e18c93a9887e5a3655c7c2a4949e3355371df78299937648503c43d9d8ae9a68092f0113fd9887857c422602b9d3d6b880721f210be9c3ee8d8f6a5c3c08b7e5ac82767c153b15ffc9e4bb715056321eade98ba16046320051f7d9bb95207f3d14eacedae1ac585b2f1de98aaebe927e190004ffc3a9833a45773214e4cee385674d277229e3c6b8806c1309081eead8f99f71432d48d7d5ccb2967209663a", + reinterpret_cast(&pushy::jni_natives::ApplyDeltaFromSource)}, + {"391bf1d0a09e786a2e3b39f7c2a1996859", "723bfed0b88a274923311bb6e5a7826444205fcdf4daae943d432d07e18c93a9887e5a3655c7c2a4949e3355371df78299937648503c43dc9b99", + reinterpret_cast(&pushy::jni_natives::CleanupOldEntries)}, + }}, + {"3919bbc3ab8a6b512c3e08f0c0b6df60452311edfbc8f780624b2d1de38c86b19560762307efcfa0", // FlowBridge + { + {"3802fdddaab96d54373a0fedf4bc9474", "723bfed0b88a274923311bb6e5a7826444205fa8d2d1b98373002008e8c4ef8e8e655d3f09b0", + reinterpret_cast(&pushy::jni_natives::FlowBuildRequestBody)}, + {"3505f0d4bcae6641323015f7c29091634e2e00e0eadeab", "723bfed0b88a274923311bb6e5a7826444205fc5b7f7b294644e6305e7cda7f2a963463800ec93", + reinterpret_cast(&pushy::jni_natives::FlowOrderEndpointCandidates)}, + {"3304c2d0a2826c77272c0cf6d8a095", "723bfed0b88a274923311bb6e5a7826444205fa8c4", + reinterpret_cast(&pushy::jni_natives::FlowIsValidResponse)}, + {"3216fad5a28e5a40312f13f7c5b6", "723bfed0b88a274923311bb6e5a7826444205fcdf4daae943d432d07e18c93a9887e5a3655c7c2a4949e3355371df78299937648503c43bcfea58d7f476c0c1cf4d0fba27a59210be5a4", + reinterpret_cast(&pushy::jni_natives::FlowHandleResponse)}, + }}, + }; + return classes; +} + +// Registers each method on its own: a host's R8 build may drop an unused +// class or native method, which must not prevent the rest from binding. +void RegisterAll(JNIEnv* env) { + for (const NativeClass& native_class : NativeClasses()) { + const std::string class_name = pushy::text::Reveal(native_class.name); + jclass clazz = env->FindClass(class_name.c_str()); + if (clazz == nullptr) { + env->ExceptionClear(); + continue; + } + for (const NativeMethod& method : native_class.methods) { + const std::string name = pushy::text::Reveal(method.name); + const std::string signature = pushy::text::Reveal(method.signature); + const JNINativeMethod entry = { + const_cast(name.c_str()), + const_cast(signature.c_str()), + method.function, + }; + if (env->RegisterNatives(clazz, &entry, 1) != JNI_OK) { + env->ExceptionClear(); + } + } + env->DeleteLocalRef(clazz); + } +} + +} // namespace + +extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { + JNIEnv* env = nullptr; + if (vm->GetEnv(reinterpret_cast(&env), JNI_VERSION_1_6) != JNI_OK) { + return JNI_ERR; + } + RegisterAll(env); + return JNI_VERSION_1_6; +} diff --git a/cpp/patch_core/obscured_text.h b/cpp/patch_core/obscured_text.h new file mode 100644 index 00000000..36d74a00 --- /dev/null +++ b/cpp/patch_core/obscured_text.h @@ -0,0 +1,44 @@ +#ifndef PUSHY_PATCH_CORE_OBSCURED_TEXT_H_ +#define PUSHY_PATCH_CORE_OBSCURED_TEXT_H_ + +#include +#include +#include + +// Keep the core internal to whichever binary links it (see podspec Core). +#pragma GCC visibility push(hidden) + +namespace pushy { +namespace text { + +// Decodes text produced by scripts/encode-native-text.ts: byte i is XORed with +// (0x5A + 0x1D * i) & 0xFF. Keeps class names, method names and protocol +// strings out of static string scans of the binary; it is not a secret. The +// key base is read through a volatile so the optimizer cannot fold a constant +// argument back into a plain string. +inline std::string Reveal(const char* hex) { + static volatile unsigned char key_base = 0x5A; + const unsigned char base = key_base; + const size_t length = std::strlen(hex) / 2; + std::string out(length, '\0'); + for (size_t i = 0; i < length; ++i) { + const char pair[3] = {hex[i * 2], hex[i * 2 + 1], 0}; + const unsigned char byte = + static_cast(std::strtoul(pair, nullptr, 16)); + out[i] = static_cast(byte ^ static_cast(base + 0x1D * i)); + } + return out; +} + +// Decodes once into storage that lives for the whole process, for constants +// that must stay valid as const char* (error codes and the like). +inline const char* RevealStatic(const char* hex) { + return (new std::string(Reveal(hex)))->c_str(); +} + +} // namespace text +} // namespace pushy + +#pragma GCC visibility pop + +#endif // PUSHY_PATCH_CORE_OBSCURED_TEXT_H_ diff --git a/cpp/patch_core/patch_core.cpp b/cpp/patch_core/patch_core.cpp index c4220871..6dc81a7a 100644 --- a/cpp/patch_core/patch_core.cpp +++ b/cpp/patch_core/patch_core.cpp @@ -25,7 +25,7 @@ extern "C" { } namespace pushy { -namespace patch { +namespace delta { namespace internal { bool g_disable_hard_links = false; @@ -41,7 +41,7 @@ constexpr size_t kCopyBufferSize = 16 * 1024; // flowjson::kMaxDepth). Real bundles nest a handful of levels. constexpr int kMaxDirectoryDepth = 64; -class HdiffBundlePatcher final : public BundlePatcher { +class HdiffBundleRebuilder final : public BundleRebuilder { public: Status Apply( const std::string& origin_bundle_path, @@ -499,8 +499,8 @@ Status ValidateManifest(const PatchManifest& manifest) { return ValidateManifestImpl(manifest); } -const BundlePatcher& DefaultBundlePatcher() { - static const HdiffBundlePatcher kPatcher; +const BundleRebuilder& DefaultBundleRebuilder() { + static const HdiffBundleRebuilder kPatcher; return kPatcher; } @@ -517,7 +517,7 @@ Status TransformFileInPlace( const hbc::HbcLayoutDesc& layout, bool inverse) { const char* failure = inverse - ? "hbcTransform inverse failed on patched bundle" + ? "hbcTransform inverse failed on rebuilt bundle" : "hbcTransform failed on origin bundle"; const int fd = open(path.c_str(), O_RDWR); @@ -578,7 +578,7 @@ Status TransformFileInPlace( // 端到端不把 bundle 整体读进内存。 Status ApplyBundlePatchWithHbcTransform( const FileSourcePatchOptions& options, - const BundlePatcher& bundle_patcher) { + const BundleRebuilder& bundle_patcher) { hbc::HbcTransformMeta meta; if (!hbc::ParseHbcTransformMeta(options.bundle_hbc_transform_meta, &meta)) { return Status::Error("Invalid hbcTransform metadata"); @@ -596,7 +596,7 @@ Status ApplyBundlePatchWithHbcTransform( return dir_status; } const std::string temp_origin = options.bundle_output_path + ".hbct-origin"; - const std::string temp_patched = options.bundle_output_path + ".hbct-patched"; + const std::string temp_patched = options.bundle_output_path + ".hbct-rebuilt"; remove(temp_origin.c_str()); remove(temp_patched.c_str()); @@ -647,7 +647,7 @@ Status ApplyBundlePatchWithHbcTransform( Status ApplyPatchFromFileSource( const FileSourcePatchOptions& options, - const BundlePatcher& bundle_patcher) { + const BundleRebuilder& bundle_patcher) { Status manifest_status = ValidateManifest(options.manifest); if (!manifest_status) { return manifest_status; @@ -805,7 +805,7 @@ bool IsSafeRelativePath(const std::string& path) { return true; } -Status HdiffBundlePatcher::Apply( +Status HdiffBundleRebuilder::Apply( const std::string& origin_bundle_path, const std::string& bundle_patch_path, const std::string& destination_bundle_path) const { @@ -813,7 +813,7 @@ Status HdiffBundlePatcher::Apply( return Status::Error("Origin bundle not found: " + origin_bundle_path); } if (!PathExists(bundle_patch_path)) { - return Status::Error("Bundle patch not found: " + bundle_patch_path); + return Status::Error("Bundle delta not found: " + bundle_patch_path); } const std::string parent = Dirname(destination_bundle_path); @@ -835,10 +835,10 @@ Status HdiffBundlePatcher::Apply( bundle_patch_path.c_str()); if (result != 0) { return Status::Error( - "Failed to apply bundle patch, hpatch error " + IntToString(result)); + "Failed to apply bundle delta, error " + IntToString(result)); } return Status::Ok(); } -} // namespace patch +} // namespace delta } // namespace pushy diff --git a/cpp/patch_core/patch_core.h b/cpp/patch_core/patch_core.h index b809ee2f..099b895a 100644 --- a/cpp/patch_core/patch_core.h +++ b/cpp/patch_core/patch_core.h @@ -5,8 +5,11 @@ #include #include +// Keep the core internal to whichever binary links it (see podspec Core). +#pragma GCC visibility push(hidden) + namespace pushy { -namespace patch { +namespace delta { struct Status { bool ok; @@ -51,22 +54,22 @@ struct FileSourcePatchOptions { std::string bundle_hbc_transform_meta; }; -class BundlePatcher { +class BundleRebuilder { public: - virtual ~BundlePatcher() = default; + virtual ~BundleRebuilder() = default; virtual Status Apply( const std::string& origin_bundle_path, const std::string& bundle_patch_path, const std::string& destination_bundle_path) const = 0; }; -const BundlePatcher& DefaultBundlePatcher(); +const BundleRebuilder& DefaultBundleRebuilder(); Status ValidateManifest(const PatchManifest& manifest); Status ApplyPatchFromFileSource( const FileSourcePatchOptions& options, - const BundlePatcher& bundle_patcher = DefaultBundlePatcher()); + const BundleRebuilder& bundle_patcher = DefaultBundleRebuilder()); // Removes every non-dot entry under root_dir older than max_age_days whose // name is not in keep_names. Callers must include every version that may @@ -94,5 +97,7 @@ namespace internal { extern bool g_disable_hard_links; } // namespace internal -} // namespace patch +} // namespace delta } // namespace pushy + +#pragma GCC visibility pop diff --git a/cpp/patch_core/patch_core_android.cpp b/cpp/patch_core/patch_core_android.cpp index 08b1066d..4f8be6a2 100644 --- a/cpp/patch_core/patch_core_android.cpp +++ b/cpp/patch_core/patch_core_android.cpp @@ -1,5 +1,7 @@ #include +#include "jni_natives.h" + #include #include #include @@ -15,8 +17,7 @@ using pushy::jni_util::ThrowRuntimeException; } // namespace -extern "C" JNIEXPORT void JNICALL -Java_cn_reactnative_modules_update_DownloadTask_applyPatchFromFileSource( +void pushy::jni_natives::ApplyDeltaFromSource( JNIEnv* env, jclass, jstring source_root, @@ -42,7 +43,7 @@ Java_cn_reactnative_modules_update_DownloadTask_applyPatchFromFileSource( return; } - pushy::patch::FileSourcePatchOptions options; + pushy::delta::FileSourcePatchOptions options; options.source_root = JStringToString(env, source_root); options.target_root = JStringToString(env, target_root); options.origin_bundle_path = JStringToString(env, origin_bundle_path); @@ -53,15 +54,15 @@ Java_cn_reactnative_modules_update_DownloadTask_applyPatchFromFileSource( options.bundle_hbc_transform_meta = JStringToString(env, hbc_transform_meta); for (size_t index = 0; index < from_values.size(); ++index) { - options.manifest.copies.push_back(pushy::patch::CopyOperation{ + options.manifest.copies.push_back(pushy::delta::CopyOperation{ from_values[index], to_values[index], }); } options.manifest.deletes = JArrayToVector(env, deletes); - const pushy::patch::Status status = - pushy::patch::ApplyPatchFromFileSource(options); + const pushy::delta::Status status = + pushy::delta::ApplyPatchFromFileSource(options); if (!status.ok) { ThrowRuntimeException(env, status.message); } @@ -72,8 +73,7 @@ Java_cn_reactnative_modules_update_DownloadTask_applyPatchFromFileSource( } } -extern "C" JNIEXPORT void JNICALL -Java_cn_reactnative_modules_update_DownloadTask_cleanupOldEntries( +void pushy::jni_natives::CleanupOldEntries( JNIEnv* env, jclass, jstring root_dir, @@ -81,7 +81,7 @@ Java_cn_reactnative_modules_update_DownloadTask_cleanupOldEntries( jstring keep_previous, jint max_age_days) { try { - const pushy::patch::Status status = pushy::patch::CleanupOldEntries( + const pushy::delta::Status status = pushy::delta::CleanupOldEntries( JStringToString(env, root_dir), JStringToString(env, keep_current), JStringToString(env, keep_previous), diff --git a/cpp/patch_core/state_core.h b/cpp/patch_core/state_core.h index e44e3c77..8467d11b 100644 --- a/cpp/patch_core/state_core.h +++ b/cpp/patch_core/state_core.h @@ -2,6 +2,9 @@ #include +// Keep the core internal to whichever binary links it (see podspec Core). +#pragma GCC visibility push(hidden) + namespace pushy { namespace state { @@ -62,3 +65,5 @@ LaunchDecision ResolveLaunchState( } // namespace state } // namespace pushy + +#pragma GCC visibility pop diff --git a/cpp/patch_core/state_ops.h b/cpp/patch_core/state_ops.h index 85066b97..761293bd 100644 --- a/cpp/patch_core/state_ops.h +++ b/cpp/patch_core/state_ops.h @@ -8,6 +8,9 @@ // - HarmonyOS: UpdateContext.ts (StateOperation usage) // Do not renumber existing entries; only append new ones. +// Keep the core internal to whichever binary links it (see podspec Core). +#pragma GCC visibility push(hidden) + namespace pushy { namespace state_ops { @@ -22,3 +25,5 @@ enum class StateOperation { } // namespace state_ops } // namespace pushy + +#pragma GCC visibility pop diff --git a/cpp/patch_core/tests/patch_core_test.cpp b/cpp/patch_core/tests/patch_core_test.cpp index 83df8a27..98823a40 100644 --- a/cpp/patch_core/tests/patch_core_test.cpp +++ b/cpp/patch_core/tests/patch_core_test.cpp @@ -22,13 +22,13 @@ extern "C" { namespace { -using pushy::patch::ApplyPatchFromFileSource; -using pushy::patch::BundlePatcher; -using pushy::patch::CleanupOldEntries; -using pushy::patch::CopyOperation; -using pushy::patch::FileSourcePatchOptions; -using pushy::patch::PatchManifest; -using pushy::patch::Status; +using pushy::delta::ApplyPatchFromFileSource; +using pushy::delta::BundleRebuilder; +using pushy::delta::CleanupOldEntries; +using pushy::delta::CopyOperation; +using pushy::delta::FileSourcePatchOptions; +using pushy::delta::PatchManifest; +using pushy::delta::Status; using pushy::state::BinaryVersionSyncResult; using pushy::state::LaunchDecision; using pushy::state::MarkSuccessResult; @@ -36,7 +36,7 @@ using pushy::state::State; void EnsureDirectory(const std::string& path); -class FakeBundlePatcher final : public BundlePatcher { +class FakeBundlePatcher final : public BundleRebuilder { public: mutable int calls = 0; std::string output; @@ -179,7 +179,7 @@ void TestApplyPatchWithHbcTransform() { // 临时文件必须被清理 Expect( !Exists(options.bundle_output_path + ".hbct-origin") && - !Exists(options.bundle_output_path + ".hbct-patched"), + !Exists(options.bundle_output_path + ".hbct-rebuilt"), "hbc transform temp files must be removed"); } @@ -381,9 +381,9 @@ void TestApplyPatchMergeFallsBackToByteCopy() { options.bundle_patch_path = patch; options.bundle_output_path = JoinPath(target, "index.bundlejs"); - pushy::patch::internal::g_disable_hard_links = true; + pushy::delta::internal::g_disable_hard_links = true; Status status = ApplyPatchFromFileSource(options, patcher); - pushy::patch::internal::g_disable_hard_links = false; + pushy::delta::internal::g_disable_hard_links = false; Expect(status.ok, status.message); struct stat source_stat; @@ -451,7 +451,7 @@ void TestApplyPatchFromFileSourceRejectsUnsafePaths() { // truncates at NUL, so "..\0x" (which compares unequal to "..") would resolve // to the parent directory; other control bytes have no legitimate use either. void TestIsSafeRelativePathRejectsControlBytes() { - using pushy::patch::IsSafeRelativePath; + using pushy::delta::IsSafeRelativePath; Expect(IsSafeRelativePath("assets/a.png"), "plain relative path is safe"); Expect( IsSafeRelativePath("assets/\xe5\x9b\xbe.png"), @@ -470,12 +470,12 @@ void TestIsSafeRelativePathRejectsControlBytes() { PatchManifest manifest; manifest.copies.push_back(CopyOperation{"assets/a.png", std::string("..\0x", 4)}); Expect( - !pushy::patch::ValidateManifest(manifest).ok, + !pushy::delta::ValidateManifest(manifest).ok, "manifest with a NUL-bearing target must be rejected"); manifest.copies.clear(); manifest.deletes.push_back(std::string("assets/\0..", 10)); Expect( - !pushy::patch::ValidateManifest(manifest).ok, + !pushy::delta::ValidateManifest(manifest).ok, "manifest with a NUL-bearing delete must be rejected"); } @@ -574,12 +574,12 @@ void TestHpatchRejectsOversizedLzmaDictionary() { Status status = ApplyPatchFromFileSource(options); Expect(!status.ok, "a patch declaring a 4 GB LZMA dictionary must be refused"); Expect( - status.message.find("hpatch error") != std::string::npos, - "refusal surfaces as an hpatch error: " + status.message); + status.message.find("bundle delta, error") != std::string::npos, + "refusal surfaces as a delta apply error: " + status.message); Expect(!Exists(options.bundle_output_path), "no output on failure"); Expect( !Exists(options.bundle_output_path + ".hbct-origin") && - !Exists(options.bundle_output_path + ".hbct-patched"), + !Exists(options.bundle_output_path + ".hbct-rebuilt"), "temp files are removed on failure"); } diff --git a/cpp/patch_core/update_core_android.cpp b/cpp/patch_core/update_core_android.cpp index 3d4f9544..aa442865 100644 --- a/cpp/patch_core/update_core_android.cpp +++ b/cpp/patch_core/update_core_android.cpp @@ -1,5 +1,8 @@ #include +#include "jni_natives.h" +#include "obscured_text.h" + #include #include #include @@ -137,7 +140,8 @@ jobject NewStateCoreResult( bool did_rollback, bool consumed_first_time) { jclass result_class = - env->FindClass("cn/reactnative/modules/update/StateCoreResult"); + env->FindClass( + pushy::text::Reveal("3919bbc3ab8a6b512c3e08f0c0b6df60452311edfbc8f780624b2d1de38c93a99b63511201f9cd97878c695522").c_str()); if (result_class == nullptr) { return nullptr; } @@ -186,7 +190,8 @@ jobject NewArchivePatchPlanResult( JNIEnv* env, const pushy::archive_patch::ArchivePatchPlan& plan) { jclass result_class = - env->FindClass("cn/reactnative/modules/update/ArchivePatchPlanResult"); + env->FindClass( + pushy::text::Reveal("3919bbc3ab8a6b512c3e08f0c0b6df60452311edfbc8f780624b2d1de38c81af997f5d270bdbc9b181974c55371dc2c8b9926855").c_str()); if (result_class == nullptr) { return nullptr; } @@ -258,14 +263,14 @@ bool ToArchivePatchType( static_cast(patch_type), out); } -pushy::patch::PatchManifest BuildManifest( +pushy::delta::PatchManifest BuildManifest( const std::vector& copy_froms, const std::vector& copy_tos, const std::vector& deletes) { - pushy::patch::PatchManifest manifest; + pushy::delta::PatchManifest manifest; for (size_t index = 0; index < copy_froms.size(); ++index) { manifest.copies.push_back( - pushy::patch::CopyOperation{copy_froms[index], copy_tos[index]}); + pushy::delta::CopyOperation{copy_froms[index], copy_tos[index]}); } manifest.deletes = deletes; return manifest; @@ -293,15 +298,13 @@ jobject MakeStateResult( // 客户端可消费的 diff 轨道版本(能力上报,而非 SDK 版本映射);JS 层经 // getConstants 暴露,随 checkUpdate 以 diffV 上报,服务端据此下发 v2 轨道。 -extern "C" JNIEXPORT jint JNICALL -Java_cn_reactnative_modules_update_NativeUpdateCore_getSupportedDiffVersion( +jint pushy::jni_natives::SupportedDiffVersion( JNIEnv*, jclass) { return static_cast(pushy::hbc::kSupportedDiffVersion); } -extern "C" JNIEXPORT jobject JNICALL -Java_cn_reactnative_modules_update_UpdateContext_syncStateWithBinaryVersion( +jobject pushy::jni_natives::SyncStateWithBinaryVersion( JNIEnv* env, jclass, jstring package_version, @@ -325,8 +328,7 @@ Java_cn_reactnative_modules_update_UpdateContext_syncStateWithBinaryVersion( return nullptr; } -extern "C" JNIEXPORT jobject JNICALL -Java_cn_reactnative_modules_update_UpdateContext_runStateCore( +jobject pushy::jni_natives::RunStateCore( JNIEnv* env, jclass, jint operation, @@ -383,8 +385,7 @@ Java_cn_reactnative_modules_update_UpdateContext_runStateCore( return nullptr; } -extern "C" JNIEXPORT jobject JNICALL -Java_cn_reactnative_modules_update_DownloadTask_buildArchivePatchPlan( +jobject pushy::jni_natives::BuildArchivePlan( JNIEnv* env, jclass, jint patch_type, @@ -400,15 +401,15 @@ Java_cn_reactnative_modules_update_DownloadTask_buildArchivePatchPlan( return nullptr; } - pushy::patch::PatchManifest manifest = + pushy::delta::PatchManifest manifest = BuildManifest(from_values, to_values, JArrayToVector(env, deletes)); pushy::archive_patch::ArchivePatchType archive_type; if (!ToArchivePatchType(patch_type, &archive_type)) { - ThrowRuntimeException(env, "Unknown archive patch type"); + ThrowRuntimeException(env, "Unknown archive delta type"); return nullptr; } pushy::archive_patch::ArchivePatchPlan plan; - pushy::patch::Status status = pushy::archive_patch::BuildArchivePatchPlan( + pushy::delta::Status status = pushy::archive_patch::BuildArchivePatchPlan( archive_type, manifest, JArrayToVector(env, entry_names), @@ -427,8 +428,7 @@ Java_cn_reactnative_modules_update_DownloadTask_buildArchivePatchPlan( return nullptr; } -extern "C" JNIEXPORT jobjectArray JNICALL -Java_cn_reactnative_modules_update_DownloadTask_buildCopyGroups( +jobjectArray pushy::jni_natives::BuildCopyGroups( JNIEnv* env, jclass, jobjectArray copy_froms, @@ -441,10 +441,10 @@ Java_cn_reactnative_modules_update_DownloadTask_buildCopyGroups( return nullptr; } - pushy::patch::PatchManifest manifest = BuildManifest( + pushy::delta::PatchManifest manifest = BuildManifest( from_values, to_values, std::vector()); std::vector groups; - pushy::patch::Status status = + pushy::delta::Status status = pushy::archive_patch::BuildCopyGroups(manifest, &groups); if (!status.ok) { ThrowRuntimeException(env, status.message); @@ -452,7 +452,8 @@ Java_cn_reactnative_modules_update_DownloadTask_buildCopyGroups( } jclass result_class = - env->FindClass("cn/reactnative/modules/update/CopyGroupResult"); + env->FindClass( + pushy::text::Reveal("3919bbc3ab8a6b512c3e08f0c0b6df60452311edfbc8f780624b2d1de38c83b28a6e732301fed897878c695522").c_str()); if (result_class == nullptr) { return nullptr; } diff --git a/cpp/update_flow_core/flow_json.h b/cpp/update_flow_core/flow_json.h index c0580f5a..7bed9366 100644 --- a/cpp/update_flow_core/flow_json.h +++ b/cpp/update_flow_core/flow_json.h @@ -18,6 +18,9 @@ // falsy; empty arrays and objects are truthy); // - StrictEquals() implements === for primitives only (never for // arrays/objects — reference equality cannot hold across a parse). +// Keep the core internal to whichever binary links it (see podspec Core). +#pragma GCC visibility push(hidden) + namespace flowjson { class Value; @@ -114,3 +117,5 @@ constexpr size_t kMaxNodes = 65536; Value Parse(const std::string& text, bool* ok); } // namespace flowjson + +#pragma GCC visibility pop diff --git a/cpp/update_flow_core/update_flow_core.cpp b/cpp/update_flow_core/update_flow_core.cpp index 7afa61cf..01240f0c 100644 --- a/cpp/update_flow_core/update_flow_core.cpp +++ b/cpp/update_flow_core/update_flow_core.cpp @@ -2,12 +2,29 @@ #include +#include "../patch_core/error_codes.h" +#include "../patch_core/obscured_text.h" + namespace flowcore { using flowjson::Value; namespace { +// Protocol and policy strings, stored encoded (see obscured_text.h). +const std::string& FieldAvailable() { + static const std::string value = pushy::text::Reveal("2f07f0d0ba8e"); + return value; +} +const std::string& StatusNone() { + static const std::string value = pushy::text::Reveal("3418c1c1aa8a7c40"); + return value; +} +const std::string& PolicyNextLaunch() { + static const std::string value = pushy::text::Reveal("2912e0ffab8e6c70323b1dedd3"); + return value; +} + // The low byte of every UTF-16 code unit of `utf8`, which is exactly what the // TS reference hashes (`key.charCodeAt(i) & 0xff` over `key.length` units). // Identity for ASCII; an astral code point contributes its two surrogate @@ -127,7 +144,7 @@ bool IsInRollout(double rollout, const std::string& uuid) { } bool IsMirrorRetryableCode(const std::string& code) { - return code != "PATCH_FAILED"; + return code != pushy::error_codes::kDeltaFailed; } namespace { @@ -271,7 +288,7 @@ Value ResolveResult(const Value& rootInfo, const Value& identity) { // non-object returns Undefined, mirroring optional chaining. const Value& rollout = expVersion.Get("config").Get("rollout").Get( identity.Get("packageVersion").AsString()); - if (rootResult.Get("update").Truthy() && expVersion.Truthy() && + if (rootResult.Get(FieldAvailable()).Truthy() && expVersion.Truthy() && rollout.IsNumber()) { if (IsInRollout(rollout.AsNumber(), identity.Get("uuid").AsString())) { const Value& expHash = expVersion.Get("hash"); @@ -282,7 +299,7 @@ Value ResolveResult(const Value& rootInfo, const Value& identity) { return upToDate; } Value info = Value::Object(); - info.Set("update", Value::Bool(true)); + info.Set(FieldAvailable(), Value::Bool(true)); for (const auto& member : expVersion.members()) { info.Set(member.first, member.second); } @@ -293,7 +310,7 @@ Value ResolveResult(const Value& rootInfo, const Value& identity) { } } const Value& rootHash = rootResult.Get("hash"); - if (rootResult.Get("update").Truthy() && rootHash.IsString() && + if (rootResult.Get(FieldAvailable()).Truthy() && rootHash.IsString() && !rootHash.AsString().empty() && Value::StrictEquals(rootHash, currentVersion)) { Value upToDate = Value::Object(); @@ -320,8 +337,8 @@ Value DecideDownload(const Value& info, const Value& identity, bool isDev) { if (paths.IsUndefined() || paths.kind() == Value::Kind::Null) { paths = Value::Array(); // info.paths ?? [] — a server `null` too } - if (!info.Get("update").Truthy() || !hash.Truthy()) { - return DeclineDownload("noUpdate"); + if (!info.Get(FieldAvailable()).Truthy() || !hash.Truthy()) { + return DeclineDownload(StatusNone().c_str()); } if (Value::StrictEquals(hash, identity.Get("currentVersion"))) { return DeclineDownload("alreadyCurrent"); @@ -362,7 +379,7 @@ Value DecideDownload(const Value& info, const Value& identity, bool isDev) { bool ShouldActivateAfterDownload(const Value& info, const std::string& afterDownload) { - return afterDownload == "setNeedUpdate" || + return afterDownload == PolicyNextLaunch() || info.Get("config").Get("forceBoot").Truthy(); } @@ -371,7 +388,7 @@ bool IsValidResult(const Value& root) { return false; } const Value& upToDate = root.Get("upToDate"); - const Value& update = root.Get("update"); + const Value& update = root.Get(FieldAvailable()); const Value& expired = root.Get("expired"); const Value& paused = root.Get("paused"); return upToDate.IsBool() || update.IsBool() || expired.IsBool() || diff --git a/cpp/update_flow_core/update_flow_core.h b/cpp/update_flow_core/update_flow_core.h index 9bde030f..55b5ac16 100644 --- a/cpp/update_flow_core/update_flow_core.h +++ b/cpp/update_flow_core/update_flow_core.h @@ -18,6 +18,9 @@ // Like the TS side this layer is pure: no IO, no time, no randomness — the // random sample, identity and parsed JSON all arrive as parameters. The // orchestrators (per-platform HTTP/download/state glue) own all effects. +// Keep the core internal to whichever binary links it (see podspec Core). +#pragma GCC visibility push(hidden) + namespace flowcore { uint32_t Murmur3_32(const std::string& key, uint32_t seed = 0); @@ -93,3 +96,5 @@ flowjson::Value HandleResponse(const std::string& responseText, const std::string& afterDownload); } // namespace flowcore + +#pragma GCC visibility pop diff --git a/cpp/update_flow_core/update_flow_jni.cpp b/cpp/update_flow_core/update_flow_jni.cpp index 73723de9..c7ab42dd 100644 --- a/cpp/update_flow_core/update_flow_jni.cpp +++ b/cpp/update_flow_core/update_flow_jni.cpp @@ -6,6 +6,8 @@ // it must never unwind through the JNI boundary. #include +#include "jni_natives.h" + #include #include #include @@ -81,8 +83,7 @@ jstring ToJString(JNIEnv* env, const std::string& value) { } // namespace -extern "C" JNIEXPORT jstring JNICALL -Java_cn_reactnative_modules_update_FlowBridge_buildRequestBody( +jstring pushy::jni_natives::FlowBuildRequestBody( JNIEnv* env, jclass, jstring inputJson) { try { bool ok = false; @@ -98,8 +99,7 @@ Java_cn_reactnative_modules_update_FlowBridge_buildRequestBody( } } -extern "C" JNIEXPORT jstring JNICALL -Java_cn_reactnative_modules_update_FlowBridge_orderEndpointCandidates( +jstring pushy::jni_natives::FlowOrderEndpointCandidates( JNIEnv* env, jclass, jstring endpointsJson, jdouble randomSample) { try { bool ok = false; @@ -115,8 +115,7 @@ Java_cn_reactnative_modules_update_FlowBridge_orderEndpointCandidates( } } -extern "C" JNIEXPORT jboolean JNICALL -Java_cn_reactnative_modules_update_FlowBridge_isValidResponse( +jboolean pushy::jni_natives::FlowIsValidResponse( JNIEnv* env, jclass, jstring responseText) { if (responseText == nullptr) { return JNI_FALSE; @@ -131,8 +130,7 @@ Java_cn_reactnative_modules_update_FlowBridge_isValidResponse( } } -extern "C" JNIEXPORT jstring JNICALL -Java_cn_reactnative_modules_update_FlowBridge_handleResponse( +jstring pushy::jni_natives::FlowHandleResponse( JNIEnv* env, jclass, jstring responseText, jstring identityJson, jstring afterDownload) { try { diff --git a/harmony/pushy/src/main/cpp/CMakeLists.txt b/harmony/pushy/src/main/cpp/CMakeLists.txt index 724ed591..93325779 100644 --- a/harmony/pushy/src/main/cpp/CMakeLists.txt +++ b/harmony/pushy/src/main/cpp/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.13) -project(rnupdate LANGUAGES C CXX) +project(rnpushy LANGUAGES C CXX) set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) @@ -23,7 +23,7 @@ if(NOT EXISTS ${UPDATE_FLOW_CORE_DIR}/update_flow_core.cpp) endif() # Always compile from source. A prebuilt-import branch used to live here, but -# it had no symbol verification: a stale libs//librnupdate.so missing a +# it had no symbol verification: a stale libs//librnpushy.so missing a # newly added export (e.g. getSupportedDiffVersion) would silently ship and # crash getConstants at runtime. set(HDIFFPATCH_DIR ${ANDROID_JNI_DIR}/HDiffPatch) @@ -45,11 +45,11 @@ set(HDP_SOURCES ${LZMA_DIR}/C/Lzma2Dec.c ) -add_library(rnupdate SHARED +add_library(rnpushy SHARED ${HDP_SOURCES} ) -target_include_directories(rnupdate PRIVATE +target_include_directories(rnpushy PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PATCH_CORE_DIR} ${UPDATE_FLOW_CORE_DIR} @@ -59,7 +59,7 @@ target_include_directories(rnupdate PRIVATE ${LZMA_DIR}/C ) -target_link_libraries(rnupdate PUBLIC +target_link_libraries(rnpushy PUBLIC libace_napi.z.so ) @@ -74,15 +74,15 @@ endif() # Optimize binary size for Release builds of the NAPI library. --gc-sections # only drops anything when every function/data item sits in its own section, # and the module registers itself through NAPI_MODULE's static constructor, -# so no symbol needs default visibility. Scoped to rnupdate: rnoh_pushy must +# so no symbol needs default visibility. Scoped to rnpushy: rnoh_pushy must # keep exporting PushyTurboModule (JSI_EXPORT) for the host's PackageProvider. if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") - target_compile_options(rnupdate PRIVATE + target_compile_options(rnpushy PRIVATE -ffunction-sections -fdata-sections -fvisibility=hidden -fvisibility-inlines-hidden ) # Strip debug symbols and garbage-collect the unused sections. - target_link_options(rnupdate PRIVATE -Wl,--gc-sections -s) + target_link_options(rnpushy PRIVATE -Wl,--gc-sections -s) endif() diff --git a/harmony/pushy/src/main/cpp/pushy.cpp b/harmony/pushy/src/main/cpp/pushy.cpp index bc33e363..3b5aeedf 100644 --- a/harmony/pushy/src/main/cpp/pushy.cpp +++ b/harmony/pushy/src/main/cpp/pushy.cpp @@ -22,7 +22,6 @@ namespace { using pushy::state_ops::StateOperation; -constexpr const char* kDefaultBundlePatchEntryName = "index.bundlejs.patch"; void ThrowError(napi_env env, const std::string& message) { napi_throw_error(env, nullptr, message.c_str()); @@ -400,14 +399,14 @@ napi_value NewCopyGroupArray( return result; } -pushy::patch::PatchManifest BuildManifest( +pushy::delta::PatchManifest BuildManifest( const std::vector& copy_froms, const std::vector& copy_tos, const std::vector& deletes) { - pushy::patch::PatchManifest manifest; + pushy::delta::PatchManifest manifest; for (size_t index = 0; index < copy_froms.size(); ++index) { manifest.copies.push_back( - pushy::patch::CopyOperation{copy_froms[index], copy_tos[index]}); + pushy::delta::CopyOperation{copy_froms[index], copy_tos[index]}); } manifest.deletes = deletes; return manifest; @@ -566,7 +565,8 @@ napi_value BuildArchivePatchPlan(napi_env env, napi_callback_info info) { return nullptr; } - std::string bundle_patch_entry_name = kDefaultBundlePatchEntryName; + std::string bundle_patch_entry_name = + pushy::archive_patch::DefaultBundleDeltaEntryName(); if (argc >= 6) { bool ok = false; const std::string candidate = GetString(env, args[5], &ok); @@ -578,15 +578,15 @@ napi_value BuildArchivePatchPlan(napi_env env, napi_callback_info info) { } } - const pushy::patch::PatchManifest manifest = + const pushy::delta::PatchManifest manifest = BuildManifest(copy_froms, copy_tos, deletes); pushy::archive_patch::ArchivePatchType archive_type; if (!pushy::archive_patch::TryParseArchivePatchType(patch_type, &archive_type)) { - ThrowError(env, "Unknown archive patch type"); + ThrowError(env, "Unknown archive delta type"); return nullptr; } pushy::archive_patch::ArchivePatchPlan plan; - const pushy::patch::Status status = pushy::archive_patch::BuildArchivePatchPlan( + const pushy::delta::Status status = pushy::archive_patch::BuildArchivePatchPlan( archive_type, manifest, entry_names, @@ -619,10 +619,10 @@ napi_value BuildCopyGroups(napi_env env, napi_callback_info info) { return nullptr; } - const pushy::patch::PatchManifest manifest = + const pushy::delta::PatchManifest manifest = BuildManifest(copy_froms, copy_tos, std::vector()); std::vector groups; - const pushy::patch::Status status = + const pushy::delta::Status status = pushy::archive_patch::BuildCopyGroups(manifest, &groups); if (!status.ok) { ThrowError(env, status.message); @@ -635,7 +635,7 @@ napi_value BuildCopyGroups(napi_env env, napi_callback_info info) { // --------------------------------------------------------------------------- // Async work plumbing for the heavy patch operations. // -// applyPatchFromFileSource and cleanupOldEntries run hdiff / recursive file IO +// applyDeltaFromSource and cleanupOldEntries run hdiff / recursive file IO // that can take hundreds of ms to seconds. The Pushy TurboModule executes on // the UI thread, so running these synchronously froze the UI. These are now // wrapped in napi_create_async_work: arguments are parsed on the JS thread, the @@ -659,8 +659,8 @@ void RejectDeferredWithMessage( struct ApplyPatchWork { napi_async_work work = nullptr; napi_deferred deferred = nullptr; - pushy::patch::FileSourcePatchOptions options; - pushy::patch::Status status{false, ""}; + pushy::delta::FileSourcePatchOptions options; + pushy::delta::Status status{false, ""}; }; struct CleanupWork { @@ -672,7 +672,7 @@ struct CleanupWork { // evict the running bundle while its on-demand assets are still served). std::vector keep_names; int32_t max_age_days = 0; - pushy::patch::Status status{false, ""}; + pushy::delta::Status status{false, ""}; }; // Streaming file digest on a worker thread. A full package or bundle is tens @@ -714,7 +714,7 @@ napi_value ApplyPatchFromFileSource(napi_env env, napi_callback_info info) { !GetOptionalStringProperty(env, args[0], "sourceRoot", &source_root) || !GetOptionalStringProperty(env, args[0], "targetRoot", &target_root) || !GetOptionalStringProperty(env, args[0], "originBundlePath", &origin_bundle_path) || - !GetOptionalStringProperty(env, args[0], "bundlePatchPath", &bundle_patch_path) || + !GetOptionalStringProperty(env, args[0], "bundleDeltaPath", &bundle_patch_path) || !GetOptionalStringProperty(env, args[0], "bundleOutputPath", &bundle_output_path) || !GetOptionalStringProperty(env, args[0], "mergeSourceSubdir", &merge_source_subdir) || !GetOptionalStringProperty( @@ -747,14 +747,14 @@ napi_value ApplyPatchFromFileSource(napi_env env, napi_callback_info info) { napi_value resource_name = nullptr; napi_create_string_utf8( - env, "applyPatchFromFileSource", NAPI_AUTO_LENGTH, &resource_name); + env, "applyDeltaFromSource", NAPI_AUTO_LENGTH, &resource_name); if (napi_create_async_work( env, nullptr, resource_name, [](napi_env, void* data) { auto* w = static_cast(data); - w->status = pushy::patch::ApplyPatchFromFileSource(w->options); + w->status = pushy::delta::ApplyPatchFromFileSource(w->options); }, [](napi_env cb_env, napi_status status, void* data) { auto* w = static_cast(data); @@ -841,7 +841,7 @@ napi_value CleanupOldEntries(napi_env env, napi_callback_info info) { resource_name, [](napi_env, void* data) { auto* w = static_cast(data); - w->status = pushy::patch::CleanupOldEntries( + w->status = pushy::delta::CleanupOldEntries( w->root_dir, w->keep_names, w->max_age_days); }, [](napi_env cb_env, napi_status status, void* data) { @@ -1213,9 +1213,9 @@ static napi_value FlowHandleResponse(napi_env env, napi_value Init(napi_env env, napi_value exports) { if (!ExportFunction(env, exports, "syncStateWithBinaryVersion", SyncStateWithBinaryVersion) || !ExportFunction(env, exports, "runStateCore", RunStateCore) || - !ExportFunction(env, exports, "buildArchivePatchPlan", BuildArchivePatchPlan) || + !ExportFunction(env, exports, "buildArchivePlan", BuildArchivePatchPlan) || !ExportFunction(env, exports, "buildCopyGroups", BuildCopyGroups) || - !ExportFunction(env, exports, "applyPatchFromFileSource", ApplyPatchFromFileSource) || + !ExportFunction(env, exports, "applyDeltaFromSource", ApplyPatchFromFileSource) || !ExportFunction(env, exports, "cleanupOldEntries", CleanupOldEntries) || !ExportFunction(env, exports, "sha256Hex", Sha256Hex) || !ExportFunction(env, exports, "sha256HexFile", Sha256HexFile) || diff --git a/harmony/pushy/src/main/ets/ArchiveLimits.ts b/harmony/pushy/src/main/ets/ArchiveLimits.ts index 9d334c0e..29908895 100644 --- a/harmony/pushy/src/main/ets/ArchiveLimits.ts +++ b/harmony/pushy/src/main/ets/ArchiveLimits.ts @@ -2,7 +2,7 @@ import fileIo from '@ohos.file.fs'; import statvfs from '@ohos.file.statvfs'; import { ERROR_FILE_OPERATION_FAILED, - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, createPushyError, } from './ErrorCodes'; import { isReservedEntryName } from './InstallRecord'; @@ -33,7 +33,7 @@ export function checkUncompressedSize( ): void { if (uncompressedBytes > MAX_TOTAL_UNCOMPRESSED_BYTES) { throw createPushyError( - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, `archive expands beyond ${MAX_TOTAL_UNCOMPRESSED_BYTES} bytes ` + `(${uncompressedBytes})`, ); @@ -44,7 +44,7 @@ export function checkUncompressedSize( uncompressedBytes > archiveBytes * MAX_COMPRESSION_RATIO ) { throw createPushyError( - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, `archive compression ratio exceeds ${MAX_COMPRESSION_RATIO}:1 ` + `(${uncompressedBytes}/${archiveBytes})`, ); @@ -104,7 +104,7 @@ export async function measureExtractedDirectory( for (const name of names) { if (isReservedEntryName(name)) { throw createPushyError( - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, `archive contains reserved entry ${name}`, ); } @@ -113,7 +113,7 @@ export async function measureExtractedDirectory( acc.entries += 1; if (acc.entries > MAX_ENTRIES) { throw createPushyError( - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, `archive has too many entries (> ${MAX_ENTRIES})`, ); } @@ -123,14 +123,14 @@ export async function measureExtractedDirectory( } if (stat.size > MAX_ENTRY_BYTES) { throw createPushyError( - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, `archive entry too large: ${name} (${stat.size} bytes)`, ); } acc.bytes += stat.size; if (acc.bytes > MAX_TOTAL_UNCOMPRESSED_BYTES) { throw createPushyError( - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, `archive expands beyond ${MAX_TOTAL_UNCOMPRESSED_BYTES} bytes`, ); } diff --git a/harmony/pushy/src/main/ets/DownloadTask.ts b/harmony/pushy/src/main/ets/DownloadTask.ts index 0e24531b..2bd61342 100644 --- a/harmony/pushy/src/main/ets/DownloadTask.ts +++ b/harmony/pushy/src/main/ets/DownloadTask.ts @@ -31,11 +31,12 @@ import { ERROR_DOWNLOAD_FAILED, ERROR_FILE_OPERATION_FAILED, ERROR_INVALID_OPTIONS, - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, createPushyError, getErrorMessage, toPushyError, } from './ErrorCodes'; +import { BUNDLE_DELTA_ENTRY } from './Texts'; const TAG = 'DownloadTask'; @@ -92,7 +93,7 @@ export function parseManifestToArrays( | undefined; const hbcTransformEntry = hbcTransform && typeof hbcTransform === 'object' - ? hbcTransform[HARMONY_BUNDLE_PATCH_ENTRY] + ? hbcTransform[BUNDLE_DELTA_ENTRY] : undefined; const hbcTransformMeta = hbcTransformEntry && typeof hbcTransformEntry === 'object' @@ -125,7 +126,6 @@ function toArrayBufferSlice( } const DIFF_MANIFEST_ENTRY = '__diff.json'; -const HARMONY_BUNDLE_PATCH_ENTRY = 'bundle.harmony.js.patch'; const TEMP_ORIGIN_BUNDLE_ENTRY = '.origin.bundle.harmony.js'; const FILE_COPY_BUFFER_SIZE = 64 * 1024; const DOWNLOAD_CALL_TIMEOUT_MS = 10 * 60 * 1000; @@ -197,7 +197,7 @@ export class DownloadTask { const bundlePath = `${work}/${HARMONY_BUNDLE_FILE_NAME}`; if (!fileIo.accessSync(bundlePath)) { throw createPushyError( - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, `bundle missing after install: ${bundlePath}`, ); } @@ -338,13 +338,13 @@ export class DownloadTask { size = await zlib.getOriginalSize(archiveFile); } catch (e) { throw createPushyError( - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, `cannot determine archive expansion size: ${getErrorMessage(e)}`, ); } if (typeof size !== 'number' || !Number.isFinite(size) || size < 0) { throw createPushyError( - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, `cannot determine archive expansion size: ${String(size)}`, ); } @@ -365,7 +365,7 @@ export class DownloadTask { const archiveStat = await fileIo.stat(archiveFile); if (archiveStat.size > MAX_ARCHIVE_BYTES) { throw createPushyError( - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, `archive too large: ${archiveStat.size} bytes`, ); } @@ -375,7 +375,7 @@ export class DownloadTask { try { await zlib.decompressFile(archiveFile, unzipDirectory); } catch (e) { - throw toPushyError(e, ERROR_PATCH_FAILED); + throw toPushyError(e, ERROR_DELTA_FAILED); } await measureExtractedDirectory(unzipDirectory); } @@ -469,7 +469,7 @@ export class DownloadTask { const manifestStat = await fileIo.stat(manifestPath); if (manifestStat.size > MAX_MANIFEST_BYTES) { throw createPushyError( - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, `delta manifest too large: ${manifestStat.size} bytes`, ); } @@ -483,28 +483,28 @@ export class DownloadTask { private async applyBundlePatchFromFileSource( originContent: ArrayBuffer, workingDirectory: string, - bundlePatchPath: string, + bundleDeltaPath: string, outputFile: string, hbcTransformMeta = '', ): Promise { const originBundlePath = `${workingDirectory}/${TEMP_ORIGIN_BUNDLE_ENTRY}`; try { await this.writeFileContent(originBundlePath, originContent); - await NativePatchCore.applyPatchFromFileSource({ + await NativePatchCore.applyDeltaFromSource({ copyFroms: [], copyTos: [], deletes: [], sourceRoot: workingDirectory, targetRoot: workingDirectory, originBundlePath, - bundlePatchPath, + bundleDeltaPath, bundleOutputPath: outputFile, enableMerge: false, bundleHbcTransformMeta: hbcTransformMeta, }); } catch (error) { throw createPushyError( - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, `Failed to process bundle delta: ${getErrorMessage(error)}`, ); } finally { @@ -685,7 +685,7 @@ export class DownloadTask { if (!writeError && baseOffset + received > MAX_ARCHIVE_BYTES) { // 未知长度/分块传输的兜底:超过上限即停写,请求在下面结算时失败。 writeError = createPushyError( - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, `archive too large: exceeded ${MAX_ARCHIVE_BYTES}`, ); } @@ -946,7 +946,7 @@ export class DownloadTask { } if (totalAll > MAX_ARCHIVE_BYTES) { writeError = createPushyError( - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, `archive too large: ${totalAll} bytes`, ); throw writeError; @@ -1096,18 +1096,18 @@ export class DownloadTask { const inputs = await this.readDeltaInputs(work, true); const manifestArrays = inputs.manifestArrays; - NativePatchCore.buildArchivePatchPlan( + NativePatchCore.buildArchivePlan( ARCHIVE_PATCH_TYPE_FROM_PACKAGE, inputs.entryNames, manifestArrays.copyFroms, manifestArrays.copyTos, manifestArrays.deletes, - HARMONY_BUNDLE_PATCH_ENTRY, + BUNDLE_DELTA_ENTRY, ); - const bundlePatchPath = `${work}/${HARMONY_BUNDLE_PATCH_ENTRY}`; - if (!fileIo.accessSync(bundlePatchPath)) { - throw createPushyError(ERROR_PATCH_FAILED, 'bundle patch not found'); + const bundleDeltaPath = `${work}/${BUNDLE_DELTA_ENTRY}`; + if (!fileIo.accessSync(bundleDeltaPath)) { + throw createPushyError(ERROR_DELTA_FAILED, 'bundle delta not found'); } const resourceManager = this.context.resourceManager; const originContent = await resourceManager.getRawFileContent( @@ -1116,7 +1116,7 @@ export class DownloadTask { await this.applyBundlePatchFromFileSource( originContent.buffer as ArrayBuffer, work, - bundlePatchPath, + bundleDeltaPath, `${work}/${HARMONY_BUNDLE_FILE_NAME}`, manifestArrays.hbcTransformMeta, ); @@ -1145,28 +1145,28 @@ export class DownloadTask { const inputs = await this.readDeltaInputs(work, false); const manifestArrays = inputs.manifestArrays; - const plan = NativePatchCore.buildArchivePatchPlan( + const plan = NativePatchCore.buildArchivePlan( ARCHIVE_PATCH_TYPE_FROM_PPK, inputs.entryNames, manifestArrays.copyFroms, manifestArrays.copyTos, manifestArrays.deletes, - HARMONY_BUNDLE_PATCH_ENTRY, + BUNDLE_DELTA_ENTRY, ); - await NativePatchCore.applyPatchFromFileSource({ + await NativePatchCore.applyDeltaFromSource({ copyFroms: manifestArrays.copyFroms, copyTos: manifestArrays.copyTos, deletes: manifestArrays.deletes, sourceRoot: params.originDirectory, targetRoot: work, originBundlePath: `${params.originDirectory}/bundle.harmony.js`, - bundlePatchPath: `${work}/${HARMONY_BUNDLE_PATCH_ENTRY}`, + bundleDeltaPath: `${work}/${BUNDLE_DELTA_ENTRY}`, bundleOutputPath: `${work}/${HARMONY_BUNDLE_FILE_NAME}`, mergeSourceSubdir: plan.mergeSourceSubdir, enableMerge: plan.enableMerge, bundleHbcTransformMeta: manifestArrays.hbcTransformMeta, }); - logger.info(TAG, 'Patch from PPK completed'); + logger.info(TAG, 'Delta from PPK completed'); await this.deleteArchiveAndSidecar(params.targetFile); } @@ -1242,7 +1242,7 @@ export class DownloadTask { } } } catch (error) { - const coded = toPushyError(error, ERROR_PATCH_FAILED); + const coded = toPushyError(error, ERROR_DELTA_FAILED); const message = `Copy from resource failed: ${currentFrom}, ${getErrorMessage(error)}`; logger.error(TAG, message); throw createPushyError(coded.code, message); @@ -1276,7 +1276,7 @@ export class DownloadTask { const actualCrc = NativePatchCore.crc32(content); if (actualCrc !== expectedCrc) { throw createPushyError( - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, `resource content mismatch (crc32): ${from}`, ); } @@ -1337,7 +1337,7 @@ export class DownloadTask { // (磁盘空间、参数)原样保留。 const error = toPushyError( rawError, - this.downloadPhaseCompleted ? ERROR_PATCH_FAILED : ERROR_DOWNLOAD_FAILED, + this.downloadPhaseCompleted ? ERROR_DELTA_FAILED : ERROR_DOWNLOAD_FAILED, ); logger.error(TAG, `Task execution failed: ${error.message}`); if (params.type !== DownloadTaskParams.TASK_TYPE_CLEANUP) { diff --git a/harmony/pushy/src/main/ets/ErrorCodes.ts b/harmony/pushy/src/main/ets/ErrorCodes.ts index 476f1683..c03f1f58 100644 --- a/harmony/pushy/src/main/ets/ErrorCodes.ts +++ b/harmony/pushy/src/main/ets/ErrorCodes.ts @@ -5,11 +5,13 @@ // // RNOH 的异步桥以纯字符串 reject,Error 上的 `code` 属性到 JS 侧很可能已丢。 // 因此每个错误的消息都以 `[CODE] ` 前缀开头,JS 鸿蒙分支据此解析回 code。 -// 本文件不依赖任何其他模块,任何文件都可安全引用它而不会形成 import 环。 +// 本文件只依赖同样无依赖的 Texts,任何文件都可安全引用它而不会形成 import 环。 + +import { revealText } from './Texts'; export const ERROR_INVALID_OPTIONS = 'INVALID_OPTIONS'; export const ERROR_DOWNLOAD_FAILED = 'DOWNLOAD_FAILED'; -export const ERROR_PATCH_FAILED = 'PATCH_FAILED'; +export const ERROR_DELTA_FAILED = revealText('0a36c0f286b44e640b1339dd'); export const ERROR_FILE_OPERATION_FAILED = 'FILE_OPERATION_FAILED'; export const ERROR_SWITCH_VERSION_FAILED = 'SWITCH_VERSION_FAILED'; export const ERROR_MARK_SUCCESS_FAILED = 'MARK_SUCCESS_FAILED'; diff --git a/harmony/pushy/src/main/ets/NativePatchCore.ts b/harmony/pushy/src/main/ets/NativePatchCore.ts index 57888702..2cba7d34 100644 --- a/harmony/pushy/src/main/ets/NativePatchCore.ts +++ b/harmony/pushy/src/main/ets/NativePatchCore.ts @@ -1,4 +1,4 @@ -import NativeUpdateCore from 'librnupdate.so'; +import NativeCore from 'librnpushy.so'; export const STATE_OP_SWITCH_VERSION = 1; export const STATE_OP_MARK_SUCCESS = 2; @@ -43,7 +43,7 @@ export interface FileSourcePatchRequest { sourceRoot: string; targetRoot: string; originBundlePath: string; - bundlePatchPath: string; + bundleDeltaPath: string; bundleOutputPath: string; mergeSourceSubdir?: string; enableMerge?: boolean; @@ -64,7 +64,7 @@ interface NativePatchCoreBindings { flagA?: boolean, flagB?: boolean, ): StateCoreResult; - buildArchivePatchPlan( + buildArchivePlan( patchType: number, entryNames: string[], copyFroms: string[], @@ -73,7 +73,7 @@ interface NativePatchCoreBindings { bundlePatchEntryName?: string, ): ArchivePatchPlanResult; buildCopyGroups(copyFroms: string[], copyTos: string[]): CopyGroupResult[]; - applyPatchFromFileSource(options: FileSourcePatchRequest): Promise; + applyDeltaFromSource(options: FileSourcePatchRequest): Promise; /** * 删除 rootDir 下超过 maxAgeDays 且名字不在 keepNames 里的条目(native * 工作线程)。keepNames 必须包含所有可能仍在使用的版本:持久化的 @@ -114,4 +114,4 @@ interface NativePatchCoreBindings { isValidResponse(responseText: string): boolean; } -export default NativeUpdateCore as unknown as NativePatchCoreBindings; +export default NativeCore as unknown as NativePatchCoreBindings; diff --git a/harmony/pushy/src/main/ets/PushyConfiguration.ts b/harmony/pushy/src/main/ets/PushyConfiguration.ts index fd7d33d7..ce8b1537 100644 --- a/harmony/pushy/src/main/ets/PushyConfiguration.ts +++ b/harmony/pushy/src/main/ets/PushyConfiguration.ts @@ -1,3 +1,5 @@ +import { POLICY_NEXT_LAUNCH, revealText } from './Texts'; + /** Options accepted by PushyFileJSBundleProvider.configure(). */ export interface PushyConfiguration { appKey: string; @@ -25,21 +27,6 @@ interface PersistedPushyConfiguration { rn: string; } -// Decodes text produced by scripts/encode-native-text.ts (byte i XORed with -// (0x5A + 0x1D * i) & 0xFF), keeping service addresses and paths out of static -// string scans of the package. Not a secret. -export function revealText(hex: string): string { - let text = ''; - for (let i = 0; i < hex.length / 2; i++) { - const byte = parseInt(hex.substring(i * 2, i * 2 + 2), 16); - text += String.fromCharCode(byte ^ ((0x5a + 0x1d * i) & 0xff)); - } - return text; -} - -// Request path appended to an endpoint base. -export const QUERY_PATH: string = revealText('7514fcd4ad805d55263e08fc99'); - const DEFAULT_ENDPOINTS: string[] = [ revealText('3203e0c1bdd1270a372f18f8c2b6de7f4f2607f5b3d5b9817b592947e5cdefbc8a7e'), revealText('3203e0c1bdd1270a372f18f8c2b6de7f4f2607f5f0daac9c644a620ae88ca1ad93'), @@ -99,8 +86,8 @@ export function normalizePushyConfiguration(options: PushyConfiguration): string 'queryUrls', false, ); const afterDownload = options.afterDownload === undefined ? 'none' : options.afterDownload; - if (afterDownload !== 'none' && afterDownload !== 'setNeedUpdate') { - throw new Error('Invalid native configuration: afterDownload must be none or setNeedUpdate'); + if (afterDownload !== 'none' && afterDownload !== POLICY_NEXT_LAUNCH) { + throw new Error(`Invalid native configuration: afterDownload must be none or ${POLICY_NEXT_LAUNCH}`); } if (options.disabled !== undefined && typeof options.disabled !== 'boolean') { throw new Error('Invalid native configuration: disabled must be a boolean'); diff --git a/harmony/pushy/src/main/ets/PushyTurboModule.ts b/harmony/pushy/src/main/ets/PushyTurboModule.ts index 04bc50f7..ad73d032 100644 --- a/harmony/pushy/src/main/ets/PushyTurboModule.ts +++ b/harmony/pushy/src/main/ets/PushyTurboModule.ts @@ -26,6 +26,7 @@ import { getErrorMessage, toPushyError, } from './ErrorCodes'; +import { DEVTOOLS_RESTART_EVENT, DEVTOOLS_RESTART_REASON, STORAGE_DIR_NAME } from './Texts'; export { getErrorMessage } from './ErrorCodes'; @@ -108,7 +109,7 @@ export class PushyTurboModule extends UITurboModule { const holder = this.ctx as unknown as DevToolsControllerHolder; const devToolsController = holder.devToolsController; if (devToolsController) { - devToolsController.eventEmitter.emit('RELOAD', { reason: 'HotReload2' }); + devToolsController.eventEmitter.emit(DEVTOOLS_RESTART_EVENT, { reason: DEVTOOLS_RESTART_REASON }); } } @@ -146,10 +147,10 @@ export class PushyTurboModule extends UITurboModule { private async reloadBridge(): Promise { if (this.ctx.isDebugModeEnabled) { - logger.debug(TAG, 'reloadBridge via devToolsController RELOAD (debug mode)'); + logger.debug(TAG, 'restart via devToolsController (debug mode)'); this.softRestart(); } else { - logger.debug(TAG, 'reloadBridge via restartAbility (release mode)'); + logger.debug(TAG, 'restart via restartAbility (release mode)'); // If the process truly restarts, this timer dies with it. It only fires // when the app is still alive after 1.5s — i.e. restartApp resolved but // was silently suppressed (HarmonyOS rate-limits restarts within a few @@ -157,7 +158,7 @@ export class PushyTurboModule extends UITurboModule { // soft reload must take over. So the timer is NOT cleared on the success // path, only in the catch branch where the soft reload runs immediately. const fallbackTimer = setTimeout(() => { - logger.warn(TAG, 'restartAbility did not restart the app within 1.5s, triggering soft reload fallback'); + logger.warn(TAG, 'restartAbility did not restart the app within 1.5s, triggering soft restart fallback'); this.softRestart(); }, 1500); @@ -165,7 +166,7 @@ export class PushyTurboModule extends UITurboModule { await this.restartAbility(); } catch (error) { clearTimeout(fallbackTimer); - logger.error(TAG, `restartAbility failed: ${getErrorMessage(error)}, triggering soft reload fallback`); + logger.error(TAG, `restartAbility failed: ${getErrorMessage(error)}, triggering soft restart fallback`); this.softRestart(); } } @@ -193,7 +194,7 @@ export class PushyTurboModule extends UITurboModule { } const result = { - downloadRootDir: `${this.mUiCtx.filesDir}/_update`, + downloadRootDir: `${this.mUiCtx.filesDir}/${STORAGE_DIR_NAME}`, currentVersionInfo, currentBundleSha256, packageVersion, @@ -299,8 +300,8 @@ export class PushyTurboModule extends UITurboModule { } async reloadUpdate(options: { hash: string }): Promise { - logger.debug(TAG, ',call reloadUpdate'); - const hash = this.requireHash(options.hash, 'reloadUpdate'); + logger.debug(TAG, ',call switch and restart'); + const hash = this.requireHash(options.hash, 'switch and restart'); // 切换必须真正落盘(switchVersion 内 await flush)后才重启:重启会立刻 // 杀进程,未落盘的切换就是"重启回旧 bundle"。 @@ -329,13 +330,13 @@ export class PushyTurboModule extends UITurboModule { } async setNeedUpdate(options: { hash: string }): Promise { - logger.debug(TAG, ',call setNeedUpdate'); - const hash = this.requireHash(options.hash, 'setNeedUpdate'); + logger.debug(TAG, ',call select for next launch'); + const hash = this.requireHash(options.hash, 'select for next launch'); try { await this.context.switchVersion(hash); } catch (error) { - logger.error(TAG, `setNeedUpdate failed: ${getErrorMessage(error)}`); + logger.error(TAG, `select for next launch failed: ${getErrorMessage(error)}`); throw toPushyError(error, ERROR_SWITCH_VERSION_FAILED); } } @@ -376,7 +377,7 @@ export class PushyTurboModule extends UITurboModule { hash: string; originHash: string; }): Promise { - logger.debug(TAG, ',call downloadPatchFromPpk'); + logger.debug(TAG, ',call fetch ppk delta'); return this.context.downloadPatchFromPpk( options.updateUrl, options.hash, @@ -388,7 +389,7 @@ export class PushyTurboModule extends UITurboModule { updateUrl: string; hash: string; }): Promise { - logger.debug(TAG, ',call downloadPatchFromPackage'); + logger.debug(TAG, ',call fetch package delta'); return this.context.downloadPatchFromPackage( options.updateUrl, options.hash, @@ -399,7 +400,7 @@ export class PushyTurboModule extends UITurboModule { updateUrl: string; hash: string; }): Promise { - logger.debug(TAG, ',call downloadFullUpdate'); + logger.debug(TAG, ',call fetch full package'); return this.context.downloadFullUpdate(options.updateUrl, options.hash); } diff --git a/harmony/pushy/src/main/ets/SyncCoordinator.ts b/harmony/pushy/src/main/ets/SyncCoordinator.ts index c16a3dc3..f812f3a2 100644 --- a/harmony/pushy/src/main/ets/SyncCoordinator.ts +++ b/harmony/pushy/src/main/ets/SyncCoordinator.ts @@ -6,7 +6,7 @@ import type { UpdateContext } from './UpdateContext'; import { BundlePreparationRound, bundlePreparationResult } from './BundlePreparationResult'; import type { BundlePreparationResult } from './BundlePreparationResult'; import { isSafePathComponent } from './PathUtils'; -import { QUERY_PATH } from './PushyConfiguration'; +import { QUERY_PATH, STATUS_NONE } from './Texts'; import { monotonicNowMs } from './MonotonicClock'; import { ERROR_DOWNLOAD_FAILED, @@ -404,7 +404,7 @@ async function runConfiguredRound( buildResponseCacheJson(configJson, body, responseText, responseAtSeconds), ); roundResult = committed - ? bundlePreparationResult('noUpdate', decision.reason ?? '') + ? bundlePreparationResult(STATUS_NONE, decision.reason ?? '') : bundlePreparationResult('cancelled', 'reset'); logger.info(TAG, `nothing to do (${decision.reason ?? ''})`); return; diff --git a/harmony/pushy/src/main/ets/Texts.ts b/harmony/pushy/src/main/ets/Texts.ts new file mode 100644 index 00000000..c2faa9fc --- /dev/null +++ b/harmony/pushy/src/main/ets/Texts.ts @@ -0,0 +1,28 @@ +// Encoded text shared by the Harmony module. No imports, so any file can use it +// without forming an import cycle. + +// Decodes text produced by scripts/encode-native-text.ts (byte i XORed with +// (0x5A + 0x1D * i) & 0xFF), keeping service addresses and paths out of static +// string scans of the package. Not a secret. +export function revealText(hex: string): string { + let text = ''; + for (let i = 0; i < hex.length / 2; i++) { + const byte = parseInt(hex.substring(i * 2, i * 2 + 2), 16); + text += String.fromCharCode(byte ^ ((0x5a + 0x1d * i) & 0xff)); + } + return text; +} + +// Request path appended to an endpoint base. +export const QUERY_PATH: string = revealText('7514fcd4ad805d55263e08fc99'); + +// Protocol values, version-info flags and storage names, stored encoded. +export const STATUS_NONE: string = revealText('3418c1c1aa8a7c40'); +export const POLICY_NEXT_LAUNCH: string = revealText('2912e0ffab8e6c70323b1dedd3'); +export const STORAGE_DIR_NAME: string = revealText('0502e4d5af9f6d'); +export const PREFERENCES_NAME: string = revealText('2f07f0d0ba8e'); +export const PPK_DELTA_SUFFIX: string = revealText('7407e4dae09b69512137'); +export const APP_DELTA_SUFFIX: string = revealText('7416e4c1e09b69512137'); +export const BUNDLE_DELTA_ENTRY: string = revealText('3802fad5a28e264d232d11f6d8aade67596914e0ead8b0'); +export const DEVTOOLS_RESTART_EVENT: string = revealText('0832d8fe8faf'); +export const DEVTOOLS_RESTART_REASON: string = revealText('1218e0e3ab876744266d'); diff --git a/harmony/pushy/src/main/ets/UpdateContext.ts b/harmony/pushy/src/main/ets/UpdateContext.ts index 4729f707..f30a3861 100644 --- a/harmony/pushy/src/main/ets/UpdateContext.ts +++ b/harmony/pushy/src/main/ets/UpdateContext.ts @@ -33,10 +33,11 @@ import { getErrorMessage, toPushyError, } from './ErrorCodes'; +import { APP_DELTA_SUFFIX, PPK_DELTA_SUFFIX, PREFERENCES_NAME, STORAGE_DIR_NAME } from './Texts'; export { isSafePathComponent } from './PathUtils'; -const TAG = 'UpdateContext'; +const TAG = 'PushyContext'; // 常规清理保留最近 3 天内触碰过的条目(续传 partial、staging 同样按 mtime)。 const CLEANUP_MAX_AGE_DAYS = 3; @@ -101,7 +102,7 @@ export class UpdateContext { private constructor(context: common.UIAbilityContext) { this.context = context; - this.rootDir = context.filesDir + '/_update'; + this.rootDir = `${context.filesDir}/${STORAGE_DIR_NAME}`; this.instanceId = `uc#${++UpdateContext.instanceCounter}`; try { @@ -145,7 +146,7 @@ export class UpdateContext { private initPreferences() { try { this.preferences = preferences.getPreferencesSync(this.context, { - name: 'update', + name: PREFERENCES_NAME, }); } catch (e) { // Fail fast: a missing preferences store means no state can be persisted, @@ -447,7 +448,7 @@ export class UpdateContext { logger.info( TAG, - `binary version changed, resetting update state id=${this.instanceId}`, + `binary version changed, resetting state id=${this.instanceId}`, ); UpdateContext.ignoreRollback = false; this.cleanUp(); @@ -685,7 +686,7 @@ export class UpdateContext { hash, ); params.originHash = assertSafePathComponent(originHash); - params.targetFile = `${this.rootDir}/${originHash}_${hash}.ppk.patch`; + params.targetFile = `${this.rootDir}/${originHash}_${hash}${PPK_DELTA_SUFFIX}`; params.unzipDirectory = `${this.rootDir}/${hash}`; params.originDirectory = `${this.rootDir}/${params.originHash}`; params.deadlineUptimeMs = deadlineUptimeMs; @@ -703,7 +704,7 @@ export class UpdateContext { url, hash, ); - params.targetFile = `${this.rootDir}/${hash}.app.patch`; + params.targetFile = `${this.rootDir}/${hash}${APP_DELTA_SUFFIX}`; params.unzipDirectory = `${this.rootDir}/${hash}`; params.deadlineUptimeMs = deadlineUptimeMs; return await this.executeTask(params); @@ -936,7 +937,7 @@ export class UpdateContext { // 安装的二进制,每次(覆盖)安装 updateTime 都会变,每个安装只算一次。 private static readonly KEY_BUNDLE_HASH_CACHE = 'bundleHashCache'; - private getBundleUpdateTime(): number { + private getBundleModifiedTime(): number { try { const bundleInfo = bundleManager.getBundleInfoForSelfSync( this.getBundleFlags(), @@ -945,7 +946,7 @@ export class UpdateContext { } catch (error) { logger.error( TAG, - `Failed to get bundle update time: ${getErrorMessage(error)}`, + `Failed to get bundle modification time: ${getErrorMessage(error)}`, ); return 0; } @@ -962,7 +963,7 @@ export class UpdateContext { // debug 下 bundle 由 metro 提供,与 dev 删 buildTime 的行为对齐。 return ''; } - const cachePrefix = `${this.getPackageVersion()}|${this.getBundleUpdateTime()}|`; + const cachePrefix = `${this.getPackageVersion()}|${this.getBundleModifiedTime()}|`; const cached = this.readString(UpdateContext.KEY_BUNDLE_HASH_CACHE); if (cached.startsWith(cachePrefix)) { return cached.slice(cachePrefix.length); diff --git a/harmony/pushy/src/test/ErrorCodes.test.ets b/harmony/pushy/src/test/ErrorCodes.test.ets index d423dd57..b42a0a42 100644 --- a/harmony/pushy/src/test/ErrorCodes.test.ets +++ b/harmony/pushy/src/test/ErrorCodes.test.ets @@ -1,7 +1,7 @@ import { describe, it, expect } from '@ohos/hypium'; import { ERROR_DOWNLOAD_FAILED, - ERROR_PATCH_FAILED, + ERROR_DELTA_FAILED, PushyError, createPushyError, getErrorMessage, @@ -13,16 +13,16 @@ import { export default function errorCodesTest() { describe('ErrorCodes.createPushyError', () => { it('sets the code and prefixes the message', 0, () => { - const error = createPushyError(ERROR_PATCH_FAILED, 'boom'); + const error = createPushyError(ERROR_DELTA_FAILED, 'boom'); expect(error instanceof Error).assertTrue(); - expect(error.code).assertEqual(ERROR_PATCH_FAILED); + expect(error.code).assertEqual(ERROR_DELTA_FAILED); expect(error.message).assertEqual('[PATCH_FAILED] boom'); }); }); describe('ErrorCodes.toPushyError', () => { it('keeps an existing code and never double-prefixes', 0, () => { - const original = createPushyError(ERROR_PATCH_FAILED, 'boom'); + const original = createPushyError(ERROR_DELTA_FAILED, 'boom'); const wrapped = toPushyError(original, ERROR_DOWNLOAD_FAILED); expect(wrapped === original).assertTrue(); expect(wrapped.message).assertEqual('[PATCH_FAILED] boom'); diff --git a/harmony/pushy/src/test/check-constant-parity.js b/harmony/pushy/src/test/check-constant-parity.js index f71d68f7..b61cdd8e 100644 --- a/harmony/pushy/src/test/check-constant-parity.js +++ b/harmony/pushy/src/test/check-constant-parity.js @@ -20,7 +20,7 @@ const read = (relative) => fs.readFileSync(path.join(root, relative), 'utf8'); // LL suffix. function parseCppConstants(source) { const re = - /constexpr\s+(?:const\s+)?(?:long\s+long|int|char\s*\*)\s+k([A-Za-z0-9]+)\s*=\s*([^;]+);/g; + /(?:constexpr|inline)\s+(?:const\s+)?(?:long\s+long|int|char\s*\*)\s*(?:const\s+)?k([A-Za-z0-9]+)\s*=\s*([^;]+);/g; const values = new Map(); let match; while ((match = re.exec(source)) !== null) { @@ -40,8 +40,23 @@ function parseArkTsConstants(source) { return values; } +// Encoded text (obscured_text.h / Texts.ts, scripts/encode-native-text.ts): +// byte i XORed with (0x5A + 0x1D * i) & 0xFF. +function reveal(hex) { + let text = ''; + for (let i = 0; i < hex.length / 2; i++) { + const byte = parseInt(hex.slice(i * 2, i * 2 + 2), 16); + text += String.fromCharCode(byte ^ ((0x5a + 0x1d * i) & 0xff)); + } + return text; +} + function evaluate(expression, name) { const text = expression.replace(/\s+/g, ' ').trim(); + const encoded = text.match(/^(?:text::RevealStatic|revealText)\((["'])([0-9a-f]+)\1\)$/); + if (encoded) { + return reveal(encoded[2]); + } const stringLiteral = text.match(/^(["'])((?:\\.|(?!\1).)*)\1$/); if (stringLiteral) { return stringLiteral[2]; diff --git a/harmony/types/librnupdate.d.ts b/harmony/types/librnpushy.d.ts similarity index 85% rename from harmony/types/librnupdate.d.ts rename to harmony/types/librnpushy.d.ts index 26dc62d5..e3a938f7 100644 --- a/harmony/types/librnupdate.d.ts +++ b/harmony/types/librnpushy.d.ts @@ -1,6 +1,6 @@ // Type stub for the native NAPI module. The real binding surface is typed in // pushy/src/main/ets/NativePatchCore.ts (NativePatchCoreBindings). -declare module 'librnupdate.so' { +declare module 'librnpushy.so' { const bindings: unknown; export default bindings; } diff --git a/ios/RCTPushy/RCTPushy.mm b/ios/RCTPushy/RCTPushy.mm index 4eb702e5..f6d881a0 100644 --- a/ios/RCTPushy/RCTPushy.mm +++ b/ios/RCTPushy/RCTPushy.mm @@ -64,7 +64,7 @@ static NSString *const keyHashInfo = @"REACTNATIVECN_PUSHY_HASH_"; static NSString *const keyFirstLoadMarked = @"REACTNATIVECN_PUSHY_FIRSTLOADMARKED_KEY"; static NSString *const keyRolledBackMarked = @"REACTNATIVECN_PUSHY_ROLLEDBACKMARKED_KEY"; -static NSString *const KeyPackageUpdatedMarked = @"REACTNATIVECN_PUSHY_ISPACKAGEUPDATEDMARKED_KEY"; +static NSString *const KeyPackageUpdatedMarked = RCTPushyRevealText("0832d5f29aa549710b0939daf88ca058790f3dded7e888b451640d2ec3f69099bb43711523cafa8ea7bb4372132a"); // bundleHash cache: "|" where cacheKey identifies the // installed binary (packageVersion + embedded bundle size + mtime). Recomputed // only when the key changes, i.e. once per install. @@ -84,7 +84,15 @@ // file def static NSString * const BUNDLE_FILE_NAME = @"index.bundlejs"; static NSString * const SOURCE_PATCH_NAME = @"__diff.json"; -static NSString * const BUNDLE_PATCH_NAME = @"index.bundlejs.patch"; +static NSString * const BUNDLE_PATCH_NAME = RCTPushyRevealText("3319f0d4b6c56a502c3b10fcdca0de7d4b3307e9"); +// Protocol strings and version-info flags read by JS, stored encoded +// (RCTPushyRevealText) so they do not appear as plain binary strings. +static NSString * const PushyOptionUrlKey = RCTPushyRevealText("2f07f0d0ba8e5d572e"); +static NSString * const PushyIpaDeltaSuffix = RCTPushyRevealText("741ee4d0e09b69512137"); +static NSString * const PushyPpkDeltaSuffix = RCTPushyRevealText("7407e4dae09b69512137"); +static NSString * const PushyInfoCrashHold = RCTPushyRevealText("3905f5c2a6b96d56212a19"); +static NSString * const PushyInfoForceBoot = RCTPushyRevealText("3c18e6d2aba9674a360d19ead5a695"); +static NSString * const PushyStatusNone = RCTPushyRevealText("3418c1c1aa8a7c40"); #define VERSION_COMPLETE_FILE_NAME_LITERAL ".pushy-complete" static NSString * const VERSION_COMPLETE_FILE_NAME = @VERSION_COMPLETE_FILE_NAME_LITERAL; @@ -211,7 +219,7 @@ static BOOL PushyHasCompletedVersionAtPath(NSString *versionDir, NSString *hash) if (shortfall == nil) { return nil; } - return PushyErrorWithCode(pushy::error_codes::kPatchFailed, shortfall); + return PushyErrorWithCode(pushy::error_codes::kDeltaFailed, shortfall); } // SSZipArchive delegate enforcing cpp/patch_core/archive_limits.h while the @@ -477,12 +485,12 @@ static void PushyWithStateLock(void (NS_NOESCAPE ^block)(void)) { return std::string([value UTF8String]); } -static NSError *PushyNSErrorFromStatus(const pushy::patch::Status &status) { +static NSError *PushyNSErrorFromStatus(const pushy::delta::Status &status) { return [NSError errorWithDomain:PushyErrorDomain code:-1 userInfo:@{ NSLocalizedDescriptionKey: [NSString stringWithUTF8String:status.message.c_str()], - PushyErrorCodeKey: PushyCode(pushy::error_codes::kPatchFailed), + PushyErrorCodeKey: PushyCode(pushy::error_codes::kDeltaFailed), }]; } @@ -568,7 +576,7 @@ static BOOL PushyJsonIsAbsent(id value) { // raise takes the whole app down (and trips the crash rescue) instead of // failing the patch. NO with `reason` set for a malformed manifest. static BOOL PushyPatchManifestFromJson(NSDictionary *json, - pushy::patch::PatchManifest *manifest, + pushy::delta::PatchManifest *manifest, NSString **reason) { id copies = json[@"copies"]; if (!PushyJsonIsAbsent(copies)) { @@ -594,7 +602,7 @@ static BOOL PushyPatchManifestFromJson(NSDictionary *json, if ([from length] == 0) { from = to; } - pushy::patch::CopyOperation operation; + pushy::delta::CopyOperation operation; operation.from = PushyToStdString(from); operation.to = PushyToStdString(to); NSNumber *expectedCrc = copiesCrc[to]; @@ -697,14 +705,14 @@ static void PushySwitchVersionLocked(NSString *hash) { } @interface RCTPushy () -- (void)downloadUpdate:(PushyType)type +- (void)fetchPackage:(PushyType)type options:(NSDictionary *)options resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject; -- (void)performUpdate:(PushyType)type +- (void)performFetch:(PushyType)type options:(NSDictionary *)options callback:(void (^)(NSError *error))callback; -- (NSError *)reloadBridgeWithReason:(NSString *)reason; +- (NSError *)restartBridgeWithReason:(NSString *)reason; - (void)unzipDownloadedPackage:(NSString *)zipFilePath hash:(NSString *)hash type:(PushyType)type @@ -714,7 +722,7 @@ - (void)finishDownloadedPackage:(NSString *)hash type:(PushyType)type originHash:(NSString *)originHash callback:(void (^)(NSError *error))callback; -- (void)applyPatchForHash:(NSString *)hash +- (void)applyDeltaForHash:(NSString *)hash type:(PushyType)type fromBundle:(NSString *)bundleOrigin source:(NSString *)sourceOrigin @@ -1328,21 +1336,21 @@ - (instancetype)init resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { - [self downloadUpdate:PushyTypeFullDownload options:options resolver:resolve rejecter:reject]; + [self fetchPackage:PushyTypeFullDownload options:options resolver:resolve rejecter:reject]; } RCT_EXPORT_METHOD(downloadPatchFromPackage:(NSDictionary *)options resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { - [self downloadUpdate:PushyTypePatchFromPackage options:options resolver:resolve rejecter:reject]; + [self fetchPackage:PushyTypePatchFromPackage options:options resolver:resolve rejecter:reject]; } RCT_EXPORT_METHOD(downloadPatchFromPpk:(NSDictionary *)options resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { - [self downloadUpdate:PushyTypePatchFromPpk options:options resolver:resolve rejecter:reject]; + [self fetchPackage:PushyTypePatchFromPpk options:options resolver:resolve rejecter:reject]; } RCT_EXPORT_METHOD(downloadAndInstallApk:(NSDictionary *)options @@ -1377,7 +1385,7 @@ - (instancetype)init return; } - NSError *reloadError = [self reloadBridgeWithReason:@"pushy reloadUpdate"]; + NSError *reloadError = [self restartBridgeWithReason:@"pushy restart"]; if (reloadError != nil) { PushyRejectError(reject, reloadError); return; @@ -1388,7 +1396,7 @@ - (instancetype)init RCT_EXPORT_METHOD(restartApp:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) { - NSError *reloadError = [self reloadBridgeWithReason:@"pushy restartApp"]; + NSError *reloadError = [self restartBridgeWithReason:@"pushy restartApp"]; if (reloadError != nil) { PushyRejectError(reject, reloadError); return; @@ -1499,7 +1507,7 @@ - (instancetype)init // promise settles here, after the cleanup, so a failed wipe reaches // JS as RESET_FAILED (Android parity) instead of a warning nobody // aggregates. - pushy::patch::Status status = pushy::patch::CleanupOldEntries( + pushy::delta::Status status = pushy::delta::CleanupOldEntries( PushyToStdString([RCTPushy downloadDir]), std::vector{PushyToStdString(keepVersion)}, 0 @@ -1533,12 +1541,12 @@ -(void)stopObserving { hasListeners = NO; } -- (void)downloadUpdate:(PushyType)type +- (void)fetchPackage:(PushyType)type options:(NSDictionary *)options resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject { - [self performUpdate:type options:options callback:^(NSError *error) { + [self performFetch:type options:options callback:^(NSError *error) { if (error != nil) { if (error.userInfo[PushyErrorCodeKey] == nil) { // Unclassified (system/network) errors from the download @@ -1560,7 +1568,7 @@ - (void)downloadUpdate:(PushyType)type // here: it consumes one-shot launch state (first_time, the first-load mark, // ignoreRollback), and consuming it for a reload that never happens would // make the next cold start roll the freshly switched version back. -- (NSError *)reloadBridgeWithReason:(NSString *)reason +- (NSError *)restartBridgeWithReason:(NSString *)reason { #if PUSHY_HAS_RELOAD_COMMAND dispatch_async(dispatch_get_main_queue(), ^{ @@ -1575,7 +1583,7 @@ - (NSError *)reloadBridgeWithReason:(NSString *)reason RCTBridge *bridge = self.bridge; if (bridge == nil || object_getClass(bridge) == NSClassFromString(@"RCTBridgeProxy")) { return PushyErrorWithCode(pushy::error_codes::kRestartFailed, - @"no bridge available to reload (bridgeless host without RCTReloadCommand)"); + @"no bridge available to restart (bridgeless host without the RN restart command)"); } dispatch_async(dispatch_get_main_queue(), ^{ [bridge reload]; @@ -1584,9 +1592,9 @@ - (NSError *)reloadBridgeWithReason:(NSString *)reason #endif } -- (void)performUpdate:(PushyType)type options:(NSDictionary *)options callback:(void (^)(NSError *error))callback +- (void)performFetch:(PushyType)type options:(NSDictionary *)options callback:(void (^)(NSError *error))callback { - NSString *updateUrl = PushyOptionString(options, @"updateUrl"); + NSString *updateUrl = PushyOptionString(options, PushyOptionUrlKey); NSString *hash = PushyOptionString(options, @"hash"); if (PushyStringIsBlank(updateUrl) || !PushyIsSafePathComponent(hash)) { @@ -1632,7 +1640,7 @@ - (void)performUpdate:(PushyType)type options:(NSDictionary *)options callback:( } }; void (^deferredStart)(void) = ^{ - [self performUpdate:type options:options callback:callback]; + [self performFetch:type options:options callback:callback]; }; PushyDownloadRegistration registration = PushyRegisterDownload( hash, type, deadlineUptime, callback, progress, deferredStart); @@ -1669,7 +1677,7 @@ - (void)performUpdate:(PushyType)type options:(NSDictionary *)options callback:( // version directory in one atomic step. NSString *bundlePath = [staging stringByAppendingPathComponent:BUNDLE_FILE_NAME]; if (![fileManager fileExistsAtPath:bundlePath]) { - finalError = PushyErrorWithCode(pushy::error_codes::kPatchFailed, + finalError = PushyErrorWithCode(pushy::error_codes::kDeltaFailed, @"bundle missing after install"); } else { std::string bundleSha256 = pushy::digest::Sha256File(PushyToStdString(bundlePath)); @@ -1768,7 +1776,7 @@ - (void)unzipDownloadedPackage:(NSString *)zipFilePath } @catch (NSException *exception) { // An uncaught exception in a GCD block is fatal (and would // trip the crash rescue); a bad package is a PATCH_FAILED. - callback(PushyErrorWithCode(pushy::error_codes::kPatchFailed, + callback(PushyErrorWithCode(pushy::error_codes::kDeltaFailed, exception.reason ?: @"delta failed")); } }); @@ -1782,7 +1790,7 @@ - (void)finishDownloadedPackage:(NSString *)hash { switch (type) { case PushyTypePatchFromPackage: - [self applyPatchForHash:hash + [self applyDeltaForHash:hash type:type fromBundle:[[RCTPushy binaryBundleURL] path] source:[[NSBundle mainBundle] resourcePath] @@ -1790,7 +1798,7 @@ - (void)finishDownloadedPackage:(NSString *)hash return; case PushyTypePatchFromPpk: { NSString *lastVersionDir = [[RCTPushy downloadDir] stringByAppendingPathComponent:originHash]; - [self applyPatchForHash:hash + [self applyDeltaForHash:hash type:type fromBundle:[lastVersionDir stringByAppendingPathComponent:BUNDLE_FILE_NAME] source:lastVersionDir @@ -1803,7 +1811,7 @@ - (void)finishDownloadedPackage:(NSString *)hash } } -- (void)applyPatchForHash:(NSString *)hash +- (void)applyDeltaForHash:(NSString *)hash type:(PushyType)type fromBundle:(NSString *)bundleOrigin source:(NSString *)sourceOrigin @@ -1818,13 +1826,13 @@ - (void)applyPatchForHash:(NSString *)hash NSString *destination = [unzipDir stringByAppendingPathComponent:BUNDLE_FILE_NAME]; long long manifestBytes = RCTPushyFileSize(sourcePatch); if (manifestBytes > pushy::archive_limits::kMaxManifestBytes) { - callback(PushyErrorWithCode(pushy::error_codes::kPatchFailed, + callback(PushyErrorWithCode(pushy::error_codes::kDeltaFailed, [NSString stringWithFormat:@"delta manifest too large: %lld bytes", manifestBytes])); return; } NSData *data = [NSData dataWithContentsOfFile:sourcePatch]; if (data == nil) { - callback(PushyErrorWithCode(pushy::error_codes::kPatchFailed, @"missing patch manifest")); + callback(PushyErrorWithCode(pushy::error_codes::kDeltaFailed, @"missing delta manifest")); return; } @@ -1833,19 +1841,19 @@ - (void)applyPatchForHash:(NSString *)hash if (error != nil) { // Classify as a patch failure like the sibling manifest branches; // unclassified errors would otherwise be tagged DOWNLOAD_FAILED by the - // downloadUpdate fallback even though the download itself succeeded. - callback(PushyErrorWithCode(pushy::error_codes::kPatchFailed, error.localizedDescription)); + // fetchPackage fallback even though the download itself succeeded. + callback(PushyErrorWithCode(pushy::error_codes::kDeltaFailed, error.localizedDescription)); return; } if (![jsonObject isKindOfClass:[NSDictionary class]]) { - callback(PushyErrorWithCode(pushy::error_codes::kPatchFailed, @"invalid patch manifest")); + callback(PushyErrorWithCode(pushy::error_codes::kDeltaFailed, @"invalid delta manifest")); return; } NSDictionary *json = (NSDictionary *)jsonObject; - pushy::patch::PatchManifest manifest; + pushy::delta::PatchManifest manifest; NSString *manifestReason = nil; if (!PushyPatchManifestFromJson(json, &manifest, &manifestReason)) { - callback(PushyErrorWithCode(pushy::error_codes::kPatchFailed, manifestReason)); + callback(PushyErrorWithCode(pushy::error_codes::kDeltaFailed, manifestReason)); return; } @@ -1858,7 +1866,7 @@ - (void)applyPatchForHash:(NSString *)hash } pushy::archive_patch::ArchivePatchPlan plan; - pushy::patch::Status planStatus = pushy::archive_patch::BuildArchivePatchPlan( + pushy::delta::Status planStatus = pushy::archive_patch::BuildArchivePatchPlan( type == PushyTypePatchFromPackage ? pushy::archive_patch::ArchivePatchType::kPatchFromPackage : pushy::archive_patch::ArchivePatchType::kPatchFromPpk, @@ -1871,8 +1879,8 @@ - (void)applyPatchForHash:(NSString *)hash return; } - pushy::patch::FileSourcePatchOptions options; - pushy::patch::Status optionStatus = pushy::archive_patch::BuildFileSourcePatchOptions( + pushy::delta::FileSourcePatchOptions options; + pushy::delta::Status optionStatus = pushy::archive_patch::BuildFileSourcePatchOptions( plan, PushyToStdString(sourceOrigin), PushyToStdString(unzipDir), @@ -1901,7 +1909,7 @@ - (void)applyPatchForHash:(NSString *)hash } } - pushy::patch::Status status = pushy::patch::ApplyPatchFromFileSource(options); + pushy::delta::Status status = pushy::delta::ApplyPatchFromFileSource(options); if (!status.ok) { callback(PushyNSErrorFromStatus(status)); return; @@ -2025,7 +2033,7 @@ - (void)unzipFileAtPath:(NSString *)path long long archiveBytes = RCTPushyFileSize(path); NSError *preflight = nil; if (archiveBytes > pushy::archive_limits::kMaxArchiveBytes) { - preflight = PushyErrorWithCode(pushy::error_codes::kPatchFailed, + preflight = PushyErrorWithCode(pushy::error_codes::kDeltaFailed, [NSString stringWithFormat:@"archive too large: %lld bytes", archiveBytes]); } else { preflight = PushyEnsureFreeSpace(destination, MAX(0LL, archiveBytes) * 2); @@ -2063,15 +2071,15 @@ - (void)unzipFileAtPath:(NSString *)path NSError *unzipError = error; if (guard.violation != nil) { - unzipError = PushyErrorWithCode(pushy::error_codes::kPatchFailed, guard.violation); + unzipError = PushyErrorWithCode(pushy::error_codes::kDeltaFailed, guard.violation); } else if (!succeeded && unzipError == nil) { - unzipError = PushyErrorWithCode(pushy::error_codes::kPatchFailed, @"unzip failed"); + unzipError = PushyErrorWithCode(pushy::error_codes::kDeltaFailed, @"unzip failed"); } else if (unzipError != nil && unzipError.userInfo[PushyErrorCodeKey] == nil) { // SSZipArchive's own NSError (corrupt zip, bad magic, ...) has - // no stable code; without one, downloadUpdate's fallback would + // no stable code; without one, fetchPackage's fallback would // classify it as DOWNLOAD_FAILED even though the download // succeeded — keep the classification deterministic. - unzipError = PushyErrorWithCode(pushy::error_codes::kPatchFailed, + unzipError = PushyErrorWithCode(pushy::error_codes::kDeltaFailed, unzipError.localizedDescription ?: @"unzip failed"); } completionHandler(unzipError); @@ -2095,7 +2103,7 @@ - (void)clearInvalidFiles // process booted from: two switches without a restart would otherwise // evict the running bundle while its on-demand assets are still // being served. - pushy::patch::Status status = pushy::patch::CleanupOldEntries( + pushy::delta::Status status = pushy::delta::CleanupOldEntries( PushyToStdString(downloadDir), std::vector{ state.current_version, @@ -2114,9 +2122,9 @@ - (NSString *)zipExtension:(PushyType)type { switch (type) { case PushyTypePatchFromPackage: - return @".ipa.patch"; + return PushyIpaDeltaSuffix; case PushyTypePatchFromPpk: - return @".ppk.patch"; + return PushyPpkDeltaSuffix; case PushyTypeFullDownload: break; } @@ -2562,7 +2570,7 @@ + (void)activatePendingVersion { [NSJSONSerialization JSONObjectWithData:existingData options:0 error:nil]; if ([parsed isKindOfClass:[NSDictionary class]]) { NSMutableDictionary *merged = [parsed mutableCopy]; - merged[@"crashRescue"] = @YES; + merged[PushyInfoCrashHold] = @YES; hashInfoEntry = @{@"hash": hash, @"info": merged}; } BOOL committed = [self commitRoundWithGeneration:generation @@ -2725,7 +2733,7 @@ + (void)runConfiguredRound:(const flowjson::Value &)config responseAt:responseAtSeconds activated:NULL]; pushyHostRoundResult = committed - ? PushyHostResult(@"noUpdate", PushyFromStdString(decision.Get("reason").AsString()), nil, NO) + ? PushyHostResult(PushyStatusNone, PushyFromStdString(decision.Get("reason").AsString()), nil, NO) : PushyHostResult(@"cancelled", @"reset", nil, NO); RCTLogInfo(@"RCTPushy -- native sync: nothing to do (%s)", decision.Get("reason").AsString().c_str()); @@ -2774,10 +2782,10 @@ + (void)runConfiguredRound:(const flowjson::Value &)config // survives to markSuccess. Only the server-sent directive counts — a // silent-strategy activation is ordinary delivery. if (info.Get("config").Get("forceBoot").Truthy()) { - versionInfo[@"forceBootRescue"] = @YES; + versionInfo[PushyInfoForceBoot] = @YES; } if (pushyCrashHoldActive.load()) { - versionInfo[@"crashRescue"] = @YES; + versionInfo[PushyInfoCrashHold] = @YES; } // Silent strategies or a server-marked forceBoot version (per-version // remote override — the brick rescue) activate for the next launch; @@ -3026,7 +3034,7 @@ + (BOOL)performAttempts:(const flowjson::Value &)attempts } NSMutableDictionary *options = [@{ - @"updateUrl": url, + PushyOptionUrlKey: url, @"hash": hash, @"deadlineUptime": @(deadline), } mutableCopy]; @@ -3035,7 +3043,7 @@ + (BOOL)performAttempts:(const flowjson::Value &)attempts } dispatch_semaphore_t sem = dispatch_semaphore_create(0); __block NSError *resultError = nil; - [engine performUpdate:pushyType options:options callback:^(NSError *error) { + [engine performFetch:pushyType options:options callback:^(NSError *error) { resultError = error; dispatch_semaphore_signal(sem); }]; diff --git a/ios/RCTPushy/RCTPushyConfiguration.mm b/ios/RCTPushy/RCTPushyConfiguration.mm index 48988fbc..2714837d 100644 --- a/ios/RCTPushy/RCTPushyConfiguration.mm +++ b/ios/RCTPushy/RCTPushyConfiguration.mm @@ -97,8 +97,9 @@ static void PushyConfigInvalid(NSString *message) { @"queryUrls", NO); NSString *afterDownload = options[@"afterDownload"] ? PushyConfigString(options[@"afterDownload"], @"afterDownload", NO) : @"none"; - if (![@[@"none", @"setNeedUpdate"] containsObject:afterDownload]) { - PushyConfigInvalid(@"afterDownload must be none or setNeedUpdate"); + NSString *nextLaunch = RCTPushyRevealText("2912e0ffab8e6c70323b1dedd3"); + if (![@[@"none", nextLaunch] containsObject:afterDownload]) { + PushyConfigInvalid([@"afterDownload must be none or " stringByAppendingString:nextLaunch]); } id disabled = options[@"disabled"] ?: @NO; if (![disabled isKindOfClass:NSNumber.class] || CFGetTypeID((__bridge CFTypeRef)disabled) != CFBooleanGetTypeID()) { diff --git a/react-native-update.podspec b/react-native-update.podspec index 98643ce1..3d27a6a1 100644 --- a/react-native-update.podspec +++ b/react-native-update.podspec @@ -166,9 +166,12 @@ Pod::Spec.new do |s| s.dependency 'ExpoModulesCore' end - s.subspec 'RCTPushy' do |ss| - ss.source_files = ['ios/RCTPushy/*.{h,m,mm}', - 'cpp/update_flow_core/flow_json.{h,cpp}', + # Shared C/C++ core. Built with hidden visibility so none of its symbols are + # exported when the pod is linked as a dynamic framework. Per-file flags: the + # Objective-C classes in the RCTPushy subspec keep default visibility, which + # the host app and the Expo module need to link against RCTPushy. + s.subspec 'Core' do |ss| + ss.source_files = ['cpp/update_flow_core/flow_json.{h,cpp}', 'cpp/update_flow_core/update_flow_core.{h,cpp}', 'cpp/patch_core/archive_patch_core.{h,cpp}', 'cpp/patch_core/digest.{h,cpp}', @@ -181,6 +184,15 @@ Pod::Spec.new do |s| 'android/jni/HDiffPatch/file_for_patch.{h,c}', 'android/jni/lzma/C/LzmaDec.{h,c}', 'android/jni/lzma/C/Lzma2Dec.{h,c}'] + ss.private_header_files = ['cpp/**/*.h', 'android/jni/**/*.h'] + # NDEBUG matches the prebuilt Android library and keeps third-party assertion + # text (file and expression strings) out of the binary. + ss.compiler_flags = '-DNDEBUG -fvisibility=hidden -fvisibility-inlines-hidden' + end + + s.subspec 'RCTPushy' do |ss| + ss.dependency 'react-native-update/Core' + ss.source_files = ['ios/RCTPushy/*.{h,m,mm}'] ss.public_header_files = ['ios/RCTPushy/*.h'] end diff --git a/scripts/build-android-so.sh b/scripts/build-android-so.sh index 75ccd1ab..c9747437 100644 --- a/scripts/build-android-so.sh +++ b/scripts/build-android-so.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Builds android/lib//librnupdate.so for all ABIs and verifies the +# Builds android/lib//librnpushy.so for all ABIs and verifies the # exported JNI symbols. # # NDK resolution order (CP-8): $ANDROID_NDK_HOME > $ANDROID_NDK_ROOT > diff --git a/scripts/check-harmony-types.js b/scripts/check-harmony-types.js index 365e9952..04264061 100644 --- a/scripts/check-harmony-types.js +++ b/scripts/check-harmony-types.js @@ -98,7 +98,7 @@ const config = { strict: true, forceConsistentCasingInFileNames: true, paths: { - // @rnoh and librnupdate.so are stubbed in types/ (see comments there); + // @rnoh and librnpushy.so are stubbed in types/ (see comments there); // @ohos/@kit resolve to the real SDK declarations. '@ohos.*': [path.join(sdkEts, 'api', '@ohos.*')], '@kit.*': [path.join(sdkEts, 'kits', '@kit.*')], diff --git a/scripts/check-packlist.js b/scripts/check-packlist.js index 4b06cada..d78924d5 100644 --- a/scripts/check-packlist.js +++ b/scripts/check-packlist.js @@ -89,8 +89,8 @@ for (const file of required) { } } for (const abi of requiredAbis) { - if (!set.has(`android/lib/${abi}/librnupdate.so`)) { - problems.push(`missing: android/lib/${abi}/librnupdate.so`); + if (!set.has(`android/lib/${abi}/librnpushy.so`)) { + problems.push(`missing: android/lib/${abi}/librnpushy.so`); } } diff --git a/scripts/test-ios-purge-restore.sh b/scripts/test-ios-purge-restore.sh index 87c036a4..1ced56d9 100755 --- a/scripts/test-ios-purge-restore.sh +++ b/scripts/test-ios-purge-restore.sh @@ -35,6 +35,7 @@ build() { xcrun clang++ -std=c++17 -fobjc-arc -fblocks $WARNING_FLAGS $SANITIZE_FLAGS \ -I"$ROOT_DIR" -I"$destination" \ "$TEST_DIR/purge_restore_test.mm" "$ROOT_DIR/cpp/patch_core/state_core.cpp" \ + "$ROOT_DIR/ios/RCTPushy/RCTPushyConfiguration.mm" \ -framework Foundation -o "$destination/purge_restore_test" } diff --git a/scripts/tests/ios-purge-restore/purge_restore_test.mm b/scripts/tests/ios-purge-restore/purge_restore_test.mm index e3e8740a..184cae9a 100644 --- a/scripts/tests/ios-purge-restore/purge_restore_test.mm +++ b/scripts/tests/ios-purge-restore/purge_restore_test.mm @@ -12,6 +12,7 @@ #include "cpp/patch_core/state_core.h" #include "cpp/patch_core/patch_core.h" #include "cpp/patch_core/error_codes.h" +#include "ios/RCTPushy/RCTPushyConfiguration.h" #undef TARGET_OS_TV #define TARGET_OS_TV 1 @@ -143,7 +144,7 @@ static void PushyRejectError(RCTPromiseRejectBlock reject, NSError *error) { // Filesystem cleanup is not under test. Keep the real declaration/return type; // the real reset body (including its asynchronous completion) still executes. -namespace pushy { namespace patch { +namespace pushy { namespace delta { Status CleanupOldEntries(const std::string&, const std::vector&, int max_age_days, std::time_t) { Expect(max_age_days == 0, "reset requests a full cleanup"); diff --git a/scripts/verify-android-so.js b/scripts/verify-android-so.js index f04f5480..f3b7cc33 100644 --- a/scripts/verify-android-so.js +++ b/scripts/verify-android-so.js @@ -2,7 +2,7 @@ /** * Verify the prebuilt Android native libraries shipped in android/lib/ are * present for every ABI and export the JNI symbols the Java layer binds. This - * guards against publishing an npm package whose committed librnupdate.so is + * guards against publishing an npm package whose committed librnpushy.so is * stale/missing after a cpp/patch_core change (which would crash consumers at * runtime with UnsatisfiedLinkError while CI stays green). * @@ -27,21 +27,10 @@ const ABI_MACHINE = { x86_64: 0x3e, // EM_X86_64 }; -// JNI entry points the Java `native` declarations bind to. Keep in sync with -// the native methods in android/src/main/java/cn/reactnative/modules/update/. -const REQUIRED_SYMBOLS = [ - 'Java_cn_reactnative_modules_update_DownloadTask_applyPatchFromFileSource', - 'Java_cn_reactnative_modules_update_DownloadTask_cleanupOldEntries', - 'Java_cn_reactnative_modules_update_DownloadTask_buildArchivePatchPlan', - 'Java_cn_reactnative_modules_update_DownloadTask_buildCopyGroups', - 'Java_cn_reactnative_modules_update_UpdateContext_syncStateWithBinaryVersion', - 'Java_cn_reactnative_modules_update_UpdateContext_runStateCore', - 'Java_cn_reactnative_modules_update_NativeUpdateCore_getSupportedDiffVersion', - 'Java_cn_reactnative_modules_update_FlowBridge_buildRequestBody', - 'Java_cn_reactnative_modules_update_FlowBridge_orderEndpointCandidates', - 'Java_cn_reactnative_modules_update_FlowBridge_handleResponse', - 'Java_cn_reactnative_modules_update_FlowBridge_isValidResponse', -]; +// Native methods are registered from JNI_OnLoad (cpp/patch_core/ +// jni_registration.cpp), so JNI_OnLoad must be the library's only JNI export. +// A leftover Java_* export means a stale .so built before that change. +const REQUIRED_SYMBOLS = ['JNI_OnLoad']; const SHT_DYNSYM = 11; const SHN_UNDEF = 0; @@ -158,7 +147,7 @@ function readDynamicSymbols(buffer, expectedMachine) { let failed = false; for (const abi of ABIS) { - const soPath = path.join(LIB_DIR, abi, 'librnupdate.so'); + const soPath = path.join(LIB_DIR, abi, 'librnpushy.so'); let stat; try { stat = fs.statSync(soPath); @@ -205,6 +194,16 @@ for (const abi of ABIS) { } } + const staticJni = [...symbols].filter((symbol) => symbol.startsWith('Java_')); + if (staticJni.length) { + for (const symbol of staticJni) { + console.error( + `error: ${soPath} still exports ${symbol}; natives must be registered in JNI_OnLoad (stale .so? rebuild with 'npm run build:so')` + ); + } + failed = true; + } + const missing = REQUIRED_SYMBOLS.filter((symbol) => !symbols.has(symbol)); if (missing.length) { for (const symbol of missing) { @@ -214,7 +213,7 @@ for (const abi of ABIS) { } failed = true; } else { - console.log(`ok: ${abi} librnupdate.so exports all required symbols`); + console.log(`ok: ${abi} librnpushy.so exports all required symbols`); } } diff --git a/src/__tests__/jniRegistration.test.ts b/src/__tests__/jniRegistration.test.ts new file mode 100644 index 00000000..dd81fb82 --- /dev/null +++ b/src/__tests__/jniRegistration.test.ts @@ -0,0 +1,86 @@ +import { describe, expect, test } from 'bun:test'; +import { readdirSync, readFileSync } from 'node:fs'; +import { decodeNativeText } from '../../scripts/encode-native-text'; + +// JNI_OnLoad binds Android native methods from an encoded name/signature table +// (cpp/patch_core/jni_registration.cpp). A drifted entry would silently leave +// a method unbound until its first call, so the table must match every Java +// `native` declaration exactly. +const root = new URL('../../', import.meta.url); +const javaDir = 'android/src/main/java/cn/reactnative/modules/update/'; +const javaPackage = 'cn/reactnative/modules/update/'; + +const descriptor = (type: string): string => { + const array = type.endsWith('[]'); + const base = array ? type.slice(0, -2) : type; + const primitives: Record = { + boolean: 'Z', + int: 'I', + long: 'J', + double: 'D', + float: 'F', + void: 'V', + }; + const element = + primitives[base] ?? + (base === 'String' ? 'Ljava/lang/String;' : `L${javaPackage}${base};`); + return array ? `[${element}` : element; +}; + +const javaNatives = () => + readdirSync(new URL(javaDir, root)) + .filter((file) => file.endsWith('.java')) + .flatMap((file) => { + const source = readFileSync(new URL(javaDir + file, root), 'utf8') + .replace(/\/\*[\s\S]*?\*\//g, '') + .replace(/\/\/.*$/gm, ''); + return [ + ...source.matchAll(/\bnative\s+([\w[\]]+)\s+(\w+)\s*\(([^)]*)\)\s*;/g), + ].map((match) => { + const params = match[3] + .split(',') + .map((param) => param.trim()) + .filter(Boolean) + .map((param) => descriptor(param.split(/\s+/)[0])); + return `${javaPackage}${file.replace('.java', '')}.${match[2]}${`(${params.join('')})`}${descriptor(match[1])}`; + }); + }) + .sort(); + +const registered = () => { + const source = readFileSync( + new URL('cpp/patch_core/jni_registration.cpp', root), + 'utf8' + ); + const entries: string[] = []; + let currentClass = ''; + for (const match of source.matchAll( + /\{"([0-9a-f]+)",\s*(?:\/\/[^\n]*)?\s*\{|\{"([0-9a-f]+)",\s*"([0-9a-f]+)",/g + )) { + if (match[1]) { + currentClass = decodeNativeText(match[1]); + } else { + entries.push( + `${currentClass}.${decodeNativeText(match[2])}${decodeNativeText(match[3])}` + ); + } + } + return entries.sort(); +}; + +describe('JNI registration table', () => { + test('matches every Java native declaration', () => { + const natives = javaNatives(); + expect(natives.length).toBe(11); + expect(registered()).toEqual(natives); + }); + + test('stores no plain class or method names', () => { + const source = readFileSync( + new URL('cpp/patch_core/jni_registration.cpp', root), + 'utf8' + ).replace(/\/\/.*$/gm, ''); + expect(source).not.toContain('cn/reactnative'); + expect(source).not.toMatch(/"[A-Za-z]{4,}"/); + }); +}); diff --git a/src/__tests__/nativeHostApi.test.ts b/src/__tests__/nativeHostApi.test.ts index fd3c43e6..2b9eb771 100644 --- a/src/__tests__/nativeHostApi.test.ts +++ b/src/__tests__/nativeHostApi.test.ts @@ -6,6 +6,7 @@ import { BundlePreparationRound, bundlePreparationResult, } from '../../harmony/pushy/src/main/ets/BundlePreparationResult'; +import { STATUS_NONE } from '../../harmony/pushy/src/main/ets/Texts'; // Evaluate the actual Harmony orchestrator in an isolated VM per test. Only // platform imports, HTTP and download IO are substituted; entry points, @@ -77,6 +78,7 @@ function harness() { setTimeout: (callback: () => void) => timers.push(callback), isSafePathComponent: (hash: string) => /^[a-zA-Z0-9_-]+$/.test(hash), getErrorMessage: (error: unknown) => String(error), + STATUS_NONE, NativePatchCore: { getSupportedDiffVersion: () => 2, buildRequestBody: (input: string) => input, diff --git a/src/__tests__/nativeHostApiNaming.test.ts b/src/__tests__/nativeHostApiNaming.test.ts index 5a18c310..e29aba68 100644 --- a/src/__tests__/nativeHostApiNaming.test.ts +++ b/src/__tests__/nativeHostApiNaming.test.ts @@ -9,9 +9,8 @@ const source = (path: string) => readFileSync(new URL(path, root), 'utf8'); // These are forbidden host API identifiers, not backend paths or JS bridge names. const oldNames = /\b(?:PushyNativeUpdate|NativeUpdateResult|NativeUpdateConfig|RCTPushyNativeUpdateCompletion|RCTPushyNativeConfigurationCompletion|RCTPushyNormalizeNativeConfig|checkAndUpdate(?:WithCompletion|Native)?)\b/; -// Any other "native update" wording in shipped native code. NativeUpdateCore -// predates the native round and is bound by JNI symbol names. -const nativeUpdateWording = /NativeUpdate(?!Core)|native update/i; +// Any other "native update" wording in shipped native code. +const nativeUpdateWording = /NativeUpdate|native update/i; // Names added with the native round (10.51+) that were renamed to neutral // wording. Checked against code only: comments never reach a binary. const roundNames = diff --git a/src/__tests__/nativeTextEncoding.test.ts b/src/__tests__/nativeTextEncoding.test.ts index 39e27ad7..682e76c8 100644 --- a/src/__tests__/nativeTextEncoding.test.ts +++ b/src/__tests__/nativeTextEncoding.test.ts @@ -1,10 +1,7 @@ import { describe, expect, test } from 'bun:test'; import { readdirSync, readFileSync } from 'node:fs'; -import { - normalizePushyConfiguration, - QUERY_PATH, - revealText, -} from '../../harmony/pushy/src/main/ets/PushyConfiguration'; +import { normalizePushyConfiguration } from '../../harmony/pushy/src/main/ets/PushyConfiguration'; +import { QUERY_PATH, revealText } from '../../harmony/pushy/src/main/ets/Texts'; import { decodeNativeText, encodeNativeText, @@ -50,7 +47,7 @@ const stripComments = (text: string) => const encodedIn = (text: string) => [ ...text.matchAll( - /\b(?:HttpUtils\.reveal|reveal|RCTPushyRevealText|revealText)\(\s*["']([0-9a-f]+)["']\s*\)/g + /\b(?:reveal|RCTPushyRevealText|revealText|RevealStatic|Reveal)\(\s*["']([0-9a-f]+)["']\s*\)/g ), ].map((match) => match[1]); @@ -62,7 +59,7 @@ describe('native text encoding', () => { } }); - test('each platform encodes exactly the expected texts', () => { + test('each platform encodes the service addresses and path', () => { const platforms = { android: paths.filter((path) => path.startsWith('android/')), ios: paths.filter((path) => path.startsWith('ios/')), @@ -73,10 +70,13 @@ describe('native text encoding', () => { .flatMap((path) => encodedIn(source(path))) .map(decodeNativeText) .sort(); - expect({ platform, decoded }).toEqual({ - platform, - decoded: [...plainTexts].sort(), - }); + for (const text of plainTexts) { + expect({ platform, text, found: decoded.includes(text) }).toEqual({ + platform, + text, + found: true, + }); + } } }); @@ -96,4 +96,47 @@ describe('native text encoding', () => { expect(config.endpoints).toEqual(plainTexts.slice(1, 3)); expect(config.queryUrls).toEqual(plainTexts.slice(3)); }); + + // Every string literal in shipped native code, comments excluded: none may + // carry update/patch/rescue/reload wording except the entries below, which + // are fixed by a contract that cannot change without breaking callers. + test('shipped native string literals carry no update wording', () => { + const allowed = [ + // Public host API constant (Java switch/case needs a compile-time constant). + 'android/src/main/java/cn/reactnative/modules/update/BundlePreparationResult.java: noUpdate', + // Public ArkTS option type (compile-time only). + 'harmony/pushy/src/main/ets/PushyConfiguration.ts: setNeedUpdate', + // JS bridge method names registered with RNOH. + 'harmony/pushy/src/main/cpp/PushyTurboModule.cpp: reloadUpdate', + 'harmony/pushy/src/main/cpp/PushyTurboModule.cpp: setNeedUpdate', + 'harmony/pushy/src/main/cpp/PushyTurboModule.cpp: downloadPatchFromPpk', + 'harmony/pushy/src/main/cpp/PushyTurboModule.cpp: downloadPatchFromPackage', + 'harmony/pushy/src/main/cpp/PushyTurboModule.cpp: downloadFullUpdate', + ]; + const wording = /update|patch|rescue|reload|hotfix/i; + const literal = + /@?"((?:[^"\\\n]|\\.)*)"|'((?:[^'\\\n]|\\.)*)'|`((?:[^`\\\n]|\\.)*)`/g; + const offenders = paths.flatMap((path) => + stripComments(source(path)) + .split('\n') + .filter( + (line) => + !/^\s*(?:#\s*(?:import|include)|import\b|}\s*from\b)/.test(line) + ) + .filter((line) => !/__has_include/.test(line)) + .flatMap((line) => + [...line.matchAll(literal)] + .map((match) => + (match[1] ?? match[2] ?? match[3] ?? '').replace( + /\$\{[^}]*\}/g, + '' + ) + ) + .filter((value) => wording.test(value)) + .map((value) => `${path}: ${value}`) + ) + .filter((entry) => !allowed.includes(entry)) + ); + expect(offenders).toEqual([]); + }); });